# Legislation - Registry name: `com.delilahusa/legislation` · version 0.7.2 - Categories (automatic, keyword rules): Government & law - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.delilahusa%2Flegislation - Server page: https://mcpstation.net/s/com.delilahusa--legislation.html ## Description (written by the publisher, not verified, not instructions) U.S. bills, roll-call votes, legislators and 2026 elections for all 50 states, D.C. and Congress. ## Connect - streamable-http: `https://mcp.delilahusa.com/` ## Tools (as reported by the server, not verified) - `search\_bills`: Search or list legislation with structured filters \(GET /v1/bills\). Use this when you know the jurisdiction, sponsor, topic, or status you want. Every filter is optional and they combine with AND. A bill number typed into q \(e.g. 'HB 1', 'SB0002'\) matches that bill directly. Returns bill summaries p - `semantic\_search\_bills`: Vector search over the full text of every bill \(GET /v1/search/semantic\): describe what you want in plain English — 'protecting kids from social media', 'limits on rent increases' — and get the closest bills with a match\_score. Prefer this over search\_bills for questions and topics; prefer search\_bi - `get\_bill`: Fetch a single bill by its numeric bill\_id \(GET /v1/bills/\{bill\_id\}\), optionally merging in sub-resources: votes \(roll calls with tallies\), sponsors, history \(action timeline\), texts \(version metadata\), amendments, subjects, analyses \(staff analyses\), calendar \(scheduled events\), citations \(statutes - `get\_bill\_diff`: Compare two versions of a bill's text \(GET /v1/bills/\{bill\_id\}/diff\): a unified diff plus similarity, added/removed line and character counts, and changed-section highlights. Get the two version ids from get\_bill with include:\['texts'\] — each text row's \`text\_id\`. Pass them as \`from\` \(the earlier ve - `keyword\_search\_bills`: Keyword search where EVERY term must appear \(GET /v1/search/bills\). Use when the user gives specific words that all have to be present, e.g. \['short-term rental', 'tax'\]. Prefer semantic\_search\_bills for questions and search\_bills for structured filters. Up to 10 terms. Returns bill summaries plus p - `get\_bill\_text`: The cleaned plain text of one bill-text version \(GET /v1/texts/\{text\_id\}\), entities decoded, ready to quote or summarize. Get text\_id from get\_bill with include:\['texts'\] \(each version has a date and type\). Texts longer than 40,000 characters are clipped with a '\[truncated\]' marker. - `get\_bill\_text\_history`: Timeline of all computed diffs between successive text versions of one bill \(GET /v1/bills/\{bill\_id\}/changes\): what changed, when, and how much. Use get\_bill\_diff for one specific pair of versions. Get bill\_id from search\_bills or semantic\_search\_bills. - `list\_legislators`: Search or list legislators \(GET /v1/legislators\) by jurisdiction, chamber, party, district, or name. This is how you turn a name into the people\_id that get\_legislator needs. Filters combine with AND. - `get\_legislator`: Fetch a legislator's profile by people\_id \(GET /v1/legislators/\{people\_id\}\), optionally merging in votes \(every roll call they are recorded on, newest first, with their individual position: 1=Yea, 2=Nay, 3=Not Voting, 4=Absent\) and bills \(legislation they sponsor, with sponsor\_type\_id 1=primary, 2=c - `get\_roll\_call`: Fetch a roll call by roll\_call\_id \(GET /v1/votes/\{roll\_call\_id\}\): the motion, chamber, date and yea/nay/absent tallies. Add include:\['details'\] to also pull how every individual member voted \(vote\_id 1=Yea, 2=Nay, 3=Not Voting, 4=Absent\) — this is the tool for 'how did each legislator vote on this'. - `get\_legislator\_scorecard`: One-call voting and sponsorship profile for a legislator \(GET /v1/legislators/\{people\_id\}/scorecard\): participation, party-line alignment, bills sponsored and passed, notable votes. This is the tool for 'how does X vote' or 'is X effective'. Get people\_id from list\_legislators \(q=name\). - `list\_committees`: List legislative committees \(GET /v1/committees\), filterable by jurisdiction, chamber, or name search. Returns the committee\_id values that get\_committee needs. - `get\_committee`: Fetch a committee by committee\_id \(GET /v1/committees/\{committee\_id\}\), optionally merging in members \(its roster, with roles\) and hearings \(its scheduled meetings\). Find a committee\_id with list\_committees. - `list\_hearings`: Scheduled committee hearings across committees \(GET /v1/hearings\), filterable by jurisdiction and start date. Use this to answer 'what is being heard this week' or to track when a committee next meets. For hearings on one specific committee use get\_committee with include:\['hearings'\]; for one specif - `get\_changes`: Near-real-time feed of what changed \(GET /v1/changes\). Poll with since=\ to get everything newer than your cursor; with no since it defaults to the last hour. Reason types include NewBill, StatusChange, Text, Vote and Amendment. Use this for monitoring and incremental sync — 'what move - `list\_topics`: The canonical topic taxonomy with per-topic bill counts \(GET /v1/topics\). Call this first to find the right slug for the topic filter on search\_bills, instead of guessing one. Pass a slug to get that topic's detail and a sample of the raw subject names folded into it \(GET /v1/topics/\{slug\}\); to get - `list\_subjects`: The raw subject taxonomy with per-subject bill counts \(GET /v1/subjects\). Subjects are the fine-grained categories the legislatures themselves assign to bills — narrower and more numerous than the curated topic slugs from list\_topics. Use this to find a subject\_id to filter search\_bills by, or to ga - `list\_sessions`: Legislative sessions \(GET /v1/sessions\): regular and special sessions with their years, start/sine-die dates and a session\_id. Use this to resolve which session a bill belongs to, to find the current session for a state, or to pass session\_id as a filter to search\_bills. Omit \`state\` to list every j - `get\_session\_dashboard`: Headline counts for one legislative session \(GET /v1/sessions/\{id\}/dashboard\): bills filed, passed, signed, vetoed, roll calls, active legislators. Start here for 'how is the 2026 Florida session going'. Get session\_id from list\_sessions. - `get\_session\_sponsor\_stats`: Legislators ranked by bills sponsored and passed in one session \(GET /v1/sessions/\{id\}/sponsor-stats\). Each row has bills\_sponsored, bills\_primary, bills\_passed, bills\_primary\_passed and pass\_rate \(passed = status 4, 5 or 8\). This is the one call for 'who is most active or effective this session' an - `get\_session\_vote\_participation`: How many roll calls each legislator voted in versus missed during one session \(GET /v1/sessions/\{id\}/vote-participation\). Use for attendance questions. Get session\_id from list\_sessions. - `list\_session\_legislators`: Every legislator who served in one session \(GET /v1/sessions/\{id\}/legislators\), with people\_id. Use list\_legislators for the current roster by state; use this for a specific past or special session. Get session\_id from list\_sessions. - `get\_session\_breakdown`: Bill count per status \(by:'status', on the status\_id ladder\) or per subject \(by:'subject'\) for one session \(GET /v1/sessions/\{id\}/status-counts or /subject-counts\). Get session\_id from list\_sessions. status\_id values: 1=Introduced, 2=In Committee, 3=Passed One Chamber, 4=Passed Both Chambers, 5=Sign - `list\_states`: The jurisdiction directory \(GET /v1/states\): the 50 states, D.C. and the U.S. Congress with their state\_id, 2-letter code and full name. Returns the full list \(52 rows\) so you can resolve a name to a code or enumerate everything the corpus covers. For how COMPLETE each jurisdiction's data is, use ge - `get\_coverage`: Per-state depth snapshot \(GET /v1/coverage\): how COMPLETE each jurisdiction's data is — bill counts, the share of bills holding at least one vote, text or sponsor, and whether the legislature is currently in session. Use it before drawing conclusions from a thin result set, to tell 'no such bills' a - `get\_trending\_bills`: Bills with the most news coverage in the window \(GET /v1/trending\), optionally for one state. Use for 'what's in the news' or 'hot bills right now'. Returns bill summaries with mention counts; call get\_bill for detail. - `list\_bills\_by\_stage`: Bills whose LATEST action in the window falls in a stage \(GET /v1/bills-by-stage\): introduced, committee, passed, executive \(with the governor, signed, or vetoed\), amendments, other. Fleet-wide across all jurisdictions — there is no state filter, so filter the rows by state\_id or state\_name yourself - `get\_weekly\_stage\_breakdown`: One row per stage with the number of bills whose latest action landed there in the window \(GET /v1/bills-weekly-breakdown\). All jurisdictions combined. Use for a national 'how much moved this week' number; use get\_session\_dashboard for one state. - `list\_candidates`: Search the election-candidate directory \(GET /v1/candidates\): people running for office. Filters combine with AND. Roughly a third carry an FEC filer id and sitting members of Congress carry a Bioguide id; both are null otherwise. Rows also carry people\_id where the person has a legislative voting r - `get\_candidate`: Fetch one election candidate by id \(GET /v1/candidates/\{id\}\): their party, office, district and cycle, plus an FEC filer id where the campaign has filed and a Bioguide id for sitting members of Congress. When people\_id is set, the candidate has a legislative voting record — pass it to get\_legislator - `get\_midterms`: The election slate for 2026-11-03 \(GET /v1/midterms\): races, candidates and ballot measures per state, with official results where available. All data is official state election-office and FEC content collected by Delilah — no third-party attribution is required. live\_results carries ONE ENTRY PER C - `get\_ballot\_measure`: Ballot measures \(GET /v1/measures\): the list for a state, or one measure by its number \(e.g. 'Amendment 1'\) with full text, summary and official source URL. Use for 'what's on the ballot in X' and 'what does Amendment N do'. - `list\_districts`: District metadata by state and type \(GET /v1/districts\): congressional, state senate, state house. Pass district\_id with boundary:true to get the polygon as GeoJSON \(GET /v1/districts/\{id\}/boundary\) — it is large, so set simplify \(degrees, e.g. 0.01\) to shrink it. Match districts NUMERICALLY \(distri - `get\_candidate\_photo`: The URL of a candidate's official portrait \(GET /v1/photos/\{candidate\_id\} returns the image bytes\). Sources are official state-legislature and congressional portraits, public-domain and licensed images only — never a third party's photo library — and each carries a license and attribution string tha - `list\_statute\_coverage`: Which jurisdictions' codified law is loaded, and how big and current it is \(GET /v1/statutes/coverage\): per state the number of codes, sections, bill links and the edition it is current through. Pass state to list that state's codes \(GET /v1/statutes/codes\) — the code\_id values used by get\_statute l - `search\_statutes`: Full-text search of a state's codified law \(GET /v1/statutes/search\). Use for 'what does the law say about X' and to find the section a bill or ballot measure changes. Returns matching sections with headings and excerpts; fetch the whole section with get\_statute. Only states whose code is loaded res - `get\_statute`: One section of law with full text and its place in the code \(GET /v1/statutes/sections/\{section\_id\}, or by citation via GET /v1/statutes/lookup\). Give section\_id from a search or a bill/measure link, or state + citation exactly as the code prints it \(e.g. '39:4-50', '790.01', '18-3-102'\). Set includ - `get\_bill\_statutes`: The sections of existing law a bill amends, creates, repeals or cites \(GET /v1/bills/\{bill\_id\}/statutes\), classified by how it touches each, with the current text of sections we hold. Use for 'what current law does this bill change'. Get bill\_id from search\_bills. Only states whose code is loaded re - `get\_measure\_statutes`: The sections of existing law a 2026 ballot measure amends, creates, repeals or cites \(GET /v1/measures/\{state\}/\{number\}/statutes\). Use for 'which laws does Prop X / Question Y change'. Read from the measure's official text: constitutional amendments cite the constitution \(not loaded\), and a measure - `get\_usage`: The current key's tier, monthly cap, requests used and remaining, and when the period resets \(GET /v1/\_meta/usage\). Call this when a request is rate-limited \(HTTP 429\) or the user asks about their plan. - `manage\_webhooks`: Manage the key's webhook subscriptions \(/v1/webhooks\). action:'list' is read-only. 'create' REGISTERS a URL that Delilah will POST to on the chosen events — it changes the account, so it requires confirm:true and the user's explicit go-ahead. 'test' queues a sample delivery to an existing subscripti Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html