项目简介

FedMCP是一个基于Model Context Protocol (MCP) 标准构建的服务器端应用,旨在为大型语言模型(LLM)客户端(如Claude Desktop)提供全面的加拿大政府数据访问和分析能力。它整合了来自联邦议会、法律系统以及问责机构的数据,并通过一系列标准化的工具接口,赋能记者、研究人员、活动家和普通公民,帮助他们更有效地追踪政治、财政和法律信息。

主要功能点

  • 议会数据查询: 搜索和列出加拿大下议院的辩论、法案、国会议员(MPs)、投票记录和委员会信息。
  • 国会议员问责分析: 获取国会议员的季度支出数据,深入分析其立法记录和投票参与情况,并支持对多位国会议员进行横向对比,评估其绩效。
  • 公民请愿追踪: 搜索公民发起的请愿书,查看其签名数量、状态和政府的官方回应。
  • 游说与影响力分析: 追踪联邦游说活动的注册信息、沟通记录,分析特定法案或行业(如石油、科技、制药)的游说活动,并识别潜在的利益冲突。
  • 法律数据访问: 通过与CanLII API集成,搜索加拿大的判例法和法规,获取详细的案件元数据和引文信息(需要有效的CanLII API密钥)。
  • 高级分析工具: 提供国会议员活动记分卡、委员会活动追踪、行业影响力分析以及多位国会议员的综合性能对比功能。
  • 财务透明度查询: 搜索加拿大联邦政府合同(超过10,000加元)、联邦拨款(超过25,000加元)以及政治捐款数据(2004年至今),分析政府支出模式和资金流向。

安装步骤

  1. 克隆仓库: 打开终端或命令行界面,执行以下命令克隆FedMCP的GitHub仓库: 'git clone https://github.com/northernvariables/FedMCP.git'
  2. 进入项目目录: 'cd FedMCP'
  3. 安装依赖: 使用pip安装项目所需的Python依赖包。建议在虚拟环境中安装: 'pip install -e .'
  4. CanLII API密钥配置 (可选但推荐): 如果您希望使用法律数据查询功能,需要从CanLII网站申请一个免费的API密钥。访问 'https://www.canlii.org/en/feedback/feedback.html' 提交申请。获取密钥后,请在项目根目录下创建一个名为 '.env' 的文件(可以从 '.env.example' 文件复制),并添加如下内容: 'CANLII_API_KEY=您的CanLII_API_密钥' 请将 '您的CanLII_API_密钥' 替换为实际获取到的密钥。

服务器配置

FedMCP服务器是为MCP客户端设计的。要使您的MCP客户端(例如Claude Desktop)能够连接并使用FedMCP提供的工具,您需要在客户端的配置中添加FedMCP服务器的启动命令和相关参数。

以下是适用于Claude Desktop的配置信息(JSON格式)。请将其添加到您的Claude Desktop配置文件中(例如:macOS上的 '~/Library/Application Support/Claude/claude_desktop_config.json' 或Windows上的 '%APPDATA%\Claude\claude_desktop_config.json'):

{
  "mcpServers": {
    "fedmcp": {
      "command": "python",
      "args": ["-m", "fedmcp.server"],
      "env": {
        "CANLII_API_KEY": "您的CanLII_API_密钥" // 如果您已在系统环境变量或.env文件中配置,此处可省略
      },
      "description": "提供对加拿大联邦议会、法律和问责数据的深度访问。"
    }
  }
}

重要提示:

  • 请确保将 '您的CanLII_API_密钥' 替换为您的实际CanLII API密钥。如果您的密钥已经通过系统环境变量或项目根目录下的 '.env' 文件进行了配置,'"env"' 部分可以省略。
  • '"command"' 指令应指向您的Python环境中的 'python' 可执行文件。如果使用虚拟环境,路径可能是 '/path/to/FedMCP/venv/bin/python'。

基本使用方法

  1. 重启MCP客户端: 在完成上述配置后,请重启您的MCP客户端(例如Claude Desktop),以便它能够加载并识别FedMCP服务器。
  2. 验证工具: 启动后,您应该能在客户端的MCP工具菜单或类似界面中看到FedMCP提供的所有工具。
  3. 尝试指令: 您可以开始向LLM提问,并让它调用FedMCP的工具来获取信息。以下是一些示例:
    • "找出关于Bill C-11(在线流媒体法案)的游说组织有哪些?"
    • "对比Chrystia Freeland和Mark Holland在最近一个财政年度的表现,包括他们赞助的法案和开支。"
    • "我的邮政编码K1A 0A9对应的联邦国会议员是谁?请告诉我他的联系方式。"
    • "搜索加拿大最高法院关于《宪章》第七条(生命、自由和人身安全权)的案例。"
    • "分析Pierre Poilievre在最近50次投票中的参与情况和投票模式。"
    • "谁是去年获得最多联邦合同的供应商?"
    • "追踪与气候变化相关的公民请愿书及其政府回应。"

信息

分类

开发者工具