MCP server setup
Bill Commons runs a Model Context Protocol (MCP) server over Streamable HTTP, so Claude and other MCP-compatible clients can search and cite legislation directly. Every tool returns structured JSON with canonical IDs, official source URLs, and freshness timestamps — and warns you explicitly when a jurisdiction’s coverage is thin rather than guessing.
Endpoint
https://mcp.billcommons.org/mcpStreamable HTTP, stateless, no authentication required for public read access.
Claude Desktop / Claude Code
Add Bill Commons as a remote MCP server in your client config:
{
"mcpServers": {
"bill-commons": {
"url": "https://mcp.billcommons.org/mcp",
"transport": "http"
}
}
}Or, from the Claude Code CLI:
claude mcp add bill-commons --transport http https://mcp.billcommons.org/mcpOther MCP clients
Any client supporting the Streamable HTTP transport can connect directly to the endpoint above — no SDK required beyond a standard MCP client library.
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession
async with streamablehttp_client("https://mcp.billcommons.org/mcp") as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
result = await session.call_tool(
"search_legislation", {"query": "paid family leave"}
)
print(result)Tools
| Tool | Description |
|---|---|
| search_legislation | Search bills across jurisdictions by keyword, number, sponsor, subject, or status. |
| get_bill_record | Fetch a full bill record: sponsors, actions, versions, votes, official sources. |
| compare_bill_versions | Deterministic diff between two versions of a bill's text. |
| find_similar_bills | Find related bills by title similarity and shared text (labeled as derived, not official). |
| get_vote_details | Get a recorded vote, including member-level votes where available. |
| get_upcoming_hearings | List upcoming committee hearings for a jurisdiction. |
| trace_legislative_history | Trace a bill's full action timeline from introduction to current status. |
| build_legislative_evidence_packet | Assemble a citation-backed packet of bill facts for research use. |
| get_jurisdiction_coverage | Check ingestion/coverage status for a jurisdiction before trusting results. |
| get_active_sessions | List currently active legislative sessions across all jurisdictions. |
MCP tool results reflect the same underlying data as the REST API, including attribution and known-limitations metadata. See methodology for sourcing details.