CongressMCP
Federal and 50-state legislative data for AI: bills, text, votes, members, and committees.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"congressmcp": {
"url": "https://www.congressmcp.com/mcp"
}
}
}Remote endpoints
https://www.congressmcp.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
π’list_subscription_plans
Use this before checkout to show the current CongressMCP plans and exact server-configured prices. Amounts are integer minor currency units, such as cents, and listing plans never starts a checkout or charge. Do not guess a price or use a plan identifier that is not returned here.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}π‘start_email_signup(email, name, accepted_terms)
Use this when the user wants to create or recover a CongressMCP account in chat. It sends a six-digit, 15-minute code to the supplied email after explicit acceptance of the terms and privacy policy. It does not start a subscription, expose whether an account already exists, or charge anything.
Input Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"maxLength": 254,
"description": "Email address that will own the CongressMCP account."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Person or organization name for the account."
},
"accepted_terms": {
"type": "boolean",
"const": true,
"description": "True only after the user explicitly accepts https://www.congressmcp.com/terms and https://www.congressmcp.com/privacy."
}
},
"required": [
"email",
"name",
"accepted_terms"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}βͺverify_email_signup(email, code)
Use this after start_email_signup when the user provides the six-digit code from their email. It verifies email control, activates the free account when needed, and returns a short-lived onboarding token for checkout and status calls. The token is not an OAuth token or API key and cannot access CongressMCP research or workspace data.
Input Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"maxLength": 254,
"description": "The same normalized account email used to request the code."
},
"code": {
"type": "string",
"pattern": "^\\d{6}$",
"description": "Six-digit code from the CongressMCP verification email."
}
},
"required": [
"email",
"code"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π‘create_subscription_checkout(onboarding_token, plan_id, idempotency_key, confirm)
Use this only after email verification, a plan selection from list_subscription_plans, and explicit user confirmation. It creates an idempotent Stripe-hosted subscription Checkout tied to the verified account and returns the external checkout URL. Stripe collects card details outside chat, and creating the URL does not itself complete the purchase.
Input Schema
{
"type": "object",
"properties": {
"onboarding_token": {
"type": "string",
"pattern": "^onb_[a-f0-9]{64}$",
"description": "Short-lived onboarding token returned by verify_email_signup."
},
"plan_id": {
"type": "string",
"pattern": "^[a-z0-9_-]{1,40}$",
"description": "Exact plan identifier returned by list_subscription_plans."
},
"idempotency_key": {
"type": "string",
"format": "uuid",
"description": "Fresh UUID for this checkout; reuse only for the identical retry."
},
"confirm": {
"type": "boolean",
"const": true,
"description": "True only after the user explicitly confirms creation of checkout for this exact plan and displayed price."
}
},
"required": [
"onboarding_token",
"plan_id",
"idempotency_key",
"confirm"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_subscription_status(onboarding_token)
Use this after checkout to check whether Stripeβs signed webhook has activated the verified account. It reads the current server-side entitlement and never retries payment or changes billing. When paid is true, use connect_congressmcp_account to authorize this chat.
Input Schema
{
"type": "object",
"properties": {
"onboarding_token": {
"type": "string",
"pattern": "^onb_[a-f0-9]{64}$",
"description": "Short-lived onboarding token returned by verify_email_signup."
}
},
"required": [
"onboarding_token"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}βͺconnect_congressmcp_account
Use this after subscription activation when the user wants this chat to access CongressMCP. It returns the MCP OAuth challenge so the host can open CongressMCPβs authorization and consent flow. Never ask the user to paste a password, API key, access token, or refresh token into chat.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence