OpenStates MCP. Track state bills and committee memberships across US jurisdictions.
Works with every AI agent you already use
…and any MCP-compatible client
Just plug in your AI agents and start using Vinkius.
OpenStates provides instant access to US state-level legislative data through your AI client. Use it to search thousands of bills, audit legislator profiles across states and DC, or map committee memberships without manually visiting government websites.
It's a single endpoint for complex political data.
What your AI agents can do
Get bill details
Retrieves detailed records, including action history and sponsors, for a specific legislative bill ID.
Get committee details
Pulls the full roster and operational details for a specified legislative committee.
Get legislator details
Fetches the complete profile, contact information, and current roles of an individual state legislator.
Find specific pieces of legislation using keywords, bill numbers, and jurisdictional filters.
Retrieve comprehensive records including contact information and current roles for any state legislator.
List all available legislative committees within a jurisdiction and get detailed lists of who serves on them.
Get the full action history, versioning, and current status for any given bill ID.
List all supported US states and territories to confirm data coverage before making a request.
Ask AI about this MCP
Supported MCP Clients
Waiting for input…
OpenStates: 7 Tools for Legislative Data Access
These tools allow your agent to search for state bills, retrieve full legislator profiles, and map out committee memberships across US jurisdictions.
019d8468get bill details
Retrieves detailed records, including action history and sponsors, for a specific legislative bill ID.
019d8468get committee details
Pulls the full roster and operational details for a specified legislative committee.
019d8468get legislator details
Fetches the complete profile, contact information, and current roles of an individual state legislator.
019d8468list committees
Lists all legislative committees that exist within a specified jurisdiction.
019d8468list jurisdictions
Provides a list of all supported US states and territories where legislative data is available.
019d8468search bills
Searches for bills using keywords, jurisdiction codes, or session years.
019d8468search legislators
Finds legislators based on name, party affiliation, or current district information.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with OpenStates, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 4,700+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
What you can do with this MCP connector
OpenStates gives your agent instant access to US state-level legislative data through a single endpoint. Forget manually hopping between government websites; you'll find everything here.
Your AI client can use this server to search thousands of bills, audit legislator profiles across states and D.C., or map committee memberships—all without leaving the conversation window. It’s a dedicated political analyst toolset that handles complex data retrieval.
Finding Bills and Tracking Legislation
When you need intel on a piece of legislation, you have several options. You can start broad by using search_bills, which lets your agent pull results based on keywords, specific jurisdiction codes, or session years. If you know the exact bill number, you'll use get_bill_details. That tool doesn’t just give you a title; it pulls detailed records showing the full action history and all sponsors associated with that legislative ID.
To trace exactly what happened to a piece of legislation, your agent checks the versioning and status changes via get_bill_details, giving you the entire timeline. You won't miss any key moments in the bill’s journey through the statehouse.
Pinpointing Legislators
Need to know who's making the laws? You can find legislators using two tools. First, your agent runs search_legislators to filter candidates by name, party affiliation, or their current district information. Once you pinpoint a person, you use get_legislator_details. This fetches the complete profile—you get their full contact info and all of their current roles in the state government.
Mapping Committees and Jurisdictions
The committee structure is key to understanding how bills move through government. You start by listing available areas with list_jurisdictions, which provides a list of every US state and territory that has data coverage. Once you know the jurisdiction, your agent runs list_committees to get an inventory of all legislative committees existing in that area.
If you want to see who's sitting on those boards, you use get_committee_details. This tool pulls both the operational details and the full roster for a specific committee. It tells you exactly which legislators serve on it, helping you map out power structures across any jurisdiction.
How Your Agent Uses These Tools
Your agent coordinates these tools to build complex data sets. You can't track legislation or understand political networking without coordinating multiple steps. For instance, if you want to check a bill’s status and see which legislators are involved in its committee, your agent will first use list_jurisdictions to confirm the state, then run search_bills for the ID, grab the full history with get_bill_details, identify the relevant committee using list_committees, and finally pull the names of members via get_committee_details.
It handles that entire chain of commands automatically.
It’s a single point of access for everything from finding basic bill information to auditing an individual's full profile, giving you unparalleled depth into state politics. You won't have to build complex queries or handle multiple API calls yourself; your agent just talks to the server and gets it done.
How OpenStates MCP Works
- 1 First, list the jurisdictions using
list_jurisdictionsto confirm your target state or territory is covered. - 2 Next, use
search_billsorsearch_legislatorswith specific criteria (e.g., topic + jurisdiction) to narrow down the data set. - 3 Finally, pass the resulting ID (bill number or legislator name) into a detail tool like
get_bill_detailsfor the full record.
The bottom line is: you use one API client to chain multiple requests—from finding a state to listing its committee members and then pulling the details of a bill relevant to that committee's scope.
Who Is OpenStates MCP For?
This server targets professionals who deal with complex, multi-jurisdictional data. Think policy analysts struggling to manually cross-reference bills against committee memberships across several state websites, or journalists needing historical legislative records that aren't indexed anywhere else.
Uses search_bills and get_bill_details to track how a specific policy concern (like clean energy) is being debated and modified across different state legislative bodies.
Employs list_committees and get_committee_details to quickly find out who sits on the relevant committee for a story, saving hours of manual government website browsing.
Uses get_legislator_details and get_bill_details to verify the exact current status or version history of state-level statutes necessary for litigation.
What Changes When You Connect
- Cross-reference data instantly: You no longer have to visit multiple state websites. By chaining
search_billswithlist_committees, your agent maps the relationship between a topic, a bill, and the specific committee debating it—all in one go. - Avoid manual profile hunting: The
get_legislator_detailstool gives you instant access to full profiles and contact info for any state representative or senator. It eliminates hours of digging through government directories. - Track legislative history, not just status:
get_bill_detailsprovides deep metadata, showing the exact sequence of actions a bill took—'Passed in House,' 'Referred to Senate,' etc.—which is critical for research accuracy. - Systematically map coverage: Need to know if your data applies to New Mexico or Puerto Rico? Use
list_jurisdictionsfirst. It tells you exactly which areas the server covers, saving query time and frustration. - Targeted search over general browsing: Instead of reading through hundreds of results, use
search_bills. You can filter by keyword and jurisdiction simultaneously to pull only the most relevant proposals.
Real-World Use Cases
Policy team needs a status update on water rights.
A policy analyst needs to know which states are currently debating water resource bills. They run search_bills using 'water rights' as the keyword, limiting results by state. The agent returns several active bill IDs. Next, they pass those IDs into get_bill_details to get the most recent action taken on each one.
Journalist needs to verify committee leadership.
A reporter is writing a piece about tax reform and needs to know who holds power in that area. They use list_committees for the relevant state and then call get_committee_details on the Finance Committee. This immediately provides the names, roles, and size of the group responsible.
Legal firm needs to verify a statute's version.
A law firm requires proof of the current, enacted text for an old state regulation. They first use search_bills to locate the original bill number and then call get_bill_details. This tool provides the full historical action log, confirming which versions were officially passed.
Civic tech developer needs a list of all data sources.
A developer building a public dashboard first runs list_jurisdictions to see every state supported. Then, they use this comprehensive list to loop through and call get_legislator_details for the top 10 committee chairs in each state.
The Tradeoffs
Searching everything at once
A user tries to ask, 'Show all bills about education sponsored by legislators from California.' This requires knowing the specific bill ID or using multiple parameters that confuse the agent.
→
Don't try to do it in one prompt. First, run search_legislators for California and get a list of IDs. Then, take those IDs and pass them into get_bill_details with an education keyword filter.
Assuming data coverage
A user assumes the server works for their state because it's similar to another covered area, leading to failed requests.
→
Always start by calling list_jurisdictions. This confirms that your target state or territory is actually supported before you waste time searching.
Confusing roles and bills
A user asks for 'the details of the committee.' They don't know whether they need a list of committees or the members.
→
Use list_committees to get the name, then use get_committee_details on that specific name. This is the correct two-step process.
When It Fits, When It Doesn't
You must use OpenStates if your task involves tracing connections between three distinct elements: a geographical location (jurisdiction), an individual (legislator), and a piece of policy (bill/committee). It's built for relational data queries. Don't use this if you just need to check a single, static fact—like 'What is the capital of Texas?' Use this when you need process information: e.g., 'Who sponsored bills on Topic X in State Y during Session Z?' If your goal is simply reading text from a webpage, don't use it; you need a web scraping tool instead.
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by OpenStates. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This server provides 7 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.
Available Capabilities
Finding the status of a bill shouldn't require checking five different government sites.
Right now, tracking one policy proposal is a nightmare. You open Congress.gov for federal bills; then you have to navigate to the state legislature's site, find the correct committee page, and finally locate the bill's status tracker. It’s tedious clicking through multiple databases just to get a single answer: 'Where does this bill stand?'
With OpenStates, your agent handles that entire process in one go. You ask it about a specific education bill in California. It runs `search_bills`, finds the ID, checks its committee affiliation using `get_committee_details`, and returns the current status—all without you clicking anything.
OpenStates MCP Server: Get full legislative intelligence with OpenStates.
Before this server, getting a complete picture of who is involved in state legislation meant cross-referencing legislator lists against committee rosters and then mapping those back to active bills. It was manual data aggregation at best, and almost impossible at worst.
Now, the agent pulls all that relationship logic out of your hands. You ask for 'all legislators on the Environmental Committee'—it runs `list_committees` and `get_committee_details` immediately. The complexity is gone; you just get the data.
Common Questions About OpenStates MCP
How do I check if a state is supported by OpenStates using list_jurisdictions? +
Call list_jurisdictions. This tool returns a definitive list of all US states and territories covered. If your state isn't on the returned list, you can’t query it yet.
I need to find bills about energy in Texas; should I use search_bills or search_legislators? +
You must use search_bills. This tool lets you filter by topic and jurisdiction. search_legislators only helps you find the people, not the specific legislation they sponsored.
What is the best way to get all committee members for a state? +
First, run list_committees to get the official names. Then, pass each name into get_committee_details. This ensures you capture the current membership roster.
Can I get a bill's history with get_bill_details? +
Yes. The get_bill_details tool pulls deep metadata, showing every official action—from introduction to committee referral—and its version changes over time.
When using `get_bill_details`, what specific information do I get regarding a bill's version history? +
It provides granular data on every action and version recorded for the legislation. You can analyze who passed it, when, and which committee handled it at that time.
If I run `get_legislator_details` with an incorrect or inactive legislator ID, what error status should I expect? +
The system returns a 404 status code and specifies the record was not found. Always verify the provided identifier before running detailed lookups.
Does the `search_bills` tool allow me to filter results by legislative session or year? +
Yes, you must include the 'session' parameter when calling search_bills. This keeps your search limited only to bills active in a specific government cycle.
What parameters are required for my AI client to successfully authenticate and use any tool? +
Your agent requires the OpenStates API Key, which must be passed as a secure configuration parameter. Once authenticated, your client gains access to all functions like list_committees.
Which US states are covered by this integration? +
OpenStates covers all 50 states, the District of Columbia, and Puerto Rico. You can use the list_jurisdictions tool to see the full list of currently active jurisdictions.
Can I search for bills by specific keywords like 'environment' or 'education'? +
Yes! Use the search_bills tool, provide the state name in the jurisdiction parameter, and your keywords in the q parameter. Your agent will return all matching legislation.
How do I get the contact information for my state representative? +
First, find the legislator using search_legislators with their name or district. Then, use the get_legislator_details tool with their ID to retrieve their official email, office address, and phone number.
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
More in this category
Transloadit
Versatile file uploading and processing API.
Open Library Alternative
Universal open book database — search millions of books, authors, and editions via AI.
Levenshtein Distance Engine
Calculate the exact edit distance between two strings. Essential for fuzzy matching, spell checking, and deduplication. Stop LLMs from guessing string similarity.
You might also like
Clover POS
Connect to your Clover merchant account — manage orders, inventory, customers, and payments directly via AI.
ClockShark
Track field crew hours with GPS-verified timesheets, job costing, and scheduling that keeps construction teams on budget.
Cadmium Harvester
Manage educational event content via Cadmium — track presentations, speakers, and assets directly from any AI agent.