Search 209k+ US state bills, all 50 states + DC: full text, sponsors, votes, status. Free.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Bill Commons is a public, open-source legislative search platform covering the
current session/biennium for all 50 U.S. states plus DC. It provides a web
search UI, a REST API, an MCP (Model Context Protocol) server, and a public
status/coverage page. Public infrastructure first: no paywall on ordinary
search or reasonable API use β anonymous callers get a generous daily cap
(2,000 requests/day per IP, 5,000/day per /24 subnet); a free API key raises
that further, and only high-volume/bulk use is paid. See
/docs/bulk for API keys and
full-corpus snapshots.
See docs/architecture/ARCHITECTURE.md
for the locked architecture and data model.
Hosted on Railway (project billcommons: api, mcp, worker services +
managed Postgres) and Vercel (project billcommons-web). See
docs/operations/deployment-runbook.md
for the full deploy/rollback procedure.
The hosted MCP server gives AI assistants direct access to all 209k+ bills β no API key, no setup beyond one command:
Claude Desktop: Settings β Connectors β Add custom connector with URL
https://mcp.billcommons.org/mcp. Cursor and other clients: add the same URL
as a Streamable HTTP server in mcp.json.
Ten tools including search_legislation, get_bill_record,
compare_bill_versions, and trace_legislative_history. Full walkthrough
(including REST recipes for agents without MCP):
https://billcommons.org/docs/agents
packages/schema (SQLAlchemy models + Alembic) is the single source of
truth every other package/app imports from β no service owns its own copy
of the data model.
pg_trgm, unaccent, pgcrypto extensions available)apps/web)This installs packages/schema and packages/shared as editable installs
(single source of truth for the data model + shared utils), plus the
worker package: .venv/bin/pip install -e workers/ingest. Install the API
package too if you're working on it: .venv/bin/pip install -e apps/api.
Set DATABASE_URL in your environment (or in ~/.config/billcommons/.env,
which is read as a fallback and is never committed):
Requires Postgres 16 with the pg_trgm and unaccent extensions available
(created by migration 0001). Run migrations:
This brings up Postgres, the API, the ingestion worker, and the MCP server.
The web app (apps/web) is run separately via npm run dev during local
development (see infra/docker/docker-compose.yml for the placeholder
service definition).
docs/architecture/ARCHITECTURE.md β locked architecture + data modeldocs/SPEC.md β requirements digest / acceptance gatedocs/operations/deployment-runbook.md β Railway/Vercel deploy, rollback, smoke checklistdocs/operations/ingestion-runbook.md β CLI reference, job queue, refresh cadencedocs/operations/source-failure-runbook.md β stale zips, 401/429, robots blocksdocs/operations/backup-restore.md β pg_dump/restore, raw-data re-fetchdocs/operations/add-a-jurisdiction.md β onboarding a new territory/statedocs/state-coverage/methodology.md β coverage state machine, GREEN criteriadocs/api/examples.md β curl/Python/JavaScript examples against the live APIdocs/sources/openstates-csv.md β Open States bulk CSV column mappingApache-2.0. See LICENSE and NOTICE for data attribution (Open States / Plural Policy, public-domain legislative data).
See CONTRIBUTING.md. This project follows the Contributor Covenant.
See SECURITY.md for responsible disclosure.
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/bill-commons)<a href="https://allmcps.com/mcp/bill-commons"><img src="https://allmcps.com/api/badge/bill-commons?style=directory" alt="Bill Commons on AllMCPs" /></a>