# CongressMCP

> Federal and 50-state legislative data for AI: bills, text, votes, members, and committees.

- name: com.congressmcp/congressmcp
- version: 2.3.0
- connection class: R2 (oauth_consent_once)
- trust: 82/100 flags: no-repository
- quality: 96/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.congressmcp%2Fcongressmcp
- tools: https://api.protogrid.dev/v1/servers/com.congressmcp%2Fcongressmcp/tools

**An agent can connect after a one-time OAuth consent by a human.** Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "congressmcp": {
      "type": "http",
      "url": "https://www.congressmcp.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 99
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-98% +updated-24d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 96/100 (strong)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### authorization: 83 (weight 15)

- pass `auth.prm`: Protected Resource Metadata (RFC 9728) published
- pass `auth.as_metadata`: authorization server metadata reachable
- warn `auth.cimd`: only Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMD
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,173 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 6, about 1,173 tokens to load them all
- tool set hash: 975474fb94665cc4b5bfc4ba2be00709
- badge: [![protogrid quality](https://protogrid.dev/badge/com.congressmcp/congressmcp.svg)](https://protogrid.dev/servers/com.congressmcp/congressmcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://www.congressmcp.com/mcp (streamable-http, auth oauth2, reachable true, uptime30d 0.97849464)

## Packages

_none_

## Tools (6)

- `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.
- `create_subscription_checkout`: 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.
- `get_subscription_status`: 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.
- `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.
- `start_email_signup`: 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.
- `verify_email_signup`: 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.
