内容
# 韩国国会法案与辩论 MCP
> **将分散的国会记录,通过法案连接起来。**
>
> 从法案内容和处理状态到委员会会议记录、专业委员审查报告、议员和政府的实际发言,通过一个调查流程来确认。
`v0.7.0` · 以韩语为中心 · 用户的国会开放 API 密钥 · 实时查询 · Apache-2.0
[English](README.en.md) · [MCP 连接](docs/mcp-clients.md) ·
[数据来源](docs/data-sources.md) · [架构](docs/architecture.md)

## 国会信息是公开的,但答案是分散的
议案页面有处理状态,委员会页面有会议信息,实际争议在 PDF 会议记录和审查报告中。议员的提问和政府的回答是分开的,处理同一问题的多个法案像独立的文件一样。
韩国国会法案与辩论 MCP 将这些记录通过 **法案-审查-人物-发言-回答-依据** 的关系连接起来。用户可以通过自然语言提问,并获得官方原文的调查结果。
### 一个问题,回答国会调查的四个轴
- **目前进展到哪一步** — 最新议案状态和委员会、小组委员会审查阶段
- **为什么停滞以及争议点是什么** — 小组委员会会议记录和专业委员审查报告
- **谁说了什么** — 议员、政府的实际发言和前后的提问、回答
- **依据是什么** — 官方议案、会议记录 URL 和原文位置
## 为在国会内外进行立法、应对和研究的人员服务
同样的国会记录,根据工作不同,所需答案也不同。这个 MCP 可以让 **制定、应对、研究立法** 的人员从各自的问题直接连接到官方依据。
| 用户 | 需要的判断 | 直接连接的依据 |
|---|---|---|
| 国会工作人员、助理 | 审查准备、争议点整理、提问撰写 | 类似议案、小组委员会会议记录、审查报告、部门回答 |
| 企业政策、法律、政府事务团队 | 监管方向和业务影响、应对时机 | 最新状态、议员问题意识、政府接受度、执行争议点 |
| 公共机构、协会 | 负责法案应对和官方意见准备 | 相关议案、委员会讨论、利益相关者发言、原文引用 |
| 民间团体 | 立法监督、意见书、评论、活动 | 条款争议点、赞反发言、审查过程、官方会议记录 |
| 记者 | 发言验证、争议点时间轴、事实核查 | 实际发言、前后语境、日期事件、来源位置 |
| 研究人员 | 政策变化和论述的长期比较分析 | 结构化的法案、会议、发言关系和可重复的引用 |
## 实际上,可以这样提问
```text
[立法审查] “这个法案和相同宗旨的议案、小组委员会争议点、专业委员审查和部门回答的整理给我”
[企业应对] “平台劳动监管法案进展到哪一步,对企业有什么影响?”
[公民社会] “被害者保护条款在审查过程中如何变化,谁提出了什么意见?”
[新闻采访] “补充调查权废除的相反发言,通过前后语境和官方原文比较给我”
[研究] “人工智能政策相关法案和委员会讨论按时间顺序连接,找出重复的争议点”
[议案追踪] “2219564 号议案的最新处理状态和连接的会议记录、审查资料原文给我”
```
## 不是返回搜索结果,而是返回调查流程
MCP 在提问时查询国会开放 API。根据相关议案和处理状态找到主管部门和时间点,下载必要的官方会议记录,恢复发言者、提问、回答和后续提问。
```text
自然语言提问
→ 官方议案、处理状态实时查询
→ 相关专业委员审查报告确认、搜索
→ 相关委员会、本会议、小组委员会候选探索
→ 必要会议记录下载、解析
→ 法案-会议-人物-发言-回答连接
→ 官方议案、会议记录 URL 和原文位置返回
```
## 有国会经验的人在处理状态后查看的内容
有国会经验的人在查看法案的下一个流程时,不会停留在 `处理状态`。他们还会查看实际谈判记录的 **小组委员会会议记录** 和结构化审查争议点的 **专业委员审查报告**。
### 1. 小组委员会会议记录 — 实际在哪里受阻
- 条款的赞反、修正案和替代案
- 负责部门的回答和接受度
- 延期、继续审查、替代方案的谈判背景
### 2. 专业委员审查报告 — 什么是审查争议点
- 法律体系的整合性和与其他法律的冲突
- 执行可能性、成本、预期的副作用
- 委员会审查的核心争议点和修改必要事项
这个 MCP 不会随意决定法案的未来。相反,它通过连接议案状态、小组委员会会议记录、专业委员审查报告、议员和政府的发言,为判断未来流程提供官方原文依据。
审查报告不会事先大量收集。当用户提问相关法案时,从官方议案信息系统中确认报告 PDF,下载必要的文件进行搜索。本地安装会将这些文件保存在个人缓存中,以避免重复下载。
## 有什么不同
- **实时优先** — 不仅依赖准备好的过去快照,还会在提问时再次确认官方议案、状态 API。
- **搜索文档的关系** — 连接法案、会议、人物、发言、提问和回答,以恢复相同争议的流程。
- **不剪切发言** — 不只显示一句话,还提供前面的提问、政府回答、后续提问。
- **可验证的结果** — 所有引用都附上官方 URL 和原文位置,让用户可以直接重新确认。
- **用户控制的数据** — 不共享运营者的公用密钥,而是使用各自的国会开放 API 密钥。本地安装使用个人缓存,网络连接不存储原文密钥,而是使用个人令牌。
## 3 分钟即可连接可使用的 AI
这个 MCP 不需要学习单独的程序。连接后,在使用的 AI 上像平常一样提问,工具就会找到所需的官方国会记录。
### 方法 1: 在 Claude.ai、ChatGPT 网页上直接使用 — 无需安装
首先,从 [国会开放 API](https://open.assembly.go.kr/portal/openapi/openApiNaListPage.do) 获取自己的密钥,并打开 **https://korean-bill-debate-mcp.vercel.app**。
1. 输入自己的国会开放 API 密钥。
2. 点击 **创建个人 MCP 链接**。
3. 复制完成的 `https://.../mcp?token=...` 地址。
4. 在使用的网络应用的自定义 MCP 服务器 URL 中粘贴。
#### Claude.ai
1. 进入 **设置 → 连接器 → 添加自定义连接器**。
2. 名称为 `韩国国会法案与辩论`,URL 为获得的个人 MCP 链接。
3. 在聊天中通过 `+ → 连接器` 激活。
#### ChatGPT
1. 在 **设置 → 应用 → 高级设置** 中激活开发者模式。
2. 选择 **创建应用**。
3. 名称为 `韩国国会法案与辩论`,服务器 URL 为获得的个人 MCP 链接。
4. 连接创建的应用,在聊天中通过 `+` 菜单选择。
> 没有密钥的 `/mcp` 地址无法连接。请务必使用通过连接页面用自己的密钥创建的 **个人 MCP 链接**。密钥原文不会存储在服务器的数据库或文件中,但获得的链接可以使用用户的 API 配额,因此请像密码一样保管。
### 方法 2: 在 Claude Desktop、Claude Code、Codex、Gemini CLI 上本地安装
1. 获取 [国会开放 API 密钥](https://open.assembly.go.kr/portal/openapi/openApiNaListPage.do) 并安装 `uv` 和 Poppler:macOS `brew install uv poppler`
2. 安装发行版。
```bash
uv tool install git+https://github.com/epoko77-ai/korean-bill-debate-mcp.git@v0.7.0
```
3. 选择并执行一个应用程序。
```bash
kbd setup --client claude-desktop
kbd setup --client claude-code
kbd setup --client codex
kbd setup --client gemini
```
4. 重新打开应用程序并提问。
```text
2219564 号议案的内容、最新处理状态、小组委员会会议记录、
专业委员审查报告和相关议员、政府发言的官方原文。
```
详细路径和手动设置请参考 **[MCP 连接指南](docs/mcp-clients.md)**。
## MCP 工具
| 工具 | 实时调查内容 |
|---|---|
| `explore_issue` | 从争议点一次性调查法案、状态、审查报告、会议、发言、前后语境 |
| `search_bills` | 搜索法案后连接专业委员审查报告的相关部分和官方原文 |
| `get_bill_status` | 重新确认官方处理状态并连接该法案的审查报告文档 |
| `search_speeches` | 探索相关会议、收集必要的会议记录并搜索发言 |
| `get_speech` | 确认缓存的发言原文和官方来源 |
| `get_speech_context` | 恢复发言的前后提问、回答、后续提问 |
| `list_committees` | 从官方会议元数据中确认委员会 |
| `list_meetings` | 按日期、委员会、会议类型探索官方会议 |
## 缓存是辅助手段
不分发整个国会数据库或预先准备的搜索索引。本地安装的 `SQLite` 缓存重用用户已经查询的 API 响应、会议记录、结构化发言,以加速重复请求。网络连接的缓存仅使用服务器实例的临时空间,不存储用户 API 密钥原文。
- 新的提问会从官方 API 重新探索候选项。
- 法案处理状态优先使用官方状态 API。
- API 缓存默认 15 分钟后过期。
- 会议记录原文与 SHA-256 一起保存。
- 本地缓存默认位置为 `~/.local/share/korean-bill-debate-mcp`。
- 可以使用 `KBD_DATA_DIR` 修改位置。
## 开发
```bash
uv sync --extra dev
ASSEMBLY_OPEN_API_KEY=自己的密钥 uv run kbd research "检察补充调查权废除"
uv run pytest
uv run ruff check .
uv run mypy src
```
fixture 测试在没有 API 密钥的情况下运行。实际 API 烟雾测试使用存储库 Secret 或开发者的环境变量,不输出密钥。
## 范围和验证原则
这个项目是搜索和连接官方依据的调查工具。不任意推测议员的赞反立场,提供实际发言和前后语境。所有引用都可以通过 `citation.official_url` 和 `source_locator` 确认原文。
国会开放 API 不提供自由语搜索整个会议记录,而是先缩小相关法案、委员会、时间范围,然后动态分析有限数量的会议记录。第一次查询可能由于 PDF 下载和解析而较慢,之后相同资料会重用本地缓存。