mcpField
C
Congressmcp

Congressmcp

本地服务
github.com/amurshakAI 与智能体369 周前更新

关于 Congressmcp

Congressmcp 是面向 MCP 客户端和 AI Agent 的国会数据服务,可查询 Congress.gov 与 GovInfo 的立法及相关资料。它将多项 API 操作整合为少量工具,供本地运行的客户端以自然语言检索数据。

主要功能

  1. 01查询法案及全文
  2. 02检索投票、议员与委员会
  3. 03查看听证会和提名
  4. 04查询《国会记录》

适用场景

  1. 01追踪法案进展与文本
  2. 02查找国会议员和委员会信息
  3. 03研究投票、听证会及提名记录

MCP 相关

作为 MCP 服务向客户端提供国会数据查询工具,覆盖法案、投票、议员、委员会、听证会、提名和《国会记录》。可本地运行,并连接 Congress.gov 与 GovInfo API。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"congressMCP": {
"command": "npx",
"args": [
"-y",
"congressmcp"
],
"env": {
"CONGRESSMCP_API_KEY": "<CONGRESSMCP_API_KEY>"
}
}
}
}
启动命令npx -y congressmcp
需要配置的环境变量
CONGRESSMCP_API_KEY密钥

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

安装包
npmcongressmcp

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

CongressMCP

为任何 MCP 客户端提供实时美国国会数据 — Claude Code、ChatGPT、Copilot、Codex、Cursor、OpenCode、Gemini CLI、Grok Build 等。

法案、法案全文、投票、议员、委员会、听证会、提名和《国会记录》— 通过 Model Context Protocol 用自然语言查询。在你的机器上本地运行,对接免费的 Congress.gov 和 GovInfo API。无需账户、无需托管服务、无遥测。

快速开始

1. 获取免费的 Congress.gov API 密钥

在 api.congress.gov/sign-up 注册 — 只需 30 秒。同一个密钥也适用于 GovInfo(法案全文)。

2. 安装 uv

CongressMCP 已发布到 PyPI,通过 uvx 启动,uvx 随 uv 一起提供:

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

(brew install uv、winget install astral-sh.uv 和 pipx install uv 也可以。)更偏好 pip?pip install congressmcp 会提供一个 congressmcp 命令,可在下文中替代 uvx congressmcp 使用。

3. 连接你的客户端

每个客户端都需要相同的三项信息:command uvx、args ["congressmcp"]、env CONGRESS_API_KEY。客户端大致按目前使用它们的专业开发者数量排列(JetBrains 开发者生态系统调查,2026 年中,然后是 Pragmatic Engineer 的 2026 年工具调查),所以你要找的那个很可能就在前面:

客户端配置位置备注
Claude Codeclaude mcp add … 或 .mcp.json
ChatGPT开发者模式 → connector URL仅远程 — 需要 HTTP 模式
VS Code / GitHub Copilot.vscode/mcp.json使用 servers + inputs
OpenAI Codex CLIcodex mcp add … 或 ~/.codex/config.tomlTOML
Cursor~/.cursor/mcp.json 或 .cursor/mcp.json
JetBrains AI Assistant / JunieSettings → AI Assistant → MCP粘贴 Claude Desktop JSON
OpenCodeopencode.json → mcpcommand 是单个数组
Gemini CLIgemini mcp add … 或 ~/.gemini/settings.json
Claude.aiConnectors → custom connector URL仅远程 — 需要 HTTP 模式
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json
Zedsettings.json → context_servers
Cline / Roo CodeMCP 设置面板 → 编辑 JSON
Goosegoose configure 或 ~/.config/goose/config.yamlYAML
Grok Buildgrok mcp add … 或 ~/.grok/config.tomlTOML;也会自动导入 Claude Code / Cursor 配置
Hermes Agenthermes mcp add … 或 ~/.hermes/config.yamlYAML
OpenClawopenclaw mcp add … 或 ~/.openclaw/openclaw.jsonJSON5
Continue~/.continue/config.yamlYAML,仅 agent 模式
Open WebUIAdmin → Integrations → MCP server URL仅远程 — 需要 HTTP 模式
LM StudioProgram 选项卡 → mcp.jsonCursor 风格 JSON

任何未列出、但支持通过 stdio 通信 MCP 的工具,都可以使用相同的三个值。

Claude Code
# just for you
claude mcp add congressmcp --env CONGRESS_API_KEY=your-api-key-here -- uvx congressmcp

