MCP 서버

bill-commons

org.billcommons/bill-commons
법률 및 컴플라이언스 검색 및 리서치 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Searches and analyzes US state legislation, including bill text, versions, sponsors, votes, hearings, and legislative history.

build_legislative_evidence_packet
Compile a citation-ready evidence packet for a bill: full official record, legislative history timeline, votes with member-level detail, and hearings -- each explicitly labeled official vs. derived with source URLs. Returns a `how_to_cite` block with a one-line `cite_as` sentence, a human `permalink`, a JSON `download_url`, and a `snapshot_id` that changes if and only if a cited fact about the bill changes -- so a reader can check later whether the citation still holds. Snapshots are NOT archived; the id is a change detector, not a way to retrieve an older packet. Pass `question` to record what the packet was assembled to answer; it is echoed into the artifact so a filed packet carries its own scope.
입력 스키마
{'type': 'object', 'title': 'build_legislative_evidence_packetArguments', 'required': ['bill_id'], 'properties': {'bill_id': {'type': 'string', 'title': 'Bill Id'}, 'question': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Question', 'default': None}, 'include_full_text': {'type': 'boolean', 'title': 'Include Full Text', 'default': False}}}
compare_bill_versions
Deterministic diff (unified + structured) between two versions of a bill's extracted text. Defaults to earliest vs. latest texted version if version ids are omitted. Errors if fewer than 2 versions have extracted text. Result is labeled 'derived' (computed by Bill Commons, not an official document).
입력 스키마
{'type': 'object', 'title': 'compare_bill_versionsArguments', 'required': ['bill_id'], 'properties': {'bill_id': {'type': 'string', 'title': 'Bill Id'}, 'version_id_a': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Version Id A', 'default': None}, 'version_id_b': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Version Id B', 'default': None}}}
find_similar_bills
Find bills with similar titles via deterministic trigram similarity, across jurisdictions. Labeled 'derived' -- not an official cross-reference or companion-bill designation.
입력 스키마
{'type': 'object', 'title': 'find_similar_billsArguments', 'required': ['bill_id'], 'properties': {'limit': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Limit', 'default': None}, 'bill_id': {'type': 'string', 'title': 'Bill Id'}}}
get_active_sessions
List legislative sessions currently flagged active, optionally filtered by jurisdiction (two-letter state code or name).
입력 스키마
{'type': 'object', 'title': 'get_active_sessionsArguments', 'properties': {'jurisdiction': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Jurisdiction', 'default': None}}}
get_bill_record
Fetch the full record for one bill: metadata, sponsors, subjects, actions, versions, and vote-event summaries. Look up by canonical bill_id (UUID), or by jurisdiction + identifier (+ optional session to disambiguate). For a human bill number like HB 123, use jurisdiction="NC", identifier="HB 123"; bill_id is for UUIDs.
입력 스키마
{'type': 'object', 'title': 'get_bill_recordArguments', 'properties': {'bill_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Bill Id', 'default': None}, 'session': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session', 'default': None}, 'identifier': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Identifier', 'default': None}, 'jurisdiction': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Jurisdiction', 'default': None}, 'include_full_text': {'type': 'boolean', 'title': 'Include Full Text', 'default': False}}}
get_jurisdiction_coverage
Return the jurisdiction_coverage state-machine status for one state (abbreviation or name), or the full 51-jurisdiction coverage matrix if state is omitted.
입력 스키마
{'type': 'object', 'title': 'get_jurisdiction_coverageArguments', 'properties': {'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'State', 'default': None}}}
get_upcoming_hearings
List upcoming (future-dated) legislative hearings/events, optionally filtered by jurisdiction and/or bill.
입력 스키마
{'type': 'object', 'title': 'get_upcoming_hearingsArguments', 'properties': {'limit': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Limit', 'default': None}, 'bill_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Bill Id', 'default': None}, 'jurisdiction': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Jurisdiction', 'default': None}}}
get_vote_details
Fetch vote event(s) with member-level (yes/no/other/absent) vote records. Provide vote_event_id for one vote, or bill_id for all recorded votes on that bill.
입력 스키마
{'type': 'object', 'title': 'get_vote_detailsArguments', 'properties': {'bill_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Bill Id', 'default': None}, 'vote_event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Vote Event Id', 'default': None}}}
list_topics
List Bill Commons' curated cross-state topic trackers (e.g. artificial intelligence, youth online safety, platform accountability, cybersecurity, cryptocurrency, data privacy, local government & preemption) -- the entry point for "what subjects does Bill Commons track across all 50 states + DC" and "how do I get every bill in one". Each topic is a title/subject membership rule tuned for precision over recall, with a live bill_count and how_to_fetch_bills. This tool does not itself return bill rows -- pair it with search_legislation or the REST API's /topics/{slug} for the bills.
입력 스키마
{'type': 'object', 'title': 'list_topicsArguments', 'properties': {}}
search_legislation
Search FULL BILL TEXT -- not just known-bill-number lookup. `q` is matched against titles, descriptions, AND ingested document text via Postgres websearch_to_tsquery (supports "quoted phrases", OR, and -exclusion, same syntax as a search engine), with a fuzzy pg_trgm title-similarity fallback when the exact query has no hits. `q` can ALSO be a bill number ("HB 123", "H.B. 123", "hb123" all match) and that fast path is tried first. Optionally filter by jurisdiction (two-letter state code or name), chamber, and status. For a curated cross-state slice of a subject (e.g. "every AI bill in the country") rather than an ad-hoc keyword search, call list_topics first -- its membership rules also match on structured subject tags this full-text search does not see.
입력 스키마
{'type': 'object', 'title': 'search_legislationArguments', 'required': ['q'], 'properties': {'q': {'type': 'string', 'title': 'Q'}, 'limit': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Limit', 'default': None}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'default': None}, 'chamber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Chamber', 'default': None}, 'jurisdiction': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Jurisdiction', 'default': None}}}
trace_legislative_history
Full chronological legislative history for a bill: merged timeline of actions, version publications, and votes, plus related-bill links.
입력 스키마
{'type': 'object', 'title': 'trace_legislative_historyArguments', 'required': ['bill_id'], 'properties': {'bill_id': {'type': 'string', 'title': 'Bill Id'}}}
변경됨
get_bill_record
2026년 9월 29일 2:59 AM
추가됨
list_topics
2026년 9월 17일 12:54 PM
추가됨
get_active_sessions
2026년 9월 17일 12:54 PM
추가됨
get_jurisdiction_coverage
2026년 9월 17일 12:54 PM
추가됨
build_legislative_evidence_packet
2026년 9월 17일 12:54 PM
추가됨
trace_legislative_history
2026년 9월 17일 12:54 PM
추가됨
get_upcoming_hearings
2026년 9월 17일 12:54 PM
추가됨
get_vote_details
2026년 9월 17일 12:54 PM
추가됨
find_similar_bills
2026년 9월 17일 12:54 PM
추가됨
compare_bill_versions
2026년 9월 17일 12:54 PM
추가됨
get_bill_record
2026년 9월 17일 12:54 PM
추가됨
search_legislation
2026년 9월 17일 12:54 PM