Openstates MCP Server

Search bills, legislators, committees, and events across all 50 US states, DC, and Puerto Rico.

Remote serverstreamable-http

What is the Openstates MCP server?

If you already use Openstates, the openstates mcp server is the piece that lets your assistant work with it directly. Search bills, legislators, committees, and events across all 50 US states, DC, and Puerto Rico.

What the server does

  • Declarative tool, resource, and prompt definitions — single file per primitive, framework handles registration and validation
  • Unified error handling — handlers throw, framework catches, classifies, and formats
  • Pluggable auth: none, jwt, oauth
  • Swappable storage backends: in-memory, filesystem, Supabase, Cloudflare KV/R2/D1
  • Structured logging with optional OpenTelemetry tracing
  • STDIO and Streamable HTTP transports

Installation

Because this one is hosted, setup is mostly authentication — you point your client at the endpoint and approve access. Nothing runs on your machine, so there is no runtime to keep patched.

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • openstates_search_bills — Search state legislative bills across all covered US jurisdictions with full-text search, jurisdiction/session filtering, subject tags, and sponsor
  • openstates_get_bill — Fetch full detail for a specific bill by OCD ID or three-part path (jurisdiction + session + bill_id)
  • openstates_search_people — Search state legislators and officials within a jurisdiction by name, chamber, or district, or fetch specific people by OCD person ID
  • openstates_get_legislators_by_location — Find every legislator representing a geographic coordinate (latitude/longitude) — state legislators and the federal delegation
  • openstates_search_committees — List committees for a jurisdiction (experimental — not all states have coverage)
  • openstates_get_committee — Fetch committee detail by OCD organization ID, with optional membership roster
  • openstates_search_events — Search hearings, floor sessions, and committee meetings (experimental)
  • openstates_get_event — Fetch full event detail including agenda, participants, and media links
  • openstates_list_jurisdictions — List all 56 jurisdictions (50 states, DC, and 5 US territories) covered by Open States with session identifiers and coverage metadata
  • openstates_get_jurisdiction — Fetch full metadata for a specific jurisdiction including all legislative sessions and their identifiers
  • Prerequisites — The Prerequisites tool exposed by this server
  • Installation — The Installation tool exposed by this server

Credentials and setup notes

Configuration is passed through the environment: MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, OPENSTATES_API_KEY, OPENSTATES_API_BASE_URL, MCP_HTTP_ENDPOINT_PATH, MCP_PUBLIC_URL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Worth knowing first

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • With 12 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Openstates.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Where it fits

This sits in the file and storage access group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Openstates's toolset — openstates_search_bills, openstates_get_bill, openstates_search_people and 9 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Openstates's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

Available tools

ToolWhat it does
openstates_search_billsSearch state legislative bills across all covered US jurisdictions with full-text search, jurisdiction/session filtering, subject tags, and sponsor lookups
openstates_get_billFetch full detail for a specific bill by OCD ID or three-part path (jurisdiction + session + bill_id)
openstates_search_peopleSearch state legislators and officials within a jurisdiction by name, chamber, or district, or fetch specific people by OCD person ID
openstates_get_legislators_by_locationFind every legislator representing a geographic coordinate (latitude/longitude) — state legislators and the federal delegation
openstates_search_committeesList committees for a jurisdiction (experimental — not all states have coverage)
openstates_get_committeeFetch committee detail by OCD organization ID, with optional membership roster
openstates_search_eventsSearch hearings, floor sessions, and committee meetings (experimental)
openstates_get_eventFetch full event detail including agenda, participants, and media links
openstates_list_jurisdictionsList all 56 jurisdictions (50 states, DC, and 5 US territories) covered by Open States with session identifiers and coverage metadata
openstates_get_jurisdictionFetch full metadata for a specific jurisdiction including all legislative sessions and their identifiers
PrerequisitesThe Prerequisites tool exposed by this server.
InstallationThe Installation tool exposed by this server.

How to install the Openstates MCP server

{
  "mcpServers": {
    "openstates-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/openstates-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "OPENSTATES_API_KEY": "your-api-key"
      }
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
MCP_LOG_LEVELConfiguration value read at startup.Optional
OPENSTATES_API_KEYCredential the server authenticates with.Yes
OPENSTATES_API_BASE_URLEndpoint or connection string the server talks to.Yes
MCP_HTTP_ENDPOINT_PATHFilesystem location the server is allowed to use.Optional
MCP_PUBLIC_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use Openstates to openstates search bills.
  • Use Openstates to openstates get bill.
  • Use Openstates to openstates search people.

Frequently asked questions

It connects Openstates to MCP-compatible AI assistants such as Claude and Cursor, exposing 12 tools (openstates_search_bills, openstates_get_bill, openstates_search_people, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Openstates directly.