Skip to content
CongressMCP
in the shared header, footer, and styles (served at /docs). -->

CongressMCP

One Streamable HTTP MCP endpoint over CongressMCP’s independently operated federal and state legislative data snapshot.

No request-time pass-through. Customer queries read CongressMCP-controlled tables. Private ingestion runs separately and publishes into the owned snapshot.

What the product exposes

The customer MCP starts with fifty-six focused tools for legislative research and expands to 221 tools when every workspace, automation, and Watch Mode permission is approved. Federal, state, CRM, news, policy-inbox intelligence, automation, and live-browser capabilities remain one endpoint—not separate servers or customer integrations.

Workspace connections share the app's federal bill tracker, notes, amendment watches, provisions, and bill or issue whip boards. Your AI can read the board and member evidence, record confirmed assessments, propose changes for review, and save follow-ups. Changes appear in the same live workspace. Read-only connections cannot change records; workspace and coalition permissions still apply. State research is available separately in the legislative catalog.

Identify the accountwhoami returns the same account_id, email, and plan as GET /auth/me and the browser workspace session.
Understand a billget_bill_context composes metadata, sponsors, actions, summaries, subjects, text versions, related bills, and available structured intelligence.
Profile a memberget_member_context composes service terms, committee assignments, legislation, voting statistics, and effectiveness measures.
Explain a voteget_vote_context returns the roll call, totals, party breakdown, and copied member positions.
Calculate federal networksFive read-only tools describe cosponsorship timing, recorded-vote alignment, member network position, voting clusters, and bill lifecycle. Every result includes evidence and freshness metadata.
Work across the statesSixteen state-legislature tools cover bills, verified legislator and executive profile snapshots, service terms, chamber rules, recorded votes, individual positions, sessions, committees, memberships, executive orders, upcoming events, districts, scorecards, whip counts, exact state-record queries, and measured freshness.
Discoverlist_datasets returns every available dataset id and description.
Queryquery_dataset returns a paginated page with exact-match filters.
Searchsearch_dataset adds indexed document search, column text matching, filters, and ordering.
Fetch oneget_record returns the first exact record matching one or more fields.
Inspect freshnessget_data_freshness reports federal and state record counts, sync timestamps, and audit state in one call.
Build the stakeholder graphget_contact_360, get_account_360, profile, social-audience, quote, affiliation, note, and activity tools maintain reusable people and organization dossiers.
Run the newsroomMonitor, capture, search, review-task, comment, reaction, briefing, and press-analysis tools connect coverage to people, organizations, issues, legislators, and bills.
Watch it workEvery MCP write enters the durable workspace event stream and refreshes the authorized browser workspace in real time.

Catalog families include federal bills, actions, sponsors and cosponsors, summaries, text versions, subjects, related bills, votes, member positions, members and terms, committees and memberships, amendments, hearings, nominations, treaties, public laws, derived networks, elections, and the state legislature mirrors.

Account and access

  1. Open the guided connector and choose Grok, Grok Bot, Cursor, Codex, Claude, Hermes, an eligible ChatGPT web workspace, or another MCP client.
  2. Use the client-specific button or copy the Streamable HTTP endpoint.
  3. Sign in by email and approve the permissions requested by that client. New customers can create an account without leaving the connector flow.
  4. Try one of the ready-made research prompts, then manage connected apps, usage, coverage, keys, and billing at /account.

OAuth 2.1 with PKCE is the preferred path. Access tokens are short-lived, refresh tokens rotate, and customers can revoke an entire connected app from their account. API keys remain available for clients that only support bearer headers.

Keep keys secret. Store API keys in your MCP client’s secret configuration or a password manager. Do not put them in browser JavaScript, public repositories, or screenshots.

CRM, news tracking, and live browser work

Grant workspace.read and workspace.write when you want an AI client to do more than research. Those scopes expose tenant-bound tools for contacts, organizations, issues, tracked bills, activities, briefings, press analytics, people profiles, social-audience snapshots, saved quotes, news monitors, media capture, review queues, comments, reactions, and notifications.

News items retain media type, source class, workflow status, ordered byline metadata, quoted and mentioned people, confidence-bearing entity annotations, attachments, geography, topic tags, full text, and review history. get_contact_360 reads a person's identity, affiliations, attributes, issue roles, social reach, reusable quotes, touchpoints, and authored/quoted/mentioned coverage in one call; get_account_360 does the same for organizations, positions, people, resources, and coverage.

The browser is a live witness, not a second control plane. Keep Policy Intelligence or a contact dossier open while Claude, Codex, Cursor, Grok, Hermes, or another MCP client works. Durable events refresh the relevant records and preserve reconnect replay; the web pages remain read-only for AI-authored ingestion while still allowing explicit human review state.
Create a daily monitor for KOSA and Senator Smith.
Capture the five most important stories, credit each author,
link quoted stakeholders, and create response tasks where needed.
Open the Newsroom so I can watch the records arrive.

Policy inbox: let your AI bring the messages