# shared with your team via .mcp.json in the repo root
claude mcp add --scope project congressmcp --env CONGRESS_API_KEY='${CONGRESS_API_KEY}' -- uvx congressmcp

如所示,把服务名称放在 --env 之前 — 如果 --env 在前,CLI 会尝试把名称解析为另一个 KEY=value 对。等价的 .mcp.json:

{
  "mcpServers": {
    "congressmcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["congressmcp"],
      "env": { "CONGRESS_API_KEY": "${CONGRESS_API_KEY}" }
    }
  }
}

${VAR} / ${VAR:-default} 会从你的环境展开,因此密钥无需提交到版本库。

VS Code / GitHub Copilot 工作区:`.vscode/mcp.json`(或命令面板 → **MCP: Add Server** / **MCP: Open User Configuration** 用于用户级配置)。VS Code 使用 `servers` 而非 `mcpServers`,`inputs` 可让它提示输入密钥并安全存储,而不是写入磁盘:
{
  "inputs": [
    {
      "type": "promptString",
      "id": "congress-api-key",
      "description": "Congress.gov API key",
      "password": true
    }
  ],
  "servers": {
    "congressmcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["congressmcp"],
      "env": { "CONGRESS_API_KEY": "${input:congress-api-key}" }
    }
  }
}

VS Code 在服务首次启动时会显示信任提示。

OpenAI Codex CLI
codex mcp add congressmcp --env CONGRESS_API_KEY=your-api-key-here -- uvx congressmcp

或在 ~/.codex/config.toml 中(Codex IDE 扩展和 ChatGPT 桌面应用也会读取该文件;项目级 .codex/config.toml 在受信任的项目中可用):

[mcp_servers.congressmcp]
command = "uvx"
args = ["congressmcp"]
env_vars = ["CONGRESS_API_KEY"]   # forward from your shell — nothing secret in the file

若要改为内联密钥,请将 env_vars 行替换为包含 CONGRESS_API_KEY = "…" 的 [mcp_servers.congressmcp.env] 表。可用 codex mcp list 或在会话内使用 /mcp 进行检查。

Cursor

全局:~/.cursor/mcp.json。按项目:.cursor/mcp.json。

{
  "mcpServers": {
    "congressmcp": {
      "command": "uvx",
      "args": ["congressmcp"],
      "env": { "CONGRESS_API_KEY": "${env:CONGRESS_API_KEY}" }
    }
  }
}

${env:NAME} 从你的 shell 环境读取;直接使用密钥字符串也可以。

JetBrains AI Assistant / Junie

AI Assistant:设置 → Tools → AI Assistant → Model Context Protocol (MCP) → Add → As JSON,然后粘贴 Claude Desktop 配置块(还有一个 Import from Claude 按钮,可读取 claude_desktop_config.json)。

Junie:设置 → Tools → Junie → MCP Settings,它会编辑 ~/.junie/mcp/mcp.json(全局)或 .junie/mcp/mcp.json(项目)——同样是 mcpServers 结构。

OpenCode

全局 ~/.config/opencode/opencode.json 或项目根目录的 opencode.json / opencode.jsonc(项目配置覆盖全局)。OpenCode 将命令及其参数放在同一个数组中,并将环境变量映射称为 environment:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "congressmcp": {
      "type": "local",
      "command": ["uvx", "congressmcp"],
      "environment": { "CONGRESS_API_KEY": "your-api-key-here" },
      "enabled": true
    }
  }
}

没有 opencode mcp add;编辑文件后,用 opencode mcp list / opencode mcp debug congressmcp 检查。远程服务使用 "type": "remote", "url": "https://<host>/mcp"。

Gemini CLI
gemini mcp add -s user -e CONGRESS_API_KEY=your-api-key-here congressmcp uvx congressmcp

(-s user 使其成为全局配置;默认作用域为当前项目。)或在 ~/.gemini/settings.json / .gemini/settings.json 中:

{
  "mcpServers": {
    "congressmcp": {
      "command": "uvx",
      "args": ["congressmcp"],
      "env": { "CONGRESS_API_KEY": "$CONGRESS_API_KEY" }
    }
  }
}
Claude Desktop

Claude 菜单 → Settings… → Developer → Edit Config,或直接编辑文件:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "congressmcp": {
      "command": "uvx",
      "args": ["congressmcp"],
      "env": { "CONGRESS_API_KEY": "your-api-key-here" }
    }
  }
}

