congressgov-mcp-server

U.S. congressional data

@cyanheads/congressgov-mcp-server

Access U.S. congressional data - bills, votes, members, committees - through MCP. STDIO & Streamable HTTP.

10 Tools • 5 Resources • 2 Prompts

npm Version Framework MCP SDK

License TypeScript Bun


Tools

Ten read-only tools for querying U.S. legislative data:

ToolDescription
congressgov_bill_lookupBrowse and retrieve U.S. legislative bill data — actions, sponsors, summaries, text, related bills
congressgov_enacted_lawsBrowse enacted public and private laws by congress
congressgov_member_lookupDiscover congressional members by state/district/congress, retrieve legislative portfolios
congressgov_committee_lookupBrowse congressional committees and their legislation, reports, and nominations
congressgov_roll_votesRetrieve House roll call vote data and individual member voting positions
congressgov_senate_nominationsBrowse presidential nominations to federal positions and track the Senate confirmation process
congressgov_bill_summariesBrowse recent CRS bill summaries — the "what's happening" feed
congressgov_crs_reportsBrowse and retrieve nonpartisan CRS policy analysis reports
congressgov_committee_reportsBrowse and retrieve committee reports accompanying legislation
congressgov_daily_recordBrowse the daily Congressional Record — floor speeches, debates, and proceedings

congressgov_bill_lookup

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

congressgov_member_lookup

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

congressgov_committee_lookup

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
  • Committee bills default to order='recent' (newest-first); pass order='oldest' for ascending update-date order

congressgov_roll_votes

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

congressgov_bill_summaries

Browse recent CRS bill summaries.

  • Filter by congress and bill type
  • Browse chronologically to see what's moving through Congress

congressgov_crs_reports

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

congressgov_daily_record

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

Resources

URI PatternDescription
congress://currentCurrent congress number, session dates, chamber info
congress://bill-typesReference 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

Prompts

PromptDescription
congressgov_bill_analysisStructured framework for analyzing a bill
congressgov_legislative_researchResearch framework for a policy area across Congress

Features

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

Getting started

Public Hosted Instance

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"
    }
  }
}

Self-Hosted / Local

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).

Prerequisites

Installation

  1. Clone the repository:
git clone https://github.com/cyanheads/congressgov-mcp-server.git
  1. Navigate into the directory:
cd congressgov-mcp-server
  1. Install dependencies:
bun install

Configuration

All configuration is validated at startup via Zod schemas in src/config/server-config.ts. Key environment variables:

VariableDescriptionDefault
CONGRESS_API_KEYRequired. API key from api.data.gov
CONGRESS_API_BASE_URLCongress.gov API base URLhttps://api.congress.gov/v3
MCP_TRANSPORT_TYPETransport: stdio or httpstdio
MCP_HTTP_PORTHTTP server port3010
MCP_AUTH_MODEAuthentication: none, jwt, or oauthnone
MCP_LOG_LEVELLog level (debug, info, warning, error, etc.)info
LOGS_DIRDirectory for log files (Node.js only).<project-root>/logs
STORAGE_PROVIDER_TYPEStorage backendin-memory
OTEL_ENABLEDEnable OpenTelemetry instrumentation (spans, metrics, completion logs)false

Running the server

Local development

  • 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

docker build -t congressgov-mcp-server .
docker run -e CONGRESS_API_KEY=your-api-key -p 3010:3010 congressgov-mcp-server

Project structure

DirectoryPurpose
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.

Development guide

See CLAUDE.md for development guidelines and architectural rules. The short version:

  • Handlers throw, framework catches — no try/catch in tool logic
  • Use ctx.log for logging, ctx.state for storage
  • All tools are read-only with readOnlyHint: true and idempotentHint: true

Contributing

Issues and pull requests are welcome. Run checks and tests before submitting:

bun run devcheck
bun run test

License

This project is licensed under the Apache 2.0 License. See the LICENSE file for details.

Related Servers

NotebookLM Web Importer

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Install Chrome Extension