Bill Commons

Quickstart

Use Bill Commons from your AI agent

You don't need to write integration code — or be a programmer at all. Connect your AI assistant once, then ask it questions in plain English: "find every AI bill introduced in Texas this session", "did GA SB 594 pass?", "which of these 40 bills moved this week?" No API key, no signup, free.

Claude Code

One command in your terminal:

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

Then just ask: "Using bill-commons, list every enacted data privacy bill from 2026 and summarize what each one requires."

Claude Desktop / Claude.ai

Settings → Connectors → Add custom connector, and paste the server URL:

https://mcp.billcommons.org/mcp

Cursor / other MCP clients

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

Any client that speaks MCP over Streamable HTTP works. Full tool list and a Python example are on the MCP server page.

Building an automated monitor

For standing watchlists — a lobbying shop tracking 100 bills, a policy team watching a topic — pair two endpoints. Resolve your watchlist once:

shell — resolve bill numbers to IDs
curl -X POST "https://api.billcommons.org/api/v1/bills/lookup" \
  -H "Content-Type: application/json" \
  -d '{"keys": [
        {"jurisdiction": "AZ", "identifier": "HB 2192"},
        {"jurisdiction": "GA", "identifier": "SB 594"}
      ]}'

Then poll the change feed — it returns only what moved, with the transition itself ("in_committee → enacted") in each event:

shell — what changed since my last check?
curl "https://api.billcommons.org/api/v1/changes?kind=status&ids=<your-bill-ids>"
# store next_cursor from the response, pass it back next time:
curl "https://api.billcommons.org/api/v1/changes?cursor=<next_cursor>&kind=status&ids=..."

Give those two snippets to your agent and ask it to build the monitor for you — this page is written to be readable by agents, too. Full reference: API docs.

Not technical? You're done after step one.

The whole point of the agent integration is that the API disappears: connect once, then talk to your assistant like you'd talk to a research analyst. It knows how to search, look up, compare versions, and check coverage on its own.