关于 UK Parliament - Open Data - Model Context Protocol Server
这是一个用于通过官方 API 查询英国议会数据的旧版 .NET MCP 服务,面向使用 MCP 助手进行议会研究的场景。它覆盖议员、法案、投票和 Hansard 等内容,并提供来源 URL;后续开发已转至继任仓库。
主要功能
- 01查询议员与选区
- 02检索法案、投票和委员会
- 03查询 Hansard 与议会活动
- 04提供官方 API 来源 URL
适用场景
- 01查看议员简介或投票记录
- 02查找法案阶段与修正案
- 03检索委员会会议和证据
MCP 相关
它将英国议会开放数据 API 封装为 stdio MCP 工具,供 GitHub Copilot、Claude Desktop 等客户端调用,并可返回所用 API URL 作为来源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🇬🇧 英国议会 AI 助手
将任何支持 MCP 的 AI 转变为实时议会研究台。
询问议员、贵族院议员、法案、投票、委员会、Hansard 等信息——答案来自议会官方 API,并且每次都会注明来源。
快速开始 · 可以询问什么 · 设置 · 提示词示例 · 后续项目
重要
活跃开发已转移。 本仓库是最初的 .NET MCP 实验项目。
目前持续维护的项目——拥有完整的 CLI、更丰富的工具和持续修复——位于:
👉 ChrisBrooksbank/uk-parliament-data-mcp
| 功能 | 本仓库(旧实验项目) | 后续项目 |
|---|---|---|
| 面向 AI 助手的 MCP 服务 | ✅ .NET | ✅ Python(持续维护) |
| 命令行界面(CLI) | ❌ 此处没有 | ✅ 有——CLI 仅在新仓库中提供 |
| AIS / 零安装选项 | 有限 | ✅ 更多选择 |
| 持续增强与修复 | 已归档 / 活跃度低 | ✅ 活跃 |
如果你想获得当下的最佳体验(尤其是终端工作流),请从后续仓库开始。
🎬 实际演示
AI 助手中的 MCP
注意: Claude Code 和 MCP 服务未经授权,不得在议会电脑上使用。此演示录制于非议会电脑上。
用自然语言提问;助手通过 MCP 调用议会 API,并返回附有来源的答案。
MCP 会话——实时工具、实时数据,并附有来源 URL。
后续项目中的 CLI
更喜欢使用终端?CLI 仅在新仓库中提供——此实验项目中没有。
uk-parliament-data-mcp 的 CLI 演示——请在那里安装并运行。
✨ 项目缘起
议会数据是公开的——但分散在许多 API 中。本项目将这些端点封装为 MCP 工具,让 GitHub Copilot、Claude Desktop 等助手以及其他 MCP 客户端能够:
| 优势 | 含义 |
|---|---|
| 🎯 基于事实的回答 | 回答取自 parliament.uk 官方 API,而非仅凭模型记忆 |
| 🔗 来源透明 | 每个有用的回答都可以列出所用的 API URL |
| ⚡ 覆盖广泛 | 议员、法案、投票、委员会、Hansard、质询、日历、法定文书、条约、利益申报…… |
| 🧩 适用于支持 MCP 的环境 | VS Code Copilot Chat(Agent 模式)、Claude Desktop 和其他 MCP 宿主 |
免责声明: 非官方独立项目。并非由英国议会创建、认可或支持。数据来自公开的议会开发者 API。
🚀 快速开始
1. 前置条件
- .NET SDK 9+
- Git
- 一个 MCP 主机:VS Code(Copilot Chat)和/或 Claude Desktop
2. 克隆
git clone https://github.com/chrisbrooksbank-parliament/opendata-mcp-lab.git
cd opendata-mcp-lab
3. 将 MCP 主机指向服务
VS Code — 命令面板 → MCP: Add Server → Command (stdio):
dotnet run --project C:\code\opendata-mcp-lab\OpenData.Mcp.Server\OpenData.Mcp.Server.csproj
(请调整为你的克隆目录路径。)
Claude Desktop — 编辑 claude_desktop_config.json(UTF-8),然后完全重启 Claude:
{
"mcpServers": {
"opendata-server": {
"command": "dotnet",
"args": [
"run",
"--project",
"C:\\code\\opendata-mcp-lab\\OpenData.Mcp.Server\\OpenData.Mcp.Server.csproj"
]
}
}
}
4. 正确开始会话
为获得最佳效果,请始终以会话提示词开头(或说 "Hello Parliament")。
📋 必需的系统提示词(点击展开)
You are a helpful assistant that answers questions using only data from UK Parliament MCP servers.
When the session begins, introduce yourself with a brief message such as:
"Hello! I’m a parliamentary data assistant. I can help answer questions using official data from the UK Parliament MCP APIs. Just ask me something, and I’ll fetch what I can — and I’ll always show you which sources I used."
When responding to user queries, you must:
Only retrieve and use data from the MCP API endpoints this server provides.
Avoid using any external sources or inferred knowledge.
After every response, append a list of all MCP API URLs used to generate the answer.
If no relevant data is available via the MCP API, state that clearly and do not attempt to fabricate a response.
Convert raw data into human-readable summaries while preserving accuracy, but always list the raw URLs used.
如需断开连接但保留聊天上下文,请说:"Goodbye Parliament"。或者直接开始新聊天。
试试:
What is happening now in the House of Commons?
🗺 可以询问的内容
| 领域 | 问题示例 |
|---|---|
| 🔴 实时动态 | 下议院现在发生了什么?上议院现在有什么议程? |
| 👥 议员 | … 选区的议员是谁?利益事项、生平、投票记录、发言 |
| 📜 法案与立法 | 法案的详情、阶段、修正案、出版物和新闻 |
| 🗳 投票与表决 | 按主题、议员或表决 ID 查询下议院/上议院表决 |
| 🏛 委员会 | 成员构成、会议、书面/口头证据、出版物 |
| 📖 Hansard 与议事程序 | 辩论、Erskine May、口头质询、日历/非开会日 |
| 📍 选区 | 搜索选区、选举结果 |
| 📄 官方文件 | 法定文书、条约、法案 |
| 💎 透明度 | 利益登记册及类别 |
🛠 设置
VS Code + Copilot Chat
Ctrl+Shift+P→ MCP: Add Server → Command: Stdio- 输入上文的
dotnet run --project …命令 - MCP: List Servers → 启动服务
- 打开 Copilot Chat → Agent 模式 → 启用此服务的工具
- 粘贴系统提示词(或输入 Hello Parliament),然后提问
- 根据提示批准工具/权限请求
Claude Desktop
- Settings → Developer → Edit Config
- 添加快速入门中所示的
mcpServers配置块 - 保存为 UTF-8,完全退出 Claude,然后重新启动
- 在 Developer 下确认服务正在运行,然后使用系统提示词进行测试
可选:仓库 .mcp.json
此克隆包含一个示例 .mcp.json,指向已构建的服务二进制文件。除非你已构建 OpenData.Mcp.Server,否则建议使用 dotnet run --project …。
💡 提示词技巧
| 技巧 | 用处 |
|---|---|
| ✅ 以系统提示词 / Hello Parliament 开头 | 确保回答基于 MCP 数据,并要求提供来源 URL |
🆕 卡住时新建聊天(+) | 清除循环和过时的上下文 |
| 🔗 “Show me the API URL you just used.” | 重新显示引用,便于核实 |
| 🧠 跨院问题 | 例如:“切姆斯福德在下议院或上议院中被提到过吗?” |
| 🧾 “Show me the JSON from the last MCP call.” | 调试原始负载 |
预期的引用格式示例:
https://members-api.parliament.uk/api/Members/Search?Name=…
💬 提示词示例
实时动态
- 现在两院都在发生什么?
- 下议院 / 上议院目前在进行什么?
议员
- 向我展示基尔·斯塔默爵士的利益事项
- 鲍里斯·约翰逊是谁?/ 1471 号议员是谁?
- 查询某个议员 ID 的生平、联系方式、利益事项、发言和投票记录
- 查询 172 号议员的肖像 / 缩略图
法案
- 最近有关渔业 / 环境的法案
- 查询 425 号法案的详情、阶段、修正案、出版物和新闻
- 法案类型、阶段目录、RSS 订阅源
投票
- 搜索包含“refugee” / “climate” / “brexit”的下议院表决
- 按 ID 查询下议院或上议院表决;按党派分组查看结果
委员会
- 有关女性议题 / 医疗保健的委员会
- 查询某个委员会 ID 的会议、成员、书面及口头证据
程序、议事录、日历
- 搜索《埃斯金·梅》中的权杖
- 口头质询时段;按主题和日期范围搜索议事录
- 政党、部门、答复机构
- 下议院日历;非开会日
地点、文件、透明度
- 名称包含“london”的选区;按选区 ID 查询选举结果
- 关于港口的法定文书;提及道路的法案;涉及西班牙的条约
- 利益类别和已公布的登记册
高级用户
- 显示这条粘贴的 API 结果中的全部数据:
{…} - 显示上一次 MCP 调用的 JSON / API URL
- 环境部成员 172 提交的法案
- 两个日期之间关于气候变化的委员会会议
🏗 此仓库包含的内容
opendata-mcp-lab/
├── OpenData.Mcp.Server/ # .NET MCP server (stdio tools)
│ ├── Tools/ # Members, Bills, Votes, Hansard, …
│ └── Context/ # API shape notes for tools
├── context/ # Shared API context for LLMs
├── mcp-demo.gif # MCP assistant demo
├── cli-demo.gif # CLI demo (successor project only)
└── README.md
技术栈: .NET 9 · MCP stdio 传输 · 官方议会 HTTP API
**此处不包含:**完整的 CLI、PyPI 打包,以及较新的宿主集成——这些仅在
uk-parliament-data-mcp 中提供。
📌 开发工作已转移
| 此仓库 | 历史 .NET 实验项目 / 参考 MCP 服务 |
| 新开发请前往 | github.com/ChrisBrooksbank/uk-parliament-data-mcp |
| CLI | 仅在后继仓库中提供 |
| 软件包 | PyPI:uk-parliament-mcp(后继项目) |
针对这个实验项目提交的问题和 PR,仍可能对 .NET 相关说明有所帮助,但新功能的主要开发已转至新项目。
🤝 贡献与反馈
欢迎提出想法、纠正内容和 API 覆盖建议。对于积极维护的项目(包括 CLI),请在后继仓库中提交问题或 PR。
为好奇、监督和更完善的议会质询而构建——由公开开放数据提供支持。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。