重启 Claude Desktop。如果服务未出现,请使用 uvx 的绝对路径(which uvx / where uvx)——GUI 应用并不总能继承你 shell 的 PATH。日志:~/Library/Logs/Claude/mcp*.log 或 %APPDATA%\Claude\logs。

Windsurf

Cascade 面板 → MCPs 图标 → 原始配置,或编辑 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "congressmcp": {
      "command": "uvx",
      "args": ["congressmcp"],
      "env": { "CONGRESS_API_KEY": "${env:CONGRESS_API_KEY}" }
    }
  }
}

Windsurf 将所有服务的工具总数上限设为 100;CongressMCP 注册了 24 个(每个打包了相关操作),因此完全能容纳。

Zed

设置 → AI → MCP Servers → Add Local Server,或编辑 settings.json(macOS ~/Library/Application Support/Zed/settings.json、Linux ~/.config/zed/settings.json、Windows %APPDATA%\Zed\settings.json;项目级 .zed/settings.json):

{
  "context_servers": {
    "congressmcp": {
      "command": "uvx",
      "args": ["congressmcp"],
      "env": { "CONGRESS_API_KEY": "your-api-key-here" }
    }
  }
}
Cline / Roo Code

Cline:MCP Servers 图标 → Configure → Configure MCP Servers(打开 cline_mcp_settings.json;Cline 命令行使用 ~/.cline/mcp.json)。 Roo Code:MCP Servers → Edit Global MCP,或按项目使用 .roo/mcp.json。

两者都使用 Claude Desktop 的结构,外加几个客户端专属字段:

{
  "mcpServers": {
    "congressmcp": {
      "command": "uvx",
      "args": ["congressmcp"],
      "env": { "CONGRESS_API_KEY": "your-api-key-here" },
      "disabled": false,
      "autoApprove": []
    }
  }
}

在 Windows 上,Roo 的文档建议包装该命令:"command": "cmd", "args": ["/c", "uvx", "congressmcp"]。

Goose

交互式:goose configure → Add Extension → Command-line Extension(命令 uvx congressmcp,然后在提示输入环境变量时添加 CONGRESS_API_KEY)。一次性:goose session --with-extension "CONGRESS_API_KEY=your-api-key-here uvx congressmcp"。或在 ~/.config/goose/config.yaml 中:

extensions:
  congressmcp:
    name: congressmcp
    type: stdio
    cmd: uvx
    args: [congressmcp]
    envs: { "CONGRESS_API_KEY": "your-api-key-here" }
    enabled: true
    timeout: 300
Grok Build

xAI 的终端编码 Agent。如果你已经为 Claude Code(~/.claude.json / .mcp.json)或 Cursor(.cursor/mcp.json)配置了 CongressMCP,Grok Build 会自动读取 — 无需再做其他操作。否则:

grok mcp add congressmcp -- uvx congressmcp      # add --scope project for .grok/config.toml

然后在 ~/.grok/config.toml(或项目 .grok/config.toml)中设置密钥:

[mcp_servers.congressmcp]
command = "uvx"
args = ["congressmcp"]
env = { CONGRESS_API_KEY = "${CONGRESS_API_KEY}" }

用 grok mcp list / grok mcp doctor congressmcp 进行验证;会话中的 /mcps 可切换服务。工具显示为 congressmcp__<tool>。

Hermes Agent

Nous Research 的 Hermes Agent。~/.hermes/config.yaml:

mcp_servers:
  congressmcp:
    command: "uvx"
    args: ["congressmcp"]
    env:
      CONGRESS_API_KEY: "${CONGRESS_API_KEY}"   # or a literal key
    enabled: true

或运行 hermes mcp add congressmcp --command uvx --args congressmcp,然后手动添加 env: 块。hermes mcp test congressmcp 检查连接;会话中的 /reload-mcp 无需重启即可重新加载。工具显示为 mcp__congressmcp__<tool>。

OpenClaw
openclaw mcp add congressmcp --command uvx --arg congressmcp --env CONGRESS_API_KEY=your-api-key-here

或在 ~/.openclaw/openclaw.json 中的 mcp.servers 下(JSON5,因此注释和尾随逗号均可):

{
  mcp: {
    servers: {
      congressmcp: {
        command: "uvx",
        args: ["congressmcp"],
        env: { CONGRESS_API_KEY: "your-api-key-here" },
      },
    },
  },
}

