mcpField
A
Austrian Parliament (Nationalrat, Bundesrat)

Austrian Parliament (Nationalrat, Bundesrat)

本地服务
github.com法律与政务01 周前更新

关于 Austrian Parliament (Nationalrat, Bundesrat)

这是一个为 Austrian Parliament(Nationalrat 和 Bundesrat)提供数据的 MCP 服务,面向需要检索议员、议案和议会发言的研究者。它将发言、表决与官方来源链接结合,并提供可分页的单篇发言文本。

主要功能

  1. 01检索议员及个人履历
  2. 02查询议案、质询与委员会
  3. 03搜索并分页读取议会发言
  4. 04查看会议议程及表决结果
  5. 05提供研究提示词与来源链接

适用场景

  1. 01核实某位议员是否说过特定语句
  2. 02跟踪议案在委员会及两院的进展
  3. 03查询某次会议各党派的表决情况

MCP 相关

作为 MCP 服务,它向客户端提供检索议员、议案、会议、发言和表决的工具,以及用于研究任务的提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bernhardbrugger-parlament-at": {
"command": "npx",
"args": [
"-y",
"parlament-at-mcp"
]
}
}
}
启动命令npx -y parlament-at-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmparlament-at-mcp0.5.1

工具

12

收录的工具列表 · 更新于 2 周前

参数类型必填说明
klubstring否现任成员的党团/议会党团,例如 SPÖ、FPÖ、NEOS、GRÜNE
namestring否姓名或姓名片段;无需区分头衔、大小写和变音符号
limitinteger否Maximale Anzahl Treffer
offsetinteger否Treffer überspringen (für Seiten)
gremiumstring否Gremium-Kürzel, z. B. NR, BR, BuREG
kompaktboolean否Eine Zeile pro Treffer (Betreff gekürzt, Link bleibt) statt eines Blocks; spart Kontext bei langen Listen
funktionstring否Teil der Funktionsbezeichnung, z. B. "Bundesminister" oder "Klubobmann"
bundeslandstring否Bundesland eines aktuellen Mitglieds, z. B. Wien oder Oberösterreich
nur_aktuellboolean否Nur aktuelle Mitglieder von Nationalrat und Bundesrat

详细介绍

parlament-at-mcp

CI npm MCP Registry License: MIT Node >= 20

面向奥地利议会(国民议会和联邦议会)的 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——每个都会串联上述工具,完成一项研究任务。

真实输出(来自实时运行,并非模拟):

parl_beschluesse 输出:国民议会第 30 次会议

示例问题(开发期间均使用实时数据作答):

  • “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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。