CongressMCP 是一个 MCP(Model Context Protocol)服务器,用于让 AI 智能体和 MCP 客户端以自然语言查询美国国会实时数据。数据来源为 Congress.gov 和 GovInfo 的免费 API,在用户自己的机器上本地运行,不需要账号、托管服务或遥测。
主要能力:覆盖 Congress.gov API 的 7 个工具集、90 多项操作,涉及法案、法案全文、投票、议员、委员会、听证会、提名和国会记录。法案全文检索方面,CongressMCP 不再代理 API 响应,而是从 GovInfo 获取完整的 Bill DTD XML,在本地解析,为每个法案版本构建段级 SQLite FTS5 索引,返回针对性的、可寻址的法案章节,而非原始的多兆字节 XML 或整页渲染的法案页面。索引持久化在磁盘上,跨调用和重启复用。
使用方式:需要先获取免费的 Congress.gov API key(在 api.congress.gov/sign-up 注册)。CongressMCP 发布在 PyPI 上,通过 uvx 启动(uv 自带 uvx;brew install uv、winget install astral-sh.uv、pipx install uv 也可行)。pip 用户可用 pip install congressmcp 获得 congressmcp 命令,替代 uvx congressmcp。连接客户端需要三个信息:command 为 uvx,args 为 ["congressmcp"],env 为 CONGRESS_API_KEY。支持大量本地客户端,包括 Claude Code、Codex、Cursor、VS Code、JetBrains AI Assistant、Junie、OpenCode、Gemini CLI、Claude Desktop、Windsurf、Zed、Cline、Roo Code、Goose、Grok Build、Hermes Agent、OpenClaw、Continue、LM Studio 等;无法启动本地进程的客户端(ChatGPT、Claude.ai、Open WebUI)可通过 HTTP 模式连接,端点形如 https://<your-host>/mcp。
缓存与性能:每个法案版本对应一个 SQLite 文件(如 BILLS-119s1071enr.v1.db),位于缓存根目录的 packages/ 下,另有 manifest.db 索引。缓存根目录由 CONGRESSMCP_CACHE_DIR 指定,否则使用平台默认路径。默认上限 500 MB(CONGRESSMCP_CACHE_MAX_BYTES),每次索引写入后按最近最少使用策略淘汰。冷启动首次调用(以 S.1071/119 为例)端到端约 4.1–6.8 秒,其中版本解析和 GovInfo 包摘要耗时 3.0–3.4 秒,XML 下载 1.1–2.3 秒,解析 0.75 秒,FTS5 构建 0.31 秒;热缓存下为 30–60 毫秒,无网络请求。每个响应带有 timing 块(resolve_ms、download_ms、parse_ms、index_ms、search_ms、total_ms)和 cache 块(index_hit、version_hit)。建议将 MCP 客户端的单次调用超时设置为至少 30 秒。
离线行为:显式获取的版本(version="enr")在缓存中可完全离线查询;显式缓存版本每 CONGRESSMCP_REVALIDATE_DAYS(30 天)检查一次 GovInfo 的 lastModified 并在重新发布时重建。省略 version 时,最新版本的答案缓存 CONGRESSMCP_VERSION_TTL(86400 秒,即 1 天);超过 TTL 会重新解析,网络不可用时以最佳努力提供上次答案并标记 version_resolution: "cached_offline"。无缓存且网络中断时返回 version_resolution_unavailable,并列出已缓存版本供指定。
网络出口:仅两个主机,api.congress.gov(法案和文本版本元数据)和 api.govinfo.gov(法案内容),各自基于 api.data.gov 独立限速(20,000/小时和 36,000/小时)。设置 CONGRESSMCP_CACHE_ENABLED=false 可关闭全部缓存机制,每次调用都重新下载、解析和索引,仅用于诊断。
全文检索说明:搜索响应区分 operative、quoted 和 header 段中的匹配;若 match_contexts 出现 quoted,命中可能包含法案删除的措辞。每个命中还带有 matched_queries 字段,标明产生该命中的查询子集。amends 字段仅解析美国法典引用,不解析具名法案。
限制:CongressMCP 没有内置身份验证,设计为在本机运行;如果暴露到 localhost 之外,需要置于反向代理、带允许列表的 HTTPS 隧道或 VPN 之后。ChatGPT 和 Claude.ai 还要求可公开解析主机名上的 HTTPS。首次启动较慢,因为 uvx 要下载并缓存包。若 GUI 客户端报“command not found: uvx”,需使用 uvx 的绝对路径;Windows 上可尝试 cmd /c uvx congressmcp。API 返回 401/403 表示 key 缺失或错误。成本、价格、付费计划等信息暂未提供。