Query LegiScan for bills, legislative sessions, legislators, bill text, histories, and voting records through MCP.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag — we're steadily working through the catalog.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Legiscan MCP.
legiscan_find_legislatorFind a legislator's people_id by name. Supports partial matching.
legiscan_get_legislator_votesGet how a legislator voted on multiple bills in one call.
legiscan_get_primary_authoredGet only bills where legislator is primary author (not co-sponsor).
legiscan_get_billGet detailed bill info (sponsors, history, votes, texts)
legiscan_find_bill_by_numberFind bill by number (handles AB 858, AB858, AB-858, A.B. 858). Best for exact bill lookup.
legiscan_get_roll_callGet vote details with individual legislator votes
The sh-patterson/legiscan-mcp MCP server connects MCP-capable agents to the LegiScan API. It covers legislative data from all 50 US states and Congress, including bills, legislative sessions, legislators, sponsorship details, bill histories, bill text, and recorded votes.
The server is suited to research tasks that require more than a single bill lookup. An agent can identify the correct session, search for legislation by topic or bill number, retrieve detailed bill records, inspect roll calls, and connect votes to individual legislators. It also provides composite operations for common workflows, such as finding a legislator by name, listing only primary-authored bills, or checking one legislator's positions across several bills.
The server runs as a local MCP process and sends requests to LegiScan using the configured API key. Tool responses use TypeScript-defined API response types. Inputs include validation for state codes, legislator name queries, and large bill batches.
Bill-number lookup accepts common formatting differences. For example, variants such as AB 858, AB858, AB-858, and A.B. 858 can be resolved. Full-text searches can also accept bill-number variants, but the dedicated number lookup is intended for exact bill resolution.
For a typical investigation, first list sessions for the relevant state, then search or resolve bills, retrieve bill details, and inspect any roll calls. Legislator information can be added when the workflow needs person records or external identifiers.
The sh-patterson/legiscan-mcp MCP server requires Node.js 18 or later and a LegiScan API key. The README describes creating a free LegiScan account, registering for API access, and placing the resulting key in the LEGISCAN_API_KEY environment variable.
A package-based MCP configuration can launch the server with npx -y legiscan-mcp-server. In an MCP client configuration, set the environment variable to the user's actual key. The README specifically documents Claude Desktop configuration paths on macOS and Windows and says the same mcpServers.legiscan entry can be adapted for other MCP clients, including Claude Code and Codex CLI.
The project can also be built from source by cloning the repository, installing npm dependencies, and running its build script. A source-based configuration launches the resulting dist/index.js file with Node.js.
Available capabilities include:
people_id.LegiScan access depends on a valid API key and the data available through the LegiScan API. The README recommends specifying both state and session in agent requests to reduce ambiguity. State codes are normalized to uppercase and checked locally, but an invalid code such as ZZ can still reach the API and produce an API error.
Legislator name searches require at least two characters, and the documentation recommends supplying both a first and last name. Composite workflows may require identifiers returned by earlier calls, such as session_id, people_id, bill_id, or roll_call_id. Showing those identifiers in intermediate output can help audit the resulting research.
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/sh-patterson-legiscan-mcp)<a href="https://allmcps.com/mcp/sh-patterson-legiscan-mcp"><img src="https://allmcps.com/api/badge/sh-patterson-legiscan-mcp?style=directory" alt="Legiscan MCP on AllMCPs" /></a>