用 openclaw mcp status / openclaw mcp probe congressmcp 进行验证。OpenClaw 不读取 mcporter 的注册表 — 请使用 mcp.servers。对于远程服务,使用 url 并显式指定 transport: "streamable-http"。

Continue

~/.continue/config.yaml,或在工作区 .continue/mcpServers/ 下为每个服务放置一个文件(Continue 也接受放入该文件夹的 Claude/Cursor 风格 JSON 文件)。MCP 工具在 agent 模式下可用。

mcpServers:
  - name: congressmcp
    type: stdio
    command: uvx
    args:
      - congressmcp
    env:
      CONGRESS_API_KEY: ${{ secrets.CONGRESS_API_KEY }}
LM Studio

Program 标签页 → Install → Edit mcp.json。LM Studio 遵循 Cursor 的 mcp.json 格式,因此 Cursor 块可直接使用 — 请使用字面键字符串而非 ${env:…}。这使任何支持工具调用的本地模型都能访问国会数据。

远程客户端:ChatGPT、Claude.ai、Open WebUI

这些客户端无法启动本地进程;它们通过 URL 连接到 MCP 服务。以 HTTP 模式运行 CongressMCP,并将 URL 提供给它们:

  • ChatGPT(Plus/Pro/Business/Enterprise/Edu,网页版):Settings → Security and login → Developer mode,然后使用你的服务 URL 添加连接器。需要公共 HTTPS 端点(或 Secure MCP Tunnel)。
  • Claude.ai(网页版;同步到移动端):Customize → Connectors → Add custom connector(Team/Enterprise:Organization settings → Connectors)。必须可通过公共互联网访问。
  • Open WebUI:Admin Settings → Integrations → + Add Server → MCP (Streamable HTTP)。仅支持 Streamable HTTP;可位于你的局域网内。

每种情况下的端点均为 https://<your-host>/mcp。上面的大多数本地客户端(OpenCode、Grok Build、Hermes、OpenClaw、Codex、Claude Code、Cursor、VS Code)也可以连接到该 URL,而非启动 uvx — 这对于在团队中共享一个安装非常有用。

### 4. 开始提问

“查找第 119 届国会中最近的气候变化法案” “海岸警卫队的破冰船资金在 FY2026 NDAA 的哪个部分?” “来自加利福尼亚州的参议员如何就最新的国防法案投票?” “参议院司法委员会的成员都有谁?” “H.R. 1234 的最新进展是什么?”

远程 / HTTP 模式

对于通过 URL 连接的客户端(ChatGPT、Claude.ai 连接器、Open WebUI,或多个用户共用一个安装),请通过 Streamable HTTP 运行服务:

CONGRESS_API_KEY=your-key congressmcp --transport streamable-http --host 0.0.0.0 --port 8000
# MCP endpoint: http://<host>:8000/mcp

CongressMCP 没有内置身份验证。 该服务设计为在你自己的机器上运行。如果你将其暴露在 localhost 之外,请把它置于具备身份验证的机制之后——带访问策略的反向代理、带允许列表的 HTTPS 隧道或 VPN——并记住,任何能够访问它的人都在消耗你的 Congress.gov 配额。ChatGPT 和 Claude.ai 还额外要求使用可公开解析的主机名上的 HTTPS。

工具

7 个工具集、90+ 个操作,覆盖 Congress.gov API,并可从 GovInfo 进行全文法案检索:

工具集操作功能
法案15搜索、详情、文本、行动、修正案、共同提案人、主题
法律2按国会查询已颁布的公法/私法(get_laws、get_law_details)
修正案7搜索、详情、行动、提案人、文本
条约与摘要5条约搜索、行动、委员会、文本;法案摘要
议员与委员会13按姓名/州/选区搜索议员、其发起的立法、委员会法案/报告/通信
投票与提名13众议院/参议院投票、提名、点名表决
记录与听证会10+国会记录、听证会、CRS 报告、委员会出版物

search_committees 和 search_summaries 接受一个可选的 keywords 参数—— 省略它以浏览/列出(委员会还可按 chamber/committee_type 过滤)。

全文法案文本搜索

变化之处: CongressMCP 不再代理 API 响应,而是从 GovInfo 获取完整的 Bill DTD XML,在本地解析,为每个法案版本构建分段级 SQLite FTS5 索引,并返回有针对性的、可寻址的法案章节,而不是原始的多兆字节 XML 或整个渲染后的法案页面。索引会持久化到磁盘,并在多次调用和重启之间复用。

