프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Na Openapi MCP

제작자: rubatoyd버전 0.1.1i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.rubatoyd/na-openapi-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

National Assembly Library of Korea catalog search (books, theses, articles, bills)

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 개발자 도구
  • 입력해야 할 값: NA_API_KEY

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: NA_API_KEY, NA_OS_TRUST

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

제작자의 .mcpb 파일 다운로드

링크는 제작자의 파일로 바로 연결돼요. 우리가 보관하거나 다시 패키징하지 않아요. 파일을 열면 Claude Desktop이 설치해요.

터미널에서 이 명령어를 실행하세요

실행하기 전에 빈 값을 채워 주세요.

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • NA_API_KEY 비밀 필수 env
    data.go.kr OpenAPI key for the National Assembly Library search service (dataset 15098174). Required.
  • NA_OS_TRUST env
    Use the OS trust store for TLS (1=on, default). Set 0 to disable. Needed on school/corporate networks that intercept SSL.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 rubatoyd 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

개발자 도구 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 4906개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 4906개 중 41%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 4906개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Na Openapi MCP, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: NA_API_KEY

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.1)은 2개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 MCPB도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: GitHub, Desktop Commander, Cloudflare MCP

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

GitHub

제작자: github

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

컴퓨터 또는 클라우드★ 34,245MIT4일 전 업데이트
설치

Desktop Commander

제작자: wonderwhy-er

MCP server for terminal commands, file operations, and process management

내 컴퓨터에서 실행★ 10,225MIT16일 전 업데이트
설치

Cloudflare MCP

제작자: cloudflare

Cloudflare MCP servers

클라우드에서 실행★ 4,446Apache-2.014개월 전 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

na-openapi-mcp

📈 사용량 — 최근 14일 조회 4회(고유 3) · 클론 194회(고유 118) · 릴리스 자산 누적 다운로드 119

2026-11-06 자동 갱신 · 전체 이력은 docs/usage.csv. GitHub 트래픽 통계는 14일 창만 제공하므로 이 저장소가 매일 찍어 누적한다.

국회도서관(National Assembly Library of Korea) 자료검색 OpenAPI 를 Claude 등 MCP 클라이언트에서 바로 쓰는 서버 + CLI. 도서·학위논문·국내외 기사·국회회의록·의안정보 등 21종 DB 를 검색·수집하고 xlsx/csv/json/sqlite 로 내보냅니다.

자매 프로젝트: nl-openapi-mcp(국립중앙도서관 단행본·회색문헌) · kci-openapi-mcp(학술논문·인용지수) · scienceON-mcp(KISTI 문헌)


이 도구가 특별히 신경 쓰는 것

① 미지원 검색항목이 오류 대신 전체 카탈로그를 돌려줍니다

이 API 최대의 함정입니다. 통합검색은 검색항목 이름을 모르면 거부하지 않고 검색어를 통째로 무시합니다.

저자,오욱환      →  total=76          ← 정상

저자명,오욱환 → total=13,097,591 ← 전체 DB. 오류도 경고도 없다

저자명 은 상세검색에서는 유효한 이름이라 오타가 아니라 헷갈려서 쓰기 쉽습니다. 그대로 두면 1,300만 건을 '검색 결과'로 오인하게 됩니다. → 이 서버는 화이트리스트로 호출 전에 거부하고 올바른 이름을 알려줍니다.

검색항목오욱환 검색 결과
전체 · 기본검색 · 자료명 · 저자 · 키워드105 · 88 · 4 · 76 · 7
저자명 · ISBN · 발행년도 · 오타각 13,097,591 (전체 DB)
② 조용한 절단 방지

받은 것이 전부인지, 잘린 것인지를 항상 메타로 알려줍니다.

신호뜻처방
truncatedmax_records 에서 멈춤올리면 해결
cap_hittotal > 회수 한계 — API 가 더 안 줌검색식을 쪼개야 함
early_stop_note새 레코드 0으로 조기 종료중복 응답·서버 이상 가능
stopped_early_note예산 소진으로 조회조차 못 한 검색어max_records 상향
zero_yield_warning수락되지만 항상 0건인 검색항목다른 항목 사용
option_ignored_warning연도 필터가 무시됨(통합검색)dbname 함께 지정
ignored_search_warning전체 카탈로그 규모가 반환됨검색항목 확인
toc_enrich_truncated_note목차 후보 중 일부만 보강됨toc_max 상향
toc_enrich_incomplete_note목차 조회 실패 건이 있음상향은 무의미 — 제어번호 확인
toc_enrich_aborted_note쿼터·키 문제로 보강 중단상향은 오히려 악화 — na_status

