Openstates MCP Server
概览
作者提供的说明(英文原文)
Search bills, legislators, committees, and events across all 50 US states, DC, and 5 US territories.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i3 项中通过 3 项依据公开信息检查;尚未扫描代码
- 使用情况i非常新↓ 235/周 · ★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 电脑或云端
- 传输方式: 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
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
- 打开 Settings → Connectors
- 点击 Add custom connector
- 粘贴下面的地址,然后点击 Add
- 如果要求登录,请登录作者的服务
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/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"openstates": {
"url": "https://openstates.caseyjhand.com/mcp"
}
}
}或者在你的电脑上运行
或者自己复制设置
粘贴到项目中的 .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"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"openstates": {
"type": "http",
"url": "https://openstates.caseyjhand.com/mcp"
}
}
}或者在你的电脑上运行
或者自己复制设置
粘贴到项目中的 .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 只能连接互联网上的服务器:
- 打开网页版 ChatGPT → Settings → Connectors (Apps)
- 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
- 粘贴下面的地址,起个名字,然后保存
- 如果要求登录,请登录作者的服务
https://openstates.caseyjhand.com/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
需要你填写的值
- Open States API key from open.pluralpolicy.com. Required to make any API requests.
OPENSTATES_DAILY_REQUEST_BUDGETenvMaximum 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_MSenvPer-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_MSenvWall-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_LEVELenvSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
工具名称和描述与服务器在 2026年11月7日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。
openstates_search_billsSearch 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_billFetch 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_peopleSearch 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_locationFind 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_committeesList 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_committeeFetch 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_eventsSearch 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_eventFetch 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_jurisdictionsList 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_jurisdictionFetch 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
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者的 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
| Tool | Description |
|---|---|
openstates_search_bills | Search state legislative bills across all covered US jurisdictions with full-text search, jurisdiction/session filtering, subject tags, and sponsor lookups |
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 |
Resources
| Resource | Description |
|---|---|
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
| Prompt | Description |
|---|---|
openstates_bill_research | Structured framework for analyzing a state bill: summary, sponsors, committee referrals, action timeline, vote record, and related legislation |
openstates_legislator_profile | Research framework for profiling a legislator: sponsored bills, committee assignments, voting record, and contact details |
Skills
| Skill | Description |
|---|---|
openstates-guide | Identifier 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
jurisdictionorqis required by the schema — aq-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,subjecttags,sponsor,sponsor_classification, andaction_since/updated_since/created_sinceISO 8601 date filters includeinlines sponsorships, actions, votes, abstracts, versions, documents, and related bills — avoids follow-upopenstates_get_billcallssortdefaults toupdated_desc;sort=latest_action_descsurfaces 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 pathjurisdiction+session+bill_id; a call missing both fails withmissing_lookup_params openstates_idisocd-bill/copied fromopenstates_search_bills(case and surrounding whitespace are normalized); a/ /path is also accepted. Any other value fails locally withinvalid_openstates_id, with no upstream call- Accepts legislature-format bill identifiers (e.g.,
HB 1000,SB 42) includeinlines sponsorships, actions, votes, versions, documents, abstracts, other titles/identifiers, and related billsnot_foundwhen a well-formed ID or a three-part path resolves to nothing
openstates_search_people tool
- Either
jurisdictionorid(OCD person IDs) is required — an unscoped search exceeds the upstream timeout even for a name-only query idresolves 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 itorg_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
namematch, plusdistrict;includeadds 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(statevscountry) is the tier discriminator —current_role.org_classificationis not, since it'supper/lowerfor a US Senator exactly as for a state senatorstateCount/federalCountenrichment 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
jurisdictionis required — the schema rejects an all-states request- Filter by
classification(committee/subcommittee) andchamber(a chamber filter omits joint committees);parentscopes to one committee's subcommittees include=membershipsreturns the full roster with member roles- Experimental: Open States is working to restore committee support and not all states have coverage — the output's
coverageNotefield always documents this - Pagination up to 20 per page
openstates_get_committee tool
- Fetch by OCD
committee_id(fromopenstates_search_committees) include=membershipsreturns the roster;include=links/sourcesadd reference URLs- Experimental — not all states have committee data;
not_foundwhen the ID doesn't exist
openstates_search_events tool
jurisdictionis required — the events endpoint has no all-states searchafter/beforescope to an ISO 8601 date range;require_bills=truefilters to events with a bill on the agendainclude=agenda,participantsreturns 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(fromopenstates_search_events) includeadds agenda, participants, links, media, and documents- Experimental — event coverage is limited;
not_foundwhen 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_pageceiling of 52 no longer covers the full set classificationfilter defaults tostateinclude=legislative_sessionsreturns 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_runsadd 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_sessionsreturns all session identifiers with date rangesnot_foundwhen the identifier doesn't resolve
openstates://jurisdiction/{+jurisdiction_id} resource
jurisdiction_idaccepts the raw OCD ID (slashes intact) asopenstates_list_jurisdictionsreturns 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_foundwhen the identifier doesn't resolve;rate_limitedwhen 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
只显示了开头部分;其余内容请在仓库中阅读