MCP server for Korean National Assembly Open API (open.assembly.go.kr) — bills, members, votes, committee composition, and per-member vote records
Project description
open-assembly-mcp
MCP server for the Korean National Assembly Open API (열린국회정보) — query bills, members, vote results, committee composition, and per-member vote records directly from Claude or any MCP-compatible AI client.
Quick Start
Step 1. Get a free API key at open.assembly.go.kr → Sign up → 마이페이지 → API 키 발급
Step 2. Run the setup wizard:
uvx open-assembly-mcp --setup
It prompts for your key, validates it, and writes the Claude Desktop config automatically.
Step 3. Restart Claude Desktop — the Assembly tools are ready.
Usage Examples
Once connected, ask Claude in natural language (Korean or English):
22대 국회에서 발의된 AI 관련 법률안을 찾아줘
반도체특별법의 표결 결과와 공동발의자 명단을 알려줘
Find all housing-related bills in the 22nd Assembly that passed,
and list their lead proposers with party affiliation.
Which members of the 법제사법위원회 proposed the most bills in the 22nd Assembly?
Did any 더불어민주당 members vote against 국민투표법 개정안?
Claude chains the tools automatically and returns a structured summary.
Available Tools
All tools return total_count and has_more for transparent pagination.
Coverage: 16th–22nd National Assembly (2000–present). Member-sponsored bills only.
| Tool | Description |
|---|---|
search_bills |
Search bills by assembly, keyword, proposer, committee, date range, or outcome |
get_bill_detail |
Full bill record including processing history and plenary result |
get_member_info |
Member profiles: party, district, committee, election type |
get_vote_results |
Plenary vote tallies per bill: yes / no / abstain counts |
get_member_votes |
Per-member roll-call records for a specific bill |
get_bill_proposers |
Lead and co-sponsor list for a bill |
get_bill_review |
Bill review timeline through committee and plenary stages |
get_committee_members |
Committee member roster |
Not available via Open API: transcripts, citizen petitions, bill full text
(use get_bill_detail → LINK_URL for the official bill page).
Updating
uvx caches packages locally. If you installed a previous version, force a reinstall to get the latest:
uvx --reinstall open-assembly-mcp --setup
To update the server used by Claude Desktop, edit your config and change the args line to pin the new version, or leave it as open-assembly-mcp@latest to always pull the latest on startup.
Manual Config (alternative to --setup)
Edit your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"open-assembly": {
"command": "uvx",
"args": ["open-assembly-mcp@latest"],
"env": {
"ASSEMBLY_API_KEY": "your-api-key-here"
}
}
}
}
Claude Code Setup
claude mcp add open-assembly \
--command uvx \
--args "open-assembly-mcp@latest" \
--env "ASSEMBLY_API_KEY=your-key-here"
Why this exists
The Korean National Assembly's 열린국회정보 API provides rich legislative data — every member-sponsored bill since 2000, full member rosters, plenary vote tallies, committee review timelines, and co-sponsor networks. The data is invaluable for political science research, but the traditional retrieval workflow is slow:
Traditional: search site manually → copy data → clean → load into Python/R
→ hours of overhead per research question
With MCP: ask Claude in one sentence → tools chain automatically → results in seconds
Concrete research use cases:
| Task | Tools used |
|---|---|
| Co-sponsorship network for a policy domain | search_bills + get_bill_proposers |
| Party-line discipline on a specific vote | get_member_votes (filter by party) |
| Full legislative career of a single member | search_bills (proposer filter) |
| Committee composition by party | get_committee_members |
| Bill timeline from filing to promulgation | get_bill_review + get_bill_detail |
| Cross-party voting coalitions | get_vote_results + get_member_votes |
Local Development
git clone https://github.com/kyusik-yang/open-assembly-mcp.git
cd open-assembly-mcp
cp .env.example .env # add ASSEMBLY_API_KEY=your-key
uv sync --group dev
uv run pytest tests/ -v
# Run the server locally
ASSEMBLY_API_KEY=your-key uv run python -m data_go_mcp.open_assembly.server
Changelog
v0.2.3 (2026-03)
--setupwizard: ANSI colors, box-drawing header, professional bilingual prompts
v0.2.2 (2026-03)
--setupwizard: bilingual prompts (EN/KR), academic contact info
v0.2.1 (2026-03)
- Added
--setupwizard: interactive installer that auto-configures Claude Desktop
v0.2.0 (2026-03)
- Added
get_member_votes— per-member roll-call records for any bill - All tools now return
total_countandhas_morefor transparent pagination - Added
propose_dt_from/propose_dt_todate filter tosearch_bills - Extended coverage to 16th and 17th Assemblies
v0.1.0 (2026-02)
- Initial release
License
Apache 2.0. See LICENSE.
This project was built following the architecture of Koomook/data-go-mcp-servers. The server structure, packaging conventions, and API client pattern are adapted from that project under the Apache 2.0 license.
Not affiliated with or endorsed by the Korean National Assembly or open.assembly.go.kr.
Built with Claude Code — because the best way to make an AI tool for querying a legislature is to have an AI write it.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file open_assembly_mcp-0.2.3.tar.gz.
File metadata
- Download URL: open_assembly_mcp-0.2.3.tar.gz
- Upload date:
- Size: 23.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46fe33cead6c529cdd2c747de66f7f181dabbd0a633307427d92c2208f98128c
|
|
| MD5 |
470dc29a6a02abab82b614678d8381d0
|
|
| BLAKE2b-256 |
2fb5b90c437a7255f5b9c4aac51591914689c43b36fc296c42190b83fc5104ca
|
File details
Details for the file open_assembly_mcp-0.2.3-py3-none-any.whl.
File metadata
- Download URL: open_assembly_mcp-0.2.3-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a12255c7809d108b26dd77db976241e16e0bf5451416cef2fcff198bc4d20e1f
|
|
| MD5 |
c2b60c264f5af3919b689d678fd78c0d
|
|
| BLAKE2b-256 |
dd4c0034307e9083350cf45940d4ba2a8ede45559aad63f6da0a92fcebc1484a
|