회수 한계는 `pageno 최대 99 × page_size` 입니다(실측). 기본값(1000)이면 99,000건이고, page_size 를 낮추면 한계도 함께 낮아집니다 — 이 서버는 그것까지 반영해 보고합니다.

③ 공식 문서와 실제가 다른 곳을 실측으로 확정했습니다

문서(.hwp/.docx)만 보고 만들면 조용히 깨지는 지점들입니다.

항목공식 문서✅ 실제
레코드 태그 ` ` — 문서대로면 전건 0개 회수 + total 은 정상
자식 순서value → namename → value
제어번호 필드명controlno`제어번호`
displaylines 상한1001000
인증키(언급 없음)Encoding 값을 URL 에 직접 결합해야 함
하이라이트 마크업(언급 없음)매칭 필드에 삽입

전체 대조표와 근거는 docs/NA_API_GUIDE.md 에 있습니다.


설치

1) Claude Code / Claude Desktop (uvx — 권장)
{

"mcpServers": { "na": { "type": "stdio", "command": "uvx", "args": ["--from", "git+https://github.com/rubatoyd/na-openapi-mcp", "na-mcp"], "env": { "NA_API_KEY": "발급받은_인증키" } } } }

2) Claude Desktop .mcpb 원클릭

릴리스에서 내려받아 실행합니다. 경량본(na-openapi-mcp.mcpb, uvx 경유)과 Python·uv 없이 도는 자체완결본 (win-x64 · macos-arm64 · linux-x64)이 있습니다.

3) 로컬 개발
git clone https://github.com/rubatoyd/na-openapi-mcp

cd na-openapi-mcp uv sync --all-groups uv run pytest -q uv run na status

4) 다른 MCP 클라이언트

stdio 전송이 기본입니다. HTTP 가 필요하면 na-mcp --transport streamable-http --host 127.0.0.1 --port 9126 (환경변수 NA_MCP_TRANSPORT·NA_MCP_HOST·NA_MCP_PORT 도 지원).


인증키

공공데이터포털 data.go.kr 에서 국회 국회도서관_자료검색 서비스 (데이터셋 15098174) 활용신청 후 발급받습니다. 개발계정 트래픽은 10,000건/일 입니다.

na_detail·na_toc 를 쓰려면 상세정보조회 서비스(15098175)도 함께 신청하세요 — 인증키는 계정 단위라 같은 키가 그대로 통합니다.

NA_API_KEY=발급받은_키          # Decoding(원문) 권장

NA_API_KEY_ENCODED= # Encoding 값만 있으면 이쪽에 NA_OS_TRUST=1 # 교육망·사내망 SSL 인터셉션 대응(기본 1)

🔑 data.go.kr 은 인증키를 Encoding / Decoding 두 벌로 줍니다. 이 API 는 **Encoding

값을 URL 에 직접 결합**해야 하는데(실측), 라이브러리의 params= 로 넘기면 %2B 가

%252B 로 이중 인코딩되어 조용히 인증 실패합니다. 어느 쪽을 넣든 코드가 알아서

변환하므로 신경 쓰지 않아도 됩니다.


MCP 도구

도구하는 일
na_status인증키 보유 여부 + 실제 왕복 1회
na_search자료검색. 절단 신호를 함께 반환
na_collect검색어 합집합 수집 → xlsx/csv/json/sqlite. toc_max 로 목차 본문 보강(기본 끔)
na_detail제어번호 1건 상세정보
na_toc제어번호 1건 목차
na_fields검색항목·dbname 유효값 + 실측 근거(census)
검색어 형식

`검색항목,키워드` 입니다. | 로 이으면 AND 로 묶입니다.

전체,교육불평등

전체,교육|자료명,불평등 ← AND

OR(합집합)은 API 에 문법이 없어 na_collect(terms=[…]) 가 만듭니다.

통합검색 검색항목(7종): 기본검색 전체 자료명 저자 발행자 키워드 청구기호

dbname 을 지정하면 상세검색으로 전환되며 검색항목 어휘가 DB마다 달라집니다 (학위논문=논문명·지도교수, 국내기사=기사명, 학술지·신문=수록지명/신문명 한 덩어리). 정확한 목록은 na_fields 로 확인하세요.


