Nps Businessenrollment
MCP server for Korea National Pension Service business enrollment API
Installation
npx mcp-nps-businessenrollmentAsk AI about Nps Businessenrollment
Powered by Claude ยท Grounded in docs
I know everything about Nps Businessenrollment. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
MCP NPS Business Enrollment Server
๊ตญ๋ฏผ์ฐ๊ธ ๊ฐ์ ์ฌ์ ์ฅ ๋ด์ญ API๋ฅผ MCP(Model Context Protocol) ์๋ฒ๋ก ์ ๊ณตํ๋ Python ํจํค์ง์ ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
๊ธฐ์ ์์ง์ ์ ๋ฐ ์์ ํ๊ท ์๊ธ ์กฐํ
- ๊ตญ๋ฏผ์ฐ๊ธ ๊ฐ์ ์ ์๋ก ์ค์ ์์ง์ ๊ท๋ชจ ํ์
- ๋น์ ๊ณ ์ง๊ธ์ก ๊ธฐ๋ฐ ์์ ํ๊ท ์๊ธ ๊ณ์ฐ (์ถ์ ๊ฐ)
- ์๋ณ ์ ์ฌ/ํด์ฌ ํํฉ ์ถ์
์๋ ์๋ฆฌ
graph LR
A[Claude/MCP Client] --> B[MCP Server]
B --> C[๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ API]
C --> D[์ฌ์
์ฅ ์ ๋ณด]
D --> B
B --> E[๋ฐ์ดํฐ ์ฒ๋ฆฌ<br/>ํ๊ท ์๊ธ ๊ณ์ฐ]
E --> A
- MCP ํด๋ผ์ด์ธํธ (Claude Desktop/Code)๊ฐ ์ฌ์ฉ์ ์์ฒญ์ ๋ฐ์
- MCP ์๋ฒ๊ฐ ๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ OpenAPI๋ฅผ ํธ์ถ
- ๋ฐํ๋ ๋ฐ์ดํฐ์์ ๊ฐ์ ์์, ๋น์๊ณ ์ง๊ธ์ก ์ถ์ถ
- ์์ ํ๊ท ์๊ธ ๊ณ์ฐ:
๋น์๊ณ ์ง๊ธ์ก รท ๊ฐ์ ์์ รท 0.09 (๋ณดํ๋ฃ์จ) - ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ฐํ
๊ฐ์
์ด ํ๋ก์ ํธ๋ ๊ณต๊ณต๋ฐ์ดํฐํฌํธ์์ ์ ๊ณตํ๋ ๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ์ ์ฌ์ ์ฅ ์ ๋ณด์กฐํ ์๋น์ค๋ฅผ MCP ์๋ฒ๋ก ๊ตฌํํ ๊ฒ์ ๋๋ค. Claude Desktop ๋ฐ ๊ธฐํ MCP ํธํ ํด๋ผ์ด์ธํธ์์ ๊ตญ๋ฏผ์ฐ๊ธ ๊ฐ์ ์ฌ์ ์ฅ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์กฐํํ ์ ์์ต๋๋ค.
MCP Tools
- search_business
- ์ฌ์ ์ฅ ์ ๋ณด ์กฐํ
- ์ง์ญ๋ณ, ์ฌ์ ์ฅ๋ช , ์ฌ์ ์๋ฑ๋ก๋ฒํธ๋ก ๊ฒ์
- ํ์ด์ง๋ค์ด์ ์ง์
- get_business_detail
- ์ฌ์ ์ฅ ์์ธ์ ๋ณด ์กฐํ
- ์ ์ข ์ฝ๋, ๊ฐ์ ์์, ๋น์๊ณ ์ง๊ธ์ก ๋ฑ ์์ธ์ ๋ณด
- get_period_status
- ๊ธฐ๊ฐ๋ณ ํํฉ ์ ๋ณด ์กฐํ
- ์๋ณ ์ทจ๋์/์์ค์ ํํฉ
MCP ํด๋ผ์ด์ธํธ์ ๋น ๋ฅธ ์ค์น
์ค์น ๋ฐฉ๋ฒ
Claude Desktop์ Smithery๋ก ์๋ ์ค์น
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ Smithery์ ๋ฑ๋ก๋ MCP ์๋ฒ๋ฅผ ์ค์นํ ์ ์์ต๋๋ค:
npx -y @smithery/cli install @Koomook/mcp_nps_businessenrollment --client claude
ํ ์คํธ์ฉ API ํค
๋ค์ ํ ์คํธ์ฉ API ํค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ ์ค์น ๋ช ๋ น์ด์์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค:
cm+2VqVacqFCywI02FjjnrdNN2TeQS0FE+JRKoO2FuEXGGjHImnWNHBAHWlrtaadj3D+Y87e5bfn6th8q3Nzkw=="
โ ๏ธ ์ค์ ์๋ด:
- ์ด ํ ์คํธ์ฉ API ํค๋ ํ๋ฃจ ์ด 10,000๊ฑด๊น์ง๋ง ํธ์ถ ๊ฐ๋ฅํฉ๋๋ค
- ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๊ณต์ ํ๋ฏ๋ก ์ธ์ ๋ ์ง ํธ์ถ์ด ์คํจํ ์ ์์ต๋๋ค
- ์์ ์ ์ธ ์ฌ์ฉ์ ์ํด์๋ ๊ฐ์ธ API ํค ๋ฐ๊ธ์ ๊ถ์ฅํฉ๋๋ค
Claude Desktop
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ - PyPI ํจํค์ง ์ฌ์ฉ:
-
Claude Desktop ์ค์ ํ์ผ ์ด๊ธฐ:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
๋ค์ ์ค์ ์ถ๊ฐ (ํ ์คํธ์ฉ API ํค ํฌํจ):
{
"mcpServers": {
"nps-business": {
"command": "uvx",
"args": ["mcp-nps-business-enrollment"],
"env": {
"API_KEY": "cm+2VqVacqFCywI02FjjnrdNN2TeQS0FE+JRKoO2FuEXGGjHImnWNHBAHWlrtaadj3D+Y87e5bfn6th8q3Nzkw=="
}
}
}
}
- Claude Desktop ์ฌ์์
Claude Code
# ํ
์คํธ์ฉ API ํค๋ก ์ค์น
claude mcp add nps-business \
--env API_KEY="cm+2VqVacqFCywI02FjjnrdNN2TeQS0FE+JRKoO2FuEXGGjHImnWNHBAHWlrtaadj3D+Y87e5bfn6th8q3Nzkw=="
-- uvx mcp-nps-business-enrollment
Codex CLI
Codex CLI์์ MCP ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ~/.codex/config.toml ํ์ผ์ ์์ ํฉ๋๋ค:
- Codex CLI ์ค์น (ํ์ํ ๊ฒฝ์ฐ):
npm install -g @openai/codex
- ์ค์ ํ์ผ ํธ์ง
~/.codex/config.toml:
# NPS Business Enrollment MCP Server ์ค์
[mcp_servers.nps-business]
command = "uvx"
args = ["mcp-nps-business-enrollment"]
env = { API_KEY = "cm+2VqVacqFCywI02FjjnrdNN2TeQS0FE+JRKoO2FuEXGGjHImnWNHBAHWlrtaadj3D+Y87e5bfn6th8q3Nzkw==" }
- Codex ์คํ:
codex # ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์์ ์คํ
๊ฐ๋ฐ์์ฉ ์ค์น
๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ MCP ํด๋ผ์ด์ธํธ์ ์ค์น
์ด ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํ์ฌ ๋ก์ปฌ ๊ฐ๋ฐ ๋ฒ์ ์ MCP ํด๋ผ์ด์ธํธ์ ์ง์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
1. ๋ ํฌ์งํ ๋ฆฌ ํด๋ก ๋ฐ ์ค์
# ๋ ํฌ์งํ ๋ฆฌ ํด๋ก
git clone https://github.com/Koomook/mcp_NPS_BusinessEnrollment.git
cd mcp_NPS_BusinessEnrollment
# uv๋ฅผ ์ฌ์ฉํ ์์กด์ฑ ์ค์น
uv sync
2. Claude Desktop์ ๋ก์ปฌ ๊ฐ๋ฐ ๋ฒ์ ์ฐ๊ฒฐ
Claude Desktop ์ค์ ํ์ผ์ ์ด์ด ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํฉ๋๋ค:
{
"mcpServers": {
"nps-business-dev": {
"command": "uv",
"args": ["run", "mcp-nps-business-enrollment"],
"cwd": "/path/to/mcp_NPS_BusinessEnrollment",
"env": {
"API_KEY": "cm+2VqVacqFCywI02FjjnrdNN2TeQS0FE+JRKoO2FuEXGGjHImnWNHBAHWlrtaadj3D+Y87e5bfn6th8q3Nzkw=="
}
}
}
}
์ฐธ๊ณ : cwd๋ฅผ ์ค์ ํด๋ก ํ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํ์ธ์.
3. Claude Code์ ๋ก์ปฌ ๊ฐ๋ฐ ๋ฒ์ ์ฐ๊ฒฐ
# ํด๋ก ํ ๋๋ ํ ๋ฆฌ์์ ์คํ
claude mcp add nps-business-dev \
--env API_KEY="cm+2VqVacqFCywI02FjjnrdNN2TeQS0FE+JRKoO2FuEXGGjHImnWNHBAHWlrtaadj3D+Y87e5bfn6th8q3Nzkw=="
-- uv run --directory /path/to/mcp_NPS_BusinessEnrollment mcp-nps-business-enrollment
PyPI ํจํค์ง๋ก ๊ฐ๋ฐ
# PyPI์์ ์ค์น
pip install mcp-nps-business-enrollment
# ๋๋ uv ์ฌ์ฉ (๊ถ์ฅ)
uv pip install mcp-nps-business-enrollment
ํ๊ฒฝ ์ค์
1. API ํค ๋ฐ๊ธ
๊ณต๊ณต๋ฐ์ดํฐํฌํธ์์ ์ ๊ณตํ๋ ๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ์ ์ฌ์ ์ฅ ์ ๋ณด์กฐํ ์๋น์ค์์ "๊ตญ๋ฏผ์ฐ๊ธ ๊ฐ์ ์ฌ์ ์ฅ ๋ด์ญ" API ํ์ฉ ์ ์ฒญ ํ ์ธ์ฆํค๋ฅผ ๋ฐ๊ธ๋ฐ์ต๋๋ค.
2. ํ๊ฒฝ๋ณ์ ์ค์ (๊ฐ๋ฐ์ฉ)
๊ฐ๋ฐ ํ๊ฒฝ์์ ํ
์คํธํ ๋๋ .env ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ๋ด์ฉ์ ์
๋ ฅํฉ๋๋ค:
# API ํค (ํ์)
API_KEY="your_api_key_here"
# ํ
์คํธ์ฉ API ํค ์์:
# API_KEY="cm+2VqVacqFCywI02FjjnrdNN2TeQS0FE+JRKoO2FuEXGGjHImnWNHBAHWlrtaadj3D+Y87e5bfn6th8q3Nzkw=="
์ฐธ๊ณ : API endpoint๋ ์๋์ผ๋ก ์ค์ ๋๋ฏ๋ก ๋ณ๋ ์ค์ ์ด ํ์ ์์ต๋๋ค.
์ฌ์ฉ ์์
MCP Client(Claude Desktop ๋ฑ)์์ ์ฌ์ฉ
์์ง์ ์ ๋ฐ ํ๊ท ์๊ธ ์กฐํ:
"์คํ์ด์ค์์ด" ํ์ฌ์ ์์ง์ ์์ ์์ ํ๊ท ์๊ธ์ ์๋ ค์ค
์ฌ์
์ฅ๋ช
์ผ๋ก ๊ฒ์:
"์ผ์ฑ์ ์"๋ผ๋ ์ด๋ฆ์ด ํฌํจ๋ ์ฌ์
์ฅ์ ๊ฒ์ํด์ค
์ง์ญ๋ณ ๊ฒ์:
์์ธํน๋ณ์ ๊ฐ๋จ๊ตฌ์ ์๋ ์ฌ์
์ฅ๋ค์ ์ฐพ์์ค
์์ธ์ ๋ณด ์กฐํ:
์๋ณ๋ฒํธ 12345์ธ ์ฌ์
์ฅ์ ์์ธ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค
๊ธฐ๊ฐ๋ณ ํํฉ:
์๋ณ๋ฒํธ 12345 ์ฌ์
์ฅ์ 2025๋
1์ ์ทจ๋/์์ค ํํฉ์ ์๋ ค์ค
Python์์ ์ง์ ์ฌ์ฉ
import asyncio
from mcp_nps_business_enrollment.api_client import NPSAPIClient
async def main():
async with NPSAPIClient() as client:
# ์ฌ์
์ฅ ๊ฒ์
result = await client.search_business(
wkpl_nm="์ผ์ฑ์ ์",
num_of_rows=5
)
print(f"Found {result['total_count']} businesses")
# ์์ธ์ ๋ณด ์กฐํ
if result['items']:
seq = result['items'][0]['seq']
detail = await client.get_business_detail(seq=seq)
print(f"Detail: {detail}")
asyncio.run(main())
ํ ์คํธ
# ํ
์คํธ ์คํ
uv run python tests/test_api.py
# pytest ์ฌ์ฉ
uv run pytest tests/
API ์ ํ์ฌํญ
- ๊ณต๊ณต๋ฐ์ดํฐํฌํธ API ์ผ์ผ ํธ์ถ ์ ํ์ด ์์ ์ ์์ต๋๋ค
- 3์ธ ์ด์ ๋ฒ์ธ์ฌ์ ์ฅ ์ ๋ณด๋ง ์ ๊ณต๋ฉ๋๋ค
- ๋งค์ 15์ผ ์ดํ ๋ฐ์ดํฐ๊ฐ ๊ฐฑ์ ๋ฉ๋๋ค
- ์ฌ์ ์๋ฑ๋ก๋ฒํธ๋ ์ 6์๋ฆฌ๋ง ์ ๊ณต (๋ค 4์๋ฆฌ๋ ๋ง์คํน)
์๋ ค์ง ํ๊ณ์ ๋ฐ ์ด์
1. ์๊ณ์ด ๋ฐ์ดํฐ ์กฐํ ๋ถ๊ฐ
- ๋ฌธ์ : ํ ํ์ฌ์ ์ฌ๋ฌ ๋ฌ ์์ง์ ๋ณ๋ ์ถ์ด๋ฅผ ํ ๋ฒ์ ์กฐํํ ์ ์์
- ์์ธ: API์์
seq๋ ์ฌ์ ์ฅ ๊ณ ์ ๋ฒํธ๊ฐ ์๋ ์๋ณ ๋ฐ์ดํฐ ์๋ณ๋ฒํธ- ๋์ผ ํ์ฌ๋ ๋งค์ ๋ค๋ฅธ seq๋ฅผ ๊ฐ์ง (์: ์คํ์ด์ค์์ด 202506์ seq=6500466, 202505์ seq=5919804)
- ํ์ฌ ํด๊ฒฐ๋ฐฉ๋ฒ: ๊ฐ ์๋ณ๋ก ๊ฐ๋ณ ๊ฒ์ ํ seq๋ฅผ ์ฐพ์ ์กฐํํด์ผ ํจ
2. ๋๊ธฐ์ ๋ณธ์ฌ ์กฐํ ์ด๋ ค์
- ๋ฌธ์ : ์ผ์ฑ์ ์ ๊ฐ์ ๋๊ธฐ์ ๋ณธ์ฌ๊ฐ ๊ฒ์๋์ง ์์ (ํ๋ ฅ์ ์ฒด๋ง 1,600๊ฐ+ ๊ฒ์๋จ)
- ๊ฐ๋ฅํ ์์ธ:
- ๋๊ธฐ์ ์ ์ง์ญ๋ณ/์ฌ์ ๋ถ๋ณ๋ก ๋ณ๋ ์ฌ์ ์ฅ ๋ฑ๋ก
- API์ ๋ฑ๋ก๋ ์ ์ ๋ช ์นญ์ด ๋ค๋ฅผ ์ ์์
- ์ผ๋ถ ๋๊ธฐ์ ๋ฐ์ดํฐ๋ ์ ๊ณตํ์ง ์์ ๊ฐ๋ฅ์ฑ
3. ์ฌ์ ์๋ฑ๋ก๋ฒํธ ๊ฒ์ ํ๊ณ
- ๋ฌธ์ : ์ฌ์ ์๋ฑ๋ก๋ฒํธ๋ง์ผ๋ก๋ ํน์ ํ์ฌ๋ฅผ ์ฐพ์ ์ ์์
- ์์ธ: API๋ ์ 6์๋ฆฌ๋ง ์ ๊ณตํ๋ฉฐ, ๋์ผํ ์ 6์๋ฆฌ๋ฅผ ๊ฐ์ง ํ์ฌ๊ฐ ์๋ฐฑ ๊ฐ ์กด์ฌ
- ์์: 436860์ผ๋ก ๊ฒ์ ์ 725๊ฐ ํ์ฌ ๊ฒ์๋จ
- ํด๊ฒฐ๋ฐฉ๋ฒ: ํ์ฌ๋ช + ์ฌ์ ์๋ฑ๋ก๋ฒํธ ์กฐํฉ์ผ๋ก ๊ฒ์
4. ๋ฐ์ดํฐ ์ ๊ณต ๋ฒ์
- ์ต๊ทผ 1๋ ์น ๋ฐ์ดํฐ๋ง ์ ๊ณต (2018.7.2๋ถํฐ ์ ์ฉ)
- ํ์ฌ ๋ฐ์ดํฐ๋ ํน์ ์(์: 202506)๊น์ง๋ง ์ ๊ณต๋๋ฉฐ, ์ดํ ์์ ์กฐํ ๋ถ๊ฐ
5. API ์๋ต ์ ํ
- ํ ๋ฒ์ ์กฐํ ๊ฐ๋ฅํ ์ต๋ ๊ฐ์: 100๊ฐ
- ํ ์คํธ ๊ฒฐ๊ณผ: 100๊ฐ๊น์ง๋ ์ ์, 150๊ฐ ์ด์ ์์ฒญ ์ CLIENT_ERROR ๋ฐ์
- ๊ฐ์ ์ฌํญ: ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋ ๋ง์ด ๋ณด๊ธฐ ์ํด
num_of_rows๊ธฐ๋ณธ๊ฐ์ 10์์ 100์ผ๋ก ๋ณ๊ฒฝ- ์ด์ : ํ์ฌ๋ช ๊ฒ์ ์ 10๊ฐ๋ง ํ์ โ ์ฌ๋ฌ ํ์ฌ ์ค ์ํ๋ ํ์ฌ ์ฐพ๊ธฐ ์ด๋ ค์
- ํ์ฌ: 100๊ฐ ํ์ โ ๋ ๋ง์ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ํ ๋ฒ์ ํ์ธ ๊ฐ๋ฅ
- ์ถ๊ฐ ๋ฐ์ดํฐ ํ์ ์: ํ์ด์ง๋ค์ด์ ํ์ฉ (pageNo ํ๋ผ๋ฏธํฐ ์ฌ์ฉ)
ํฅํ ๊ฐ์ ๊ณํ (TODO)
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ฐ MCP ์๋ฒ ๊ตฌ์ถ
- ๊ณต๊ณต๋ฐ์ดํฐํฌํธ CSV ํ์ผ์ ํ์ฉํ ์์ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ
- ์๋ณ CSV ํ์ผ ์ ์ฒด ๋ค์ด๋ก๋ ๋ฐ ํ์ฑ
- SQLite/PostgreSQL ๋ฑ ๋ก์ปฌ DB์ ๋ฐ์ดํฐ ์ ์ฅ
- ๊ณผ๊ฑฐ ์ ์ฒด ๊ธฐ๊ฐ ๋ฐ์ดํฐ ๋ถ์ ๊ฐ๋ฅ
๊ธฐ์ฌํ๊ธฐ
ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ณ ์ถ์ผ์๋ค๋ฉด Pull Request๋ฅผ ๋ณด๋ด์ฃผ์ธ์!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
๋ผ์ด์ผ์ค
MIT License - ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.
๋ฌธ์
๋ฌธ์ ๊ฐ ์๊ฑฐ๋ ์ ์์ฌํญ์ด ์์ผ์๋ฉด Issues์ ๋ฑ๋กํด์ฃผ์ธ์.
