openstates-mcp-server

openstates-mcp-server is a plugin for Claude Code from cyanheads/openstates-mcp-server. Its manifest loads nothing; the 33 skills, 1 MCP server it bundles cost 2,508 tokens per session together, scanned A, original, Apache-2.0.

An MCP server for searching bills, legislators, committees, and events across all US states, Washington, DC, and five US territories. MCP lets an AI model call these searches through a standard connection.

In plain words
What is it for?
Use it to look up proposed laws, elected officials, committees, and legislative events through a local or HTTP server.
Why use it?
It removes the need to build and maintain separate search connections for this legislative data.

Plugin for Claude Code

Written for Claude Code: a Claude Code plugin manifest.

Good fit Use it to look up proposed laws, elected officials, committees, and legislative events through a local or HTTP server.

Compare 6 plugins from other repositories ↓
Install in Claude Code
/plugin marketplace add cyanheads/openstates-mcp-server
/plugin install openstates-mcp-server
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/cyanheads/openstates-mcp-server

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for openstates-mcp-server

README.md
[![agentmods](https://agentmods.dev/badge/plugins/cyanheads/openstates-mcp-server/openstates-mcp-server/github.svg)](https://agentmods.dev/plugins/cyanheads/openstates-mcp-server/openstates-mcp-server)
Your own site
<a href="https://agentmods.dev/plugins/cyanheads/openstates-mcp-server/openstates-mcp-server"><img src="https://agentmods.dev/badge/plugins/cyanheads/openstates-mcp-server/openstates-mcp-server/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for openstates-mcp-server

Your own site · 80×15
<a href="https://agentmods.dev/plugins/cyanheads/openstates-mcp-server/openstates-mcp-server"><img src="https://agentmods.dev/badge/plugins/cyanheads/openstates-mcp-server/openstates-mcp-server.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session not measured What this adds to a session before it is invoked.
When invoked not measured The manifest loads nothing itself; its 33 skills, 1 MCP server cost 2,508 tokens a session between them.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Security

Grade A, and why

openstates-mcp-server scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude-plugin/plugin.json · 44 lines

What it actually says

{
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
  "name": "openstates-mcp-server",
  "version": "0.3.3",
  "description": "Search bills, legislators, committees, and events across all 50 US states, DC, and 5 US territories via MCP. STDIO or Streamable HTTP.",
  "author": {
    "name": "cyanheads",
    "email": "[email protected]",
    "url": "https://caseyjhand.com"
  },
  "homepage": "https://github.com/cyanheads/openstates-mcp-server#readme",
  "repository": "https://github.com/cyanheads/openstates-mcp-server",
  "license": "Apache-2.0",
  "keywords": [
    "mcp",
    "mcp-server",
    "model-context-protocol",
    "legislation",
    "openstates",
    "state-legislature",
    "bills",
    "legislators"
  ],
  "userConfig": {
    "OPENSTATES_API_KEY": {
      "type": "string",
      "title": "Open States API key",
      "description": "Required. API key from open.pluralpolicy.com/accounts/profile.",
      "sensitive": true,
      "required": true
    }
  },
  "mcpServers": {
    "openstates-mcp-server": {
      "command": "npx",
      "args": ["-y", "@cyanheads/openstates-mcp-server"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "OPENSTATES_API_KEY": "${user_config.OPENSTATES_API_KEY}"
      }
    }
  }
}
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 13d ago Changed 433e4465521c
  2. 1mo ago Changed · +22 lines 649a6aeae567
  3. 1mo ago First seen · 22 lines scan A fffff6d830cf

Subscribe to this mod's changes

openstates-mcp-server is a plugin published in the GitHub repository cyanheads/openstates-mcp-server (2 stars, last pushed 14d ago), licensed Apache-2.0. Its token cost is not measured: this kind of file is read by the harness, not the model. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.