About Congress.gov Mcp Server
An unofficial MCP server that wraps the Congress.gov API at api.congress.gov, letting AI assistants query US Congress data directly. It suits users who want to check congressional activity without relying on news coverage.
Key features
- 01Wraps the Congress.gov API for data queries
- 02Covers bills, amendments, members and committees
- 03Provides congressional record and vote lookups
- 04Runs via uv with a Congress.gov API key
Use cases
- 01Checking bill actions for a given Congress
- 02Looking up member information and related legislation
- 03Retrieving House and Senate roll call votes
MCP support
This project is an MCP server that exposes Congress.gov API queries to MCP clients. The README lists some endpoint groups as implemented and others as still planned.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMECongress.gov MCP server
Ever wonder what our (US) Congress is up to? Tired of reading the news to find out? Ask the US Congress API yourself.
Unofficial MCP server for the Congress.gov API
Installation
Installing via Smithery
To install congress_gov_mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @AshwinSundar/congress_gov_mcp --client claude
Manual Installation
Prerequisites
-
Install uv. The easiest way on macOS and Linux is:
curl -LsSf https://astral.sh/uv/install.sh | sh -
Get a Congress.gov API key.
-
Install Claude Desktop, Claude Code, or another client that supports MCP Integrations
Initial Setup
-
Complete Prerequisites
-
Clone this repository, and
cdin:git clone http://github.com/AshwinSundar/congress_gov_mcpcd congress_gov_mcp -
Install dependencies:
uv sync -
Create a
.envfile from the template:cp .env.template .env -
Add your Congress.gov API key to the
.envfile:
congress_gov_mcp/.env
CONGRESS_GOV_API_KEY="your-api-key-here"
Client Configuration
Claude Desktop
-
Complete Prerequisites
-
Copy the absolute path to your
uvinstallation:
which uv
-
Add the following to your Claude Desktop configuration file, inside the
mcpServersblock:macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"congress_gov_mcp": {
"command": "/absolute_path/to/uv",
"args": [
"run",
"/absolute_path_to/congress_gov_mcp/server.py"
]
}
}
}
Claude Code
-
Complete Prerequisites
-
Add the following to
.mcp.jsonin the directory you are running Claude Code in, inside themcpServersblock:
{
"mcpServers": {
"congress_gov_mcp": {
"command": "uv",
"args": [
"run",
"/absolute_path_to/congress_gov_mcp/server.py"
]
}
}
}
Roadmap
- api.congress.gov
- /bill
- /{congress}
- /{congress}/{billType}
- /{congress}/{billType}/{billNumber}
- /actions
- /amendments
- /committees
- /cosponsors
- /relatedbills
- /subjects
- /summaries
- /text
- /titles
- /amendment
- /{congress}
- /{congress}/{amendmentType}
- /{congress}/{amendmentType}/{amendmentNumber}
- /actions
- /cosponsors
- /amendments
- /text
- /summaries
- /{congress}
- /{congress}/{billType}
- /congress
- /{congress}
- /current
- /member
- /{bioguideId}
- /sponsored-legislation
- /cosponsored-legislation
- /{bioguideId}
- /committee
- /{systemCode}
- /bills
- /reports
- /nominations
- /meetings
- /hearings
- /house-communication
- /senate-communication
- /{systemCode}
- /committee-report
- /{congress}
- /{congress}/{reportType}
- /{congress}/{reportType}/{reportNumber}
- /text
- /committee-print
- /{congress}
- /{congress}/{printType}
- /{congress}/{printType}/{printNumber}
- /text
- /committee-meeting
- /{congress}
- /{congress}/{chamber}
- /meetings
- /hearing
- /{congress}
- /{congress}/{chamber}
- /{congress}/{chamber}/{hearingNumber}
- /house-vote
- /{congress}
- /{congress}/{session}
- /{congress}/{session}/{rollCallNumber}
- /congressional-record
- /{volume}
- /{volume}/{pagePrefix}
- /{volume}/{pagePrefix}/{pageNumber}
- /daily-congressional-record
- /{volume}
- /{volume}/{issue}
- /bound-congressional-record
- /{year}
- /{year}/{month}
- /{year}/{month}/{day}
- /house-communication
- /{congress}
- /{congress}/{communicationType}
- /{congress}/{communicationType}/{communicationNumber}
- /house-requirement
- /{congress}
- /{congress}/{requirementNumber}
- /senate-communication
- /{congress}
- /{congress}/{communicationType}
- /{congress}/{communicationType}/{communicationNumber}
- /nomination
- /{congress}
- /{congress}/{nominationNumber}
- /actions
- /hearings
- /crsreport
- /{productCode}
- /treaty
- /{congress}
- /{congress}/{treatyNumber}
- /actions
- /committees
- /bill
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.