Nl Openapi MCP
개요
제작자가 쓴 설명(영어 원문)
National Library of Korea holdings search - books, online materials, KDC classification
할 수 있는 일
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
- 연결 방식: 내 컴퓨터에서 실행
- 전송 방식: stdio
- 카테고리: 개발자 도구
- 입력해야 할 값: NL_API_KEY
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 3/3 통과 · 내 컴퓨터에서 실행돼요
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있지만 먼저 준비가 필요해요
키 필요 없음, 설치 필요 없음 · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
파일을 두 번 클릭한 뒤 컴퓨터용 Claude 앱에서 Install 누르기
해 보기
Nl Openapi MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 Nl Openapi MCP을 쓰고 있다고 하거나 답에 Nl Openapi MCP 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 아직 Nl Openapi MCP에 연결할 수 없어요
Nl Openapi MCP는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요
대신 이렇게 할 수 있어요
A · Nl Openapi MCP에 연결되는 앱 쓰기
- 키 필요 없음, 설치 필요 없음 · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
B · 개발자 도구에서 ChatGPT에 연결되는 다른 서버
같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요
- Sentry✓ ChatGPT
- Front-End Checklist✓ ChatGPT
- Compiler Explorer✓ ChatGPT
Claude Code는 아직 Nl Openapi MCP에 연결할 수 없어요
제작자가 컴퓨터용 Claude 앱 설치 파일만 제공해요
대신 이렇게 할 수 있어요
A · Nl Openapi MCP에 연결되는 앱 쓰기
- 키 필요 없음, 설치 필요 없음 · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
Cursor는 아직 Nl Openapi MCP에 연결할 수 없어요
제작자가 컴퓨터용 Claude 앱 설치 파일만 제공해요
대신 이렇게 할 수 있어요
A · Nl Openapi MCP에 연결되는 앱 쓰기
- 키 필요 없음, 설치 필요 없음 · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
VS Code는 아직 Nl Openapi MCP에 연결할 수 없어요
제작자가 컴퓨터용 Claude 앱 설치 파일만 제공해요
대신 이렇게 할 수 있어요
A · Nl Openapi MCP에 연결되는 앱 쓰기
- 키 필요 없음, 설치 필요 없음 · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
개발자용: 터미널 명령과 JSON 설정
직접 입력할 값
NL_API_KEY비밀 필수 envNational Library of Korea OpenAPI key (issued at www.nl.go.kr). Required.NL_OS_TRUSTenvUse the OS trust store for TLS (1=on, default). Set 0 to disable. Needed on school/corporate networks that intercept SSL.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
한눈에 보기
- 연결 방식
- 내 컴퓨터에서 실행
- 전송 방식
- stdio
- 최신 버전i
- 0.7.0
- 레지스트리 공개i
- 2026년 8월 12일
- 코드 마지막 변경i
- 2026년 11월 11일
- 제작자
- rubatoyd
- 패키지
mcpb: https://github.com/rubatoyd/nl-openapi-mcp/releases/download- 웹사이트
- github.com
- 레지스트리 상태
- 활성
어떤 앱에서 쓸 수 있나요
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
할 수 있는 일
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 11일 점검
- ✓ 통과
제작자와 저장소 일치
레지스트리 이름이 GitHub 계정 rubatoyd 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
- ✓ 통과
계속 관리되고 있음
코드 마지막 변경: 오늘
- ✓ 통과
라이선스 있음
MIT 사용
- – 해당 없음
엔드포인트 응답
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
- – 해당 없음
OAuth로 로그인
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
- … 아직 점검 안 함
도구 설명에 숨겨진 지시 없음
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
토론
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
사용자 리뷰
아직 리뷰가 없어요
개발자 도구 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 5763개 중 69%보다 스타가 많아요
- 이 카테고리의 다른 서버 5763개 중 28%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 5763개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
Nl Openapi MCP, 안전한가요?
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
입력해야 할 값: NL_API_KEY
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 오늘 변경됐고, 최신 버전(0.7.0)은 3개월 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 MCPB도 있어야 해요.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: REA, Netdata, Front-End Checklist
대안
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Netdata
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
Front-End Checklist
Review frontend code and live pages against 386 quality-gated web development rules.
제작자의 README
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
nl-openapi-mcp
📈 사용량 — 최근 14일 조회 0회(고유 0) · 클론 0회(고유 0) · 릴리스 자산 누적 다운로드 —
2026-11-06 자동 갱신 · 전체 이력은
docs/usage.csv. GitHub 트래픽 통계는 14일 창만 제공하므로 이 저장소가 매일 찍어 누적한다.
국립중앙도서관 소장자료 검색 OpenAPI 를 Claude 등 MCP 클라이언트에서 바로 쓰는 서버 + CLI. 단행본·온라인자료의 서지, KDC 분류, 청구기호, 원문 제공 여부를 검색·수집하고 xlsx/csv/json/sqlite 로 내보냅니다.
자매 프로젝트: kci-openapi-mcp(학술논문·인용지수) · scienceON-mcp(KISTI 문헌)
이 도구가 특별히 신경 쓰는 것 — 조용한 절단 방지
국립중앙도서관 검색 API 는 한 검색식당 500건까지만 돌려줍니다(공식 오류코드 012 DATA LIMIT 500). 그런데 total 은 그보다 큰 값을 태연히 보고합니다.
교육복지: total=1,856 → 실제로 받을 수 있는 건 500건
이 사실을 모르면 부분 집합을 전수로 오인하게 됩니다. 그래서 모든 응답에 total·truncated·cap_hit 을 함께 싣고, 상한에 걸리면 처방까지 문장으로 알려줍니다.
| 신호 | 뜻 | 처방 |
|---|---|---|
truncated | 이번 호출이 total 보다 적게 받음 | 대개 max_records 를 올리면 해결 |
cap_hit | total > 500 — API 가 더 안 줌 | max_records 로는 불가 (아래 참조) |
meta.cap_hit_terms | 상한에 걸린 검색어 목록 | 그 검색어만 세분화 |
상한을 넘겨 모으는 방법 — 함께 쓰면 전수 수집이 됩니다
교육복지/도서(1,856건) 라이브 실측:
| 설정 | 회수 | 비율 | 요청 |
|---|---|---|---|
| 우회 없음 | 500 | 27% | 1 |
sort_depth=3 | 1,746 | 94% | 7 |
| `auto_partition=True` + `sort_depth=1` | 1,854 | 100% | 24 |
`sort_depth` 가 비용 대비 효과가 압도적입니다 — 같은 검색식을 정렬 순서만 바꿔 다시 훑는데, asc 와 desc 의 교집합이 0건이라 정렬축 하나가 상한을 사실상 2배로 늘립니다. 분할(auto_partition)과 직교하므로 함께 쓸 수 있습니다.
① `auto_partition=True` — 서버측 축으로 재귀 분할
응답 필드명을 파라미터로 넘겨보는 방식으로 실제 동작하는 축 3개를 찾았습니다: category → manageName(둘 다 완전분할) → licYn. 상한에 걸린 조각만 다음 축으로 더 쪼개고, 부모 조각도 합집합에 넣어 불완전한 축을 써도 손해가 나지 않게 했습니다.
교육복지(전체 7,028건) 실측:
| 깊이 | 축 | 회수 | 비율 | 요청 |
|---|---|---|---|---|
| — | 분할 없음 | 500 | 7% | 1 |
| 1 | category | 2,134 | 30% | 13 |
| 2 | +manageName (기본) | 3,265 | 46% | 25 |
| 3 | +licYn | 4,722 | 67% | 60 |
partition_depth(1~3)로 조절합니다. ⚠️ 전수는 아니며 — 깊이 3에서도 33%가 남습니다 — 못 받은 건수는 meta.axes[].partition.unreachable 로 보고합니다.
② `exact=True` — 큰따옴표 구문검색 (⚠️ 넓게 모을 때는 쓰지 마세요)
total 자체가 줄어들어(교육불평등 63 → 28) 상한 아래로 내려갈 수 있습니다. 다만 재현율 손실이 큽니다 — 실측 평균 47%, 최악 84%(교육형평성 31 → 5건). 구문검색은 토큰 인접을 요구하는데 한국어 복합어는 표제에서 조사·수식어로 갈라지기 때문입니다 (교육의 형평성, 초중등교육의 형평성과). 버려진 것의 76%가 관련 문헌이었습니다.
→ 코퍼스 수집은 기본 검색 + `contains` 후처리, exact 는 전체 표제를 아는 특정 자료 조회용.
⚠️
year_from/contains는 이미 받은 레코드에 대한 후처리라 상한을 풀어주지 않습니다.
서버측 연도 범위 필터는 확인되지 않았습니다(11개 후보 무시).
🔴 정정(2026-08-12) — 이전 판에서 "정렬은 존재하지 않습니다"라고 적었으나 틀렸습니다.
sort=ipub_year&order=asc|desc가 동작합니다 →sort_depth로 구현했습니다(위 표).
detailSearch=true+f1/v1/and1로 필드 간 AND/OR/NOT 도 됩니다(AND+NOT=부모검산 통과) —
이쪽은 아직 미구현입니다. 자세한 내용 → docs/NL_API_GUIDE.md §1-4-b·§1-6·§3-3
설치
1) Claude Code / Claude Desktop (uvx — 권장)
{
"mcpServers": { "nl": { "type": "stdio", "command": "uvx", "args": ["--from", "git+https://github.com/rubatoyd/nl-openapi-mcp", "nl-mcp"], "env": { "NL_API_KEY": "발급받은_인증키" } } } }
2) Claude Desktop .mcpb 원클릭
Releases 에서 내려받아 실행합니다. Python·uv 가 없는 환경이면 OS별 자체완결 번들(-win-x64 / -macos-arm64 / -linux-x64)을 쓰세요.
3) 로컬 개발
git clone https://github.com/rubatoyd/nl-openapi-mcp
cd nl-openapi-mcp uv sync uv run pytest -q
클라우드 동기화 폴더(OneDrive 등)에서 작업한다면 venv 를 폴더 밖에 두세요:
UV_PROJECT_ENVIRONMENT=~/.venvs/nl-openapi-mcp
4) 다른 MCP 클라이언트
표준 stdio MCP 서버이므로 MCP 를 지원하는 에이전트면 그대로 붙습니다 — Cursor · Windsurf · Cline · Zed · VS Code Copilot(agent mode) · OpenAI Agents SDK · 자체 클라이언트 등. 위 command/args/env 3요소를 각 클라이언트 설정에 옮기면 됩니다.
전송 방식 — stdio(기본) · SSE · Streamable HTTP
로컬 서브프로세스뿐 아니라 HTTP 로도 띄울 수 있습니다. 원격 호스팅이나 stdio 를 못 쓰는 클라이언트를 위한 경로입니다.
nl-mcp # stdio (기본)
nl-mcp --transport streamable-http # http://127.0.0.1:8000/mcp nl-mcp --transport sse --port 9000 # http://127.0.0.1:9000/sse
환경변수: NL_MCP_TRANSPORT · NL_MCP_HOST · NL_MCP_PORT.
⚠️ HTTP 전송에는 인증이 없습니다. 기본 바인드는 루프백(
127.0.0.1)이라 같은 PC 에서만
접근됩니다.
--host 0.0.0.0으로 외부에 열면 인증키를 품은 서버를 그대로 공개하는 것과
같습니다 — 신뢰된 망에서만 쓰세요. 서버도 기동 시 경고를 찍습니다.
Claude 앱 안에서 검색해 설치할 수는 없습니다. 공식 MCP 레지스트리 등재와 Claude Desktop
인앱 커넥터 디렉터리는 별개이고 자동 동기화되지 않습니다. 위 설치 방법 중 하나를 쓰세요.
인증키
www.nl.go.kr 오픈API 신청으로 발급받아 NL_API_KEY 로 설정합니다. 토큰 발급·AES 암호화·공인IP 등록이 필요 없습니다(평문 key 쿼리 파라미터).
cp .env.example .env # NL_API_KEY 를 채워 넣으세요 (.env 는 gitignore 됩니다)
| 환경변수 | 기본값 | 설명 |
|---|---|---|
NL_API_KEY | (필수) | 국립중앙도서관 오픈API 인증키 |
NL_OS_TRUST | 1 | 교육망·사내망 SSL 인터셉션 대응(OS 신뢰저장소 사용). 0 이면 비활성 |
학교·교육청·사내망은 자체서명 루트 CA로 TLS를 가로챕니다. 이 도구는 검증을 끄지 않고
truststore로 OS 신뢰저장소를 사용해 통과합니다.
MCP 도구
| 도구 | 설명 |
|---|---|
nl_status | 인증키 유효성 + API 실제 왕복 1회 점검 |
nl_search | 소장자료 검색 (total·truncated·cap_hit 동반) |
nl_collect | 검색어 합집합 수집 → 파일 저장. save=false 면 미리보기만 |
예시
"국립중앙도서관에서 '교육불평등', '교육격차', '학력격차' 관련 단행본을 모아서 xlsx로 저장해줘"
nl_collect 가 세 검색어를 각각 조회해 id 기준으로 합집합을 만들고, 상한에 걸린 검색어가 있으면 meta.cap_hit_terms 로 지목합니다.
출력 파일명은 정규화됩니다.
name을 지정하지 않으면 검색어가 그대로 파일명이 되므로,
경로 구분자·
..·윈도 금지문자는 제거되고 결과는 항상out_dir안에만 저장됩니다.
한글 파일명은 그대로 보존됩니다.
CLI
nl status
nl search 교육불평등 --category 도서 --rows 20 nl collect --terms 교육불평등 교육격차 학력격차 --category 도서 --format xlsx json
500 상한을 넘겨 모으기 — 정렬 뒤집기가 가장 값싸다 (7요청에 94%)
nl collect --kwd 교육복지 --category 도서 --sort-depth 3 --format xlsx
분할과 함께 쓰면 전수 수집 (실측 100%)
nl collect --kwd 교육복지 --category 도서 --auto-partition --sort-depth 1 --format xlsx
응답 필드
정규화 25개 컬럼 + 원본 24개 필드(raw) 보존. 전체 표와 결측률은 docs/NL_API_GUIDE.md §2 참조.
주의할 필드 2가지 — 이름이 …Yn 이지만 불리언이 아닙니다:
docYn→doc_type:NL_VIEWER·LD_VIEWER·FILE·LINK·NlicYn→lic_code:L·F·S·D·N·Y
원문 보유 판정은 Holding.has_fulltext() 를 쓰세요("N"·빈값만 거짓).
검증 상태
- ✅ 응답 스키마 24개 필드 — 실응답 1,124건 전수 집계로 확정
- ✅ 500건 상한 — 공식 오류코드 + 실제 수집 로그 + 오프셋 기준까지 실측
- ✅ 호출 규격 라이브 전수 검증 —
srchTarget지원/폴백,category12종,sort색인 필드명,ipub_year연도 필터, f-슬롯 불리언, 오류 봉투, 0건 응답 형태.scripts/probe_api.py로 재현 가능 - ✅ 오프라인 회귀 186건 · MCP stdio 핸드셰이크 · CI 콜드 스타트 스모크 · 자체완결 바이너리 클린 환경 검증
- ⚠️ 서버측 연도 범위(from~to) 필터만 미확인 — 단일 연도(
ipub_year)는 동작합니다
라이선스
MIT