CongressMCP Documentation
30 MCP tools for searching, analyzing, and understanding U.S. congressional data. Bills, members, votes, committees, hearings, amendments, nominations, and AI-powered enrichments.
Getting Started
1. Register for an API key
Create a free account at /register to get your API key. No credit card required. The free tier includes 100 requests per month.
2. Add to Claude Code
Run this command to register CongressMCP as an MCP server in Claude Code:
3. Add to Claude Desktop
Add the following to your Claude Desktop settings.json:
Replace YOUR_KEY with the API key you received during registration.
Authentication
All requests to the MCP endpoint require an Authorization header with a Bearer token:
API keys are prefixed with sk_live_. Keep your key secret and never share it publicly.
Rate Limits
- Free tier: 100 requests/month, 10 requests/minute
- Pro tier: 10,000 requests/month, 60 requests/minute
When you exceed your monthly limit, the API returns 429 Too Many Requests with an upgrade prompt. Rate limits reset on the first of each month.
Bills
Search, retrieve, and explore legislation from Congress.
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | optional | Search keyword or phrase. Omit to browse by date or filters. |
| congress | number | optional | Filter by congress number (e.g. 119) |
| introduced_after | string | optional | Bills introduced on or after this date (YYYY-MM-DD) |
| introduced_before | string | optional | Bills introduced on or before this date (YYYY-MM-DD) |
| policy_area | string | optional | Filter by policy area (e.g. "Health", "Education") |
| type | string | optional | Bill type: hr, s, hjres, sjres, hconres, sconres, hres, sres |
| is_law | boolean | optional | If true, only return bills that became law |
| sort_by | string | optional | "introduced_date" (default) or "latest_action_date" |
| limit | number | optional | Max results to return (default: 20, max: 50) |
| offset | number | optional | Pagination offset (default: 0) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | required | Congress number (e.g. 119) |
| type | string | required | Bill type (e.g. "hr", "s", "hjres", "sjres") |
| number | number | required | Bill number |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | required | Congress number |
| type | string | required | Bill type |
| number | number | required | Bill number |
| limit | number | optional | Max actions to return (default: 25) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | required | Congress number |
| type | string | required | Bill type |
| number | number | required | Bill number |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | required | Congress number |
| type | string | required | Bill type |
| number | number | required | Bill number |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | required | Congress number |
| type | string | required | Bill type |
| number | number | required | Bill number |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | required | Congress number |
| type | string | required | Bill type |
| number | number | required | Bill number |
Members
Search and retrieve information about members of Congress.
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | required | Name to search for (supports fuzzy matching) |
| chamber | string | optional | "House" or "Senate" |
| party | string | optional | Party filter (e.g. "D", "R") |
| state | string | optional | State abbreviation (e.g. "CA") |
| current_only | boolean | optional | Only current members (default: true) |
| limit | number | optional | Max results (default: 20) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| bioguide_id | string | required | Bioguide identifier (e.g. "P000197") |
| Parameter | Type | Required | Description |
|---|---|---|---|
| bioguide_id | string | required | Bioguide identifier |
| type | string | required | "sponsored" or "cosponsored" |
| congress | number | optional | Filter by congress number |
| limit | number | optional | Max results (default: 25) |
Votes
Access voting records and roll call data.
| Parameter | Type | Required | Description |
|---|---|---|---|
| bioguide_id | string | required | Bioguide identifier |
| congress | number | optional | Congress number (default: 119) |
| limit | number | optional | Max results (default: 50, max: 100) |
| offset | number | optional | Pagination offset (default: 0) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| chamber | string | required | "House" or "Senate" |
| congress | number | required | Congress number |
| session | number | required | Session number (1 or 2) |
| roll_call | number | required | Roll call number |
| Parameter | Type | Required | Description |
|---|---|---|---|
| yea_vote_ids | number[] | required | Roll call vote IDs where you prefer a Yea |
| nay_vote_ids | number[] | required | Roll call vote IDs where you prefer a Nay |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | optional | Congress number (default: 119) |
| chamber | string | optional | "House" or "Senate" |
| from_date | string | optional | Votes on or after this date (YYYY-MM-DD). Defaults to last 7 days. |
| to_date | string | optional | Votes on or before this date (YYYY-MM-DD) |
| limit | number | optional | Max results (default: 20, max: 50) |
| offset | number | optional | Pagination offset (default: 0) |
Committees
Explore congressional committees and their membership.
| Parameter | Type | Required | Description |
|---|---|---|---|
| chamber | string | optional | "House", "Senate", or "Joint" |
| congress | number | optional | Congress number (default: 119) |
| limit | number | optional | Max results (default: 50) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| committee_code | string | required | The system_code of the committee (e.g. "SSFI") |
| congress | number | optional | Congress number (default: 119) |
Enrichments Pro
AI-generated insights layered on top of raw congressional data. These tools require a Pro tier subscription.
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | required | Congress number |
| type | string | required | Bill type |
| number | number | required | Bill number |
| Parameter | Type | Required | Description |
|---|---|---|---|
| bioguide_id | string | required | Bioguide identifier |
| congress | number | optional | Congress number (default: 119) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| topic | string | required | Policy topic to search (e.g. "healthcare", "climate") |
| significance | string | optional | "landmark", "major", "moderate", "minor", or "routine" |
| congress | number | optional | Filter by congress number |
| limit | number | optional | Max results (default: 20) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| tag | string | required | Issue tag to search for |
| limit | number | optional | Max results (default: 20) |
Analysis Pro
Advanced analytical tools for comparing members, scoring votes, and reviewing aggregate statistics. The first three tools below require a Pro tier subscription.
| Parameter | Type | Required | Description |
|---|---|---|---|
| bioguide_id | string | required | Bioguide identifier |
| congress | number | optional | Congress number (default: 119) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| member1_bioguide | string | required | First member's bioguide ID |
| member2_bioguide | string | required | Second member's bioguide ID |
| limit | number | optional | Max shared bills to return (default: 10) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | optional | Congress number (default: 119) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | optional | Congress number (default: 119) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters required. | |||
Extended
Amendments, hearings, nominations, public laws, and member term history with contact info.
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | optional | Congress number (default: 119) |
| bill_type | string | optional | Bill type to get amendments for (e.g. "hr", "s") |
| bill_number | number | optional | Bill number to get amendments for |
| chamber | string | optional | "House" or "Senate" |
| submitted_after | string | optional | Amendments submitted on or after (YYYY-MM-DD) |
| submitted_before | string | optional | Amendments submitted on or before (YYYY-MM-DD) |
| limit | number | optional | Max results (default: 20, max: 50) |
| offset | number | optional | Pagination offset (default: 0) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | optional | Congress number (default: 119) |
| chamber | string | optional | "House" or "Senate" |
| committee_code | string | optional | Committee system code (e.g. "SSJU" for Senate Judiciary) |
| from_date | string | optional | Hearings on or after (YYYY-MM-DD) |
| to_date | string | optional | Hearings on or before (YYYY-MM-DD) |
| query | string | optional | Search hearing titles by keyword |
| limit | number | optional | Max results (default: 20, max: 50) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | optional | Congress number (default: 119) |
| query | string | optional | Search by description or organization keyword |
| from_date | string | optional | Received on or after (YYYY-MM-DD) |
| to_date | string | optional | Received on or before (YYYY-MM-DD) |
| limit | number | optional | Max results (default: 20, max: 50) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| congress | number | optional | Congress number (default: 119) |
| from_date | string | optional | Laws signed on or after (YYYY-MM-DD) |
| to_date | string | optional | Laws signed on or before (YYYY-MM-DD) |
| limit | number | optional | Max results (default: 20, max: 50) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| bioguide_id | string | required | Member's Bioguide ID |
REST API
In addition to the MCP interface, CongressMCP exposes standard REST endpoints for account management and billing.
Create a new account and receive an API key. Send { "email": "...", "name": "..." } as JSON body.
Regenerate your API key. The old key is immediately revoked. Returns a new key.
Get your current usage statistics: tier, requests this month, monthly limit, and rate limits.
Create a Stripe checkout session to upgrade to the Pro tier. Returns a checkout_url.
Create a Stripe customer portal session to manage your subscription. Returns a portal_url.
Rate Limits & Pricing
| Feature | Free | Pro |
|---|---|---|
| Price | $0/month | $20/month |
| Monthly Requests | 100 | 10,000 |
| Rate Limit | 10 req/min | 60 req/min |
| Bills, Members, Votes, Committees | All tools | All tools |
| Enrichments (AI-generated insights) | -- | All 4 tools |
| Analysis (party unity, compare members) | -- | All 5 tools |
| Support | Community | Priority email |
Limits reset on the 1st of each month at midnight UTC. If you exceed your monthly quota, the API returns HTTP 429. Upgrade anytime at /billing/checkout.