Metadata-Version: 2.4
Name: korean-rnd-regs-mcp
Version: 0.1.3
Summary: MCP server for Korean national R&D regulation review (국가연구개발 규정 검토용 MCP 서버)
Project-URL: Homepage, https://github.com/smilemin07/korean-rnd-regs-mcp
Project-URL: Repository, https://github.com/smilemin07/korean-rnd-regs-mcp
Project-URL: Issues, https://github.com/smilemin07/korean-rnd-regs-mcp/issues
Project-URL: Changelog, https://github.com/smilemin07/korean-rnd-regs-mcp/blob/main/CHANGELOG.md
Author-email: Andy Kim <smilemin07@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: fastmcp,korea,korean,korean-law,mcp,model-context-protocol,national-rnd,r-and-d,regulation,research-development
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Other Audience
Classifier: Natural Language :: Korean
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Office/Business
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Text Processing :: Linguistic
Requires-Python: >=3.11
Requires-Dist: cachetools<6,>=5
Requires-Dist: fastmcp<4,>=3.3
Requires-Dist: pydantic<3,>=2
Requires-Dist: python-dotenv<2,>=1
Requires-Dist: pyyaml<7,>=6
Requires-Dist: requests<3,>=2
Provides-Extra: dev
Requires-Dist: build<2,>=1; extra == 'dev'
Requires-Dist: hatchling<2,>=1; extra == 'dev'
Requires-Dist: pytest<9,>=8; extra == 'dev'
Requires-Dist: twine<7,>=5; extra == 'dev'
Description-Content-Type: text/markdown

# korean-rnd-regs-mcp

[![PyPI version](https://img.shields.io/pypi/v/korean-rnd-regs-mcp.svg)](https://pypi.org/project/korean-rnd-regs-mcp/)
[![Python](https://img.shields.io/pypi/pyversions/korean-rnd-regs-mcp.svg)](https://pypi.org/project/korean-rnd-regs-mcp/)
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)

연구행정 관련 규정 검토용 MCP server. AI를 활용하여 아래와 같은 정보를 얻을 수 있습니다.
- 관련 규정 확인: 특정 사례의 규정 검토를 위해 확인이 필요한 규정의 조문 인출 
- 규정 검토: 특정 사례에 대한 다층적[법률 > 시행령 > 시행규칙 > 행정규칙(고시/훈령)] 규정 검토 결과
  - 동일한 프롬프트에 대해서도 사용하는 AI 모델에 따라 결과가 달라질 수 있습니다.

**대상 사용자**: 연구자, R&D전문기관 직원, 정부부처 R&D 담당 공무원

---

## 사용 예시

### 예시1: 관련 규정 확인

규정 검토가 필요한 사례를 입력하면, 검토가 필요한 세부 규정들을 출력해줍니다.

예시 prompt:

```
연구책임자 변경을 진행해야 하는 상황이야. 참고해야 할 세부 규정이 뭔지 알려줘.
```

<details>
<summary>생성 답변 보기 (Claude Code, Opus 4.7, effort level: max)</summary>

```
---
  연구책임자 변경 관련 규정

  1. 협약 변경 경로 (일반적 변경)

  국가연구개발혁신법 제11조제2항 — 연구책임자 변경은 "연구개발과제 수행에 관한 중요한 사항"에 해당하여, 협약 당사자 간 협의를 거쳐 협약 내용을 변경해야 합니다.

  국가연구개발혁신법 시행령 제14조 — 구체적 절차를 규정합니다.
  - 제1항: 변경 사유와 내용을 상대방에게 사전에 문서로 명확히 알리고 상호 협의
  - 제2항 제2호: 경미한 사항(통보만으로 변경 가능)은 "연구책임자는 제외"라고 명시 → 즉, 연구책임자 변경은 경미한 사항이 아니므로 반드시 협의 절차 필요

  2. 특별평가 경로 (사유 발생 시)

  국가연구개발혁신법 제15조 — 다음 사유 발생 시 특별평가를 거쳐 연구책임자를 변경할 수 있습니다:
  - 부정행위 발생 (제1항 제1호)
  - 연구책임자 참여제한 확정 (제1항 제2호)
  - 연구개발 환경 변경 (제1항 제3호)
  - 연구기관/연구책임자 스스로 변경 요청 (제2항) — 연구개발 환경 변경 또는 수행 불가능 판단 시
  - 의무 불이행 또는 수행 불가능 인정 (제1항 제5호)

  국가연구개발혁신법 시행령 제31조 — 특별평가 절차:
  - 중앙행정기관 → 연구기관·연구책임자에게 평가 실시 시기, 사유, 소명자료 제출 시한 통보
  - 연구기관/연구책임자가 요청하는 경우: 시행규칙 별지 제9호서식(변경·중단 요청서) 제출

  3. 후속 조치 (연구개발비)

  연구개발비 사용 기준 제95조제1항 — 연구책임자 변경 시 학생인건비통합관리계정의 이관 처리 규정:
  - 같은 기관 내 다른 연구자로 변경 → 변경 후 연구책임자계정으로 이체
  - 다른 기관으로 변경(소속 변경) → 변경 후 연구개발기관의 과제계정으로 이체

  ---
  요약: 연구책임자 변경은 경미한 사항이 아니므로 시행령 제14조에 따른 사전 문서 통보 + 협약 당사자 간 협의가 필수이며, 부정행위·참여제한·수행불가 등 사유가 있으면 법 제15조의 특별평가 경로를 거칩니다. 변경 확정 후에는 연구개발비(특히 학생인건비) 이관 처리도 확인해야 합니다.
```

</details>

### 예시2: 규정 검토

규정 검토가 필요한 상황을 입력하면 다층적 규정 검토 결과가 출력됩니다.
- **'korean-rnd-regs-mcp'**, **'규정 검토'** 라는 문구가 prompt에 포함돼야 다층적 규정 검토가 진행됩니다.

예시 prompt:

```
나는 R&D전문기관에서 연구개발사업을 담당하는 직원이야. korean-rnd-regs-mcp를 활용해서 아래 사례에 대한 규정 검토를 진행해줘.
- 내가 담당하는 사업의 연구과제에서 간접비를 증액하고 싶다는 의견을 알려왔어.
  - 내가 확인해야 할 관련 규정을 보여줘.
  - 만일 R&D전문기관의 '승인'이 필요한 협약변경 건이라면, 내가 사업 담당자로서 확인해야 할 것들을 목록으로 제시해줘.
```

<details>
<summary>생성 답변 보기 (Claude Code, Opus 4.7, effort level: max)</summary>

```
1. 관련 규정 (법령 위계순)

  [법률] 국가연구개발혁신법

  제11조(연구개발과제 협약 등) 제2항

  ▎ 협약 당사자는 연구개발비 등 연구개발과제 수행에 관한 중요한 사항을 변경할 필요가 있을 때에는 대통령령으로 정하는 바에 따라 협의하여 해당
  ▎ 연구개발과제 협약의 내용을 변경할 수 있다.

  제13조(연구개발비의 지급 및 사용 등) 제4항 제3호

  ▎ 연구개발비 사용 계획의 변경을 위하여 사전 승인이 필요한 경우에 대한 사항 → 사용기준(고시)에 위임

  [시행령] 국가연구개발혁신법 시행령

  제14조(연구개발과제협약의 변경 등)

  ▎ ① 변경하려는 경우 사전에 문서로 명확히 알리고 상호 협의를 거쳐야 한다.
  ▎
  ▎ ② "경미한 사항"이란 다음 각 호의 사항을 말한다.
  ▎   3. 연구개발비 사용에 대한 개괄적인 계획의 변경(간접비 및 연구수당을 늘리는 사항은 제외한다)

  → 간접비 증액은 경미한 사항에서 명시적으로 제외. 통보만으로는 변경 불가.

  [행정규칙] 국가연구개발사업 연구개발비 사용 기준

  제73조(사전 승인 대상) 제1항 제3호

  ▎ 전체 연구개발기간 동안의 간접비 총액(단계로 구분되는 경우 해당 단계의 간접비 총액)을 증액하려는 경우

  → 중앙행정기관의 장(=전문기관에 위탁된 경우 전문기관)의 사전 승인 필요

  제73조제2항 — 사전 승인 예외:

  ▎ 1. 정부출연기관의 기본사업인 경우
  ▎ 2. 국가안보 또는 사회·경제적 긴급한 상황 등

  제74조(사전 승인 절차)

  ▎ ① 변경 사유와 내용을 중앙행정기관의 장에게 제출
  ▎ ② 보완 요구 가능
  ▎ ③ 접수 후 15일 이내 승인 여부 통보 (연장 시 기간 통보)

  간접비비율 관련 (기관유형별)

  ┌────────────────┬─────────────────────────┬───────────────────────┐
  │    기관유형    │     적용 기준 조문      │ 간접비고시비율 기본값 │
  ├────────────────┼─────────────────────────┼───────────────────────┤
  │ 정부출연기관   │ 제37조, 제114조②(별표6) │ 개별 산출             │
  ├────────────────┼─────────────────────────┼───────────────────────┤
  │ 대학           │ 제46조, 제114조③        │ 미산출 시 5%          │
  ├────────────────┼─────────────────────────┼───────────────────────┤
  │ 기타비영리기관 │ 제55조(→제37조 준용)    │ 미산출 시 17%         │
  ├────────────────┼─────────────────────────┼───────────────────────┤
  │ 영리기관       │ 제63조, 제114조④        │ 10%                   │
  └────────────────┴─────────────────────────┴───────────────────────┘

  ---
  2. 전문기관 사업 담당자 확인 체크리스트

  간접비 증액은 사전 승인 대상 협약변경이므로, 아래 항목을 순서대로 확인해야 합니다.

  A. 사전 요건 확인

  - [ ] 변경 유형 정확히 식별: 간접비 총액 증액인지, 아니면 연도 간 간접비 배분 조정에 불과한지 (총액 불변이면 사전 승인 불요)
  - [ ] 사전 승인 예외 해당 여부: 정부출연기관 기본사업인 경우 사전 승인 불요 (제73조제2항제1호)
  - [ ] 간접비고시비율 범위 이내 여부: 증액 후 간접비비율(= 간접비 / 수정직접비)이 해당 기관의 간접비고시비율을 초과하지 않는지 확인 (제37조, 제46조, 제63조 등 기관유형별 적용기준)

  B. 변경 사유·내용 검토

  - [ ] 변경 사유의 타당성: 연구개발기관이 제출한 간접비 증액 사유가 과제 수행상 합리적인지 (제74조제1항)
  - [ ] 재원 확인: 간접비 증액의 재원이 어디인지
    - 연구개발비 총액 내 직접비→간접비 전환? → 추가로 제73조제1항제1호(총액 변경) 해당 여부 확인
    - 정부지원연구개발비 또는 기관부담연구개발비 변경 수반? → 제73조제1항제2호 해당 여부 확인
  - [ ] 연구수당 동시 증액 여부: 연구수당도 함께 증액하려면 별도 사전 승인 대상 (제73조제1항제10호)

  C. 정산 리스크 점검

  - [ ] 직접비 집행비율 확인: 직접비 집행비율이 50% 이하인 과제에서 간접비 집행비율이 직접비 집행비율을 초과하면 초과분 회수 대상 (시행령 제26조제5항제3호)
  - [ ] 잔여 연구기간 대비 적정성: 남은 기간에 증액된 간접비를 적정하게 집행할 수 있는지

  D. 절차 이행

  - [ ] 문서 접수: 연구개발기관으로부터 변경 사유와 내용을 문서로 제출받았는지 (시행령 제14조제1항, 사용기준 제74조제1항)
  - [ ] 보완 필요 여부: 제출 내용이 미흡하면 보완 요구 (제74조제2항)
  - [ ] 15일 이내 처리: 접수 후 15일 이내 승인/불승인 통보, 어려우면 기간 연장 통보 (제74조제3항)
  - [ ] 통합정보시스템 반영: 협약 변경 확정 시 NTIS 등 통합정보시스템에 변경사항 등록

  ---
  요약: 간접비 증액은 시행령 제14조에 의해 경미한 사항이 아니고, 사용기준 제73조제1항제3호에 의해 사전 승인 대상입니다. 핵심은 증액 후
  간접비비율이 해당 기관의 고시비율 범위 이내인지, 그리고 직접비 집행비율 대비 정산 리스크가 없는지를 함께 확인하는 것입니다.
```

</details>

---

## 설치 방법

### 사전 준비: LAW_API_KEY 발급

본 MCP 서버는 [국가법령정보 OpenAPI](https://open.law.go.kr)를 사용하여 연구행정 관련 규정을 불러옵니다.

#### 처음 발급받는 경우 (무료 / 5분 정도 소요)

1. https://open.law.go.kr 접속 → 회원가입
2. 로그인 → [마이페이지] → [API 신청] → "법령" 카테고리 신청 → '승인' 대기
3. 발급된 **OC 인증값**을 LAW_API_KEY로 설정

#### 이미 키를 보유하고 있는 경우 → 다음 단계 진행

---

### 설치

#### Option 1: Claude.ai(웹에서 Claude 사용)

1. claude.ai에 로그인
2. 왼쪽 사이드바에서 'Customize' 클릭
3. 'Connectors' 클릭
4. 돋보기 옆에 있는 '+' 클릭
5. 'Add custom connector' 클릭
6. Name: korean-rnd-regs-mcp
7. url: 아래 주소를 붙여넣기(mcp?oc=XX → XX 대신 법령정보센터에서 받은 API key 입력)
```
https://mcp.rndmanagers.org/mcp?oc=이_부분을_본인_법령정보센터_API키로_교체
```
8. 'Add' 클릭
9. 생성된 'korean-rnd-regs-mcp' 클릭
10. 우측에 'tool permissions'의 값을 'Needs approval'에서 'Always allow'로 수정
11. 완료

##### 설치 확인
새 채팅에서 아래 프롬프트를 입력했을 때, 'status=ok'가 출력되면 정상 설치
```
korean-rnd-regs-mcp 서버의 health 테스트를 진행해줘.
```

#### Option 2: Claude Code(터미널에서 Claude 사용)

1. uv가 설치돼 있어야 합니다.
  - uv 설치 여부를 터미널에서 확인 → 아래 명령어를 입력했을 때, uv의 버전이 출력돼야 함.
  ```
  uv --version
  ```
  - uv가 설치되지 않은 경우 → 아래 명령어를 입력해서 uv 설치를 진행
    - Windows
    ```
    powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
    ```
    - Mac
    ```
    brew install uv
    ```
2. Claude Code 시작 → 아래 명령어 입력
```
/plugin marketplace add smilemin07/korean-rnd-regs-mcp
```
3. 아래 명령어 입력
```
/plugin install korean-rnd-regs@korean-rnd-regs-marketplace
```
4. 추가 선택 화면에서 mcp 활용 목적에 맞게 선택
  - 현재의 working directory에서만 사용하고 싶은 경우 → Local
  - 시스템 전체에서 사용하고 싶은 경우 → Global
5. 아래 명령어 입력
```
/reload-plugins
```
6. 완료

##### 설치 확인
Claude Code에서 아래 프롬프트를 입력했을 때, 'status=ok'가 출력되면 정상 설치
```
korean-rnd-regs-mcp 서버의 health 테스트를 진행해줘.
```

#### Option 3: Codex(터미널에서 ChatGPT 사용)

1. Terminal에서(Codex 사용 전) 아래 명령어 입력
```
codex mcp add korean-rnd-regs --url "https://mcp.rndmanagers.org/mcp?oc=이_부분을_본인_법령정보센터_API키로_교체"
```
2. Codex 시작

##### 설치 확인
Codex에서 아래 프롬프트를 입력했을 때, 'status=ok'가 출력되면 정상 설치
```
korean-rnd-regs-mcp 서버의 health 테스트를 진행해줘.
```

---

## 지원 규정 (v0.1.2, 총 13개)

Tier 1 — 핵심 법률·시행령·시행규칙 (3개):

| ID | 명칭 | 종류 | MST/ID |
|---|---|---|---|
| `innovation_act` | 국가연구개발혁신법 | 법률 (2025-02-28) | MST 260807 |
| `innovation_decree` | 국가연구개발혁신법 시행령 | 대통령령 (2026-05-06) | MST 285767 |
| `innovation_rule` | 국가연구개발혁신법 시행규칙 | 과기정통부령 (2026-03-25) | MST 285043 |

Tier 2 — 핵심 행정규칙 (4개):

| ID | 명칭 | 시행일 | admrul ID |
|---|---|---|---|
| `rnd_funding_standard` | 국가연구개발사업 연구개발비 사용 기준 | 2024-06-13 | 2100000278740 |
| `simultaneous_research_limit` | 국가연구개발사업 동시수행 연구개발과제 수 제한 기준 | 2021-01-01 | 2100000196149 |
| `facility_equipment_standard` | 국가연구개발 시설·장비의 관리 등에 관한 표준지침 | 2026-04-23 | 2100000278230 |
| `research_note_guideline` | 국가연구개발사업 연구노트 지침 | 2022-01-01 | 2100000207982 |

Supplementary — 신고·포상금·부패행위·청탁금지·공익신고자보호 관련 (6개):

| ID | 명칭 | 종류 | MST |
|---|---|---|---|
| `anti_corruption_act` | 부패방지 및 국민권익위원회의 설치와 운영에 관한 법률 | 법률 (2025-01-21) | 268657 |
| `anti_corruption_decree` | 동 시행령 | 대통령령 (2026-03-03) | 283781 |
| `improper_solicitation_act` | 부정청탁 및 금품등 수수의 금지에 관한 법률 (청탁금지법/김영란법) | 법률 (2025-01-21) | 268655 |
| `improper_solicitation_decree` | 동 시행령 | 대통령령 (2025-12-30) | 281817 |
| `public_interest_whistleblower_act` | 공익신고자 보호법 | 법률 (2026-02-01) | 268861 |
| `public_interest_whistleblower_decree` | 동 시행령 | 대통령령 (2024-08-07) | 264451 |

## 기능

**5개 MCP tool**:

| Tool | 용도 |
|---|---|
| `health` | 서비스 상태·API 키 설정 여부 확인 |
| `list_rule_sets` | 등록된 13개 규정 목록·hierarchy rank·문서 ID 조회 |
| `search_provision` | 조문·별표 본문에서 키워드 검색 → snippet + provision_id 후보 list |
| `get_provision_detail` | provision_id로 단일 조문/별표 본문 verbatim 조회 (LLM 임의 부제 발명 방어 metadata 포함) |
| `suggest_review_sources` | 자연어 질문 → 키워드 추출 → 검토할 규정·조문 후보 + 추천 검토 순서 (법률 → 시행령 → 시행규칙 → 행정규칙) |

**1개 MCP prompt**:

| Prompt | 용도 |
|---|---|
| `review_regulation` | **다층적 규정 검토** — 특정 사례에 대해 13개 규정을 위계 순서로 적용하여, 규정 검토 결과를 근거 조항 인용과 함께 답변. 'korean-rnd-regs-mcp', '규정 검토' keyword를 prompt에 포함 필요 |

---

## Troubleshooting

### Q1. AI가 "관련 조문을 찾을 수 없습니다"라고 답합니다

1. AI에게 도구 응답의 `errors` field 확인 요청 — API 인증 실패 등은 errors로 전달됨
2. `health` 도구로 `api_key_configured: true` 확인
3. LAW_API_KEY가 정확한지 [국가법령정보 OpenAPI 마이페이지](https://open.law.go.kr/LSO/mypage.do)에서 확인
4. 키 문자열 앞뒤 공백 제거

### Q2. AI가 조문 본문에 없는 부제나 요약을 만들어냅니다

- prompt에 "**편집하지 말고 그대로**" 또는 "**verbatim**" 이라는 문구를 추가

### Q3. 특정 조문이 검색되지 않습니다

- 검색어를 바꿔서 다시 시도 (띄어쓰기·약칭). 예: "연구개발비 사용 기준" → "연구개발비사용기준"
- 현재 버전에서는 '별표'에 있는 조문의 검색은 지원되지 않습니다.

### Q4. "auth_failed" 오류

- LAW_API_KEY가 비어있거나 잘못됨. open.law.go.kr 마이페이지 → API 키 재발급

### Q5. "rate_limited" 오류

- 일일 호출 제한 도달. 24시간 대기 후 재시도. 캐시(24h)가 동일 query 반복 호출을 줄여줍니다

---

## 개발자용

### 로컬 개발 환경

```bash
git clone https://github.com/smilemin07/korean-rnd-regs-mcp.git
cd korean-rnd-regs-mcp
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -e ".[dev]"
```

### 테스트 실행

```bash
pytest
# 84 passed (mock 기반, 네트워크 미사용)
```

### 빌드

```bash
python -m build
twine check dist/*
```

---

## 보안

LAW_API_KEY는 국가법령정보 OpenAPI에서 무료로 발급받는 공개 법령 데이터 조회용 인증값입니다. 금융 API 키 등과는 성격이 다르지만, 다른 사람이 무단으로 사용할 수 없도록 관리하시기 바랍니다.
- 노출 시, 타인이 동일 키로 요청을 반복하여 사용에 영향을 줄 수 있습니다

### 서버의 보호 범위

- 도구 응답, 오류 메시지 등에 API 키가 표시되지 않도록 서버 내부에서 자동으로 숨김 처리합니다
- 법령정보 API와의 통신은 HTTPS 암호화를 사용합니다

### 사용자 주의사항

- API 키를 채팅, 스크린샷, SNS 등에 노출하지 마십시오
- 원격 접속(HTTP 모드) 사용 시 URL에 API 키가 포함됩니다 — 브라우저 기록, 터미널 기록에 남을 수 있으므로 공용 PC에서는 사용하지 마시기 바랍니다.
- `.env` 파일이 git commit에 포함되지 않도록 주의하십시오
- 타인이 운영하는 원격 서버를 이용하는 경우, 해당 서버 관리자는 기술적으로 API 키에 접근할 수 있습니다

### 키 노출 시 대처

키가 노출된 경우 [open.law.go.kr](https://open.law.go.kr)에서 기존 키를 삭제하고 새로 발급받을 수 있습니다.

자세한 보안 정책·취약점 보고: [SECURITY.md](SECURITY.md)

---

## Disclaimer

본 도구는 규정 검토 업무를 지원하기 위해 개발됐습니다. 판단 결과에 따른 책임은 사용자 본인에게 있습니다.

---

## License

[Apache License 2.0](LICENSE)

## Contributing

이슈·PR 환영합니다: https://github.com/smilemin07/korean-rnd-regs-mcp/issues

## Changelog

[CHANGELOG.md](CHANGELOG.md)
