SuperAPI AI Directory

legiscan-mcp

Legislative data from all 50 US states and Congress via the LegiScan API: search bills, get full text, track votes and look up legislators.

Open website

About this tool

LegiScan MCP Server is a Model Context Protocol (MCP) server that lets end agents access the LegiScan API in a structured way to obtain legislative data for the 50 U.S. states and Congress, making it suitable for research workflows that need to quickly gather bill history, proposal background, and voting records.

Main capabilities: provides 10 streamlined MCP tools optimized for legislative research; includes composite tools that can compress multi-step retrieval workflows into a single tool call; supports per-request batching and query caching, reducing repeated bill and roll-call vote queries; provides complete TypeScript type definitions; supports normalization of bill number formats (such as AB 858, AB858, AB-858); performs input validation for state codes, legislator name queries, and large batches of bills.

Usage: first register for a free account on the LegiScan official website and apply for an API key. After installing via npm, add the server to the MCP configuration of a client where an MCP-enabled agent resides, for example by adding an mcpServers.legiscan entry in Claude Desktop's claude_desktop_config.json (on macOS located at ~/Library/Application Support/Claude/, on Windows located at %APPDATA%\Claude\ ); other MCP clients (Codex CLI, Claude Code, etc.) use their own MCP configuration files to add the same entry.

Recommended tool sequence: first use legiscan_get_session_list to determine the session, then use legiscan_search or legiscan_find_bill_by_number to locate the target bill, then use legiscan_get_bill to obtain sponsors and history and voting references, use legiscan_get_roll_call to obtain details of a single vote, and call legiscan_get_person only when legislator profile information needs to be supplemented. Composite tools such as legiscan_find_legislator (obtain people_id from a name), legiscan_get_primary_authored (distinguish primary sponsorship from cosponsorship), and legiscan_get_legislator_votes (obtain voting positions across multiple bills in one request) can significantly reduce round-trip calls.

Limitations and notes: the free public API key is limited to 30,000 queries per month; composite tools limit the number of API queries per call, legiscan_get_legislator_votes accepts at most 100 bill_ids per request, and excess amounts must be batched; you need to check the returned roll_call_coverage, and if next_offset exists, it means there are earlier voting records, so you need to call again with that offset; state codes are two letters and are automatically uppercased, and invalid codes may pass local validation but the API will report an error; it is recommended to fix the state and session in the prompt and require intermediate output to show bill_id, roll_call_id, and people_id for audit traceability; legislator name queries must enter at least 2 characters. The repository also provides test commands such as npm test, npm run test:e2e, and npm run test:live; live tests require the LEGISCAAN_API_KEY environment variable (spelled as such in the original text), and it is released under the MIT license.