关于 Austrian Parliament (Nationalrat, Bundesrat)
这是一个为 Austrian Parliament(Nationalrat 和 Bundesrat)提供数据的 MCP 服务,面向需要检索议员、议案和议会发言的研究者。它将发言、表决与官方来源链接结合,并提供可分页的单篇发言文本。
主要功能
- 01检索议员及个人履历
- 02查询议案、质询与委员会
- 03搜索并分页读取议会发言
- 04查看会议议程及表决结果
- 05提供研究提示词与来源链接
适用场景
- 01核实某位议员是否说过特定语句
- 02跟踪议案在委员会及两院的进展
- 03查询某次会议各党派的表决情况
MCP 相关
作为 MCP 服务,它向客户端提供检索议员、议案、会议、发言和表决的工具,以及用于研究任务的提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
12收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| klub | string | 否 | 现任成员的党团/议会党团,例如 SPÖ、FPÖ、NEOS、GRÜNE |
| name | string | 否 | 姓名或姓名片段;无需区分头衔、大小写和变音符号 |
| limit | integer | 否 | Maximale Anzahl Treffer |
| offset | integer | 否 | Treffer überspringen (für Seiten) |
| gremium | string | 否 | Gremium-Kürzel, z. B. NR, BR, BuREG |
| kompakt | boolean | 否 | Eine Zeile pro Treffer (Betreff gekürzt, Link bleibt) statt eines Blocks; spart Kontext bei langen Listen |
| funktion | string | 否 | Teil der Funktionsbezeichnung, z. B. "Bundesminister" oder "Klubobmann" |
| bundesland | string | 否 | Bundesland eines aktuellen Mitglieds, z. B. Wien oder Oberösterreich |
| nur_aktuell | boolean | 否 | Nur aktuelle Mitglieder von Nationalrat und Bundesrat |
详细介绍
parlament-at-mcp
面向奥地利议会(国民议会和联邦议会)的 MCP 服务。可向大模型询问议员席位、法案所在的委员会、提问与答复内容,以及政客实际说过的话——每条结果都附有官方来源链接。
状态:v0.5,测试版。 提供 12 个工具、6 个提示词,拥有 440 多项离线测试(行覆盖率 97 %,分支覆盖率 86 %),并已通过实时界面验证。此项目为非官方项目,与议会管理局无关联。
创建缘由
- 查询单篇演讲,而非 300,000 个字符的会议记录。 议会将每篇演讲单独发布为一个片段。
parl_sitzung会列出议程项目和_每位发言人_,parl_rede会以文本形式返回一篇演讲(可选包含插话),每段最多 45,000 个字符,并支持通过offset分页。 - 谁提问、谁回答、进展如何。 可查询询问及提问者所属党派、法案在委员会、国民议会和联邦议会中的审议流程、各党派投票结果,以及《联邦法律公报》链接。
- 了解_当前_在任者。 当前国民议会和联邦议会议员均标注了所属俱乐部、选区和州,并可按这些信息筛选;每人都有个人简介页面和所有全体会议演讲的列表。
- 专为大模型打造: 德语工具文本附带来源链接;列表工具提供
structuredContent和outputSchema;内置 6 个现成的研究提示词(包括事实核查工作流);输出长度受限。列表工具设置kompakt=true后,每条结果只占一行(基于包含 50 条结果的列表测算:文本减少 34-50 %,保留链接)。 - 如实说明接口未公开记录。 议会没有记录任何端点。本文档中的所有内容均经过实测,并记录在
DECISIONS.md中;实时金丝雀测试套件会在接口发生变化时发出提示。
工具
| 工具 | 功能 |
|---|---|
parl_abgeordnete | 按姓名、机构、职务查找人员;当前成员会标记出来,并可筛选(nur_aktuell、klub、bundesland) |
parl_person | 某人的履历和职务,包括日期、党团、职业经历和教育背景 |
parl_reden_person | 某人的所有全体会议发言,按时间从新到旧排列,并附会议和主题 |
parl_anfragen | 查询或答复,按时间从新到旧排列;可按机构、立法周期、搜索词筛选 |
parl_gegenstaende | 按周期和关键词列出法案(政府提案)、动议、公投、请愿、公民倡议和欧盟文件 |
parl_gegenstand | 单项议题的详细信息:提案人/答复人及其政党、程序、投票、《联邦法律公报》、PDF 和参考资料 |
parl_sitzungen | 列出国民议会和联邦议会的全体会议 |
parl_sitzung | 某次会议的概要:议程项目、时间和所有发言者;可按发言者或议程项目筛选 |
parl_rede | 一篇发言的文本,按可引用的片段呈现 |
parl_suche | 所有全体会议发言(以及新闻稿、议题)的全文搜索:精确短语、发言者、周期、日期范围;每条命中都会列出 parl_rede 的参数 |
parl_beschluesse | 某次会议按议程项目列出的决议,包括各政党的投票结果和后续步骤(例如联邦议会);新闻稿、议程链接 |
parl_ausschuesse | 某个周期的委员会;使用 suche= 还可搜索主席(及其政党)、任务、最新议程和分配的议题 |
提示词: faktencheck、rede_recherchieren、gesetz_verfolgen、anfragen_zum_thema、ausschuss_ueberblick、abgeordnete_profil——每个都会串联上述工具,完成一项研究任务。
真实输出(来自实时运行,并非模拟):
示例问题(开发期间均使用实时数据作答):
- “Herbert Kickl 在国民议会真的说过……吗?” →
parl_suche(modus="phrase",redner="Kickl")→ 使用段落编号调用parl_rede→ 调用parl_beschluesse查询投票结果(faktencheck提示词会执行这一调用链) - “Herbert Kickl 在第 XXVIII 届立法期第 30 次会议上,对预算配套法案说了什么?” →
parl_sitzung(redner="Kickl")→parl_rede - “国民议会在 2026 年 10 月 15 日通过了什么决议?各党派是如何投票的?” →
parl_beschluesse - “政府法案 251 d.B. 目前处于什么程序阶段?” → 按阶段查询程序,投票结果为 赞成:F、V、S、N、G;反对:-, 《联邦法律公报》I Nr. 86/2025
- “财政委员会主席是谁?议程上有哪些内容?” → 使用
suche="Finanzausschuss"调用parl_ausschuesse - “哪些来自维也纳的绿党议员在国民议会任职?” → 使用
klub、bundesland调用parl_abgeordnete - “有哪些关于警方保护的质询?是谁提出的?” →
parl_anfragen→parl_gegenstand
服务器返回的演讲内容(已缩短):
Herbert Kickl (FPÖ) · 11.12–11.32
30. Sitzung des Nationalrats der XXVIII. GP am 16. Juni 2025 · TOP 2-4 Debatte zum Budgetbegleitgesetz 2025
Quelle: https://www.parlament.gv.at/dokument/XXVIII/NRSITZ/30/A_-_11_12_46_00801352.html
45 Absätze, in eckigen Klammern nummeriert (mit Zwischenrufen gezählt); zum Zitieren die Nummer angeben, gezielt abrufbar mit absaetze="5-9".
[1] Abgeordneter Herbert Kickl (FPÖ): Danke schön, Herr Präsident! […] (Beifall bei der FPÖ. – Abg. Michael Hammer [ÖVP]: Na bravo!)
[Zeichen 1–857 von 21859; weiterlesen mit offset=857]
安装
需要 Node 20 或更高版本。无需 API 密钥或账户:该服务只与 www.parlament.gv.at 通信。该软件包发布在 npm 上,并列入官方 MCP 注册表,名称为 io.github.bernhardbrugger/parlament-at-mcp。
使用 npx(推荐)
每个客户端都使用相同的命令 npx -y parlament-at-mcp 启动服务;不同之处仅在于配置位置。更改配置后,请重启客户端。
Claude Desktop(设置 → 开发者 → 编辑配置;Windows 上为 %APPDATA%\Claude\claude_desktop_config.json,macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json)
{ "mcpServers": { "parlament-at": { "command": "npx", "args": ["-y", "parlament-at-mcp"] } } }
Claude Code
claude mcp add parlament-at -- npx -y parlament-at-mcp
VS Code(GitHub Copilot):项目中的 .vscode/mcp.json
{ "servers": { "parlament-at": { "type": "stdio", "command": "npx", "args": ["-y", "parlament-at-mcp"] } } }
Cursor:项目中的 .cursor/mcp.json,或供所有项目使用的 ~/.cursor/mcp.json
{ "mcpServers": { "parlament-at": { "command": "npx", "args": ["-y", "parlament-at-mcp"] } } }
Windsurf:~/.codeium/windsurf/mcp_config.json
{ "mcpServers": { "parlament-at": { "command": "npx", "args": ["-y", "parlament-at-mcp"] } } }
任何其他支持 stdio 的 MCP 客户端:运行 npx -y parlament-at-mcp。
**Windows:**如果客户端找不到
npx,请改为通过 shell 启动:“"command": "cmd", "args": ["/c", "npx", "-y", "parlament-at-mcp"]”(此方式已测试)。**测试情况:**已测试
npx命令本身(在 Windows 上从打包归档安装,直接启动及通过cmd /c启动,并执行实时搜索),也已使用本地构建版本测试 Claude Desktop 和 Claude Code。VS Code、Cursor 和 Windsurf 的配置片段遵循这些程序文档中说明的配置格式,但尚未实际试用;如果其中某个配置无法运行,请提交 issue。
可以试着提问:“国民议会最近通过了哪些政府法案?各党派是如何投票的?”或“国民议会有人说过‘我说的是国事访问’这句话吗?是谁、何时、在哪次会议上说的?请引用并注明段落编号。”
从源代码安装(开发)
git clone https://github.com/bernhardbrugger/parlament-at-mcp.git
cd parlament-at-mcp
npm install && npm run build
然后将客户端指向构建后的文件,而不是 npx。例如,Claude Desktop 的配置为 { "mcpServers": { "parlament-at": { "command": "node", "args": ["/absolute/path/to/parlament-at-mcp/dist/index.js"] } } }(Windows 上需使用双反斜杠:"C:\\Users\\you\\parlament-at-mcp\\dist\\index.js")。重新构建后,请重启客户端:客户端会继续运行启动时使用的版本。
远程(Streamable HTTP,无状态)
PORT=3000 npm run start:http # POST http://127.0.0.1:3000/mcp, health: GET /healthz
HTTP 模式已经过测试(包括进程内测试,以及通过 curl 测试构建后的服务)。**Docker 仍处于实验阶段:**仓库中包含一个 Dockerfile,但从未构建或运行过,因此请将其视为起始版本,并欢迎报告问题。
HTTP 模式没有身份验证和速率限制。对外开放前,请在其前方设置带有 TLS、身份验证和速率限制的反向代理;请参阅 SECURITY.md。
限制、数据和许可
- 来源:奥地利议会的开放数据,采用 CC BY 4.0 许可。署名:Quelle: Parlamentsdirektion。请参阅议会的开放数据页面。
- 此接口是网站自有的 JSON API。它没有正式文档,且可能随时变更。本服务会在
DECISIONS.md中记录实际测得的信息。 - 较新的速记记录在议会的 AI 辅助下制作,随后由议会编辑(本服务会注明这一点)。自 1945 年起的个人简介基于议员本人的陈述。
- 未指定立法届期的计数会被接口限制在约 20,000 条。
parl_gegenstaende搜索法案的_官方关键词_;要搜索全文,请使用parl_suche。parl_suche只能查到某件事是否被提及,不能判断其是否属实:事实核查需要第二个来源,而且redner筛选器只会检查搜索结果的前 300 条。 - 客户端会在请求之间等待一秒,并缓存大型列表(人员 6 h、现任议员 1 h、会议 10 min)。
- 搜索结果为官方信息,不构成法律或政治建议。仅包含议会公布的公职人员和官员;不对私人个体进行画像。
开发
npm run check # typecheck + lint + format check + offline tests
npm run test:coverage # coverage report
npm run build && npm run smoke:live # every tool once against the real interface
npm run test:integration # live canary: do all lists and pages still have the expected shape?
有关工作规则(先测量、根据真实响应进行测试、检查线上情况),请参阅 CONTRIBUTING.md;有关设计说明和范围,请参阅 SPEC.md。
许可证
MIT - 请参阅 LICENSE。数据:CC BY 4.0,Parlamentsdirektion。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。