Back to Discover

nl-openapi-mcp

connector

rubatoyd

National Library of Korea holdings search - books, online materials, KDC classification

View on GitHub
0 starsSynced Aug 12, 2026

Install to Claude Code

/plugin marketplace add rubatoyd/nl-openapi-mcp

README

nl-openapi-mcp

CI Release Downloads

๐Ÿ“ˆ ์‚ฌ์šฉ๋Ÿ‰ โ€” ์ตœ๊ทผ 14์ผ ์กฐํšŒ 7ํšŒ(๊ณ ์œ  4) ยท ํด๋ก  94ํšŒ(๊ณ ์œ  32) ยท ๋ฆด๋ฆฌ์Šค ์ž์‚ฐ ๋ˆ„์  ๋‹ค์šด๋กœ๋“œ 70

์ผ๋ณ„ ํด๋ก ยท์กฐํšŒ ์ถ”์ด

2026-08-12 ์ž๋™ ๊ฐฑ์‹  ยท ์ „์ฒด ์ด๋ ฅ์€ 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_hittotal > 500 โ€” API ๊ฐ€ ๋” ์•ˆ ์คŒmax_records ๋กœ๋Š” ๋ถˆ๊ฐ€ (์•„๋ž˜ ์ฐธ์กฐ)
meta.cap_hit_terms์ƒํ•œ์— ๊ฑธ๋ฆฐ ๊ฒ€์ƒ‰์–ด ๋ชฉ๋ก๊ทธ ๊ฒ€์ƒ‰์–ด๋งŒ ์„ธ๋ถ„ํ™”

์ƒํ•œ์„ ๋„˜๊ฒจ ๋ชจ์œผ๋Š” ๋ฐฉ๋ฒ• โ€” ํ•จ๊ป˜ ์“ฐ๋ฉด ์ „์ˆ˜ ์ˆ˜์ง‘์ด ๋ฉ๋‹ˆ๋‹ค

๊ต์œก๋ณต์ง€/๋„์„œ(1,856๊ฑด) ๋ผ์ด๋ธŒ ์‹ค์ธก:

์„ค์ •ํšŒ์ˆ˜๋น„์œจ์š”์ฒญ
์šฐํšŒ ์—†์Œ50027%1
sort_depth=31,74694%7
auto_partition=True + sort_depth=11,854100%24

sort_depth ๊ฐ€ ๋น„์šฉ ๋Œ€๋น„ ํšจ๊ณผ๊ฐ€ ์••๋„์ ์ž…๋‹ˆ๋‹ค โ€” ๊ฐ™์€ ๊ฒ€์ƒ‰์‹์„ ์ •๋ ฌ ์ˆœ์„œ๋งŒ ๋ฐ”๊ฟ” ๋‹ค์‹œ ํ›‘๋Š”๋ฐ, asc ์™€ desc ์˜ ๊ต์ง‘ํ•ฉ์ด 0๊ฑด์ด๋ผ ์ •๋ ฌ์ถ• ํ•˜๋‚˜๊ฐ€ ์ƒํ•œ์„ ์‚ฌ์‹ค์ƒ 2๋ฐฐ๋กœ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. ๋ถ„ํ• (auto_partition)๊ณผ ์ง๊ตํ•˜๋ฏ€๋กœ ํ•จ๊ป˜ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ‘  auto_partition=True โ€” ์„œ๋ฒ„์ธก ์ถ•์œผ๋กœ ์žฌ๊ท€ ๋ถ„ํ• 

์‘๋‹ต ํ•„๋“œ๋ช…์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ๋ณด๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์ถ• 3๊ฐœ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค: category โ†’ manageName(๋‘˜ ๋‹ค ์™„์ „๋ถ„ํ• ) โ†’ licYn. ์ƒํ•œ์— ๊ฑธ๋ฆฐ ์กฐ๊ฐ๋งŒ ๋‹ค์Œ ์ถ•์œผ๋กœ ๋” ์ชผ๊ฐœ๊ณ , ๋ถ€๋ชจ ์กฐ๊ฐ๋„ ํ•ฉ์ง‘ํ•ฉ์— ๋„ฃ์–ด ๋ถˆ์™„์ „ํ•œ ์ถ•์„ ์จ๋„ ์†ํ•ด๊ฐ€ ๋‚˜์ง€ ์•Š๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ต์œก๋ณต์ง€(์ „์ฒด 7,028๊ฑด) ์‹ค์ธก:

