原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Openstates MCP Server

作者:cyanheads版本 0.4.0i★ –i电脑或云端
注册名称io.github.cyanheads/openstates-mcp-server

安装

概览

作者提供的说明(英文原文)

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

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 电脑或云端
  • 传输方式: stdio, Streamable HTTP
  • 分类: 搜索与 AI 记忆
  • 你需要填写:OPENSTATES_API_KEY

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:3 项中通过 3 项
  • 在作者的服务器上运行:你向它提出的内容会经过他们的服务器。
  • 可以做 10 件事(工具) openstates_search_bills, openstates_get_bill, openstates_search_people, openstates_get_legislators_by_location …
  • 需要你自己填写: OPENSTATES_API_KEY, OPENSTATES_DAILY_REQUEST_BUDGET, OPENSTATES_REQUEST_TIMEOUT_MS, OPENSTATES_TOTAL_REQUEST_BUDGET_MS, MCP_LOG_LEVEL

你需要

  • 在云端运行无需安装任何东西,通过互联网连接
  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

适用于网页版、桌面版和手机版 Claude:

  1. 打开 Settings → Connectors
  2. 点击 Add custom connector
  3. 粘贴下面的地址,然后点击 Add
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Add2https://…3
https://openstates.caseyjhand.com/mcp

或者在你的电脑上运行

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "openstates": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/openstates-mcp-server"
      ],
      "env": {
        "OPENSTATES_API_KEY": "your-value",
        "OPENSTATES_DAILY_REQUEST_BUDGET": "your-value",
        "OPENSTATES_REQUEST_TIMEOUT_MS": "your-value",
        "OPENSTATES_TOTAL_REQUEST_BUDGET_MS": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add --transport http openstates https://openstates.caseyjhand.com/mcp

或者在你的电脑上运行

claude mcp add openstates --env OPENSTATES_API_KEY=your-value --env OPENSTATES_DAILY_REQUEST_BUDGET=your-value --env OPENSTATES_REQUEST_TIMEOUT_MS=your-value --env OPENSTATES_TOTAL_REQUEST_BUDGET_MS=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/openstates-mcp-server

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "openstates": {
      "url": "https://openstates.caseyjhand.com/mcp"
    }
  }
}

或者在你的电脑上运行

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "openstates": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/openstates-mcp-server"
      ],
      "env": {
        "OPENSTATES_API_KEY": "your-value",
        "OPENSTATES_DAILY_REQUEST_BUDGET": "your-value",
        "OPENSTATES_REQUEST_TIMEOUT_MS": "your-value",
        "OPENSTATES_TOTAL_REQUEST_BUDGET_MS": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "openstates": {
      "type": "http",
      "url": "https://openstates.caseyjhand.com/mcp"
    }
  }
}

