na-openapi-mcp
na-openapi-mcp
๐ ์ฌ์ฉ๋ โ ์ต๊ทผ 14์ผ ์กฐํ 0ํ(๊ณ ์ 0) ยท ํด๋ก 0ํ(๊ณ ์ 0) ยท ๋ฆด๋ฆฌ์ค ์์ฐ ๋์ ๋ค์ด๋ก๋ 3
2026-09-07 ์๋ ๊ฐฑ์ ยท ์ ์ฒด ์ด๋ ฅ์
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 |
| ๊ฐ 13,097,591 (์ ์ฒด DB) |
โก ์กฐ์ฉํ ์ ๋จ ๋ฐฉ์ง
๋ฐ์ ๊ฒ์ด ์ ๋ถ์ธ์ง, ์๋ฆฐ ๊ฒ์ธ์ง๋ฅผ ํญ์ ๋ฉํ๋ก ์๋ ค์ค๋๋ค.
์ ํธ | ๋ป | ์ฒ๋ฐฉ |
|
| ์ฌ๋ฆฌ๋ฉด ํด๊ฒฐ |
|
| ๊ฒ์์์ ์ชผ๊ฐ์ผ ํจ |
| ์ ๋ ์ฝ๋ 0์ผ๋ก ์กฐ๊ธฐ ์ข ๋ฃ | ์ค๋ณต ์๋ตยท์๋ฒ ์ด์ ๊ฐ๋ฅ |
| ์์ฐ ์์ง์ผ๋ก ์กฐํ์กฐ์ฐจ ๋ชป ํ ๊ฒ์์ด |
|
| ์๋ฝ๋์ง๋ง ํญ์ 0๊ฑด์ธ ๊ฒ์ํญ๋ชฉ | ๋ค๋ฅธ ํญ๋ชฉ ์ฌ์ฉ |
| ์ฐ๋ ํํฐ๊ฐ ๋ฌด์๋จ(ํตํฉ๊ฒ์) |
|
| ์ ์ฒด ์นดํ๋ก๊ทธ ๊ท๋ชจ๊ฐ ๋ฐํ๋จ | ๊ฒ์ํญ๋ชฉ ํ์ธ |
ํ์ ํ๊ณ๋ pageno ์ต๋ 99 ร page_size ์
๋๋ค(์ค์ธก). ๊ธฐ๋ณธ๊ฐ(1000)์ด๋ฉด 99,000๊ฑด์ด๊ณ ,
page_size ๋ฅผ ๋ฎ์ถ๋ฉด ํ๊ณ๋ ํจ๊ป ๋ฎ์์ง๋๋ค โ ์ด ์๋ฒ๋ ๊ทธ๊ฒ๊น์ง ๋ฐ์ํด ๋ณด๊ณ ํฉ๋๋ค.
โข ๊ณต์ ๋ฌธ์์ ์ค์ ๊ฐ ๋ค๋ฅธ ๊ณณ์ ์ค์ธก์ผ๋ก ํ์ ํ์ต๋๋ค
๋ฌธ์(.hwp/.docx)๋ง ๋ณด๊ณ ๋ง๋ค๋ฉด ์กฐ์ฉํ ๊นจ์ง๋ ์ง์ ๋ค์ ๋๋ค.
ํญ๋ชฉ | ๊ณต์ ๋ฌธ์ | โ ์ค์ |
๋ ์ฝ๋ ํ๊ทธ |
|
|
| value โ name | name โ value |
์ ์ด๋ฒํธ ํ๋๋ช |
|
|
| 100 | 1000 |
์ธ์ฆํค | (์ธ๊ธ ์์) | 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 status4) ๋ค๋ฅธ 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 ๋๊ตฌ
๋๊ตฌ | ํ๋ ์ผ |
| ์ธ์ฆํค ๋ณด์ ์ฌ๋ถ + ์ค์ ์๋ณต 1ํ |
| ์๋ฃ๊ฒ์. ์ ๋จ ์ ํธ๋ฅผ ํจ๊ป ๋ฐํ |
| ๊ฒ์์ด ํฉ์งํฉ ์์ง โ xlsx/csv/json/sqlite |
| ์ ์ด๋ฒํธ 1๊ฑด ์์ธ์ ๋ณด |
| ์ ์ด๋ฒํธ 1๊ฑด ๋ชฉ์ฐจ |
| ๊ฒ์ํญ๋ชฉยทdbname ์ ํจ๊ฐ + ์ค์ธก ๊ทผ๊ฑฐ(census) |
๊ฒ์์ด ํ์
๊ฒ์ํญ๋ชฉ,ํค์๋ ์
๋๋ค. | ๋ก ์ด์ผ๋ฉด AND ๋ก ๋ฌถ์
๋๋ค.
์ ์ฒด,๊ต์ก๋ถํ๋ฑ
์ ์ฒด,๊ต์ก|์๋ฃ๋ช
,๋ถํ๋ฑ โ ANDOR(ํฉ์งํฉ)์ 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
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 ยท ํ์ ์ง,์ก์ง ยท ์ ๋ฌธ ยท ๊ตญ์ธ๊ธฐ์ฌ ยท ๋์์์๋ฃ.
๊ฒ์ฆ ์ํ
ํ๊ท ํ ์คํธ 170๊ฑด. CI ๋ ํ ์คํธ๋ฟ ์๋๋ผ ํด๋ผ์ด์ธํธ๊ฐ ์ค์ ๋ก ๋์ธ ์ ์๋์ง๋ฅผ ๋ด ๋๋ค โ ์ ๊ท ์์กด์ฑ ํด์์์
mcp.server.fastmcp์กด์ฌ ํ์ธ, ์ค์ stdio ํธ๋์ ฐ์ดํฌ, ๋๊ตฌ 6์ข ๋ ธ์ถ, ๋ฌดํค CLI ๊ธฐ๋, ๋น๋ฐ ํ์ผ ๋ฏธ์ถ์ .API ์ฌ์ค์ ์ ๋ถ ๋ผ์ด๋ธ ์๋ณต์ผ๋ก ํ์ ํ์ต๋๋ค(๋ฌธ์ยท์๋งค ํ๋ก์ ํธ์์ ์ฎ๊ฒจ ์ ์ง ์์). ์๋ฃ์ข 13์ข ํ๋ census ํ๋ณธ ์ฝ 21,000๊ฑด. ์ฌํ:
scripts/probe_*.py.์์ธ ๊ทผ๊ฑฐ์ ๊ฒ์ฆ ๋ฑ๊ธ(โ ์ค์ธก / ๐ ๋ฌธ์๊ทผ๊ฑฐ / โ ๋ฏธ๊ฒ์ฆ)์
docs/NA_API_GUIDE.md์ ์์ต๋๋ค.
๋ผ์ด์ ์ค
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rubatoyd/na-openapi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server