๊นŠ์ด์ถ•ํšŒ์ˆ˜๋น„์œจ์š”์ฒญ
โ€”๋ถ„ํ•  ์—†์Œ5007%1
1category2,13430%13
2+manageName (๊ธฐ๋ณธ)3,26546%25
3+licYn4,72267%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_TRUST1๊ต์œก๋งยท์‚ฌ๋‚ด๋ง 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 ยท N
  • licYn โ†’ lic_code: L ยท F ยท S ยท D ยท N ยท Y

์›๋ฌธ ๋ณด์œ  ํŒ์ •์€ Holding.has_fulltext() ๋ฅผ ์“ฐ์„ธ์š”("N"ยท๋นˆ๊ฐ’๋งŒ ๊ฑฐ์ง“).


๊ฒ€์ฆ ์ƒํƒœ

  • โœ… ์‘๋‹ต ์Šคํ‚ค๋งˆ 24๊ฐœ ํ•„๋“œ โ€” ์‹ค์‘๋‹ต 1,124๊ฑด ์ „์ˆ˜ ์ง‘๊ณ„๋กœ ํ™•์ •
  • โœ… 500๊ฑด ์ƒํ•œ โ€” ๊ณต์‹ ์˜ค๋ฅ˜์ฝ”๋“œ + ์‹ค์ œ ์ˆ˜์ง‘ ๋กœ๊ทธ + ์˜คํ”„์…‹ ๊ธฐ์ค€๊นŒ์ง€ ์‹ค์ธก
  • โœ… ํ˜ธ์ถœ ๊ทœ๊ฒฉ ๋ผ์ด๋ธŒ ์ „์ˆ˜ ๊ฒ€์ฆ โ€” srchTarget ์ง€์›/ํด๋ฐฑ, category 12์ข…, sort ์ƒ‰์ธ ํ•„๋“œ๋ช…, ipub_year ์—ฐ๋„ ํ•„ํ„ฐ, f-์Šฌ๋กฏ ๋ถˆ๋ฆฌ์–ธ, ์˜ค๋ฅ˜ ๋ด‰ํˆฌ, 0๊ฑด ์‘๋‹ต ํ˜•ํƒœ. scripts/probe_api.py ๋กœ ์žฌํ˜„ ๊ฐ€๋Šฅ
  • โœ… ์˜คํ”„๋ผ์ธ ํšŒ๊ท€ 186๊ฑด ยท MCP stdio ํ•ธ๋“œ์…ฐ์ดํฌ ยท CI ์ฝœ๋“œ ์Šคํƒ€ํŠธ ์Šค๋ชจํฌ ยท ์ž์ฒด์™„๊ฒฐ ๋ฐ”์ด๋„ˆ๋ฆฌ ํด๋ฆฐ ํ™˜๊ฒฝ ๊ฒ€์ฆ
  • โš ๏ธ ์„œ๋ฒ„์ธก ์—ฐ๋„ ๋ฒ”์œ„(from~to) ํ•„ํ„ฐ๋งŒ ๋ฏธํ™•์ธ โ€” ๋‹จ์ผ ์—ฐ๋„(ipub_year)๋Š” ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค

๋ผ์ด์„ ์Šค

MIT

Rendered live from rubatoyd/nl-openapi-mcp's GitHub README โ€” not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
mcpb packageInstall via mcpb (stdio transport)mcp-serverhttps://github.com/rubatoyd/nl-openapi-mcp/releases/download/v0.7.0/nl-openapi-mcp.mcpb

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet โ€” be the first to share an update.