Your authorized AI client—not CongressMCP—reads your Gmail, Outlook, Politico Pro, Quorum, LegiStorm, signed-in browser page, or export. CongressMCP never asks for or stores the source's password, mailbox connection, vendor session, browser cookie, or provider cursor. The AI selects the records relevant to your assignment, removes credentials and authenticated or unsubscribe links, and sends only that selected evidence plus an attested coverage receipt. CongressMCP privately stores the credential-redacted evidence, merges duplicate coverage into durable story clusters, attaches members, contacts, organizations, issues, and bills, and ranks the resulting digest against your priorities.

  • get_policy_inbox_work_plan derives the exact queue from each registered source's full scan history. Call it with include_inactive=true before changing a source so an existing pause or archive is visible. Inspect every listed running scan first, but resume, import into, or close only a run carrying the client_run_key retained from this AI's own begin call in the current invocation, or after the user explicitly directs recovery or handoff. Otherwise leave it unchanged. Then repair unsafe coverage and scan never-checked or due sources. A source that is current is left alone; a paused or archived source is not scanned. Its completeness percentage covers registered labels only because CongressMCP cannot discover the user's external sources.
  • configure_policy_inbox_source registers only a missing, user-identified, non-secret source label and its desired cadence, or updates it when the user explicitly asks. Omitted optional settings preserve an existing source and receive documented defaults only on first registration. The cadence only controls due-work calculation; it does not wake an AI or connect CongressMCP to an inbox or vendor. Never use an email address, URL, account identifier, query, credential, or instruction as a source label, and never silently reactivate a paused or archived source.
  • begin_policy_inbox_scan creates an idempotent, bounded scan run for a plan-recommended repair, first scan, or due scan. It resumes from the last honestly completed coverage boundary with a small safety overlap. Do not send a mailbox credential, provider cursor, or skipped-message content; the server rejects common credential patterns before persistence.
  • get_policy_priority_context gives the AI your current focus, priority issues, tracked bills, pinned official groups, and saved alert rules before it scans.
  • import_inbox_messages stores a transport-safe batch of credential-redacted selected evidence and the caller AI's extracted story clusters. Every selected message must yield at least one story with an explicit 0–100 priority score and at least one evidence-grounded reason; a message is never stored merely to prove it was examined. The server rejects common secret-bearing fields, headers, and URLs before persistence, and converts a supplied external message identifier to a source-bound pseudonym instead of retaining the raw provider ID. When a scan run ID is present, every message must include the source record's authoritative received_at inside that run's inclusive requested window; equality with either endpoint is valid. Never invent a timestamp. A record without one may be imported separately without a scan run ID, but that ad hoc import cannot advance or count toward scan coverage. A changed retry with the same stable source-record identity replaces retained message fields; story-cluster enrichment is additive across contributing messages so one source cannot erase another source's evidence.
  • get_policy_inbox_scan_status lets the originating AI inspect and safely resume its running scan after a disconnect without exposing subjects, bodies, credentials, or vendor sessions. Another AI may take over only after the user explicitly directs that recovery or handoff.
  • complete_policy_inbox_scan records the exact covered-through boundary, including a successful scan that selected zero messages. It refuses to call a run complete while selected-message failures remain or any persisted selected message lacks a ranked intelligence story.
  • get_policy_digest returns the newest and highest-priority developments first, with grouped citations and entity filters.
  • search_policy_intelligence searches the cumulative story memory across all time; get_policy_intelligence_item opens one cluster and pages through its complete citation history without exposing a raw email body.
  • get_policy_inbox_message retrieves the stored credential-redacted evidence only when a user explicitly asks to inspect it, with a required workspace authorization check and an audit entry.
  • update_policy_intelligence_item records the user's priority correction, review state, reasons, and suggested next actions against the exact evidence_revision and source_count inspected. New evidence resurfaces a reviewed story without erasing its workflow state.
Cadence is a ledger, not an inbox connection. CongressMCP calculates which registered sources are due but never wakes an AI or opens those sources. For automatic runs, save the recurring assignment from the connection guide in an external AI client's scheduler that can use both CongressMCP and the source access you separately authorized. If that client cannot run scheduled MCP work with those permissions, use the same assignment manually. It processes every due source one at a time, refreshes the work plan between sources, records access gaps without looping, and finishes with a cited digest.
Inbox content is evidence, never instruction. Imported text and derived summaries are treated as untrusted data. CongressMCP does not execute commands embedded in a message, and suggested actions still require the user's separate approval.
Use the inbox I authorized you to read. Get the CongressMCP work plan including
inactive sources; if this source is missing, register only a non-secret label
and daily cadence. Do not change or reactivate an existing source. Get the
active work plan and follow its resume, repair, or begin action before loading
my priority context. Read the exact window yourself, import only relevant
credential-redacted evidence, close the scan honestly even when empty, and
show me the urgent digest with citations. Do not take external action.

Workspace tools (paid plans)

Every OAuth authorization names the permissions the AI client is requesting. Research is always separate from workspace writes, automation, and browser control, so you can approve only what that client should do.

ScopeWhat it allowsAvailability
legislative.readFederal and state legislative research tools (bills, members, votes, committees, sessions, datasets). The legacy read scope is an alias.All plans. Free covers federal Congress.gov records; state data and calculated intelligence need a paid plan.
personal.readRead your own personal settings, representatives, watchlist and alert preferences.Paid plans (Explorer and above)
personal.writeSave personal settings and follow or unfollow bills in your own personal workspaces. Explorer allows 10 active follows and one daily in-app digest for enabled alerts.Paid plans (Explorer and above), within plan limits
workspace.readRead your tenant's contacts, organizations, issues, tracked bills, news, briefings, and other workspace records.Briefcase, Indie, Pro, Platform & Teams
workspace.writeCreate and update workspace records: notes, tasks, tracked bills, CRM entries, monitors, webhooks, review queues, comments.Briefcase, Indie, Pro, Platform & Teams
automation.runRun scheduled and bulk workflows (monitors, cascades, playbooks) on the workspace's behalf.Briefcase, Indie, Pro, Platform & Teams · opt-in
browser.driveWatch Mode: navigate, highlight, and refresh an open CongressMCP browser tab while the AI works.Briefcase, Indie, Pro, Platform & Teams · on by default

