mcpField
G
GovQL

GovQL

本地服务
github.com/govql法律与政务61 天前更新

关于 GovQL

GovQL 的 MCP 服务,为 Claude Desktop、Claude Code、Cursor 等 AI 客户端提供美国国会 GraphQL API 的访问方式。它既支持任意 GraphQL 查询,也提供议员、投票及投票记录的发现、详情和分析工具。

主要功能

  1. 01执行 GovQL GraphQL 查询
  2. 02浏览和描述 GraphQL 类型
  3. 03查找议员与唱名投票
  4. 04获取议员和投票详情
  5. 05分析投票记录与一致率

适用场景

  1. 01查询议员任期和代表选区
  2. 02检索国会唱名投票及投票立场
  3. 03比较议员投票一致率
  4. 04查找较少支持本党多数意见的议员

MCP 相关

通过 stdio 向 MCP 客户端提供 GraphQL 查询、模式浏览、议员和投票查询及投票分析工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"govql": {
"command": "uvx",
"args": [
"govql-mcp-server"
]
}
}
}
启动命令uvx govql-mcp-server

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

安装包
pypigovql-mcp-server

工具

3

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

参数类型必填说明
namestring是GraphQL 类型的精确名称,区分大小写。通过 `list_types` 获取有效名称。示例:'Vote'、'VotePosition'、'Legislator'、'VoteFilter'、'VotesOrderBy'、'Query'。

详细介绍

govql-mcp-server

适用于 GovQL 的 MCP(Model Context Protocol)服务——让 Claude Desktop、Claude Code 和 Cursor 等 AI 客户端无需自行编写 HTTP 连接代码,即可直接访问美国国会 GraphQL API:api.govql.us/graphql。

有关设计理念(为何选择 FastMCP-Python、直通式与精选式相结合的理念,以及截至 v0.4 的路线图),请参阅 design.md。

可以用它做什么

向 Agent 提问,例如:

  • “佛蒙特州的两位参议员最近一次提名投票时是怎么投的?”
  • “第 118 届国会期间,哪些议员曾更换党派?”
  • “谁代表亚利桑那州第 3 国会选区?”
  • “对比 Sanders 参议员和 Murkowski 参议员在最近一届国会中的 cloture 投票记录。”
  • “在本届国会中,哪些民主党人最常与共和党人投票一致?”

Agent 会选择合适的工具,根据实时架构编写 GraphQL 查询并解析响应——无需手动处理 API。

安装

该服务通过标准输入输出,以独立子进程的方式为每个客户端运行。请选择你的客户端:

Claude Desktop

编辑 claude_desktop_config.json(Settings → Developer → Edit Config):

{
  "mcpServers": {
    "govql": {
      "command": "uvx",
      "args": ["govql-mcp-server"]
    }
  }
}

重启 Claude Desktop。govql 工具会显示在工具面板中。

Claude Code

将以下内容添加到项目中的 .mcp.json(或添加到全局配置 ~/.mcp.json):

{
  "mcpServers": {
    "govql": {
      "command": "uvx",
      "args": ["govql-mcp-server"]
    }
  }
}
Cursor

Settings → MCP → Add Server。使用与上方相同的 command / args。

其他客户端

任何支持标准输入输出服务的 MCP 兼容客户端都可以使用。命令为 uvx govql-mcp-server,无需提供参数。

工具

工具用途
execute_graphql对 GovQL 端点运行任意 GraphQL 查询。返回查询结果以及 last_ingest 时间戳,供 Agent 判断数据的新鲜度。
list_types返回 GovQL 架构中所有类型的名称和种类。可选的 kind 筛选器("OBJECT"、"INPUT_OBJECT"、"ENUM" 等)可进一步缩小范围。如果不清楚可以查询哪些内容,请从这里开始。
describe_type返回一个类型的完整详情——字段、参数签名、输入字段和枚举值。调用 list_types 后,可使用此工具了解特定类型的结构,再编写查询。
find_legislator当你不知道议员的 bioguide id 时,可按姓名、党派、州、议院或选区查找议员。党派/州/议院/选区会按议员任期进行匹配(选区仅适用于众议院);current_only(默认值)会将结果限制为在任议员。返回精简列表——每位议员的 bioguideId 以及当前党派/州/议院/选区。
find_vote按类别、议院或国会届次浏览唱名投票(按时间从新到旧),或通过关键词搜索投票的 question。topic 会匹配问题文本(其中包含法案简称),而不是完整的主题索引,因此无法查到程序性投票;法案主题目前也尚未填充。返回包含每个 voteId 的精简列表。
get_legislator根据 bioguide id 获取一位议员的完整详情:姓名、简介以及完整任期历史(不同时期的党派/州/议院/选区),并包含 current 区块。
get_vote_with_positions根据 id 获取一项投票及其计票结果和按党派划分的明细;还可选取各议员的投票立场(按党派/州/立场筛选)。
get_voting_record根据预计算的汇总数据,获取一位议员每届国会的投票行为:参与率和党派忠诚度。
compare_voters按国会届次和议院对比两位议员投票一致的频率,并提供一致率。
find_party_defectors查找在某届国会中最少与本党多数派投票一致的议员;可选按党派/议院筛选。

配置

所有环境变量均为可选项——该软件包对最终用户来说无需配置。

环境变量默认值用途
GOVQL_ENDPOINThttps://api.govql.us/graphql要查询的端点。可覆盖此值以指向本地开发堆栈。
GOVQL_TIMEOUT_MS30000每次请求的 HTTP 超时时间。
LOG_LEVELINFO日志级别。日志仅输出到 stderr(stdout 保留给 MCP 传输使用)。

限制(由上游 API 强制执行)

  • 最大查询深度:10
  • 最大查询复杂度:约 100 亿点(first: N 会将子级开销乘以 N——对于嵌套较深的查询,请合理设置分页大小)
  • 速率限制:每个源 IP 每 60 秒 100 次请求

深度或复杂度超出限制时,工具响应中会出现 GraphQL errors 条目,以便 Agent 调整查询后重试。

数据新鲜度

每个 execute_graphql 响应都包含一个 ISO 格式的 last_ingest 时间戳。 投票数据每小时刷新一次;议员数据每天刷新一次。

状态

截至 0.4.0,该服务提供三个基础工具(execute_graphql、 list_types、describe_type),以及精选的发现工具 (find_legislator、find_vote)、单实体详情工具(get_legislator、 get_vote_with_positions)和分析工具(get_voting_record、 compare_voters、find_party_defectors)——精选的发现、详情和分析工具集现已完备。其余的 most_agreeing_pairs 和法案/委员会工具计划在 v0.4 之后推出:法案/委员会工具仍需等待 GovQL 填充数据,而 most_agreeing_pairs 则仍需等待服务端实现跨党派排名聚合——请参阅 design.md。

链接

评论

支持 Markdown

第一次接触 MCP?

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

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