工具功能
search_bill_text搜索法案全文,返回带片段、match_contexts 和修正标志的排序后可寻址分块
get_bill_section检索限定的章节或分块 id,max_bytes 按返回的 text 字段的 UTF-8 字节数计算
get_bill_toc返回用于查找章节 id 的浅层导航树

无需新的 API 密钥。 GovInfo 和 Congress.gov 都位于 api.data.gov 之后,因此 CongressMCP 对二者复用你现有的 CONGRESS_API_KEY;仅当你想要单独的 GovInfo 密钥时才设置 GOVINFO_API_KEY。(人们以为需要第二个密钥。其实不需要。)

数据存储位置。 每个法案版本一个 SQLite 文件(<package_id>.v<N>.db,例如 BILLS-119s1071enr.v1.db),位于缓存根目录下的 packages/ 中,另有一个小的 manifest.db 索引。缓存根目录为 CONGRESSMCP_CACHE_DIR(如果已设置),否则为平台默认值:

平台路径
Linux$XDG_CACHE_HOME/congressmcp,否则 ~/.cache/congressmcp
macOS~/Library/Caches/congressmcp
Windows%LOCALAPPDATA%\congressmcp\Cache

占用多少磁盘。 默认上限为 500 MB(CONGRESSMCP_CACHE_MAX_BYTES,字节),在每次索引写入后通过最近最少使用淘汰来强制执行。一个 NDAA 规模的已登记法案(S.1071/119,1,448 个已索引单元)会构建一个 11 MB 的索引;大多数法案要小得多。可从命令行检查或清空缓存——它刻意不作为 MCP 工具:

congressmcp cache info          # path, cap, total bytes, one line per package
congressmcp cache clear --yes   # remove every package file and the manifest

随时手动删除缓存目录也是安全的;这些文件是缓存,不是存储。 首次调用延迟 — 实测,而非估算。 在 S.1071/119 上的冷启动(无任何缓存):各次运行端到端为 4.1–6.8 s,其中 congress.gov 版本解析 + GovInfo 包摘要耗时 3.0–3.4 s,XML 下载 1.1–2.3 s,解析 0.75 s,FTS5 构建 0.31 s — 网络环节是缓慢且可变的部分,也正是缓存所消除的部分。热启动(索引和版本解析均已缓存):30–60 ms,无网络。每个响应都带有 timing 块(resolve_ms、download_ms、parse_ms、index_ms、search_ms、total_ms;某个环节未运行时为 null)和 cache 块(index_hit、version_hit),因此你可以看到自己遇到的是哪种情况。客户端超时影响: 将你的 MCP 客户端的每次调用超时设置为至少 30 s;在网络缓慢的情况下,一次 NDAA 规模的冷启动调用可能超过 10 s 的默认值,而部分工作不会丢失 — 下一次调用就是热启动。

离线行为。 你显式获取过的版本(version="enr")只要仍在缓存中,就可以完全离线查询;显式缓存的版本仅每隔 CONGRESSMCP_REVALIDATE_DAYS(30)天与 GovInfo 的 lastModified 重新核对一次,并在包被重新发布时重建。省略 version 时,“最新版本”的答案会缓存 CONGRESSMCP_VERSION_TTL(86400 s = 1 天;version_resolution: "cached");超过 TTL 后会重新解析,如果网络不可用,则尽力而为地返回上一次的答案,并标记为 version_resolution: "cached_offline",同时附上解析时间戳和一条可能存在更新版本的说明。如果没有任何缓存且网络中断,你会得到 version_resolution_unavailable,其中列出该法案已缓存的所有版本,以便你固定其中一个。

网络出口。 恰好两个主机:api.congress.gov(法案和文本版本元数据)和 api.govinfo.gov(法案内容)。两者都根据 api.data.gov 独立限流(20,000/h 和 36,000/h),因此索引不会饿死其他工具。

将 CONGRESSMCP_CACHE_ENABLED=false 会关闭这一切:每次调用都会在内存中重新下载、重新解析并重新索引整个文档 — 每次都产生 NDAA 规模的延迟。它用于诊断,而非日常使用。

搜索响应会区分 operative、quoted 和 header 片段中的匹配。如果 quoted 出现在 match_contexts 中,即使 operative 也出现,该命中也可能包含法案正在删除的措辞;在就删除并插入式措辞下结论之前,先检索相关章节。