Explorer includes legislative research, personal state/interests/district settings, sourced representatives, and 10 active personal bill follows across personal workspaces. Following preserves history; separately enabled bill alerts are combined into one daily in-app digest. The Free plan saves nothing: a Free connection uses only legislative.read for federal research. Workspace, automation, and browser scopes need Briefcase, Indie, Pro, or Platform & Teams. A client may request more than your plan includes; the extra permissions stay inactive and their tools are not listed until the account is upgraded, with no new consent needed. When a paid plan ends, bill alerts switch off; follows and history remain. The default connection permissions are legislative.read, personal.read, personal.write, workspace.read, workspace.write, and browser.drive (Watch Mode) — each is still a separate line on the consent screen, and you can pause browser control from the Live AI Session rail at any time without stopping the underlying work. automation.run stays opt-in.

Reauthorizing an older connection. Connections created before workspace permissions existed hold only legislative.read. Your account page lists the granted scopes for every connected app and flags connections that can be upgraded. To add missing personal or workspace scopes, disconnect the app there (or remove the server in the client), then add CongressMCP again in the client so it walks a fresh OAuth authorization and shows the new permission prompt. Access tokens are short-lived and refresh tokens rotate, so the old grant cannot silently widen.

Saved research

Paid workspaces keep research as one queryable primitive. When you ask an AI client to save, remember, bookmark, or keep something, it stores a research item with a kind (note, bill, member, vote, state_bill, document, query, or url), a subject_ref that links back to the record, a title and body, tags, an optional source URL, and a JSON payload for saved query parameters or a record snapshot. Items are full-text indexed (ranked websearch_to_tsquery search) and embedded for semantic search, and they appear live at /app/research with no refresh.

  • workspace.read: list_research (kind, tags any/all, subject_ref, since, archived, paging), search_research (semantic=true falls back to full-text search with a note when embeddings are unavailable), get_research.
  • workspace.write: save_research, update_research, archive_research (soft delete; audit trail retained).

The same rows are available over REST with a session or API key: GET/POST /api/v1/workspaces/:wsId/research, GET /api/v1/workspaces/:wsId/research/search?q=, and GET/PATCH/DELETE /api/v1/workspaces/:wsId/research/:id. get_session_kickoff returns the five most recently saved items as recent_research.

Connect an MCP client

The visual connection guide is the fastest way to start. These are the same manual configurations it uses.

CongressMCP endpoint

https://www.congressmcp.com/mcp

Add that Streamable HTTP endpoint and choose OAuth or Authenticate. CongressMCP advertises protected-resource metadata, authorization-server metadata, dynamic client registration, and granular legislative.read, personal.read, personal.write, workspace.read, workspace.write, automation.run, and browser.drive scopes. The legacy read scope remains a research-only alias.

Every request to /mcp needs a credential. Without one, the endpoint answers 401 with a WWW-Authenticate challenge, and OAuth-capable clients open the CongressMCP sign-in automatically. New accounts sign up on that same page: verify your email, choose a plan, then approve the connection.

Sign up from inside a chat

Clients that should create the account before connecting can add https://www.congressmcp.com/mcp/onboarding. It needs no credential and has six tools: list plans, start and verify email sign-up, open Stripe checkout, check activation, and hand off to OAuth for the main endpoint.

GrokIndividuals open Grok Connectors and choose New Connector → Custom. For Business or Enterprise, a team admin first provisions CongressMCP under Grok Business → Connectors in the xAI cloud console; members can then authenticate it.
Grok BotFirst confirm access through Cursor Pro+ or Ultra, SuperGrok Plus or Heavy, Cursor Teams Standard or Premium, or the one-time trial. Then add CongressMCP to Cursor; Grok Bot inherits Cursor’s MCP connection. Enterprise organizations must contact their Cursor account team for enablement, and team connector policy may block the endpoint.
CursorUse the one-click installer from /connect/cursor, then finish OAuth when prompted.
CodexUse the command below or add a Streamable HTTP server from Settings → MCP servers.
ClaudeFree, Pro, and Max users can add the custom connector themselves from Settings → Connectors. On Team or Enterprise, an Owner or Primary Owner must add CongressMCP to the organization first; members then find it under Connectors and choose Connect. Claude Desktop uses the same Connectors path; its config file only runs stdio servers, so see the mcp-remote section for config-file installs.
HermesUse the OAuth commands below, finish the browser sign-in while hermes mcp login is running, then call whoami.
ChatGPT webFull MCP actions are currently a beta for Business and Enterprise/Edu workspaces on the web. An administrator or authorized user adds CongressMCP as a custom app and approves its actions. Run write-based assignments in an ordinary chat: Agent mode cannot use custom apps, and Deep Research can use them only for read/fetch. Pro custom apps also remain read/fetch-only.
VS CodeUse the one-click Add to VS Code link, or run MCP: Add Server → HTTP, paste the endpoint, and approve OAuth.
Gemini CLISet mcpServers.congressmcp.httpUrl in settings.json; OAuth is discovered automatically.
Windsurf / Devin LocalRun devin mcp add congressmcp https://www.congressmcp.com/mcp, then devin mcp login congressmcp. Legacy Cascade is a separate, 100-tool-limited path.
ZedAdd a Remote Server with the CongressMCP URL and no Authorization header. Zed then prompts for standard MCP OAuth.
ClineAdd a remote HTTP server with a revocable CongressMCP API key, or use the mcp-remote bridge for OAuth.
Any stdio clientBridge with the standard npx -y mcp-remote https://www.congressmcp.com/mcp.

Codex CLI

