SuperAPI AI Directory

congressMCP

CongressMCP is a server based on the Model Context Protocol (MCP) that enables AI agents and MCP clients to access the Congress.gov API and query real-time U.S. congressional data locally, including bills, bill full text, votes, members, committees, hearings, nominations, and the Congressional Record. It is published via PyPI, launched with uvx, requires a free Congress.gov API key, and has no account, no hosted service, and no telemetry. It supports a variety of MCP clients such as Claude Code, ChatGPT, Copilot, Codex, Cursor, OpenCode, Gemini CLI, and Grok Build. Bill full-text search retrieves XML from GovInfo and builds a local SQLite FTS5 index, returning specific addressable sections.

Open website

About this tool

CongressMCP is an MCP (Model Context Protocol) server that enables AI agents and MCP clients to query real-time U.S. congressional data in natural language. The data comes from the free APIs of Congress.gov and GovInfo, and it runs locally on the user's own machine, requiring no account, hosted service, or telemetry.

Main capabilities: 7 tool sets and more than 90 operations covering the Congress.gov API, involving bills, bill full text, votes, members, committees, hearings, nominations, and the Congressional Record. For bill full-text search, CongressMCP no longer proxies API responses; instead, it retrieves complete Bill DTD XML from GovInfo, parses it locally, builds a section-level SQLite FTS5 index for each bill version, and returns targeted, addressable bill sections rather than raw multi-megabyte XML or full-page rendered bill pages. The index persists on disk and is reused across calls and restarts.

How to use: You must first obtain a free Congress.gov API key (register at api.congress.gov/sign-up). CongressMCP is published on PyPI and launched via uvx (uv comes with uvx; brew install uv, winget install astral-sh.uv, and pipx install uv also work). pip users can use pip install congressmcp to get the congressmcp command instead of uvx congressmcp. Connecting a client requires three pieces of information: command is uvx, args is ["congressmcp"], and env is CONGRESS_API_KEY. It supports a large number of local clients, including 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, and others; unable to launchClients for local processes (ChatGPT, Claude.ai, Open WebUI) can connect via HTTP mode, with an endpoint of the form https://<your-host>/mcp.

Caching and performance: Each bill version corresponds to a SQLite file (e.g., BILLS-119s1071enr.v1.db), located under packages/ in the cache root, along with a manifest.db index. The cache root is specified by CONGRESSMCP_CACHE_DIR, otherwise the platform default path is used. The default limit is 500 MB (CONGRESSMCP_CACHE_MAX_BYTES), and eviction follows a least-recently-used policy after each index write. On a cold start, the first call (using S.1071/119 as an example) takes about 4.1–6.8 seconds end to end, of which version resolution and GovInfo package summary take 3.0–3.4 seconds, XML download takes 1.1–2.3 seconds, parsing takes 0.75 seconds, and FTS5 construction takes 0.31 seconds; with a warm cache it is 30–60 milliseconds, with no network requests. Each response includes a timing block (resolve_ms, download_ms, parse_ms, index_ms, search_ms, total_ms) and a cache block (index_hit, version_hit). It is recommended to set the MCP client's single-call timeout to at least 30 seconds.

Offline behavior: An explicitly fetched version (version="enr") can be queried completely offline from the cache; explicitly cached versions check GovInfo's lastModified once every CONGRESSMCP_REVALIDATE_DAYS (30 days) and are rebuilt when republished. When version is omitted, the latest version's answer is cached for CONGRESSMCP_VERSION_TTL (86400 seconds, i.e., 1 day); exceeding the TTL triggers re-resolution, and when the network is unavailable it serves the last answer on a best-effort basis and marks version_resolution: "cached_offline". When there is no cache and the network is down, it returns version_resolution_unavailable and lists cached versions for specification.

Network egress: only two hosts, api.congress.gov (bill and text version metadata)and api.govinfo.gov (bill content), each independently rate-limited based on api.data.gov (20,000/hour and 36,000/hour). Setting CONGRESSMCP_CACHE_ENABLED=false disables all caching mechanisms, so every call re-downloads, parses, and indexes, and is intended for diagnostics only.

Full-text search notes: Search responses distinguish matches in operative, quoted, and header sections; if match_contexts contains quoted, the hit may include wording deleted from the bill. Each hit also has a matched_queries field, indicating the subset of queries that produced the hit. The amends field only parses United States Code citations, not named bills.

Limitations: CongressMCP has no built-in authentication and is designed to run on the local machine; if exposed beyond localhost, it needs to be placed behind a reverse proxy, an HTTPS tunnel with an allowlist, or a VPN. ChatGPT and Claude.ai also require HTTPS on a publicly resolvable hostname. The first startup is slower because uvx has to download and cache packages. If a GUI client reports "command not found: uvx", use the absolute path to uvx; on Windows, you can try cmd /c uvx congressmcp. An API return of 401/403 indicates the key is missing or incorrect. Information such as cost, pricing, and paid plans is not currently provided.