返回市场
开放数据-MCP实验室

开放数据-MCP实验室

作者:chrisbrooksbank-parliament4 星标更新:2025-09-18

项目介绍

英国议会AI助手

该项目帮助像Microsoft Copilot这样的AI助手使用来自英国议会的全面官方数据来回答问题。它充当桥梁,使AI能够直接从源头获取最新、可靠的信息,涵盖议员、法案、投票记录、委员会、辩论、程序等。

🔥 必要条件:系统提示(最佳结果所需!)

重要:在开始新对话时,您必须使用起始系统提示。这对于准确响应至关重要。

最简单的方法是在所有新的对话中以“你好,议会”作为开头。

或者您可以复制并粘贴以下内容:

您是一个使用仅来自英国议会MCP服务器的数据来回答问题的帮助助手。

当会话开始时,请用简短的消息介绍自己,例如:

“你好!我是议会数据助手。我可以使用来自英国议会MCP API的官方数据来帮助回答问题。只需问我一些问题,我会尽力提供答案——并且我总是会显示我使用的来源。”

在回应用户查询时,您必须:

仅检索并使用此服务器提供的MCP API端点中的数据。

避免使用任何外部来源或推断的知识。

在每次响应后,附上生成答案所使用的所有MCP API URL列表。

如果通过MCP API无法获得相关数据,请明确说明,并不要尝试编造答案。

将原始数据转换为人类可读的摘要,同时保持准确性,但始终列出使用的原始URL。

我可以问什么?

您可以询问关于英国议会数据几乎所有方面的信息。这里是一些关键领域:

  • 实时议会活动:“现在下议院发生了什么?” 或 “现在上议院正在讨论什么?”
  • 议员:“告诉我关于鲍里斯·约翰逊的一切”,“基尔·斯塔默爵士的注册利益是什么?” 或 “展示成员4129的投票记录”
  • 法案与立法:“展示法案425的详细信息”,“对法案425提出了哪些修正案?” 或 “环境法案有哪些出版物?”
  • 投票记录:“议员们如何投票支持气候变化动议?” 或 “展示上议院关于医疗保健政策的投票”
  • 委员会与调查:“哪些委员会正在调查经济问题?” 或 “展示提交给财政部委员会的证据”
  • 议会程序:“搜索Erskine May中关于议长裁决的引用” 或 “本周的口头提问时间是什么时候?”
  • 选区与选举:“展示伯明翰选区的选举结果” 或 “列出苏格兰的所有选区”
  • 官方文件:“有关住房的法定工具书有哪些?” 或 “涉及贸易协定的条约有哪些?”
  • 透明度数据:“展示财政部部长的利益登记册” 或 “声明利益类别是什么?”

断开与议会的连接

开始新的聊天会话,或为了保持上下文但断开与议会MCP服务器的连接,提示:“再见,议会”

它是如何工作的?

当您向连接到此工具的AI助手提问时,它不会只是猜测答案。相反,助手使用此项目查询官方英国议会数据库,并根据找到的数据提供响应。

这意味着您得到的答案更有可能是准确且基于事实的。


安装和使用指南

本项目使用模型上下文协议(MCP),使大型语言模型(LLMs/AIs)能够访问公共英国议会数据。

它使AI工具(如Microsoft Copilot)能够回答关于英国议会数据的问题,前提是它们支持MCP协议。

✅ 本项目提供了全面覆盖的英国议会数据,包括成员、法案、修正案、投票记录、委员会、辩论、程序、选区和官方文件。 正在持续添加额外的数据源和端点。

由于涉及到AI,某些响应可能不准确。请参阅下面的“提示技巧”以提高可靠性。

安装及设置

本节解释如何配置Visual Studio Code中的Microsoft Copilot,以便通过MCP服务器查询英国议会数据。

先决条件

确保已安装以下内容:

克隆并打开项目

git clone https://github.com/chrisbrooksbank-parliament/opendata-mcp-lab.git
cd opendata-mcp-lab

或者手动下载并在VS Code中打开文件夹。

在Claude桌面应用程序中添加MCP服务器

  • 打开claude桌面应用程序
  • 点击设置
  • 点击开发者标签
  • 点击编辑配置
  • 编辑文件并保存为UTF-8编码
  • 退出claude(如有需要,使用TaskMon),然后重新启动
  • 再次打开开发者标签并检查是否运行正常
  • 输入系统提示并测试其工作情况

示例claude_desktop_config.json文件内容:

{
  "mcpServers": {
    "opendata-server": {
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "C:\\code\\opendata-mcp-lab\\OpenData.Mcp.Server\\OpenData.Mcp.Server.csproj"
      ]
    }
  }
}

在VS Code中添加MCP服务器

  1. Ctrl+Shift+P 打开命令面板。
  2. 选择 MCP: 添加服务器
  3. 选择 命令:标准输入输出
  4. 输入以下命令(如有必要调整路径):
dotnet run --project C:\code\opendata-mcp-lab\OpenData.Mcp.Server\OpenData.Mcp.Server.csproj
  1. Enter

启动服务器

  1. 再次按 Ctrl+Shift+P
  2. 选择 MCP: 列出服务器
  3. 点击您刚刚添加的服务器并选择 启动服务器