或者在你的电脑上运行

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "openstates": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/openstates-mcp-server"
      ],
      "env": {
        "OPENSTATES_API_KEY": "your-value",
        "OPENSTATES_DAILY_REQUEST_BUDGET": "your-value",
        "OPENSTATES_REQUEST_TIMEOUT_MS": "your-value",
        "OPENSTATES_TOTAL_REQUEST_BUDGET_MS": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

ChatGPT 只能连接互联网上的服务器:

  1. 打开网页版 ChatGPT → Settings → Connectors (Apps)
  2. 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
  3. 粘贴下面的地址,起个名字,然后保存
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Create2https://…3
https://openstates.caseyjhand.com/mcp

菜单名称可能因套餐和版本不同而略有差异。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • OPENSTATES_API_KEY 必填 env
    Open States API key from open.pluralpolicy.com. Required to make any API requests.
  • OPENSTATES_DAILY_REQUEST_BUDGET env
    Maximum 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_MS env
    Per-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_MS env
    Wall-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_TIMEO…
  • MCP_LOG_LEVEL env
    Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

工具名称和描述与服务器在 2026年11月7日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。

  • openstates_search_bills

    Search state legislative bills across all covered US jurisdictions. Supports full-text search, jurisdiction/session filtering, subject tags, sponsor lookups, and sort order. Either jurisdiction or q (full-text) is required, and pairing them is the reliable form — a q-only search

  • openstates_get_bill

    Fetch full detail for a specific state bill. Accepts either the three-part path (jurisdiction + session + bill_id) or a direct OCD bill ID (openstates_id from search results). Use include to request votes, actions, sponsorships, documents, and versions in one call rather than sea

  • openstates_search_people

    Search state legislators and officials by name, jurisdiction, chamber, or district, or fetch specific people by OCD person ID. Party is reported on every result but cannot be filtered on — narrow by party after the call. Either jurisdiction or id is required — a search spanning a

  • openstates_get_legislators_by_location

    Find every legislator representing a geographic coordinate — both tiers. Pass latitude and longitude to get the state senators and representatives for that location (and potentially governor/executive officials), plus the coordinate's two US Senators and its US Representative. ju

  • openstates_search_committees

    List committees for a jurisdiction. jurisdiction is required — a request spanning all 56 jurisdictions exceeds the upstream timeout, so scope every call to a single state; use openstates_list_jurisdictions to pick one. Experimental — Open States is actively working to restore com

  • openstates_get_committee

    Fetch committee detail by OCD organization ID. Returns name, classification, and membership roster when include=memberships is requested. Experimental — not all states have committee data in Open States. Obtain the committee_id from openstates_search_committees.

  • openstates_search_events

    Search hearings, floor sessions, and committee meetings. jurisdiction is required — the Open States events endpoint has no all-states search, so scope every call to a single state; use openstates_list_jurisdictions to pick one. Experimental — most states do not publish event data

  • openstates_get_event

    Fetch full event detail by OCD event ID. Returns agenda, participants, media links, and associated documents when requested via include. Experimental — event coverage is limited in Open States. Obtain the event_id from openstates_search_events.

  • openstates_list_jurisdictions

    List all jurisdictions covered by Open States — all 50 states, DC, and 5 US territories (American Samoa, Guam, Northern Mariana Islands, Puerto Rico, and the US Virgin Islands): 56 in total, returned complete in a single default call. Returns coverage metadata: latest bill update

  • openstates_get_jurisdiction

    Fetch full metadata for a specific jurisdiction including all legislative sessions, their identifiers, and coverage dates. Use when you need to know the exact session identifier for a state before filtering bill searches — session formats vary widely (e.g., "2025", "2025rs", "202

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 cyanheads 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • ✓ 通过

    端点有响应

    在 229 毫秒内响应(HTTP 200)

  • – 不适用

    使用 OAuth 登录

    无需登录

  • ✓ 通过

    工具描述中没有隐藏指令

    已读取 10 个工具描述,未发现针对 AI 的隐藏指令

与“搜索与 AI 记忆”中的其他服务器比较i

  • 星标数多于此分类中其他 5716 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 5716 个服务器的 78% 更新
  • 基础检查结果等于或优于此分类中其他 5716 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Openstates MCP Server 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:OPENSTATES_API_KEY

它在我的电脑上运行还是在云端?

两种方式都可以:安装在你的电脑上,或者连接云端版本。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.4.0)于11天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Context7, Codebase Memory, Exa

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Context7

Up-to-date docs for AI agents

作者:upstash广泛使用↓ 97.3万/周★ 6.4万前天更新

电脑或云端

Codebase Memory

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

作者:DeusData广泛使用↓ 1.8万/周★ 4.8万22天前更新

在你的电脑上运行

Exa

Connect AI agents to Exa for web search, content fetching, and multi-step research.

作者:exa-labs广泛使用★ 52132个月前更新

在云端运行✓ exa.ai

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

@cyanheads/openstates-mcp-server Search bills, legislators, committees, and events across all 50 US states, DC, and 5 US territories via MCP. STDIO or Streamable HTTP. 10 Tools • 1 Resource • 2 Prompts

Public Hosted Server: https://openstates.caseyjhand.com/mcp


Overview

US state legislatures from Open States: all 50 states, DC, and 5 US territories. Search bills, legislators, committees, and events, and find who represents any location.

Tools
ToolDescription
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
Resources
ResourceDescription
openstates://jurisdiction/{+jurisdiction_id}Jurisdiction metadata including current sessions, coverage dates, and bill/people update timestamps

All resource data is also reachable via tools. Use openstates_get_jurisdiction for programmatic jurisdiction lookups; the resource is useful for injecting jurisdiction context as stable reference material.

Prompts
PromptDescription
openstates_bill_researchStructured framework for analyzing a state bill: summary, sponsors, committee referrals, action timeline, vote record, and related legislation
openstates_legislator_profileResearch framework for profiling a legislator: sponsored bills, committee assignments, voting record, and contact details
Skills
SkillDescription
openstates-guideIdentifier chains and gates for agents calling the tools: session pinning, reading vote events, committee roster scans, hearing searches, and the request budget

Plugin installs and the .mcpb bundle pick it up from skills/; MCP clients that support the Skills extension receive it from the server.

Capability reference

openstates_search_bills tool
  • Either jurisdiction or q is required by the schema — a q-only search spans all 56 jurisdictions and exceeds the upstream timeout for a common term, so pairing them is the reliable form
  • Filters: session, chamber (upper/lower), classification, subject tags, sponsor, sponsor_classification, and action_since/updated_since/created_since ISO 8601 date filters
  • include inlines sponsorships, actions, votes, abstracts, versions, documents, and related bills — avoids follow-up openstates_get_bill calls
  • sort defaults to updated_desc; sort=latest_action_desc surfaces bills currently moving; pagination up to 20 per page (default 10)
  • Empty-result notice echoes every applied filter and names the jurisdiction by name when it isn't recognized

openstates_get_bill tool
  • Lookup by openstates_id (preferred) or the three-part path jurisdiction + session + bill_id; a call missing both fails with missing_lookup_params
  • openstates_id is ocd-bill/ copied from openstates_search_bills (case and surrounding whitespace are normalized); a / / path is also accepted. Any other value fails locally with invalid_openstates_id, with no upstream call
  • Accepts legislature-format bill identifiers (e.g., HB 1000, SB 42)
  • include inlines sponsorships, actions, votes, versions, documents, abstracts, other titles/identifiers, and related bills
  • not_found when a well-formed ID or a three-part path resolves to nothing

openstates_search_people tool
  • Either jurisdiction or id (OCD person IDs) is required — an unscoped search exceeds the upstream timeout even for a name-only query
  • id resolves any number of specific OCD person IDs in one call — the IDs that bill sponsorships and committee memberships hand back — and needs no jurisdiction alongside it
  • org_classification: upper/lower/executive/legislature (every legislator — both chambers, or the single body in Nebraska and DC; executive officials excluded); omitting it returns every officeholder including executives
  • Case-insensitive substring name match, plus district; include adds offices, links, other_names, other_identifiers, sources
  • Party is reported on every result but cannot be filtered on
  • Pagination up to 20 per page

openstates_get_legislators_by_location tool
  • Pass decimal-degree latitude/longitude; does not geocode addresses
  • Returns both government tiers in one call: state legislators plus the coordinate's two US Senators and one US Representative
  • jurisdiction.classification (state vs country) is the tier discriminator — current_role.org_classification is not, since it's upper/lower for a US Senator exactly as for a state senator
  • stateCount/federalCount enrichment fields report the tier split
  • Out-of-range coordinates fail as invalid_coordinate; a location with no coverage returns an empty-result notice

openstates_search_committees tool
  • jurisdiction is required — the schema rejects an all-states request
  • Filter by classification (committee/subcommittee) and chamber (a chamber filter omits joint committees); parent scopes to one committee's subcommittees
  • include=memberships returns the full roster with member roles
  • Experimental: Open States is working to restore committee support and not all states have coverage — the output's coverageNote field always documents this
  • Pagination up to 20 per page

openstates_get_committee tool
  • Fetch by OCD committee_id (from openstates_search_committees)
  • include=memberships returns the roster; include=links/sources add reference URLs
  • Experimental — not all states have committee data; not_found when the ID doesn't exist

openstates_search_events tool
  • jurisdiction is required — the events endpoint has no all-states search
  • after/before scope to an ISO 8601 date range; require_bills=true filters to events with a bill on the agenda
  • include=agenda,participants returns full meeting context
  • Experimental: most states don't publish event data — an empty unfiltered result may mean no coverage, not no events; an empty filtered result (require_bills, after, before) names those filters in its notice
  • Pagination up to 20 per page

openstates_get_event tool
  • Fetch by OCD event_id (from openstates_search_events)
  • include adds agenda, participants, links, media, and documents
  • Experimental — event coverage is limited; not_found when the ID doesn't exist

openstates_list_jurisdictions tool
  • Returns all 56 jurisdictions (50 states, DC, and 5 US territories) in one default call — pages are merged server-side, since the upstream per_page ceiling of 52 no longer covers the full set
  • classification filter defaults to state
  • include=legislative_sessions returns every historical and current session identifier — required before filtering bill searches by session, since formats vary by state (e.g., 2025, 2025-2026, 2025rs, 2025s1)
  • include=organizations/latest_runs add chamber/executive-body and scraper-run metadata

openstates_get_jurisdiction tool
  • Fetch one jurisdiction by OCD-ID, state name, or two-letter abbreviation
  • include=legislative_sessions returns all session identifiers with date ranges
  • not_found when the identifier doesn't resolve

openstates://jurisdiction/{+jurisdiction_id} resource
  • jurisdiction_id accepts the raw OCD ID (slashes intact) as openstates_list_jurisdictions returns it, a state name (multi-word allowed), or a two-letter abbreviation; percent-encoded forms are decoded once, and a malformed escape is a validation error
  • Returns jurisdiction metadata as application/json: current legislative sessions, coverage dates, bill/people update timestamps
  • Always includes legislative_sessions — use to prime session identifiers without a tool call
  • not_found when the identifier doesn't resolve; rate_limited when the shared key's request cap is reached

openstates_bill_research prompt
  • Arguments: jurisdiction, session, bill_id — all required
  • Returns one user message directing a structured research brief: overview, sponsors, legislative history, vote record, related legislation, bill text, and a passage assessment

openstates_legislator_profile prompt

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx