MCP server for Korean national R&D regulation review (국가연구개발 규정 검토용 MCP 서버)
Project description
korean-rnd-regs-mcp
국가연구개발 규정 검토용 MCP server. Claude Desktop·Claude Code에서 자연어 질의로 아래와 같은 정보를 얻을 수 있습니다.
- 관련 규정 확인: 특정 사례의 규정 검토를 위해 확인이 필요한 세부 규정 조항
- 규정 검토: 특정 사례에 대한 다층적[법률 > 시행령 > 시행규칙 > 행정규칙(고시/훈령)] 규정 검토 결과
- 동일한 프롬프트에 대해서도 사용하는 AI 모델에 따라 결과가 달라질 수 있습니다.
대상 사용자: 연구자, R&D사업담당자(공무원, R&D전문기관 직원)
본 도구는 규정 검토 업무를 지원하기 위해 개발됐습니다. 최종 판단의 결과는 사용자의 책임입니다.
기능
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 (Claude Desktop의 prompts 메뉴에서 선택 가능):
| Prompt | 용도 |
|---|---|
review_regulation |
다층적 규정 검토 워크플로 자동 적용 — 13개 규정을 위계 순서로 cross-reference하여 근거 조항 인용과 함께 답변. 상황만 입력하면 도구 호출·우선순위·출력 형식이 자동 진행 |
지원 규정 (v0.1.0, 총 13개):
Tier 1 — 핵심 법률·시행령·시행규칙 (혁신법 family):
| 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 — 신고·포상금·부패행위·청탁금지·공익신고자보호 검토용 cross-reference:
| 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 |
사전 준비: LAW_API_KEY 발급
본 MCP 서버는 국가법령정보 OpenAPI를 호출합니다.
이미 키를 보유하고 있는 경우
설치 후 환경변수 또는 MCP 클라이언트 config에 다음 한 줄을 추가하시면 됩니다:
LAW_API_KEY=발급받은_OC_인증값
처음 발급받는 경우 (무료 / 5분 정도 소요)
- https://open.law.go.kr 접속 → 회원가입
- 로그인 → [마이페이지] → [API 신청] → "법령" 카테고리 신청 → 승인 즉시 (자동)
- 발급된 OC 인증값을 LAW_API_KEY로 설정
보안: 키는
.env파일이나 MCP 클라이언트 config에만 보관하시고, 절대 git commit하거나 채팅·screenshot에 노출하지 마십시오. 노출 시 즉시 폐기·재발급 (SECURITY.md 참조).
설치 + 등록
Option 1: Claude Desktop 사용자
pip install korean-rnd-regs-mcp
Claude Desktop config 파일 편집:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"korean-rnd-regs": {
"command": "korean-rnd-regs-mcp",
"env": {
"LAW_API_KEY": "발급받은_OC_인증값"
}
}
}
}
설치 여부 확인
- Claude Desktop 재시작 → 하단 '+' 버튼 클릭 → Connectors → korean-rnd-regs-mcp 확인
Option 2: Claude Code 사용자
pip install korean-rnd-regs-mcp
claude mcp add korean-rnd-regs korean-rnd-regs-mcp -e LAW_API_KEY=발급받은_OC_인증값
Option 3: 다른 MCP 클라이언트
stdio mode로 다음 명령 실행:
korean-rnd-regs-mcp
표준 MCP protocol (JSON-RPC over stdio). FastMCP 3.3 기반.
설치 확인
korean-rnd-regs-mcp --version
# korean-rnd-regs-mcp 0.1.0
사용 예시
예시1: 관련 규정 확인
규정 검토가 필요한 사례를 입력하면, 검토가 필요한 세부 규정들을 반환해줍니다.
예시 prompt:
간접비로 계상이 가능한 지출 항목을 확인하고 싶어. 관련 세부 조항을 보여줘.
연구책임자 변경을 진행해야 하는 상황이야. 참고해야 할 세부 규정이 뭔지 알려줘.
예시2: 규정 검토
Claude Desktop의 좌하단 + 또는 / 메뉴에서 review_regulation prompt를 선택하면, situation 입력칸이 표시됩니다. 상황을 자연어로 입력하면 본 server의 도구가 자동으로 호출되어 13개 규정을 위계 순서대로 cross-reference한 결과가 출력됩니다.
예시 prompt:
연구책임자가 동시에 수행할 수 있는 연구개발과제 수의 제한 기준은 무엇인가? 공동연구개발기관의 책임자(공동)에게도 동일하게 적용되는지, 그리고 예외가 인정되는 경우는 어떤 것이 있는지 알려줘.
연구개발과제가 중단된 경우, 이미 지급된 연구개발비의 정산 절차와 환수 기준은 무엇인가? 중단 사유(자발적 중단 vs 특별평가에 의한 중단)에 따라 절차가 달라지는지도 확인해줘.
자동으로 적용되는 워크플로:
suggest_review_sources호출 → 키워드 추출 + 13개 규정 cross-search- recommended_review_order에 따라 법률 → 시행령 → 시행규칙 → 행정규칙 순서로
get_provision_detail호출 - Tier 2 키워드 cross-check ('인건비', '간접비' 등 키워드 출현 → '연구개발비 사용 기준'에서 관련 규정 검색)
- Supplementary cross-check (해당 시)
- 출력 format: 검토 규정 · 핵심 답변 · 근거 조항 · 모호한 부분 · 권고 조치
본 prompt는 본 프로젝트 저자가 자체 유지하던 규정 검토 워크플로(Tier 1 → Tier 2 → Supplementary 순서, provision_id verbatim 인용, 출력 형식 표준화)를 본 MCP server 도구 호출 형태로 자동화한 것입니다. 외부 사용자도 별도 skill 설치 없이 위 워크플로 기반의 1차 검토를 받을 수 있습니다. 단, 매뉴얼·부처별 운영규정·관리지침은 본 server 미커버 — 별도 자료 확인 필요.
API Contract
contract_version: 0.1.0 (첫 publish)
0.x.x 대역은 unstable signal — minor bump(0.1.0 → 0.2.0)도 breaking change 허용. 외부 사용자 코드는 contract_version을 응답에서 확인하여 호환성 체크 권장.
provision_id 포맷
{doc_type}:{doc_id}[:{unit_id}]
| 필드 | 허용 값 |
|---|---|
doc_type |
law 또는 admrul |
doc_id |
MST (법령) 또는 행정규칙일련번호 |
unit_id (선택) |
JO + 4자리 이상 숫자 (조문) 또는 BP + 4자리 이상 숫자 (별표). 생략 시 document-level |
예시
| provision_id | 의미 |
|---|---|
law:260807 |
국가연구개발혁신법 전체 |
law:260807:JO0015 |
동 법 제15조 |
admrul:2100000278740 |
연구개발비 사용 기준 전체 |
admrul:2100000278740:BP0001 |
동 행정규칙 별표 1 |
표준 오류 코드
| code | 의미 |
|---|---|
auth_failed |
OpenAPI 인증 실패 (401/403 또는 잘못된 OC) |
rate_limited |
429 또는 일일 호출 제한 |
parse_failed |
XML 파싱 실패, HTML 에러 페이지, 기타 4xx/5xx |
not_found |
검색 결과 0건 또는 상세 대상 없음 |
invalid_provision_id |
provision_id 포맷 위반 |
invalid_query |
search query가 공백 제외 2자 미만 |
자세한 응답 schema·변경 이력은 docs/api_contract.md 참조.
v0.2 / v0.3 예정 (현재 미지원)
다음 항목은 silent skip 또는 false negative 가능하니 주의:
- 가지조문 (예: 제15조의2, 제5조의3): 현재 provision_id 포맷이
JO+ 숫자만 지원. 가지조문은 검색·상세조회에서 누락됨. v0.2에서 prefix 확장 예정. - 법령 시행령 별표 (혁신법 시행령 별표 1~7 등): 현재
unit_types: article로 설정되어 별표 미검색. v0.3에서get_law_detail에 annexes 파싱 추가 예정. - PDF 색인·OCR·SQLite FTS5: 기관별 운영규정(예: 국토교통부소관 연구개발사업 운영규정), 부처별 관리지침(예: 국토교통 연구개발사업 관리지침), 매뉴얼(국가연구개발혁신법 매뉴얼 등) OpenAPI 미공개 자료의 검색은 v0.3 이후. 본 자료들이 필요한 검토는 본 MCP server cover 범위 밖이므로 별도 확인 필요.
검토 결과가 의심스러우면 항상 응답의 source_url을 직접 확인하시기 바랍니다.
Troubleshooting
Q. Claude가 "관련 조문을 찾을 수 없습니다"라고 답합니다
- Claude에게 도구 응답의
errorsfield 확인 요청 — API 인증 실패 등은 errors로 전달됨 health도구로api_key_configured: true확인- LAW_API_KEY가 정확한지 국가법령정보 OpenAPI 마이페이지에서 확인
- 키 문자열 앞뒤 공백 제거
Q. Claude가 조문 본문에 없는 부제나 요약을 만들어냅니다
- prompt에 "편집하지 말고 그대로" 또는 "verbatim" 추가 (위 예시 2 참조)
- 서버 응답의
format_instructionsfield가 Claude에 verbatim 정책을 전달하지만, 기본 rendering을 override하려면 사용자 prompt가 더 강한 신호 필요
Q. 특정 조문이 검색되지 않습니다
- 가지조문(제N조의M)이면 v0.2까지 미지원 (위 v0.2 섹션 참조)
- 시행령 별표면 v0.3까지 미지원
- 그 외엔
search_provisionkeyword를 다양화 시도 (띄어쓰기·약칭). 예: "연구개발비 사용 기준" → "연구개발비사용기준"
Q. "auth_failed" 오류
- LAW_API_KEY가 비어있거나 잘못됨. open.law.go.kr 마이페이지 → API 키 재발급
Q. "rate_limited" 오류
- 일일 호출 제한 도달. 24시간 대기 후 재시도. 캐시(24h)가 동일 query 반복 호출을 줄여줍니다
Q. Claude Desktop에서 MCP 아이콘이 안 보입니다
- config 파일 JSON 문법 오류 가능.
python -m json.tool < claude_desktop_config.json검사 - Claude Desktop 완전 종료 후 재시작 (Cmd+Q → 재실행)
- 로그 확인:
~/Library/Logs/Claude/mcp-server-korean-rnd-regs.log
개발자용
로컬 개발 환경
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]"
테스트 실행
pytest
# 67 passed (mock 기반, 네트워크 미사용)
빌드
python -m build
twine check dist/*
보안
LAW_API_KEY는 다중 layer 방어로 도구 응답·로그·error message에 절대 노출되지 않습니다:
_request_with_retry에서requests.exceptions.RequestException포괄 catch + type 이름만 사용 (URL/key 미노출)_sanitize_error_messagedefense-in-depth layer- 키 누설 회귀 테스트 다수 포함
자세한 보안 정책·취약점 보고: SECURITY.md
Disclaimer
본 도구는 법률 판단을 하지 않으며, 사용자의 규정 검토 작업을 지원합니다. 실제 법령 판단·적용은 사용자 책임이며, 다음을 직접 확인해야 합니다:
- 최신 시행일·개정 상황 (국가법령정보센터)
- 기관별 운영규정·매뉴얼 (각 R&D 전문기관 — 별도 자료)
- 별표·서식 첨부파일 (도구 응답의
attached_file_url또는source_url) - 가지조문 누락 가능성 (v0.2 deferred)
License
Contributing
이슈·PR 환영합니다: https://github.com/smilemin07/korean-rnd-regs-mcp/issues
Changelog
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file korean_rnd_regs_mcp-0.1.2.tar.gz.
File metadata
- Download URL: korean_rnd_regs_mcp-0.1.2.tar.gz
- Upload date:
- Size: 53.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
feb7ccf93ccd5e746379b46c42cca193ebb17aa6c81e1798d4801095d6d6e6b8
|
|
| MD5 |
981360ae42bee2854a358cf8ae96ed4b
|
|
| BLAKE2b-256 |
83aa66a50e5d7ef6983a8452eea6b5588f8930d7004e5de8c5bafefba8d58468
|
File details
Details for the file korean_rnd_regs_mcp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: korean_rnd_regs_mcp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 37.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0a7308f51d58461ab66b4b03dc92c2f1cf0eda1491ceca89b8f3f1cbd6d6ce8
|
|
| MD5 |
85103fe97acb872b8bc99987cbe91e70
|
|
| BLAKE2b-256 |
5f28319945680754c00c3d9cd78898cee3c2cd25e42fc414272754825ebd22ad
|