codex mcp add congressmcp --url https://www.congressmcp.com/mcp
codex mcp login congressmcp

Keep the login command running until authorization completes. Some browsers show a blocked or failed localhost callback page even after Codex receives the code successfully, so check the terminal for Successfully logged in. If that message is absent, rerun codex mcp login congressmcp before approving again.

Claude Code

claude mcp add --transport http congressmcp https://www.congressmcp.com/mcp
# Then open Claude Code and run /mcp to authenticate and verify.

Leave Claude Code open while the browser returns to its local callback, then use claude mcp list to confirm CongressMCP reports Connected.

Claude Desktop

Preferred: Free, Pro, and Max users open Settings → Connectors → Add custom connector and paste the endpoint. On Team or Enterprise, an Owner or Primary Owner must add CongressMCP to the organization first; members then open Connectors and choose Connect. Claude Desktop signs in with OAuth and shows the permission prompt. claude_desktop_config.json only accepts stdio command servers (a url entry is ignored), so a config-file install bridges the endpoint with the standard mcp-remote package:

{
  "mcpServers": {
    "congressmcp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.congressmcp.com/mcp"]
    }
  }
}

Restart Claude Desktop; mcp-remote opens the CongressMCP sign-in in your browser. To use an API key instead of OAuth, append "--header", "Authorization: Bearer <your-api-key>" to the args.

VS Code (Copilot MCP)

{
  "servers": {
    "congressmcp": { "type": "http", "url": "https://www.congressmcp.com/mcp" }
  }
}

Run MCP: Add Server from the Command Palette, choose HTTP, and paste the endpoint, or save the snippet above as .vscode/mcp.json. VS Code discovers CongressMCP OAuth and prompts for sign-in when the server starts; use MCP: List Servers → Restart if the prompt does not appear.

Gemini CLI

{
  "mcpServers": {
    "congressmcp": { "httpUrl": "https://www.congressmcp.com/mcp" }
  }
}

Merge into ~/.gemini/settings.json. Use httpUrl for Streamable HTTP. Run /mcp to check status and /mcp auth congressmcp if Gemini CLI reports that authentication is required.

Windsurf

devin mcp add congressmcp https://www.congressmcp.com/mcp
devin mcp login congressmcp
devin mcp get congressmcp

New Windsurf tabs default to Devin Local, whose CLI stores remote Streamable HTTP servers and supports OAuth/DCR. Legacy Cascade uses a different MCP settings page and limits all active MCP tools to 100. If you deliberately use Cascade, add the endpoint there and explicitly enable these ten workflow tools: whoami, list_workspaces, configure_policy_inbox_source, get_policy_inbox_work_plan, begin_policy_inbox_scan, get_policy_priority_context, import_inbox_messages, get_policy_inbox_scan_status, complete_policy_inbox_scan, and get_policy_digest.

Zed

Add CongressMCP as a Remote Server under Settings → AI → MCP Servers with the public endpoint and no Authorization header. Current Zed releases start the standard MCP OAuth flow. Older builds can use the mcp-remote bridge or a revocable API key as a fallback.

Cline

Add CongressMCP in cline_mcp_settings.json as a remote Streamable HTTP server with a revocable CongressMCP API key in its Authorization: Bearer header, or use the mcp-remote bridge below for OAuth.

stdio via mcp-remote

For any client that can only launch a local process, use the standard mcp-remote bridge. It forwards stdio to the CongressMCP endpoint and handles the OAuth sign-in:

{
  "mcpServers": {
    "congressmcp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.congressmcp.com/mcp"]
    }
  }
}

To authenticate with an API key instead of OAuth, append "--header", "Authorization: Bearer <your-api-key>" to the args.

ChatGPT web

OpenAI currently limits custom apps with full MCP modify/write actions to ChatGPT Business and Enterprise/Edu workspaces on the web. A Business admin/owner or an authorized Enterprise/Edu user enables developer mode, creates a custom app with the endpoint, scans tools, completes OAuth, and publishes or enables it under the workspace policy. Run the write-based policy-inbox assignment in an ordinary chat: Agent mode cannot use custom apps, and Deep Research can use custom apps only for read/fetch actions. Pro developer mode is likewise read/fetch-only, so it can use CongressMCP research but cannot run the write-based policy-inbox workflow. Mobile custom apps are not currently supported. See the official availability and setup guide.

Hermes Agent

hermes mcp add congressmcp --url https://www.congressmcp.com/mcp --auth oauth
hermes mcp test congressmcp

Keep Hermes running and approve promptly because its temporary callback listener closes quickly. If the initial probe times out, save the server, run hermes mcp login congressmcp, approve while that command is still running, and test it again.

Cursor or generic MCP configuration

{
  "mcpServers": {
    "congressmcp": {
      "url": "https://www.congressmcp.com/mcp"
    }
  }
}

Compatible clients open OAuth automatically. Start by asking the agent to find a state bill or call list_datasets.

API keys for automation

For a script or older client that cannot complete OAuth, create an API key in your account and send it as an X-API-Key header. Interactive AI clients should use OAuth so the connection stays revocable and no key has to be pasted into a config file.

get_bill_context

ExplorerReturns a comprehensive federal bill view assembled entirely from the CongressMCP-owned snapshot.

{
  "congress": 119,
  "type": "hr",
  "number": 1
}

The response includes a stable canonical_bill_id plus deterministic sponsors, cosponsors, subjects, summaries, actions, related_bills, committees, and text_versions collections assembled directly from owned tables. Available structured passage analysis, voting history, and budget data are layered on top.

