Access U.S. congressional data - bills, votes, members, committees - through MCP. STDIO & Streamable HTTP.
Public Hosted Server: https://congressgov.caseyjhand.com/mcp
Ten read-only tools for querying U.S. legislative data:
| Tool | Description |
|---|---|
congressgov_bill_lookup |
Browse and retrieve U.S. legislative bill data — actions, sponsors, summaries, text, related bills |
congressgov_enacted_laws |
Browse enacted public and private laws by congress |
congressgov_member_lookup |
Discover congressional members by state/district/congress, retrieve legislative portfolios |
congressgov_committee_lookup |
Browse congressional committees and their legislation, reports, and nominations |
congressgov_roll_votes |
Retrieve House roll call vote data and individual member voting positions |
congressgov_senate_nominations |
Browse presidential nominations to federal positions and track the Senate confirmation process |
congressgov_bill_summaries |
Browse recent CRS bill summaries — the "what's happening" feed |
congressgov_crs_reports |
Browse and retrieve nonpartisan CRS policy analysis reports |
congressgov_committee_reports |
Browse and retrieve committee reports accompanying legislation |
congressgov_daily_record |
Browse the daily Congressional Record — floor speeches, debates, and proceedings |
Browse and retrieve U.S. legislative bill data from Congress.gov.
- Filter by congress number, bill type, and date range
- Retrieve detailed sub-resources: actions, amendments, committees, cosponsors, related bills, subjects, summaries, text versions, and titles
- Pagination support for browsing large result sets
Discover congressional members and their legislative activity.
- Browse by state, district, congress number, and chamber
- Retrieve a member's sponsored and cosponsored legislation
- Look up specific members by bioguide ID
Browse congressional committees and their legislation, reports, and nominations.
- Filter by chamber (House, Senate, Joint)
- Retrieve committee bills, reports, and nominations
- Look up specific committees by committee code
Retrieve House roll call vote data and individual member voting positions.
- Browse roll call votes by congress and session
- Retrieve individual member voting positions per roll call
Browse recent CRS bill summaries.
- Filter by congress and bill type
- Browse chronologically to see what's moving through Congress
Browse and retrieve CRS reports — nonpartisan policy analyses written by subject-matter experts at the Library of Congress.
- Browse the full report catalog
- Retrieve individual reports by product number
Browse the daily Congressional Record — floor speeches, debates, and legislative text published each day Congress is in session.
- Browse volumes by congress number
- Retrieve specific issue articles
| URI Pattern | Description |
|---|---|
congress://current |
Current congress number, session dates, chamber info |
congress://bill-types |
Reference table of valid bill type codes |
congress://member/{bioguideId} |
Member profile by bioguide ID |
congress://bill/{congress}/{billType}/{billNumber} |
Bill detail by congress, type, and number |
congress://committee/{committeeCode} |
Committee detail by committee code |
| Prompt | Description |
|---|---|
congressgov_bill_analysis |
Structured framework for analyzing a bill |
congressgov_legislative_research |
Research framework for a policy area across Congress |
Built on @cyanheads/mcp-ts-core:
- Declarative tool definitions — single file per tool, framework handles registration and validation
- Unified error handling across all tools
- Pluggable auth (
none,jwt,oauth) - Swappable storage backends:
in-memory,filesystem,Supabase - Structured logging with optional OpenTelemetry tracing
- Runs locally (stdio/HTTP) or in Docker from the same codebase
Congress.gov-specific:
- Type-safe client for the Congress.gov REST API v3
- Authentication via free API key from api.data.gov
- Automatic pagination and response normalization
- Rate limiting awareness (5,000 requests/hour per key)
- All tools are read-only and idempotent
A public instance is available at https://congressgov.caseyjhand.com/mcp — no installation required. Point any MCP client at it via Streamable HTTP:
{
"mcpServers": {
"congressgov-mcp-server": {
"type": "streamable-http",
"url": "https://congressgov.caseyjhand.com/mcp"
}
}
}Add the following to your MCP client configuration file.
{
"mcpServers": {
"congressgov-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/congressgov-mcp-server@latest"],
"env": {
"CONGRESS_API_KEY": "your-api-key"
}
}
}
}Or with npx (no Bun required):
{
"mcpServers": {
"congressgov-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/congressgov-mcp-server@latest"],
"env": {
"CONGRESS_API_KEY": "your-api-key"
}
}
}
}Get a free API key at api.data.gov/signup (5,000 requests/hour).
- Bun v1.3.2 or higher.
- Clone the repository:
git clone https://github.com/cyanheads/congressgov-mcp-server.git- Navigate into the directory:
cd congressgov-mcp-server- Install dependencies:
bun installAll configuration is validated at startup via Zod schemas in src/config/server-config.ts. Key environment variables:
| Variable | Description | Default |
|---|---|---|
CONGRESS_API_KEY |
Required. API key from api.data.gov | — |
CONGRESS_API_BASE_URL |
Congress.gov API base URL | https://api.congress.gov/v3 |
MCP_TRANSPORT_TYPE |
Transport: stdio or http |
stdio |
MCP_HTTP_PORT |
HTTP server port | 3010 |
MCP_AUTH_MODE |
Authentication: none, jwt, or oauth |
none |
MCP_LOG_LEVEL |
Log level (debug, info, warning, error, etc.) |
info |
LOGS_DIR |
Directory for log files (Node.js only). | <project-root>/logs |
STORAGE_PROVIDER_TYPE |
Storage backend | in-memory |
OTEL_ENABLED |
Enable OpenTelemetry | false |
-
Build and run the production version:
bun run rebuild bun run start:http # or start:stdio -
Run checks and tests:
bun run devcheck # Lints, formats, type-checks bun run test # Runs test suite
docker build -t congressgov-mcp-server .
docker run -e CONGRESS_API_KEY=your-api-key -p 3010:3010 congressgov-mcp-server| Directory | Purpose |
|---|---|
src/mcp-server/tools/definitions/ |
Tool definitions (*.tool.ts). Ten Congress.gov tools. |
src/mcp-server/resources/definitions/ |
Resource definitions. Congress, bill, member, and committee resources. |
src/mcp-server/prompts/definitions/ |
Prompt definitions. Bill analysis and legislative research prompts. |
src/services/congress-api/ |
Congress.gov API client — auth, pagination, rate limiting. |
src/config/ |
Server-specific environment variable parsing and validation with Zod. |
tests/ |
Unit and integration tests, mirroring the src/ structure. |
See CLAUDE.md for development guidelines and architectural rules. The short version:
- Handlers throw, framework catches — no
try/catchin tool logic - Use
ctx.logfor logging,ctx.statefor storage - All tools are read-only with
readOnlyHint: trueandidempotentHint: true
Issues and pull requests are welcome. Run checks and tests before submitting:
bun run devcheck
bun run testThis project is licensed under the Apache 2.0 License. See the LICENSE file for details.