第一次交互

  1. 在VS Code中打开 Copilot Chat
  2. 使用左下角的下拉菜单设置 代理模式
  3. 选择您偏好的模型,例如Claude Sonnet 4。
  4. 点击 配置工具,并从新添加的MCP服务器中选择所有工具。
  5. (输入系统提示后)尝试如下提示:
现在下议院发生了什么?
  1. 接受任何权限请求以允许MCP调用。

提示技巧

✅ 系统提示

始终以本指南顶部定义的系统提示开始您的会话。这是确保AI助手保持正轨、仅使用提供的数据并正确引用其来源的关键步骤。

🔄 清晰上下文

如果:

  • AI似乎陷入循环
  • 您想要重置对话上下文

使用 + 图标(新建聊天)。

🔗 重新显示API URL

虽然AI被指示自动列出源URL,但您可以在任何时候要求再次显示它们。这在故障排除或您只是想重新确认上次响应的来源时非常有用。

您可以询问:

显示您刚才使用的API URL。

示例响应:

刚才用于检索鲍里斯·约翰逊信息的API URL是: https://members-api.parliament.uk/api/Members/Search?Name=Boris%20Johnson

🧠 结合多个来源的数据

示例:

切尔姆斯福德在下议院或上议院中被提及了吗?

AI可能会:

  • 查询下议院和上议院Hansard
  • 组合结果
  • 如果请求提供更多细节

🧾 查看原始JSON

为了调试或检查原始数据结构,您可以要求助手显示其最后一次API调用返回的完整JSON响应。这对于希望了解AI在总结之前确切处理了哪些信息的开发人员特别有用。

示例提示:

显示最后一次MCP调用返回的JSON。

示例提示

🏛️ 实时议会活动

  • 下议院和上议院现在发生了什么?
  • 下议院现在发生了什么?
  • 上议院现在发生了什么?

👥 议员

  • 展示基尔·斯塔默爵士的兴趣
  • 鲍里斯·约翰逊是谁?
  • 成员ID 1471是谁?
  • 获取成员172的传记
  • 展示成员4129的联系详情
  • 成员3743的注册兴趣是什么?
  • 展示成员172的最近贡献
  • 成员4129的下议院投票记录是什么?
  • 成员3743的上议院投票记录是什么?
  • 展示成员1471的专业经验
  • 成员172专注于哪些政策领域?
  • 展示成员1471提交的早期动议
  • 获取成员4129的选区选举结果
  • 展示成员172的肖像和缩略图图像

📜 法案与立法

  • 最近有哪些关于捕鱼的法案?
  • 哪些法案最近进行了更新?
  • 展示法案425的详细信息
  • 法案425经过了哪些阶段?
  • 对法案425第15阶段提出的修正案是什么?
  • 展示法案425第115阶段的修正案1234
  • 法案425有哪些出版物?
  • 关于法案425有哪些新闻文章?
  • 展示所有可用的法案类型
  • 法案可以经历的不同阶段是什么?
  • 搜索包含单词“环境”的法案
  • 获取所有法案的RSS订阅
  • 获取仅公共法案的RSS订阅
  • 获取法案425的RSS订阅

🗳️ 投票与分歧

  • 搜索下议院分歧中的关键词“难民”
  • 展示下议院分歧1234的详细信息
  • 展示上议院分歧5678的详细信息
  • 按政党分组搜索关键词“气候”的下议院分歧
  • 按政党分组搜索成员3743的上议院分歧
  • 匹配搜索词“脱欧”的分歧有多少?

🏢 委员会与调查

  • 哪些委员会专注于女性问题?
  • 列出2024年11月安排的委员会会议
  • 展示委员会789的详细信息
  • 委员会789举办了哪些事件?
  • 委员会789的成员是谁?
  • 搜索关于医疗保健的委员会出版物
  • 展示提交给委员会789的书面证据
  • 展示委员会789听证会上的口头证据
  • 所有委员会类型是什么?

🏛️ 议会程序

  • 搜索Erskine May中关于权杖的引用
  • 展示2024年11月提出的问题的口头提问时间
  • 搜索2024年11月关于脱欧的Hansard贡献
  • 存在哪些政府部门?
  • 议会中的回答机构是什么?
  • 下议院有哪些政党代表?
  • 上议院有哪些政党代表?
  • 展示2024年12月下议院的日历事件
  • 2025年1月议会何时休会?

📍 选区与选举

  • 列出所有英国选区
  • 展示选区4359的选举结果
  • 搜索包含“伦敦”的选区

💰 透明度与利益

  • 列出所有成员利益类别
  • 获取已发布的利益登记册
  • 展示上议院成员的工作人员利益
  • 搜索成员1471的利益登记册

📋 官方文件与出版物

  • 是否有任何关于港口的法定工具书?
  • 搜索提到道路的议会法案
  • 涉及西班牙的条约有哪些?
  • 可用于法案的出版物类型有哪些?
  • 展示出版物456中的文档123

🔍 高级查询

  • 显示从这个粘贴的API结果中获取的全部数据:{粘贴API结果}
  • 显示最后一次MCP调用返回的JSON
  • 显示您刚才使用的API URL
  • 搜索由环境部成员172发起的法案
  • 查找2024年11月至12月之间关于气候变化的所有委员会会议

最后的想法

该项目正处于积极开发中,计划增加数据覆盖范围并改进交互质量。欢迎贡献和反馈。