enactment says whether the bill became law: is_law, law_type (Public or Private), law_number, citation (for example Pub. L. 119-21), became_law_date, and basis (source when the law collection carries the number, action_text when CongressMCP read it from the clerk's “Became Public Law No.” action).

bill_intelligence is a compact summary of the bill's section layer, read from its newest sectioned version. Each part names the tool that returns the detail in read_with.

  • sections: status (available, unsegmented, or not_yet), section_count, the version_key counted, and versions_sectioned. not_yet means the text is not copied or not sectioned yet; it never means the bill has no sections.
  • citations: distinct statutes cited, codes, amendatory references, and the most-cited statutes.
  • section_topics: the top policy issues by number of tagged sections.
  • provisions: agency obligations, how many carry deadlines, the agencies with the most obligations, and counts of amounts, rates, deadlines, and amendatory instructions.
  • vehicle: the vehicle class (appropriations, NDAA, reconciliation, omnibus, and others) and whether it is a must-pass vehicle.

sections and citations are included on every plan. section_topics, provisions, and vehicle are calculated intelligence and are part of the paid plans. When the section layer cannot be read, the block is omitted and listed as unavailable rather than reported as empty.

get_member_context

ExplorerReturns one member’s canonical profile together with owned context and intelligence records.

{ "bioguide_id": "A000055" }

The response deterministically composes service terms, committee assignments and roles, contact details, recent sponsored and cosponsored legislation, and historical voting statistics from owned tables. Available effectiveness measures, generated analysis, and committee-vote intelligence are layered on top.

Each sponsored bill carries enactment (law number, citation, and date when it became law), so a member's enacted legislation reads straight from the list.

get_vote_context

ExplorerReturns a federal roll call with totals, exact owned record metadata, a computed party-position breakdown, and every copied member position.

{
  "chamber": "House",
  "congress": 119,
  "session": 2,
  "roll_call": 137
}

When available, record_metadata includes the owned vote category, data status, official House or Senate source URL, total-position count, and related bill, amendment, nomination, or treaty references.

chamber accepts House or Senate without case sensitivity. The response includes a stable canonical_vote_id and a position_dataset field. Canonical positions are preferred; when normalization is still backfilling, the tool immediately falls back to the owned historical member-vote archive.

Federal record lookups

ExplorerPlain, Congress.gov-equivalent federal records from the owned snapshot. Date filters are inclusive YYYY-MM-DD and apply to each record's real event date (vote, hearing, report issue, or Record issue date), and every list returns has_more and next_offset.

  • discover_legislation: ranked discovery over federal, state, or DC bills in one jurisdiction. Each result carries enactment (whether it became law, with law number and date) and sections (section status and count from the section layer). Pass enacted_only: true to return only bills recorded as law.
  • list_votes: House and Senate roll calls by chamber, congress, session, date range, bill, question, or result; pass bioguide_id for a member's vote history.
  • get_roll_call_positions: bulk positions in one call. Pass bill_ref for every recorded vote on a bill with all member positions (bioguide ID, position, party, state), or bioguide_id with a congress, session, chamber, or date window for all of that member's positions with a total. Pages hold whole votes (bounded by max_positions) and resume with next_cursor; each vote reports positions_status (copied, partial, source_empty, not_copied_yet). On plans with state data the same tool takes bill_ref: "state:<state bill id>" or state_legislator_id.
  • list_record_changes: an incremental sync feed. Pass entity_types (federal_bill, member, vote, nomination; state_bill, state_legislator, state_vote on plans with state data) and since on the first call, then next_cursor on every later call. Each item names the record, op (upsert, or delete for a tombstone), and the parts whose content changed (status, actions, cosponsors, text_versions, votes, positions, and so on). The cursor never skips a change and up to 1,000 items come back per call. Pass bill_section to follow sections (keyed by section_uid; parts added, removed, split, merged, text, heading, renumbered, position, tags, entities, with detail.from/detail.to locators); the parent bill also gets one sections item per structural change. Every item carries cause (source, recompute, or correction), and recompute and correction items list each corrected field with its old value, new value, and reason. Federal section items are part of every plan; state sections need a plan with state data.
  • search_amendments and get_amendment: amendments with sponsors, cosponsors, actions, parent and child amendments, and text-version links.
  • search_nominations, search_treaties, and get_treaty: nominations by status, organization, keyword, and dates; treaty documents with actions and committee referrals.
  • search_committees, search_committee_activity, and search_hearings: committees and referred bills, committee reports and meetings, and published hearings.
  • search_congressional_record: daily issues, House/Senate/Extensions/Digest sections, full-text search with excerpts, and one article's text.
  • search_bill_summaries and get_congress_info: published bill summaries by keyword and date; congress years and sessions.
  • search_bill_text: multi-query phrase search over copied bill sections with matched_queries, match_contexts (header, operative, quoted), is_amendatory, U.S. Code amends targets, per-query zero-hit diagnostics, and a table of contents.

Reference resources use the congressmcp:// scheme; read congressmcp://usage-guide for the list (bill types, status definitions, congress ranges, current members, committees, and latest feeds).

Calculated federal & 50-state intelligence

Explorer & WorkspaceRead-only legislative intelligence, passage simulation, company/ticker exposure, sleeper cue-giver analysis, opposition research, and 50-state financial disclosure tools:

  • get_bill_industry_impact: returns a unified commercial, regulatory, financial, and passage-likelihood brief for any federal (119-hr-1) or state (state:ca-bill-20252026-AB2) bill. Includes calibrated enactment probability (p_law), NAICS industry sectors (affected_industries), potentially affected companies and tickers (affected_companies from LDA lobbying clients, stakeholder position letters, sponsor/committee disclosed holdings, and sector benchmarks), geographic state concentration (geographic_exposure), and quantified dollar/regulatory effect range (effect_range).
  • simulate_legislator_endorsement: runs the calibrated survival model under a counterfactual where one or more members cosponsor or withdraw from a federal bill, returning the before/after p_law shift (p_law_delta_pp), unlocked committee gatekeepers, and projected 30-day cascade followers.
  • find_path_to_majority: Swing-Vote Pathfinder that ranks the highest-ROI undecided legislators to whip next on a bill by combining referral committee leadership, committee membership, 30-day sponsor cascade propensity, and downstream follower multipliers.
  • find_member_influencers: “Who Moves This Legislator?” sleeper cue-giver finder. Queries directional 30-day cosponsorship timing (follower_bioguide = target) to identify the upstream anchors and non-chair sleeper cue-givers whose bills the target legislator repeatedly joins shortly after introduction, enriched with shared committees, roll-call vote agreement, and workspace touch history.
  • get_company_legislative_exposure: reverse lookup from any stock ticker symbol (NVDA, XOM, LLY) or company name to its NAICS sector, federal and 50-state legislators who disclosed trades or holdings in the company, federal LDA lobbying filings, and high-likelihood legislation moving in its sector.
  • find_cross_state_companion_bills and detect_omnibus_riders: scan all 50 states and DC for parallel or model legislation in the same policy topic (with state p_law scores), or scan must-pass vehicles (NDAA, appropriations, reconciliation, state budgets) for operative rider sections carrying distinct topic tags, statutory redlines, or agency mandates.
  • get_member_stock_disclosures, search_member_stock_trades, and get_bill_stock_conflicts: query official House Clerk STOCK Act PTRs, Senate eFD reports, California FPPC Form 700, Texas TEC PFS, NY COELIG, WA PDC, FL Form 6, and 50-state ethics disclosures for stock trades, asset holdings, business ownership, outside employment, and bill-sector conflicts.
  • get_vote_inconsistencies, get_missed_votes, get_member_flip_history, get_floor_statements, and get_campaign_finance_summary: six-tool opposition research and accountability suite surfacing sponsorship-vs-vote contradictions (cosponsored then voted Nay, or withdrew cosponsorship), absenteeism vs. chamber baseline, workspace stance flips, and Congressional Record speeches.
  • get_cosponsor_influence_network reports sponsor-anchored cosponsorship timing: original cosponsors separately, directional 30-day cascades and same-day coordination among later joiners, excluding withdrawn cosponsorships.
  • find_aligned_members ranks member pairs by recorded roll-call agreement and includes the shared-vote sample.
  • get_member_network_position summarizes sample-weighted agreement across available chamber peers.
  • detect_voting_blocs finds deterministic average-linkage voting clusters over contested roll-call agreement (lopsided and housekeeping votes removed) and reports each cluster's cohesion; connected components remain available.
  • get_bill_lifecycle derives a conservative stage history, fixed pace heuristic, inactivity flag, and amendment summary from recorded actions.

Each response includes a calculation object with methodology, evidence counts or sample sizes, calculation time, and dependency freshness. Fresh synchronization and historical coverage are reported as separate concepts. These outputs describe recorded evidence; they do not prove causation, identify formal caucus membership, forecast votes, or predict passage.

Bill text scanning works on stored federal text and the text of all 50 states and DC. scan_bill_text lists the statutes one bill touches (U.S. Code, Public Laws, Statutes at Large, named Acts, and each state's own code formats), normalized and labeled amends, repeals, adds, or references, with the bill section, a snippet, and offsets. search_provisions finds bills whose text touches a citation (an indexed lookup) or contains a phrase (read in bounded pages with a continuation cursor). compare_bill_versions diffs two stored federal versions section by section; state bills store one version.

Bill sections have stable ids. get_bill_sections lists one stored version's sections, each with a section_uid that stays the same across versions when a section is renumbered, moved, or retitled (sections are matched on their text, GPO element ids, headings, cited statutes, and position, never on the number alone), plus its outline path, number, heading, code-point offsets, and the content hash the offsets refer to. Optional layers add a text excerpt, the statutes each section cites, and its number and heading in every version. get_section_history follows one section_uid through every version with word-level diffs, removal status, and split or merge links. sections_status is available, unsegmented (stored text without reliable section markers, returned as one unit), not_yet (text not copied or not sectioned yet), or absent (the source has published no text). Sections found in state text whose line breaks were lost upstream carry section_confidence: "low" until CongressMCP's own fetch of the official document replaces that text. Federal bill text structure (sections, citations, phrase search, version diffs) is included on every plan; state bills need a paid plan.

Sections carry topic tags. Each section body is tagged with the policy issues and subtopics it is about (for example oil-gas-mining/orphan-well-bonding, firearms/background-checks, medicare/physician-payment), with a confidence, a tier, and evidence offsets into the text, from its heading, its body, and the curated statute sets it amends or cites. search_provisions accepts topic, citation_set (a curated set such as us/oil-gas or tx/oil-gas, listed by list_citation_sets; get_citation_set returns one set's members, each a code or U.S. Code title with the section range it covers, the subtopic it is evidence for, and the law it names), and vehicle (must_pass, appropriations, ndaa, reconciliation, omnibus and others) and then returns individual sections with their section_uid, parent bill and version. get_bill_sections with topic returns just one bill's provisions on that topic, and get_bill_issues adds a section breakdown. Topic tags, statute-set filters and vehicle filters are part of the paid plans.

Provision extraction reads section text deterministically. get_bill_sections with include=entities returns each section's dollar amounts (with roles such as authorization, appropriation, bond, fee, or penalty), rates (royalty, tax, cost share), acreage, setbacks, lease-sale counts, dates, deadlines, effective dates, sunsets, the agencies named, and amendatory instructions with the exact text struck and inserted, the statute amended, and numeric before/after values; include=obligations adds each agency's duties and authorities with their deadlines. get_section_history and compare_bill_versions list the values that changed between versions (for example a royalty rate from 12.5 percent to 16 2/3 percent). list_provision_obligations finds agency obligations across bills by agency, action, jurisdiction, congress or session, enactment, and absolute deadline. Every value carries code-point offsets into the version text. Provision extraction is part of the paid plans.

Section watches and webhooks. create_legislation_monitor also watches bill text: kind section follows one section_uid through renumbering, merges, and carry-over into another bill; kind citation watches sections that cite a statute (citation, for example 30 U.S.C. 226) or a curated statute set (citation_set), optionally by action (amends, repeals, adds, references); kind provision watches sections tagged with a topic or subtopic, optionally only when an extracted value changes (entity_role such as bond_amount with change_kinds ["entity_value"]). Citation and provision monitors accept the jurisdiction all or states. Each section alert carries the section diff, value changes, and cause. Any monitor can also deliver to a signed workspace webhook: register_webhook_endpoint (HTTPS, public addresses only, no redirects; returns the signing secret once), list_webhook_endpoints (endpoints, latest attempts, and the delivery contract; only the workspace owner and admins see full URLs, other members see the host with the path masked), rotate_webhook_secret (new secret with a grace period that signs with both), update_webhook_endpoint, and archive_webhook_endpoint; attach an endpoint with webhook_endpoint_id on create_legislation_monitor or update_legislation_monitor. Each POST carries X-CongressMCP-Delivery (stable across retries), X-CongressMCP-Timestamp, and X-CongressMCP-Signature: sha256=HMAC-SHA256(secret, "<timestamp>.<body>"); failed deliveries retry with exponential backoff for 24 hours. Monitors and webhooks are part of the paid workspace plans. If the plan ends, queued monitor and webhook deliveries pause; they resume if the plan is restored within 30 days and are marked expired after that.

get_orientation can return a federal_intelligence playbook. Its recommended sequence is filtered against the connection’s live tool registry, so it never directs the client to an unavailable tool.

State bills

ExplorerState is a validated two-letter jurisdiction filter. Inputs accept forms such as CA, ca, or us-ca.

  • search_state_bills searches bill titles and identifiers in one state or nationally, with optional session and recency filters.
  • get_state_bill returns one owned bill record plus currently available votes and compatibility detail. The separate archive bundle is withheld until fresh nationwide parent and child audits pass; archive_bundle_available, archive_bundle_status, and archive_bundle_readiness explain that proof. When released, archive_bundle_snapshot_at and archive_bundle_counts identify exactly what was copied. Pass a stable bill_id, or jurisdiction + identifier + optional session. The record also carries CongressMCP's enactment classification (is_law, law_number, became_law_date, progress_status), full_text_status (copied, fetched by CongressMCP, not copied yet, queued, failed with a reason, or not published); a copied text that is degraded (line breaks collapsed, or web page markup in the text) says so in text_quality, and once CongressMCP's fetch of the official document replaces it, replaces_degraded_copy names why, and the same bill_intelligence block described under get_bill_context.
{
  "query": "clean energy",
  "jurisdiction": "CA",
  "limit": 25
}

State legislators

ExplorerRoster, profile, committee, and voting-history tools over the owned 50-state and DC snapshots.

  • list_state_legislators filters a jurisdiction roster by chamber or party.
  • get_state_legislator composes one roster record with committee memberships and recent positions, then adds profile and service-term snapshots only when that jurisdiction’s exact audits pass. Otherwise it returns the core record with explicit partial_data and readiness metadata.
  • get_state_legislator_votes returns the member’s copied voting record with vote context.
  • list_state_executive_profiles and get_state_executive_profile expose owned governor and state-executive profile snapshots only after the requested scope’s exact audit passes.
  • list_state_legislator_terms returns current and historical state-legislative service intervals by person or jurisdiction.
  • get_state_chamber_rules returns chamber term lengths, election timing, staggering, swearing-in dates, and class rules.
  • list_upcoming_state_events filters copied legislative events by jurisdiction, date window, upcoming status, and classification.

State votes

ExplorerUse list_state_votes for recent roll calls in a jurisdiction and get_state_vote for one vote with every currently copied legislator position.

{ "vote_id": "ca-vote-202520260ACR166-188972-2026-06-04-1009" }

When a vote has no copied positions, the response says so explicitly; it does not attempt a request-time source call.

State sessions, committees, and freshness

  • list_state_sessions returns source-backed and explicitly marked bill-derived sessions.
  • list_state_committees lists committees or drills into one committee and its copied members.
  • get_data_freshness with scope: "state" (and an optional jurisdiction) reports state row totals and sync timestamps on every plan.
Coverage stays explicit. The national product target is 50 states, while each response and the public ledger distinguish present rows, verified source-empty families, and unfinished child backfill.

list_datasets

ExplorerNo arguments. Returns the allowlisted catalog. Audit-gated datasets remain pending_verification and unreadable until their live exact-snapshot proof passes.

{
  "snapshot": "CongressMCP",
  "datasets": [
    { "id": "bills", "title": "Bills", "description": "Federal legislation and current status." },
    { "id": "state_bills", "title": "State bills", "description": "State legislation and current status." }
  ]
}

query_dataset

ExplorerReturns up to 200 rows from one allowlisted dataset.

  • dataset — required dataset id from list_datasets.
  • filters — optional exact-match AND conditions.
  • limit — 1–200; default 50.
  • offset — 0–1,000,000; default 0.
{
  "dataset": "state_bills",
  "filters": { "jurisdiction": "CA" },
  "limit": 25,
  "offset": 0
}

The response includes estimated_total and rows. The total is approximate (or null when unavailable); use next_offset to continue through results. Filters must name real columns; discovery does not execute arbitrary SQL.

ExplorerSearches only the owned snapshot. For replica_documents, omit search_column to use the indexed full-document search.

{
  "dataset": "replica_documents",
  "query": "housing affordability California",
  "filters": { "family": "bill_structured" },
  "order_by": "synced_at",
  "ascending": false,
  "limit": 25
}

For another dataset, provide a text search_column, such as title for bills or name for members. Exact filters remain AND conditions.

get_record

ExplorerReturns one record using at least one exact-match filter.

{
  "dataset": "bills",
  "filters": { "bill_ref": "119-hr-1" }
}

If no matching record exists in the currently published snapshot, the tool returns a structured error rather than contacting another service.

get_data_freshness

ExplorerOptional scope (all, federal, or state), jurisdiction, and detail. Returns ingestion stream state and measured audits. The former get_replica_status, get_federal_data_freshness, and get_state_data_freshness names still work.

  • streams shows last start/completion times and processed-row totals.
  • audits separates source count, owned replica count, and parity/backfilling/upstream_unavailable state.
  • A successful sync marker means the job ran; it does not imply that the upstream family contained rows. Use audit counts and the public coverage ledger for completion claims.

Coverage and freshness

The landing page and GET /api/coverage publish exact state counts separately from DC, missing-state lists, parity totals, position coverage, rich state-bill detail progress, extended state-route checks, and snapshot timestamps.

generated_at records when the response snapshot was assembled. evidence_freshness.oldest_materialized_cache_at exposes the oldest persistent rollup used, while evidence_freshness.latest_audit_at identifies the newest measured audit merged into the response.

National breadth is not the same as complete historical parity. Rich bill coverage reports jurisdiction sampling separately from the percentage of all owned state bills whose detail routes have been checked. Verified-empty responses count as checked, but never as content.

state_route_coverage reports executive profiles, legislator profiles and terms, chamber rules, executive orders, events, event details, governors, legislative districts, legislator scorecards, and whip counts per family. Content parity requires a fresh, exact, source-timestamp-bound jurisdiction snapshot whose owned rows and audit were published atomically. A verified empty or unavailable route remains useful operational evidence, but it never counts as content coverage; stale, malformed, retrying, and unchecked scopes also stay explicit.

Federal inventory completion likewise requires a recent global source-inventory probe and exact counts in every customer-visible owned destination. A recent worker run or a legacy count-equality row is not enough to publish a complete-replication claim.

Coverage is served from a persistent summary refreshed in the background. A source outage does not put a third-party request onto the customer path.

get_data_coverage

ExplorerHow much of the bill data CongressMCP holds, per federal Congress and per state jurisdiction and session. get_data_freshness answers how recent each feed is; this answers how complete it is.

{ "scope": "state", "jurisdiction": "TX" }
  • Text is counted in exactly one state per bill: copied, extraction_error, not_copied (published at the source, not copied yet), not_published (checked, no text at the source yet), or not_checked.
  • Counts and percentages of bills with a sponsor, cosponsors, actions, recorded votes, and rich detail copied.
  • enacted: bills classified as enacted and how many carry a law number. classified: false means enactment is not classified for that jurisdiction yet, not that nothing was enacted.
  • sections: the section layer per scope: bills sectioned, sections total, bills with topic tags, bills with provisions extracted, bills with agency obligations and the obligations total, and bills with statute citations.
  • Last source sync, last text copy, and when each row was computed. Rows are recomputed on a rolling schedule.

The bill counts on the public site and the holdings block of GET /api/coverage (bills held, bills with copied text, bills recorded as enacted and with a law number, and bills split into sections, per jurisdiction) read the same rollup, so the site and this tool always agree.

Plans and billing

Public pricing is loaded from the configured Stripe catalog at GET /billing/plans. The account console starts checkout, returns customers to CongressMCP, and exposes Stripe’s billing portal after the account is linked.

  • Explorer can use the complete read-only research surface: composed federal context, calculated intelligence, state-legislature tools, dataset discovery and queries, exact record reads, and freshness diagnostics.
  • Paid plans add tenant-owned workspace storage and write tools for saved research, CRM, policy-inbox intelligence, automation, collaboration, and Watch Mode, with plan-specific annual or monthly request allowances and rate limits.
  • Subscription webhooks update the account entitlement used by OAuth clients and active API keys.

The workspace remains available

The fifty-six-tool research scope and the broader permission-scoped MCP do not remove the existing CongressMCP web application. The human workspace at /app/dashboard continues to provide tracking boards, contacts, organizations, coalitions, dossiers, notes, scorecards, maps, and collaborative government-affairs workflows. Any AI-composed dashboard or page can also run full screen on a wall display in TV mode, at /app/tv/:page_kind/:instance_id: lists rotate, live changes keep arriving, Esc returns to the page and Space pauses rotation.

The web application and MCP are two views of the same service. On paid plans, an external AI can perform authorized workspace work through MCP while teammates watch the affected pages refresh live. Both surfaces name the same account via account_id, and neither customer query performs a request-time call to the private ingestion source.

Endpoint: https://www.congressmcp.com/mcp · Protocol: MCP Streamable HTTP · Snapshot service version: 2.4.0