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

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 OpenTelemetryfalse

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.

相关服务器