CongressMCP · MCP docsConnect your AICreate accountAccountWorkspace

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 forty-three 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_replica_datasets returns every available dataset id and description.
Queryquery_replica_dataset returns a paginated page with exact-match filters.
Searchsearch_replica_dataset adds indexed document search, column text matching, filters, and ordering.
Fetch oneget_replica_record returns the first exact record matching one or more fields.
Inspect freshnessget_replica_status reports stream timestamps, audits, source counts, replica counts, and parity state.
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.

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
personal.readRead your own personal settings, representatives, watchlist and alert preferences.All plans
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.All plans, within plan limits
workspace.readRead your tenant's contacts, organizations, issues, tracked bills, news, briefings, and other workspace records.Paid plans
workspace.writeCreate and update workspace records: notes, tasks, tracked bills, CRM entries, monitors, review queues, comments.Paid plans
automation.runRun scheduled and bulk workflows (monitors, cascades, playbooks) on the workspace's behalf.Paid plans · opt-in
browser.driveWatch Mode: navigate, highlight, and refresh an open CongressMCP browser tab while the AI works.Paid plans · 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. Workspace, automation, and browser scopes require a paid plan; an Explorer account can approve them, but the tools return a plan-required result until the account is upgraded. 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.

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.

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

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.

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.

Calculated federal intelligence

ExplorerFive read-only calculations are available directly in the legislative research scope:

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.

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.

{
  "query": "clean energy",
  "jurisdiction": "CA",
  "limit": 25
}

State legislators

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

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

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_replica_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_replica_dataset

ExplorerReturns up to 200 rows from one allowlisted dataset.

{
  "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_replica_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_replica_status

ExplorerNo arguments. Returns ingestion stream state and measured replica audits.

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.

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.

The workspace remains available

The forty-three-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.

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