io.github.cyanheads/openstates-mcp-server

io.github.cyanheads/openstates-mcp-server

Search bills, legislators, committees, and events across all 50 US states, DC, and 5 US territories.

Connect this server

Add this to your MCP client config — claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor).Suits: Claude Desktop · Cursor.

{
  "mcpServers": {
    "openstates-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/openstates-mcp-server@0.4.0"
      ],
      "env": {
        "OPENSTATES_API_KEY": "<your OPENSTATES_API_KEY>",
        "OPENSTATES_DAILY_REQUEST_BUDGET": "250",
        "OPENSTATES_REQUEST_TIMEOUT_MS": "45000",
        "OPENSTATES_TOTAL_REQUEST_BUDGET_MS": "90000",
        "MCP_LOG_LEVEL": "info"
      }
    }
  }
}
Environment variables
  • OPENSTATES_API_KEYrequiredOpen States API key from open.pluralpolicy.com. Required to make any API requests.
  • OPENSTATES_DAILY_REQUEST_BUDGETMaximum upstream Open States requests per rolling 24 hours. Rejects before the request is issued once spent. Defaults to the v3 free-tier daily cap.
  • OPENSTATES_REQUEST_TIMEOUT_MSPer-attempt upstream request deadline in milliseconds (minimum 1000). Expiry is non-retryable. Open States answers a scoped query in under a second to ~57s and its gateway gives up near 60s.
  • OPENSTATES_TOTAL_REQUEST_BUDGET_MSWall-clock ceiling in milliseconds for one call across every retry attempt and the backoff between them. Bounds a slow upstream that keeps failing retryably. Must be at least OPENSTATES_REQUEST_TIMEOUT_MS; startup rejects a lower value.
  • MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').

A starting point — check the repository for exact arguments and setup. Restart your client after editing the config.

Category
Developer Tools
Version
0.4.0
Registry
active
Published
10/28/2026

Remotes

  • streamable-httphttps://openstates.caseyjhand.com/mcp
Browse all Developer Tools →

Add the badge to your site

Show visitors that io.github.cyanheads/openstates-mcp-server is listed here — it’s also the link we check for a free listing.

io.github.cyanheads/openstates-mcp-server — listed on Serverdex

HTML — for your website

<a href="https://serverdex.io/server/io-github-cyanheads-openstates-mcp-server?utm_source=badge"><img src="https://serverdex.io/brand/badge.svg" alt="io.github.cyanheads/openstates-mcp-server — listed on Serverdex" width="123" height="40" loading="lazy"></a>

Recommended. A dofollow link from your own domain is the one that counts for search engines, and it's the link we check for a free listing.

Markdown — for your README

[![io.github.cyanheads/openstates-mcp-server — listed on Serverdex](https://serverdex.io/brand/badge.svg)](https://serverdex.io/server/io-github-cyanheads-openstates-mcp-server?utm_source=badge)

Nice for visibility, but GitHub marks README links nofollow, so it doesn't pass authority. Use the HTML badge on your site as well.