Back to Browse

Na Openapi MCP Server

Developer ToolsUse Caution4.8MCP RegistryLocal
Free

Server data from the Official MCP Registry

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

About

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

Security Report

4.8
Use Caution4.8High Risk

This is a well-engineered MCP server for accessing the National Assembly Library of Korea API. The codebase demonstrates strong security awareness with proper authentication handling (env vars only, no hardcoding), comprehensive input validation to prevent API misuse, and careful credential scrubbing in logs. Permissions are appropriately scoped to the server's purpose (network HTTP calls, file I/O for exports, env vars for credentials). No malicious patterns detected. Minor findings involve low-severity code quality issues and one non-critical informational pattern. Supply chain analysis found 9 known vulnerabilities in dependencies (0 critical, 5 high severity).

4 files analyzed ยท 12 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

What You'll Need

Set these up before or after installing:

data.go.kr OpenAPI key for the National Assembly Library search service (dataset 15098174). Required.Required

Environment variable: NA_API_KEY

Use the OS trust store for TLS (1=on, default). Set 0 to disable. Needed on school/corporate networks that intercept SSL.Optional

Environment variable: NA_OS_TRUST

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-rubatoyd-na-openapi-mcp": {
      "env": {
        "NA_API_KEY": "your-na-api-key-here",
        "NA_OS_TRUST": "your-na-os-trust-here"
      },
      "args": [
        "na-openapi-mcp"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

na-openapi-mcp

CI Release Downloads

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

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

2026-09-12 ์ž๋™ ๊ฐฑ์‹  ยท ์ „์ฒด ์ด๋ ฅ์€ 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)๋งŒ ๋ณด๊ณ  ๋งŒ๋“ค๋ฉด ์กฐ์šฉํžˆ ๊นจ์ง€๋Š” ์ง€์ ๋“ค์ž…๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ๊ณต์‹ ๋ฌธ์„œโœ… ์‹ค์ œ
๋ ˆ์ฝ”๋“œ ํƒœ๊ทธ<record><recode> โ€” ๋ฌธ์„œ๋Œ€๋กœ๋ฉด ์ „๊ฑด 0๊ฐœ ํšŒ์ˆ˜ + total ์€ ์ •์ƒ
<item> ์ž์‹ ์ˆœ์„œvalue โ†’ namename โ†’ value
์ œ์–ด๋ฒˆํ˜ธ ํ•„๋“œ๋ช…controlno์ œ์–ด๋ฒˆํ˜ธ
displaylines ์ƒํ•œ1001000
์ธ์ฆํ‚ค(์–ธ๊ธ‰ ์—†์Œ)Encoding ๊ฐ’์„ URL ์— ์ง์ ‘ ๊ฒฐํ•ฉํ•ด์•ผ ํ•จ
ํ•˜์ด๋ผ์ดํŠธ ๋งˆํฌ์—…(์–ธ๊ธ‰ ์—†์Œ)๋งค์นญ ํ•„๋“œ์— <font color="red"> ์‚ฝ์ž…

์ „์ฒด ๋Œ€์กฐํ‘œ์™€ ๊ทผ๊ฑฐ๋Š” 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"

์‘๋‹ต ํ•„๋“œ

๋ ˆ์ฝ”๋“œ๋Š” ๊ณ ์ • ์Šคํ‚ค๋งˆ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. <item><name>ยท<value> ์Œ์ด๊ณ  ์ด๋ฆ„ ์ง‘ํ•ฉ์ด ์ž๋ฃŒ์ข…๋งˆ๋‹ค ๋‹ค๋ฆ…๋‹ˆ๋‹ค โ€” ํ‘œ์ œ ํ•„๋“œ๋งŒ ํ•ด๋„ ์ž๋ฃŒ๋ช…(๋„์„œ) / ๋…ผ๋ฌธ๋ช…(ํ•™์œ„๋…ผ๋ฌธ) / ๊ธฐ์‚ฌ๋ช…(๊ธฐ์‚ฌ) / ์ˆ˜๋ก์ง€๋ช…/์‹ ๋ฌธ๋ช…(ํ•™์ˆ ์ง€ยท์‹ ๋ฌธ) / ์ €๋„๋ช…(์ „์ž์ €๋„) / ์•ˆ๊ฑด(ํšŒ์˜๋ก) / ์˜์•ˆ๋ช…(์˜์•ˆ์ •๋ณด) / ๋ฒˆ์—ญ๋ฒ•๋ น๋ช… / ํ‘œ๊ทธ๋ฆผ๋ช… ์œผ๋กœ ๊ฐˆ๋ฆฝ๋‹ˆ๋‹ค.

์•Œ๋ ค์ง„ ์ด๋ฆ„์€ ๊ณตํ†ต ์ปฌ๋Ÿผ์œผ๋กœ ์ •๊ทœํ™”ํ•˜๊ณ  ์›๋ณธ์€ 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

Reviews

No reviews yet

Be the first to review this server!