每个命中还带有 matched_queries — 即产生该命中的查询子集。在推理检索行为之前先阅读它:在多查询调用中,它把每个命中归因到其来源查询,因此意外结果由该字段解释,而不是靠猜测分词器内部实现。

amends 仅解析《美国法典》引用(长格式 Section {sec} of title {title}, United States Code 以及当后面跟修正动词时的简写形式 {title} U.S.C. {sec})。它不解析具名法案,包括仅以裸条号引用的《国内税收法典》— 因此大多数 Title VII 税收单元会报告 is_amendatory: true 且 amends: []。使用 is_amendatory 和 match_contexts 来识别修正性文本;amends 只是一种便利,并不保证完整性。

从源码运行

git clone https://github.com/amurshak/congressMCP
cd congressMCP
pip install -e .

# stdio (default — for MCP clients)
CONGRESS_API_KEY=your-key congressmcp

# HTTP (for self-hosting / remote access)
CONGRESS_API_KEY=your-key congressmcp --transport streamable-http --port 8000

要让客户端指向源码检出目录,请在 uvx 的位置使用 "command": "congressmcp"(并激活 venv 或将其 bin/ 加入 PATH)或 "command": "/path/to/venv/bin/congressmcp"。

配置

变量必填默认值描述
CONGRESS_API_KEY是—你的免费 Congress.gov API 密钥
GOVINFO_API_KEY否—可选的 GovInfo 覆盖密钥;否则复用 CONGRESS_API_KEY
ENABLE_CACHING否false在内存中缓存 API 响应
CACHE_TIMEOUT否300缓存 TTL(秒)
LOG_LEVEL否WARNINGstderr 上的日志详细程度(DEBUG、INFO、WARNING、ERROR)
CONGRESS_API_ENV否local设置为 development/staging/production 以加载匹配的 .env.* 文件;不设置则仅加载普通的 .env。文件永远不会覆盖已导出的变量
CONGRESSMCP_BILL_TEXT_ONLY否未设置若为真值,则仅注册三个法案文本工具(独立法案文本服务)
CONGRESSMCP_TRACE_DIR否未设置若设置为一个目录,则每次法案文本工具调用写入一条密钥已脱敏的 JSONL 记录(调试用)
CONGRESSMCP_CACHE_DIR否平台缓存路径(参见 完整法案文本搜索)法案文本包缓存根目录
CONGRESSMCP_CACHE_MAX_BYTES否524288000法案文本缓存上限(500 MB);每次写入索引后执行 LRU 淘汰
CONGRESSMCP_CACHE_ENABLED否true设为 false 会禁用持久缓存:每次调用都会重新获取并重新解析完整文档
CONGRESSMCP_VERSION_TTL否86400省略 version 的“最新版本”答案被复用的秒数,期间不会向 congress.gov 发起查询
CONGRESSMCP_REVALIDATE_DAYS否30显式缓存的版本在多少天后需对照 GovInfo 的 lastModified 重新检查

缓存 CLI(缓存通过命令行管理,绝不通过 MCP 工具操作):

congressmcp cache info          # exit 0
congressmcp cache clear --yes   # exit 0; without --yes in a non-interactive shell it refuses with exit 1

故障排查

  • GUI 客户端(Claude Desktop、Zed、LM Studio、JetBrains)中出现“command not found: uvx”:使用 which uvx(macOS/Linux)或 where uvx(Windows)得到的绝对路径作为 command。
  • Windows:如果客户端无法直接启动 uvx,请使用 "command": "cmd", "args": ["/c", "uvx", "congressmcp"]。
  • 首次启动较慢:uvx 会在首次运行时下载并缓存包;后续启动很快。如需可复现性,可用 uvx [email protected] 固定版本。
  • API 返回 401 / 403:密钥缺失或错误。用 curl "https://api.congress.gov/v3/bill?api_key=YOUR_KEY&limit=1" 确认其可用。
  • 客户端中缺少工具:大多数客户端在编辑配置后需要重启或显式重新加载 MCP。

贡献

完整流程参见 CONTRIBUTING.md:fork、分支、代码风格、提交约定,以及如何提交 pull request。

许可证

Sustainable Use License


为政府透明度和可访问的公民数据而构建。

评论

支持 Markdown

第一次接触 MCP?

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

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