A comprehensive wrapper around the Congress.gov REST API v3 that brings legislative data into your MCP workflow. You get ten read-only tools covering bills, votes, members, committees, nominations, CRS reports, and the daily Congressional Record, plus resources for current session info and bill type lookups. Built on the developer's mcp-ts-core framework with declarative tool definitions and pluggable auth. Runs stdio or streamable HTTP, and there's a public hosted instance at congressgov.caseyjhand.com if you want to skip setup. Needs an api.data.gov key for serious use (1,000 req/hr vs the 30/hr demo limit). Reach for this when you're building legislative tracking, policy research tools, or anything that needs structured access to what's moving through Congress.
Public tool metadata for what this MCP can expose to an agent.
congressgov_bill_lookupBrowse and retrieve U.S. legislative bill data from Congress.gov. Discover bills by filtering on congress, bill type, and date range — there is no keyword search. Use 'list' to browse (requires congress), 'get' for full bill detail (sponsor, policy area, CBO estimates, law inf...8 paramsBrowse and retrieve U.S. legislative bill data from Congress.gov. Discover bills by filtering on congress, bill type, and date range — there is no keyword search. Use 'list' to browse (requires congress), 'get' for full bill detail (sponsor, policy area, CBO estimates, law inf...
limitintegeroffsetintegerbillTypestringhr · s · hjres · sjres · hconres · sconrescongressintegeroperationstringlist · get · actions · amendments · cosponsors · committeesbillNumberintegertoDateTimestringfromDateTimestringcongressgov_enacted_lawsBrowse enacted public and private laws from Congress.gov. Use 'list' to browse laws by congress, or 'get' for a specific law's full detail. Each law references its origin bill for the full legislative history. Law types: pub: Public laws (general application, most common); pri...6 paramsBrowse enacted public and private laws from Congress.gov. Use 'list' to browse laws by congress, or 'get' for a specific law's full detail. Each law references its origin bill for the full legislative history. Law types: pub: Public laws (general application, most common); pri...
limitintegeroffsetintegerlawTypestringpub · privcongressintegerlawNumberintegeroperationstringlist · getcongressgov_member_lookupDiscover congressional members and their legislative activity. There is no name search — use 'list' with stateCode (optionally with district), with a congress number, or with currentMember=true to find members. Once you have a bioguideId, use 'get' for full profile or 'sponsor...8 paramsDiscover congressional members and their legislative activity. There is no name search — use 'list' with stateCode (optionally with district), with a congress number, or with currentMember=true to find members. Once you have a bioguideId, use 'get' for full profile or 'sponsor...
limitintegeroffsetintegercongressintegerdistrictintegeroperationstringlist · get · sponsored · cosponsoredstateCodestringbioguideIdstringcurrentMemberbooleancongressgov_committee_lookupBrowse congressional committees and their legislation, reports, and nominations. Committee codes follow the pattern chamber-prefix (h/s/j) + abbreviation + number — use 'list' to discover codes, then 'get' or drill into 'bills', 'reports', or 'nominations' ('nominations' is Se...7 paramsBrowse congressional committees and their legislation, reports, and nominations. Committee codes follow the pattern chamber-prefix (h/s/j) + abbreviation + number — use 'list' to discover codes, then 'get' or drill into 'bills', 'reports', or 'nominations' ('nominations' is Se...
limitintegerorderstringrecent · oldestdefault: recentoffsetintegerchamberstringhouse · senate · jointcongressintegeroperationstringlist · get · bills · reports · nominationscommitteeCodestringcongressgov_roll_votesRetrieve House roll call vote data and individual member voting positions — House-only, as Senate vote data is not yet in the Congress.gov API. Use 'list' to find votes by congress and session, 'get' for vote details (question, result, associated bill), or 'members' for how ea...6 paramsRetrieve House roll call vote data and individual member voting positions — House-only, as Senate vote data is not yet in the Congress.gov API. Use 'list' to find votes by congress and session, 'get' for vote details (question, result, associated bill), or 'members' for how ea...
limitintegeroffsetintegersessionintegercongressintegeroperationstringlist · get · membersvoteNumberintegercongressgov_senate_nominationsBrowse presidential nominations to federal positions and track the Senate confirmation process. Nominations use 'PN' (Presidential Nomination) numbering, and a single nomination may contain multiple nominees — use 'nominees' to see individual appointees. Partitioned nomination...6 paramsBrowse presidential nominations to federal positions and track the Senate confirmation process. Nominations use 'PN' (Presidential Nomination) numbering, and a single nomination may contain multiple nominees — use 'nominees' to see individual appointees. Partitioned nomination...
limitintegeroffsetintegerordinalintegercongressintegeroperationstringlist · get · nominees · actions · committees · hearingsnominationNumberstringcongressgov_bill_summariesBrowse recent CRS (Congressional Research Service) bill summaries — plain-language summaries of bills at each legislative stage, useful for answering "what's happening in Congress?". The fromDateTime/toDateTime filters apply to the summary's update time (lastSummaryUpdateDate)...6 paramsBrowse recent CRS (Congressional Research Service) bill summaries — plain-language summaries of bills at each legislative stage, useful for answering "what's happening in Congress?". The fromDateTime/toDateTime filters apply to the summary's update time (lastSummaryUpdateDate)...
limitintegeroffsetintegerbillTypestringhr · s · hjres · sjres · hconres · sconrescongressintegertoDateTimestringfromDateTimestringcongressgov_crs_reportsBrowse and retrieve CRS (Congressional Research Service) reports — nonpartisan policy analyses by subject-matter experts at the Library of Congress, covering policy areas, legislative proposals, and legal questions. Report IDs use letter-number codes (e.g., R40097, RL33612, IF...4 paramsBrowse and retrieve CRS (Congressional Research Service) reports — nonpartisan policy analyses by subject-matter experts at the Library of Congress, covering policy areas, legislative proposals, and legal questions. Report IDs use letter-number codes (e.g., R40097, RL33612, IF...
limitintegeroffsetintegeroperationstringlist · getreportNumberstringcongressgov_committee_reportsBrowse and retrieve committee reports from Congress.gov — reports accompany legislation reported out of committee and explain the bill's purpose, committee amendments, dissenting views, and the committee vote. Report types are 'hrpt' (House), 'srpt' (Senate), and 'erpt' (Execu...6 paramsBrowse and retrieve committee reports from Congress.gov — reports accompany legislation reported out of committee and explain the bill's purpose, committee amendments, dissenting views, and the committee vote. Report types are 'hrpt' (House), 'srpt' (Senate), and 'erpt' (Execu...
limitintegeroffsetintegercongressintegeroperationstringlist · get · textreportTypestringhrpt · srpt · erptreportNumberintegercongressgov_daily_recordBrowse the daily Congressional Record — floor speeches, debates, and legislative text published each day Congress is in session. Navigation is hierarchical: list → volumes, issues → individual articles. Use 'list' to find recent volumes, 'issues' to see what's in a volume, and...5 paramsBrowse the daily Congressional Record — floor speeches, debates, and legislative text published each day Congress is in session. Navigation is hierarchical: list → volumes, issues → individual articles. Use 'list' to find recent volumes, 'issues' to see what's in a volume, and...
limitintegeroffsetintegeroperationstringlist · issues · articlesissueNumberintegervolumeNumberintegerAccess 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 and Senate roll call votes 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 |
congressgov_bill_lookupBrowse and retrieve U.S. legislative bill data from Congress.gov.
list defaults to order='recent' (newest update-date first); pass order='oldest' for ascendingcongressgov_member_lookupDiscover congressional members and their legislative activity.
congressgov_committee_lookupBrowse congressional committees and their legislation, reports, and nominations.
committeeCode — chamber is auto-detected from the codeorder='recent' (newest-first); pass order='oldest' for ascending update-date ordercongressgov_roll_votesRetrieve House and Senate roll call votes and individual member voting positions.
chamber to house (default, from the Congress.gov API) or senate (from the Senate's official LIS feed — the API exposes no Senate votes)list browses votes by congress and session, newest first; pass order='oldest' for ascendingget returns the question, result, tallies, party breakdown, and associated bill/nomination/amendmentmembers returns each member's recorded positioncongressgov_bill_summariesBrowse recent CRS bill summaries.
congressgov_crs_reportsBrowse and retrieve CRS reports — nonpartisan policy analyses written by subject-matter experts at the Library of Congress.
congressgov_daily_recordBrowse the daily Congressional Record — floor speeches, debates, and legislative text published each day Congress is in session.
| 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:
none, jwt, oauth)in-memory, filesystem, SupabaseCongress.gov-specific:
DEMO_KEY (30 req/hr); own key gets 1,000 req/hrA 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 for 1,000 req/hr. Without a key the server falls back to DEMO_KEY (30 req/hr).
git clone https://github.com/cyanheads/congressgov-mcp-server.git
cd congressgov-mcp-server
bun install
All configuration is validated at startup via Zod schemas in src/config/server-config.ts. Key environment variables:
| Variable | Description | Default |
|---|---|---|
CONGRESS_API_KEY | Optional. API key from api.data.gov. Omit to use DEMO_KEY (30 req/hr); own key: 1,000 req/hr. | DEMO_KEY |
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 instrumentation (spans, metrics, completion logs) | 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:
try/catch in tool logicctx.log for logging, ctx.state for storagereadOnlyHint: true and idempotentHint: trueIssues and pull requests are welcome. Run checks and tests before submitting:
bun run devcheck
bun run test
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.
CONGRESS_API_KEYAPI key from api.data.gov — optional (falls back to DEMO_KEY: 30 req/hr). Own key: 1000 req/hr. Free signup at api.data.gov.
MCP_LOG_LEVELdefault: infoSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
MCP_HTTP_HOSTdefault: 127.0.0.1The hostname for the HTTP server.
MCP_HTTP_PORTdefault: 3010The port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATHdefault: /mcpThe endpoint path for the MCP server.
MCP_AUTH_MODEdefault: noneAuthentication mode to use: 'none', 'jwt', or 'oauth'.
com.mcparmory/google-sheets
domdomegg/google-sheets-mcp
henilcalagiya/google-sheets-mcp
cct15/war-dashboard-data
moooonad/mcp-google-sheets-full
io.github.br0ski777/csv-to-json