MCP Connector

Query US Congress Data via API

Unofficial MCP server for the US Congress.gov API - bills, amendments, members, committees, hearings, votes, and more, queryable from Claude.

Works with githubcongress.gov

91
Spark score
out of 100
Updated Jun 2025
Version 1.0.0
Models
claudeuniversal

Add to Favorites

Why it matters

Access real-time data on US Congress activity, including bills, members, and voting records, directly through an unofficial MCP server for the Congress.gov API.

Outcomes

What it gets done

01

Retrieve information on US Congress bills and amendments.

02

Search for details about members and committees.

03

Access voting records and Congressional Records.

04

Obtain data on nominations, treaties, and CRS reports.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-congress-gov-api | bash

Capabilities

Tools your agent gets

search_bills

Search for bills in the US Congress

search_amendments

Search for amendments in the US Congress

search_members

Search for information about Congress members

search_committees

Search for information about congressional committees

get_committee_reports

Retrieve committee reports and documents

get_committee_meetings

Get information about committee meetings and hearings

get_voting_records

Access House and Senate voting records

get_congressional_records

Access daily and bound Congressional Records

+3 tools

Overview

Congress.gov API MCP Server

An unofficial MCP server wrapping the Congress.gov API, letting Claude query US bills, amendments, members, committees, hearings, votes, and the Congressional Record directly instead of summarizing news coverage. Use it when an AI assistant needs primary-source data on US congressional activity, such as a bill's status, a member's profile, a committee's reports, or a recorded vote, rather than second-hand reporting.

What it does

An unofficial MCP server that wraps the official Congress.gov API, letting Claude answer questions about US congressional activity from the primary source instead of news summaries. It covers a broad slice of what Congress.gov itself publishes: bills and their summaries, amendments, congress sessions, members by bioguide ID, committees, committee reports and prints, committee meetings, hearings, house and senate votes, the Congressional Record in its daily, bound, and standard forms, house and senate communications, nominations, CRS reports, and treaties.

When to use - and when NOT to

Use it when a question needs an authoritative answer grounded in Congress.gov's own data - what a specific bill's number and type track back to, who a named member of Congress is, what committees have published a given report, or how a specific roll-call vote went. It requires a free Congress.gov API key, obtained by signing up separately, configured as an environment variable before the server can query anything. The roadmap in the source shows this is a work in progress: top-level endpoints for each resource, such as a bill or amendment by congress and number, are implemented, but several nested sub-resources are marked unchecked and not yet built, including bill actions, cosponsors, related bills, subjects, summaries, text, and titles, and the equivalent detail endpoints for amendments, committees, nominations, and treaties. A question needing one of those unimplemented sub-resources will not be answerable through this server yet.

Capabilities

Implemented top-level resources include /bill (by congress, bill type, and bill number), /amendment (by congress, type, and number), /summaries, /congress, /member (by bioguideId), /committee, /committee-report, /committee-print, /committee-meeting, /hearing, /house-vote, /congressional-record, /daily-congressional-record, /bound-congressional-record, /house-communication, /house-requirement, /senate-communication, /nomination, /crsreport, and /treaty. Sub-resource endpoints under several of these, such as actions, amendments, cosponsors, related bills, subjects, summaries, text, and titles on bills, are on the roadmap but not yet implemented.

How to install

Via Smithery:

npx -y @smithery/cli install @AshwinSundar/congress_gov_mcp --client claude

Or manually, requiring uv and a free Congress.gov API key:

git clone http://github.com/AshwinSundar/congress_gov_mcp
cd congress_gov_mcp
uv sync
cp .env.template .env

Then add CONGRESS_GOV_API_KEY to the .env file and configure Claude Desktop or Claude Code to run uv run server.py with the absolute path to the cloned repo.

Who it's for

Journalists, researchers, and civically engaged users who want to query bills, members, votes, and committee activity directly from Congress.gov's own data instead of secondhand reporting.

Source README

Congress.gov MCP server

smithery badge

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
  1. Install uv. The easiest way on macOS and Linux is:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Get a Congress.gov API key.

  3. Install Claude Desktop, Claude Code, or another client that supports MCP Integrations

Initial Setup
  1. Complete Prerequisites

  2. Clone this repository, and cd in:

    git clone http://github.com/AshwinSundar/congress_gov_mcp
    
    cd congress_gov_mcp
    
  3. Install dependencies:

    uv sync
    
  4. Create a .env file from the template:

    cp .env.template .env
    
  5. Add your Congress.gov API key to the .env file:

congress_gov_mcp/.env

CONGRESS_GOV_API_KEY="your-api-key-here"

Client Configuration

Claude Desktop
  1. Complete Prerequisites

  2. Copy the absolute path to your uv installation:

which uv
  1. Add the following to your Claude Desktop configuration file, inside the mcpServers block:

    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    Windows: %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
  1. Complete Prerequisites

  2. Add the following to .mcp.json in the directory you are running Claude Code in, inside the mcpServers block:

{
  "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
    • /committee
      • /{systemCode}
        • /bills
        • /reports
        • /nominations
        • /meetings
        • /hearings
        • /house-communication
        • /senate-communication
    • /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

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.