CLI

na status

na fields # 검색항목·dbname 유효값 (--json 으로 census 전체) na search "전체,교육불평등" --max-records 20 na search "저자명,양연동" --dbname 학위논문 na collect --terms "전체,교육불평등" "전체,교육격차" --max-records 2000

목차 본문까지 붙이기 — 건당 1회를 더 씁니다(기본 꺼져 있음). 본문은 json·sqlite 에만.

na collect --search "자료명,교육불평등" --dbname 일반도서 --toc-max 300 --formats json xlsx na detail MONO12026000012887 na toc MONO12026000012887

연도 범위는 상세검색의 option 으로만 걸립니다(통합검색에서는 무시됨)

na search "자료명,교육" --dbname 일반도서 --option "발행년도,2000|발행년도,2010"


응답 필드

레코드는 고정 스키마가 아닙니다. · 쌍이고 이름 집합이 자료종마다 다릅니다 — 표제 필드만 해도 자료명(도서) / 논문명(학위논문) / 기사명(기사) / 수록지명/신문명(학술지·신문) / 저널명(전자저널) / 안건(회의록) / 의안명(의안정보) / 번역법령명 / 표그림명 으로 갈립니다.

알려진 이름은 공통 컬럼으로 정규화하고 원본은 `raw` 에 그대로 보존합니다.

주의할 값들(전부 실측):

  • 안내문이 값 자리에 옵니다 — E-BOOK 의 DDC 는 99.95% 가 전자형태로만 열람 가능함 입니다. 정규화 필드는 비우고 placeholder_fields 에 이름을 남깁니다(원문은 raw 에).
  • 연도가 4자리가 아닐 수 있습니다 — 201u(MARC 불확정 연도), 빈값, 0.
  • `초록유무=Y` 여도 초록 본문을 받을 방법이 없습니다. 서술형 텍스트는 국회의안정보(제안이유 및 주요내용)·국회회의록(내용)에만 있습니다.
  • 목차가 전건 없는 자료종: E-BOOK · 학술지,잡지 · 신문 · 국외기사 · 동영상자료.
목차 보강(toc_max)을 켰을 때

목차가 안 붙는 이유가 다섯이고 처방이 전부 다릅니다. 같은 빈칸으로 섞으면 "이 자료에는 목차가 없다"는 잘못된 결론이 나오므로, toc_status 컬럼이 사유를 행 단위로 구분합니다.

toc_status뜻처방
ok본문 확보—
skipped목차 플래그가 Y 가 아니거나 제어번호 없음 — 호출하지 않음— (쿼터를 쓰지 않음)
empty정상 응답인데 본문이 없음 → 플래그가 거짓이었다—
sentinel본문이 목차정보없음 반복—
failed조회 실패na_toc 로 단건 재조회
not_attempted예산 소진·중단으로 못 부름toc_max 상향

has_toc='Y' 인데 toc_status='empty' 인 행이 가장 중요한 신호라 두 컬럼을 나란히 둡니다. 본문(`toc_text`)은 json·sqlite 에만 실립니다 — 수천 자라 xlsx 셀 상한(32,767)에 걸리고 csv 를 비대하게 만듭니다.


검증 상태

  • 회귀 테스트 209건. 파서·수집기뿐 아니라 측정 도구 자체도 고정합니다 (tests/test_probe_instrumentation.py) — 화이트리스트가 탐침의 출력이라, 탐침이 조용히 틀리면 그 오류가 그대로 코드가 되기 때문입니다. CI 는 테스트뿐 아니라 클라이언트가 실제로 띄울 수 있는지를 봅니다 — 신규 의존성 해석에서 mcp.server.fastmcp 존재 확인, 실제 stdio 핸드셰이크, 도구 6종 노출, 무키 CLI 기동, 비밀 파일 미추적.
  • API 사실은 전부 라이브 왕복으로 확정했습니다(문서·자매 프로젝트에서 옮겨 적지 않음). 자료종 13종 필드 census 표본 약 21,000건. 재현: scripts/probe_*.py.
  • 상세 근거와 검증 등급(✅ 실측 / 📄 문서근거 / ❓ 미검증)은 docs/NA_API_GUIDE.md 에 있습니다.

라이선스

MIT

PopNx에게 묻기