Electionmcp
9ํ ์ ๊ตญ๋์์ง๋ฐฉ์ ๊ฑฐ(2026.6.3) ํ๋ณด์ ์ ๋ณด ์์ง + MCP ์๋ฒ. NEC OpenAPI + ์ ๋ณด๊ณต๊ฐ์๋ฃ PDF + HuggingFace Dataset + FastMCP.
Ask AI about Electionmcp
Powered by Claude ยท Grounded in docs
I know everything about Electionmcp. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
electionmcp
๋ํ๋ฏผ๊ตญ ์ 9ํ ์ ๊ตญ๋์์ง๋ฐฉ์ ๊ฑฐ(2026๋ 6์ 3์ผ) ํ๋ณด์ ์ ๋ณด๋ฅผ ์์ฐ์ด๋ก ์กฐํยท๋น๊ตํ ์ ์๋๋ก ์ค์์ ๊ฑฐ๊ด๋ฆฌ์์ํ ๊ณต์ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ์ฌ ์ ๊ณตํ๋ MCP(Model Context Protocol) ์๋ฒ.
"์ฑ๋๊ตฌ์ฒญ์ฅ ํ๋ณด ์๋ ค์ค"
"๊ฒฝ๊ธฐ๋ ๋์ง์ฌ ํ๋ณด๋ค ํ๋ ฅ์ด๋ ๊ฒฝ๋ ฅ ๋น๊ตํด์ค"
"์์ธํน๋ณ์ ์๋์ง์ฌ ํ๋ณด ์ค ์ฌํดํ ์ฌ๋ ๋๊ตฌ์ผ?"
์์ ๋ฐ์ดํฐ โ Parquet โ DuckDB ์ธ๋ฉ๋ชจ๋ฆฌ ์ฟผ๋ฆฌ โ MCP ๋๊ตฌ โ AI ํด๋ผ์ด์ธํธ. ๋ชจ๋ ์๋ต์ **์ถ์ฒ(์ค์์ ๊ฑฐ๊ด๋ฆฌ์์ํ)**๊ฐ ๋ช ์๋๋ฉฐ, ํ๊ฐยท์ถ์ฒยท์ ํ์ ํด์์ ์์คํ ์ฐจ์์์ ์ฐจ๋จ.
| ๋ผ์ด๋ธ ์๋ํฌ์ธํธ | https://mcp.electionmcp.kr/mcp |
| ํฌ์ค์ฒดํฌ | https://mcp.electionmcp.kr/health |
| ๋ฐ์ดํฐ์ | skylee993393/korea-local-election-2026 |
| ๋ผ์ด์ ์ค | MIT (์ฝ๋) ยท ๊ณต๊ณต๋๋ฆฌ 1์ ํ (๋ฐ์ดํฐ) |
ํ๋ก์ ํธ ์ทจ์ง
์ง๋ฐฉ์ ๊ฑฐ 1ํ ํฌํ์์ ์ ๊ถ์๋ 4~7๋ช ์ ๋ํ(์ยท๋์ง์ฌ, ๊ตฌยท์ยท๊ตฐ์ฅ, ๊ด์ญ์์, ๊ธฐ์ด์์, ๊ต์ก๊ฐ)๋ฅผ ๋์์ ์ ํํด์ผ ํ๋ค. ํ๋ณด ์ ๋ณด๋ ์ค์์ ๊ฑฐ๊ด๋ฆฌ์์ํ๊ฐ ๋ชจ๋ ๊ณต๊ฐํ์ง๋ง, ์ฌ๋ฌ ์ฌ์ดํธ์ PDF์ ๋ถ์ฐ๋์ด ์์ด ํ๋์ ๋น๊ตยท๊ฒ์ฆํ๊ธฐ ์ด๋ ต๋ค.
electionmcp์ ํฉ์ด์ง ๊ณต์ ๋ฐ์ดํฐ๋ฅผ ๋จ์ผ ๋ฐ์ดํฐ์
์ผ๋ก ์ ๊ทํํ๊ณ , ์์ฐ์ด ์ธํฐํ์ด์ค๋ฅผ ํตํด
์ ๊ถ์๊ฐ ์๊ธฐ ์ง์ญ๊ตฌ ํ๋ณด๋ฅผ ๊ฐ๊ด์ ์ฌ์ค ๊ธฐ๋ฐ์ผ๋ก ์ถฉ๋ถํ ๊ฒํ ํ ๋ค ํฌํ์ ์ํ ์ ์๋๋ก ํ๋ค.
๋ฒ์ ๊ทผ๊ฑฐ: ๊ณต์ง์ ๊ฑฐ๋ฒ ์ 49์กฐ โ ํ๋ณด์์ ๋ณด ๊ณต๊ฐ๋ฅผ ํตํ ๊ตญ๋ฏผ์ ์๊ถ๋ฆฌยท์ ๊ฑฐ๊ถ ํ์ฌ ๋ณด์ฅ.
๋ฐ์ดํฐ ๊ฐ์ฉ์ฑ (ํ์๋ผ์ธ)
์ ๊ฑฐ ์ผ์ ์ ๋ฐ๋ผ NEC๊ฐ ๊ณต๊ฐํ๋ ์ ๋ณด์ ์ข ๋ฅ๊ฐ ๋จ๊ณ์ ์ผ๋ก ํ์ฅ๋๋ค. ๋ณธ ์๋น์ค์ ๊ฐ์ฉ ๋ฐ์ดํฐ๋ ์ด์ ๋ง์ถ์ด ๋ณ๋๋๋ค.
๋จ๊ณ๋ณ ๋งคํธ๋ฆญ์ค
| ๋จ๊ณ | ๊ธฐ๊ฐ | ํ๋ณด์ ๊ธฐ๋ณธ์ ๋ณด | ๊ณต์ฝ | ์ ๋ณด๊ณต๊ฐ์๋ฃ PDF | ๊ธฐํธ๋ฒํธ |
|---|---|---|---|---|---|
| ์๋นํ๋ณด (์ยท๋/์ยท์ฅ) | 2/20 ~ 5/13 | โ | โ | โ | โ |
| ์๋นํ๋ณด (๊ตฐ์์/๊ตฐ์) | 3/22 ~ 5/13 | โ | โ | โ | โ |
| ์ ์๋ฑ๋ก ์ ์ฒญ | 5/14 09:00 ~ 5/15 18:00 | (์ ํ) | (์ ํ) | (์ ํ) | (๋ถ์ฌ) |
| ์ ๊ฑฐ๊ธฐ๊ฐ | 5/16 ~ 6/2 | โ | โ (์ยท๋์ง์ฌยท๊ตฌ์๊ตฐ์ฅยท๊ต์ก๊ฐ) | โ (์ ๊ณผยท์ฌ์ฐยท๋ณ์ญยท๋ฉ์ธยทํ๋ ฅยท๊ฒฝ๋ ฅ) | โ |
| ์ ๊ฑฐ์ผ | 6/3 | โ | โ | โ (๋น์ผ๊น์ง) | โ |
| ์ ๊ฑฐ ํ | 6/4 ~ | โ (์ค๋ ์ท ๋ณด์กด) | โ (์ค๋ ์ท ๋ณด์กด) | โ (NEC ์ฐจ๋จ) | โ |
๋จ๊ณ๋ณ ์ฃผ์์ฌํญ
- 5/14~15 ์ ์๋ฑ๋ก ์: ์๋นํ๋ณด ๋ฐ์ดํฐ๊ฐ NEC API์์ ์ฆ์ ์ ๊ฑฐ๋๊ณ ์ ์ํ๋ณด ๋ฐ์ดํฐ๋ก ๊ต์ฒด๋๋ค. ๋ณธ ์๋น์ค๋ 5/15 23:00์ ์ ์๋ฑ๋ก ๋ฐ์ดํฐ๋ก ํ์ค์บ์ ์ฌ์คํํ์ฌ ๋ฐ์ดํฐ์ ์ ๊ฐฑ์ ํ๋ค.
- 5/16๋ถํฐ: ์ ๋ณด๊ณต๊ฐ์๋ฃ PDF๊ฐ ํ๋ณด์๋ณ๋ก ํ์ฑํ๋๋ค. ๋ณธ ์๋น์ค๋ 5/16 02:00์ PDF ์์ง + ํ ์คํธ ์ถ์ถ(pdfplumber โ PaddleOCR fallback)์ ์คํํ๋ค.
- 5/28๋ถํฐ: ๊ณต์ง์ ๊ฑฐ๋ฒ ยง108์ ๋ฐ๋ฅธ ์ฌ๋ก ์กฐ์ฌ ๊ฒฐ๊ณผ ๊ณตํ ๊ธ์ง ๊ธฐ๊ฐ ์ง์ . ๋ณธ ์๋น์ค๋ ์ ์ด์ ์ฌ๋ก ์กฐ์ฌยท์ง์ง์จ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์์ผ๋ฏ๋ก ์ํฅ ์์.
- 6/3 ์ดํ: NEC๊ฐ ์ ๋ณด๊ณต๊ฐ์๋ฃ PDF๋ฅผ ๋น๊ณต๊ฐ ์ ํํ๋ค. 6/3 23:59๊น์ง ์์ง๋ ์ค๋ ์ท์ HuggingFace Dataset์ ์๊ตฌ ๋ณด์กด๋๋ฉฐ ๋ณธ ์๋น์ค๋ ๋์ผ ๋ฐ์ดํฐ๋ก ๊ณ์ ์๋ตํ๋ค.
ํ์ฌ ๊ฐ์ฉ ๋ฐ์ดํฐ (2026-04-29 ๊ธฐ์ค)
ํ๋ณด์ ์ธ๋ฑ์ค: 9,215๋ช (์๋นํ๋ณด)
| ์ ๊ฑฐ ์ข ๋ฅ | ํ๋ณด ์ |
|---|---|
| ์ยท๋์ง์ฌ | 92 |
| ๊ตฌยท์ยท๊ตฐ์์ฅ | 1,335 |
| ์ยท๋์์ (์ง์ญ๊ตฌ) | 2,245 |
| ๊ตฌยท์ยท๊ตฐ์์ (์ง์ญ๊ตฌ) | 5,458 |
| ๊ต์ก๊ฐ | 85 |
| ๊ด์ญยท๊ธฐ์ด์์ ๋น๋ก๋ํ | 0 (์ ์๋ฑ๋ก์ผ์ ์ ๋น์ด ์ผ๊ด ์ ์ถ) |
๋ฑ๋ก ์ํ ๋ถํฌ
| ์ํ | ์ธ์ |
|---|---|
| ๋ฑ๋ก (ํ๋ ์ค) | 8,324 |
| ์ฌํด | 689 |
| ๋ฑ๋ก๋ฌดํจ | 201 |
| ์ฌ๋ง | 1 |
ํ๋ณด์ 1์ธ๋น ์ ๊ณต ํ๋
hubo_id ํ๋ณด์ ๊ณ ์ ID
name ์ฑ๋ช
(ํ๊ธ)
hanja_name ์ฑ๋ช
(ํ์)
gender ์ฑ๋ณ
birthday ์๋
์์ผ
age ๋์ด
addr ์ฃผ์
party ์ ๋น (jdName)
sido ๊ด์ญ์ยท๋
sgg ์ยท๊ตฐยท๊ตฌ
district ์ ๊ฑฐ๊ตฌ
sg_type / name ์ ๊ฑฐ ์ข
๋ฅ ์ฝ๋ / ๋ช
์นญ
job ์ง์
edu ํ๋ ฅ (1์ค ์์ฝ)
career1, 2, 3 ๊ฒฝ๋ ฅ (๊ฐ 1์ค)
status ๋ฑ๋ก ์ํ
regdate ๋ฑ๋ก์ผ
stage preliminary | official
ํ์ฌ ๋ฏธ์ ๊ณต (์ ์๋ฑ๋ก ํ ๋จ๊ณ์ ์ถ๊ฐ)
| ๋ฐ์ดํฐ | ์ถ๊ฐ ์์ |
|---|---|
| ๊ณต์ฝ (5๋ยท10๋) | 5/16 ์ ์๋ฑ๋ก ํ (์ยท๋์ง์ฌยท๊ตฌ์๊ตฐ์ฅยท๊ต์ก๊ฐ ํ์ ) |
| ์ ๋ณด๊ณต๊ฐ์๋ฃ โ ์ ๊ณผ๊ธฐ๋ก | 5/16 ์ ์๋ฑ๋ก ํ |
| ์ ๋ณด๊ณต๊ฐ์๋ฃ โ ์ฌ์ฐ์ ๊ณ | ๋์ผ |
| ์ ๋ณด๊ณต๊ฐ์๋ฃ โ ๋ณ์ญ์ฌํญ | ๋์ผ |
| ์ ๋ณด๊ณต๊ฐ์๋ฃ โ ๋ฉ์ธยท์ฒด๋ฉ | ๋์ผ |
| ์ ๋ณด๊ณต๊ฐ์๋ฃ โ ํ๋ ฅ ์ฆ๋น | ๋์ผ |
| ๊ธฐํธ๋ฒํธ (ballot_number) | ์ ์๋ฑ๋ก ์ ๋ถ์ฌ |
์ค์น
๋ณธ ์๋น์ค๋ Streamable HTTP transport(MCP ์ฌ์ 2025-03-26)๋ก ์ด์๋๋ค. ๋ณ๋ ํจํค์ง ์ค์นยท๋ก์ปฌ ์คํ ๋ถํ์. ํด๋ผ์ด์ธํธ๊ฐ HTTPS๋ก ์ง์ ์ฐ๊ฒฐํ๋ค.
Claude Code (CLI)
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ โ ํ ์ค ๋ช ๋ น์ด๋ก ๋ฑ๋ก:
claude mcp add --transport http electionmcp https://mcp.electionmcp.kr/mcp
๋ฑ๋ก ํ์ธ:
claude mcp list
Claude Desktop (macOS / Windows)
์ค์ ํ์ผ์ ๋ค์ ๋ธ๋ก ์ถ๊ฐ:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"electionmcp": {
"type": "http",
"url": "https://mcp.electionmcp.kr/mcp"
}
}
}
์ ์ฅ ํ Claude Desktop ์ฌ์์.
Cursor
Settings โ Cursor Settings โ MCP โ Add new MCP server:
{
"electionmcp": {
"url": "https://mcp.electionmcp.kr/mcp"
}
}
Cline (VS Code ํ์ฅ)
Cline ์ค์ โ MCP Servers โ Add Remote Server:
Name : electionmcp
URL : https://mcp.electionmcp.kr/mcp
Type : streamable-http
์ฐ๊ฒฐ ๊ฒ์ฆ
์ค์น ํ ํด๋ผ์ด์ธํธ์์ ๋ค์๊ณผ ๊ฐ์ด ์ง์ํด ๋์์ ํ์ธํ ์ ์๋ค:
"electionmcp์ผ๋ก ์์ธ ์ยท๋์ง์ฌ ํ๋ณด ์กฐํํด์ค"
"๊ฐ๋จ๊ตฌ ์์ฅ ํ๋ณด ๋๊ตฌ์ผ"
์๋ต์ ํ๋ณด์ ๋ชฉ๋ก์ด ์ถ์ฒ์ ํจ๊ป ๋ฐํ๋๋ฉด ์ ์.
์๋ฒ ํฌ์ค์ฒดํฌ๋ ๋ธ๋ผ์ฐ์ ๋ก๋ ๊ฐ๋ฅ:
https://mcp.electionmcp.kr/health
โ {"status":"ok","candidates":9215,...}
์ ๊ณต ๋๊ตฌ
| ๋๊ตฌ | ์ค๋ช | ์ฃผ์ ์ธ์ |
|---|---|---|
search_candidates | ์ยท๋, ์ยท๊ตฐยท๊ตฌ, ์ ๋น, ์ด๋ฆ, ์ ๊ฑฐ ์ข ๋ฅ๋ก ํ๋ณด์ ๊ฒ์ | sido, sgg, party, name, sg_type, limit |
list_by_district | ํน์ ์ ๊ฑฐ๊ตฌ์ ๋ชจ๋ ํ๋ณด์๋ฅผ ์ ๊ฑฐ ์ข ๋ฅ๋ณ๋ก ๊ทธ๋ฃนํ | sido, sgg |
get_candidate_detail | ํ๋ณด์ 1์ธ์ ์ ์ฒด ์ ๋ณด(๊ณต์ฝยท์ ๋ณด๊ณต๊ฐ์๋ฃ ํฌํจ) | hubo_id |
compare_candidates | ํ๋ณด์ N์ธ์ ๋์ผ ํญ๋ชฉ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ ๋น๊ต | hubo_ids[] |
list_districts | ์ยท๋ ๋๋ ํน์ ์ยท๋์ ์ยท๊ตฐยท๊ตฌ ๋ชฉ๋ก | sido |
get_dataset_info | ๋ฐ์ดํฐ์ ๋ฉํ์ ๋ณด(์์คยท๊ฐฑ์ ์๊ฐยท์ด ํ๋ณด ์) | (์์) |
๋ฐ์ดํฐ ์ถ์ฒ
| ์์ค | ์ข ๋ฅ | ๋ผ์ด์ ์ค |
|---|---|---|
| ๊ณต๊ณต๋ฐ์ดํฐํฌํธ OpenAPI โ ํ๋ณด์์ ๋ณด | ์ธ์ ์ฌํญยทํ๋ ฅยท๊ฒฝ๋ ฅ | ๊ณต๊ณต๋๋ฆฌ 1์ ํ |
| ๊ณต๊ณต๋ฐ์ดํฐํฌํธ OpenAPI โ ์ ๊ฑฐ๊ณต์ฝ์ ๋ณด | ๊ณต์ฝ (5/16~) | ๊ณต๊ณต๋๋ฆฌ 1์ ํ |
| ๊ณต๊ณต๋ฐ์ดํฐํฌํธ OpenAPI โ ์ฝ๋์ ๋ณด | ์ ๊ฑฐIDยท์ยท๋ยท์ยท๊ตฐยท๊ตฌ ์ฝ๋ | ๊ณต๊ณต๋๋ฆฌ 1์ ํ |
| info.nec.go.kr โ ํ๋ณด์์ ๋ณด๊ณต๊ฐ์๋ฃ | ์ ๊ณผยท์ฌ์ฐยท๋ณ์ญยท๋ฉ์ธยทํ๋ ฅ (5/16~6/3) | ๊ณต์ง์ ๊ฑฐ๋ฒ ยง49 ๊ณต๊ฐ |
ํฌ๋ช ์ฑ ๋ฉ์ปค๋์ฆ
| ๋ณด์ฅ | ๋ด์ฉ |
|---|---|
| ์ฝ๋ ๊ณต๊ฐ | ๋ณธ ์ ์ฅ์์์ ๋ฐ์ดํฐ ๊ฐ๊ณต ๋ก์ง 100% ๊ฒ์ฆ ๊ฐ๋ฅ |
| ๋ฐ์ดํฐ์ ๊ณต๊ฐ | HuggingFace์์ ๊ฐ๊ณต ํ ๋ฐ์ดํฐ ์ ์ฒด ๋ค์ด๋ก๋ ๊ฐ๋ฅ |
| ์ถ์ฒ ํ์ | ๋ชจ๋ ์๋ต์ NEC ์๋ณธ ์๋ณ์ ๋ถ์ฐฉ |
| ํ๊ฐ ์ฐจ๋จ | MCP ์๋ฒ instruction ์ผ๋ก ์ถ์ฒยท์ฐ์ด ํ๊ฐ ์์คํ ์ฐจ์ ์ฐจ๋จ |
| ๋ณ๊ฒฝ ์ด๋ ฅ | git + HF ์ปค๋ฐ ๋ก๊ทธ๋ก ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์์ ๊ฒ์ฆ ๊ฐ๋ฅ |
์์ฒด ํธ์คํ
git clone https://github.com/skymoonlee/electionmcp
cd electionmcp
cp env.example .env
# .env: NEC_API_KEY (data.go.kr), HF_TOKEN, HF_DATASET_REPO ์
๋ ฅ
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
# ๋ฐ์ดํฐ ์์ง (4๋จ๊ณ ํ์ดํ๋ผ์ธ, ๋จ๊ณ๋ณ resume ๊ฐ๋ฅ)
python -m pipeline.ingest stage 1 # ํ๋ณด์ ์ธ๋ฑ์ค
python -m pipeline.ingest stage 2 # ๊ณต์ฝ (5/16 ์ดํ ์ ํจ)
python -m pipeline.ingest stage 3 # ์ ๋ณด๊ณต๊ฐ PDF (5/16 ์ดํ ์ ํจ)
python -m pipeline.ingest stage 4 # Parquet export
# HuggingFace ์
๋ก๋
python -m pipeline.upload
# MCP ์๋ฒ (port 8780)
python -m mcp_server.server
Docker:
docker compose up -d mcp
docker compose --profile manual run --rm ingest
NEC OpenAPI ์ธ์ฆํค๋ ๊ณต๊ณต๋ฐ์ดํฐํฌํธ ํ์๊ฐ์ ํ ์๋์น์ธ์ผ๋ก ์ฆ์ ๋ฐ๊ธ(๋ฌด๋ฃ).
ํ๊ณ ๋ฐ ๋ฉด์ฑ
- ๋ณธ ์๋น์ค๋ ์ ๋ณด ์ ๊ณต ๋๊ตฌ์ด๋ฉฐ ํฌํ ์๋ดยท์ถ์ฒ์ด ์๋๋ค. ํ๋ณด ์ ํ์ ์ฑ ์์ ์ ์ ์ผ๋ก ์ ๊ถ์์๊ฒ ์๋ค.
- AI๋ฅผ ํตํ ์๋ต์ NEC ์๋ณธ ๋ฐ์ดํฐ์ ๊ธฐ๋ฐํ์ง๋ง ์์ฐ์ด ์์ฑ ๊ณผ์ ์์ ํํ์ ๋ถ์ ํ์ด ๋ฐ์ํ ์ ์๋ค. ์ค์ ์์ฌ๊ฒฐ์ ์ info.nec.go.kr ์๋ฌธ์ผ๋ก ์ฌํ์ธ์ ๊ถํ๋ค.
- 6์ 3์ผ ์ดํ NEC๊ฐ ์ ๋ณด๊ณต๊ฐ์๋ฃ๋ฅผ ๋น๊ณต๊ฐ ์ ํํ๋ฏ๋ก, ๋ณธ ์๋น์ค์ ์ ๋ณด๊ณต๊ฐ์๋ฃ ์๋ต๋ ๊ฐ์ ์์ ์ ์ค๋ ์ท ๋ชจ๋๋ก ์ ํ๋๋ค.
- ๋ณธ ์ ์ฅ์๋ ๊ณต์ง์ ๊ฑฐ๋ฒ ยง49์ ์ ๋ฒ ๋ชฉ์ (๊ตญ๋ฏผ์ ์๊ถ๋ฆฌยท์ ๊ฑฐ๊ถ ํ์ฌ ๋ณด์ฅ)์ ๋ถํฉํ๋ ์ฌ์ฉ์ ์ ์ ๋ก ํ๋ค.
๊ธฐ์ฌ
์ด์ ๋ฐ ํ ๋ฆฌํ์คํธ ํ์. ๋ฐ์ดํฐ ์ ์ ์์ฒญ์ NEC ์๋ณธ์ด ๋จผ์ ์์ ๋์ด์ผ ๋ฐ์ ๊ฐ๋ฅ.
๋ณธ ํ๋ก์ ํธ์ ์ ์ผํ ๋ชฉ์ ์ ์ ๊ถ์์ ์๊ถ๋ฆฌ์ ์ ๊ฑฐ๊ถ ํ์ฌ ๋ณด์ฅ์ด๋ค. (๊ณต์ง์ ๊ฑฐ๋ฒ ์ 49์กฐ)
