Bill Commons

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/mcp

Streamable 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:

claude_desktop_config.json / mcp settings
{
  "mcpServers": {
    "bill-commons": {
      "url": "https://mcp.billcommons.org/mcp",
      "transport": "http"
    }
  }
}

Or, from the Claude Code CLI:

shell
claude mcp add bill-commons --transport http https://mcp.billcommons.org/mcp

Other 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.

Python (mcp SDK)
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

ToolDescription
search_legislationSearch bills across jurisdictions by keyword, number, sponsor, subject, or status.
get_bill_recordFetch a full bill record: sponsors, actions, versions, votes, official sources.
compare_bill_versionsDeterministic diff between two versions of a bill's text.
find_similar_billsFind related bills by title similarity and shared text (labeled as derived, not official).
get_vote_detailsGet a recorded vote, including member-level votes where available.
get_upcoming_hearingsList upcoming committee hearings for a jurisdiction.
trace_legislative_historyTrace a bill's full action timeline from introduction to current status.
build_legislative_evidence_packetAssemble a citation-backed packet of bill facts for research use.
get_jurisdiction_coverageCheck ingestion/coverage status for a jurisdiction before trusting results.
get_active_sessionsList 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.