Context7
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
National Assembly Library of Korea catalog search (books, theses, articles, bills)
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
NA_API_KEY, NA_OS_TRUSTค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ลิงก์ไปที่ไฟล์ของผู้ทำเอง เราไม่ได้เก็บหรือแพ็กใหม่ เปิดไฟล์แล้ว Claude Desktop จะติดตั้งให้
พิมพ์คำสั่งนี้ใน Terminal
เติมค่าที่เว้นว่างไว้ก่อนรัน
เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
NA_OS_TRUST envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub rubatoyd ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: NA_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี MCPB ในเครื่องด้วย
ในหมวดเดียวกันมี Context7, Codebase Memory, Exa
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
📈 사용량 — 최근 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) |
받은 것이 전부인지, 잘린 것인지를 항상 메타로 알려줍니다.
| 신호 | 뜻 | 처방 |
|---|---|---|
truncated | max_records 에서 멈춤 | 올리면 해결 |
cap_hit | total > 회수 한계 — 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 → name | name → value |
| 제어번호 필드명 | controlno | `제어번호` |
displaylines 상한 | 100 | 1000 |
| 인증키 | (언급 없음) | Encoding 값을 URL 에 직접 결합해야 함 |
| 하이라이트 마크업 | (언급 없음) | 매칭 필드에 삽입 |
전체 대조표와 근거는 docs/NA_API_GUIDE.md 에 있습니다.
{
"mcpServers": { "na": { "type": "stdio", "command": "uvx", "args": ["--from", "git+https://github.com/rubatoyd/na-openapi-mcp", "na-mcp"], "env": { "NA_API_KEY": "발급받은_인증키" } } } }
.mcpb 원클릭릴리스에서 내려받아 실행합니다. 경량본(na-openapi-mcp.mcpb, uvx 경유)과 Python·uv 없이 도는 자체완결본 (win-x64 · macos-arm64 · linux-x64)이 있습니다.
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
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로 이중 인코딩되어 조용히 인증 실패합니다. 어느 쪽을 넣든 코드가 알아서
변환하므로 신경 쓰지 않아도 됩니다.
| 도구 | 하는 일 |
|---|---|
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 로 확인하세요.
na status
na fields # 검색항목·dbname 유효값 (--json 으로 census 전체) na search "전체,교육불평등" --max-records 20 na search "저자명,양연동" --dbname 학위논문 na collect --terms "전체,교육불평등" "전체,교육격차" --max-records 2000
na collect --search "자료명,교육불평등" --dbname 일반도서 --toc-max 300 --formats json xlsx na detail MONO12026000012887 na toc MONO12026000012887
na search "자료명,교육" --dbname 일반도서 --option "발행년도,2000|발행년도,2010"
레코드는 고정 스키마가 아닙니다. · 쌍이고 이름 집합이 자료종마다 다릅니다 — 표제 필드만 해도 자료명(도서) / 논문명(학위논문) / 기사명(기사) / 수록지명/신문명(학술지·신문) / 저널명(전자저널) / 안건(회의록) / 의안명(의안정보) / 번역법령명 / 표그림명 으로 갈립니다.
알려진 이름은 공통 컬럼으로 정규화하고 원본은 `raw` 에 그대로 보존합니다.
주의할 값들(전부 실측):
DDC 는 99.95% 가 전자형태로만 열람 가능함 입니다. 정규화 필드는 비우고 placeholder_fields 에 이름을 남깁니다(원문은 raw 에).201u(MARC 불확정 연도), 빈값, 0.제안이유 및 주요내용)·국회회의록(내용)에만 있습니다.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 를 비대하게 만듭니다.
tests/test_probe_instrumentation.py) — 화이트리스트가 탐침의 출력이라, 탐침이 조용히 틀리면 그 오류가 그대로 코드가 되기 때문입니다. CI 는 테스트뿐 아니라 클라이언트가 실제로 띄울 수 있는지를 봅니다 — 신규 의존성 해석에서 mcp.server.fastmcp 존재 확인, 실제 stdio 핸드셰이크, 도구 6종 노출, 무키 CLI 기동, 비밀 파일 미추적.scripts/probe_*.py.docs/NA_API_GUIDE.md 에 있습니다.MIT