global.rootz.politics/officials
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Origin-signed US political data: 25,546 officials, bills, votes, positions with sources.
| Author | global.rootz.politics |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 100 ms |
| Last measured | 2026-10-26 |
Measured statistics
| Tools measured | 30 |
|---|---|
| Latency, 30-day median (L1) | 100 ms |
| Latency, latest (L1) | 100 ms |
| Safe-call success | 1/1 (100%) |
| 30-day success rate (L2) | 100% |
| Last checked | 2026-10-26 |
| Total checks | 6 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"officials": {
"url": "https://politics.rootz.global/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (30)
politics_representread-onlyRepresentation lookup for a US ZIP code: both U.S. Senators, the U.S. House member for that ZIP's congressional district, and the state's statewide executives (governor, attorney general, and similar). Every official carries source_url (the capture origin) and source_link (a public page).
Parameters:
zip(required) — string — 5-digit US ZIP code, e.g. 04101
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_searchread-onlySearch for politicians and elected officials across all levels of US government — federal, state, county, municipal. Filter by name, state, party, level, chamber, or office title. Returns officials with their current office, party, and contact info.
Parameters:
name— string — Official name (partial match, e.g. "Sanders" or "Alexandria")level— string — Government levellimit— integer — Max results (default 50)party— string — Party name (e.g. Democrat, Republican, Independent)state— string — State abbreviation (e.g. FL, NY, CA)office— string — Office title (e.g. Senator, Mayor, Governor, Town Clerk)offset— integer — Pagination offsetstatus— string — Status (default: active + candidate)chamber— string — Legislative chamber
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_officialread-onlyGet full details for a specific official by ID — biography, party, office, policy positions, committee assignments, campaign finance, social media, and contact info. All data includes source URLs for verification.
Parameters:
id— integer — Official ID from politics_search resultsexpand— boolean — Return the fuller record (larger response, untruncated detail). Default false = bounded for AI consumption.bioguide_id— string — Congress.gov Bioguide ID (e.g. S000033 for Bernie Sanders)positions_limit— integer — Max policy positions to return (default 15, max 250). Response is bounded so it fits any AI client tool-result limit.positions_offset— integer — Pagination offset for positions (page with offset += limit).
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_resolveread-onlyResolve a messy name string (e.g. "Rep. Johnson", "cornyn") to a canonical official — returns the best match with a 0-1 confidence score and ranked alternatives. Use this first when you have a name but not an ID; then call politics_official with best.id. Add state to disambiguate.
Parameters:
name(required) — string — Name to resolve (partial/with title/lowercase all OK)level— string — Government level to disambiguatestate— string — State abbreviation to disambiguate (e.g. TX)
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_by_stateread-onlyGet all current officials for a US state — federal senators and representatives, state legislators, and any indexed local officials. Organized by government level.
Parameters:
state(required) — string — State abbreviation (e.g. FL, CA, TX)
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_positionsread-onlyPolicy positions across officials by topic, covering who supports or opposes issues such as crypto, stablecoins, AI, healthcare, and guns. Each position carries a source URL and origin hash. Returns compact records by default (id, name, party, state, stance, summary, source) with a total count; the compact parameter controls row detail and offset controls paging.
Parameters:
topic(required) — string — Policy topic label — use exact stored labels: Cryptocurrency, Technology, Healthcare, Immigration, Climate, Gun Control, Abortion, Taxes, Economy, Education, National Security, Housing, Criminal Justice, Social Security, Voting Rights, Agriculture, Tradelimit— integer — Max results per page. Compact: default 100, max 250. Full: default 25, max 50.party— string — Filter by party (Republican, Democrat)state— string — Filter by state (2-letter code)offset— integer — Pagination offset. Response includes total; page by offset += limit.compact— boolean — Compact mode (default). Small bounded record per position; use with offset to page. Set false for full rows (limit capped at 50).
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_statsread-onlyGet summary statistics for the politics.rootz.global database — total officials, breakdown by level, party, state, and chamber. Shows coverage completeness.
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_timelineread-onlyGet the full origin timeline for a politician — every page snapshot, every position change, every data source with hash proof. The political wayback machine. Shows what changed, when, and where the data came from.
Parameters:
id(required) — integer — Official IDlimit— integer
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_changesread-onlyGet recent changes detected across all politicians — position shifts, website updates, new data. Each change links to the before/after snapshots with origin proof.
Parameters:
limit— integersince— string — ISO date to filter changes after (e.g. 2026-05-01)
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_originread-onlyGet origin archive statistics — total snapshots, changes detected, origin proofs recorded, unique URLs tracked. Shows the depth of the political wayback machine.
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_bridge_createCreate a citizen bridge page — a personalized workspace for tracking representatives, comparing positions, and taking action (write letters, log calls). Returns a shareable URL that any AI agent can collaborate on. Optionally auto-populates with the citizen's state representatives.
Parameters:
zip— string — ZIP code for precise district matchingstate— string — State abbreviation — auto-adds federal representativestopics— string — Comma-separated topics of interest (e.g. Healthcare,Climate)
Hints: read-only no · destructive no · idempotent no · open-world no
politics_bridge_sessionread-onlyCurrent state of a citizen bridge workspace: tracked officials, saved comparisons, drafted actions, and messages.
Parameters:
hash(required) — string — Bridge page session hashagent_id— string — Your agent identifier for multi-agent tracking
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_bridge_compareCompare multiple politicians side-by-side on a bridge page — positions, party, office, campaign finance. Optionally filter to a specific topic.
Parameters:
hash(required) — string — Bridge page session hashofficial_ids(required) — array — Array of official IDs to comparetitle— string — Title for this comparisontopic— string — Optional topic to focus comparison on
Hints: read-only no · destructive no · idempotent no · open-world no
politics_bridge_letterDraft a letter to a politician on the citizen's bridge page. The letter gets an origin hash for proof of content. Returns delivery options (email, web form, USPS, phone).
Parameters:
hash(required) — string — Bridge page session hashofficial_id(required) — integer — Official to write tobody(required) — string — Letter body textsubject— string — Letter subjectaction_type— string
Hints: read-only no · destructive no · idempotent no · open-world no
politics_billread-onlyDetails of a US bill or resolution: vote breakdown, sponsors, cosponsors, status, and origin proof. Returns metadata, a short text excerpt, and a text index by default; full legislative text is omitted because omnibus bills exceed typical token caps. The include_text parameter controls whether the complete text is returned in a single response.
Parameters:
bill_id(required) — string — Bill ID (e.g. hr3424-119 for House bill 3424 in 119th Congress)include_text— string — excerpt (default): metadata + ~1.2KB head + text index. none: metadata + index only. full: entire full_text (may exceed the token cap for large bills).
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_bill_tocread-onlySection index for a bill: every "SEC. N" heading with its character offset and length, plus the whole-bill origin hash (content_hash) and total text length. A small response that describes the structure of a large bill.
Parameters:
bill_id(required) — string — Bill ID (e.g. hr7148-119)
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_bill_textread-onlyOne signed, bounded slice of a bill's full legislative text, addressed by part number or section label. Each response carries part and total_parts, next_part, the slice's part_sha256, and the whole-bill content_hash. Parts 1 through total_parts concatenated in order hash to content_hash, so a bill too large to return in a single response remains verifiable as complete and unaltered.
Parameters:
bill_id(required) — string — Bill ID (e.g. hr7148-119)part— integer — 1-based part number. Response tells you total_parts and next_part.section— string — Jump to a section by label instead of part, e.g. "2", "SEC. 2", or "preamble". Overrides part.max_chars— integer — Max characters per part (2000–60000). Larger = fewer parts but bigger responses.
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_bills_searchread-onlySearch bills by topic, sponsor, status, or congress. Returns bill metadata and whether full text is available.
Parameters:
limit— integertopic— string — Topic keyword (e.g. crypto, defense, healthcare)status— string — Bill status: introduced, committee, passed_house, passed_senate, enactedsponsor— string — Sponsor name or bioguide IDcongress— integer — Congress number (119 = 2025-2026)
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_candidate_feedread-onlyGet a candidate's Campaign Data Standard (CDS) feed: a single machine-readable record of who they are, the offices they hold and seek, their positions in their own words (each source-linked), their voting record by reference, and declared data gaps. This is the standardized, signed feed an AI or reporter uses to grab a candidate's positions and verify they are genuine. Every MCP response is signed; the standalone signed feed is also at /official/{id}/candidate.json. Tier is "rootz-compiled" until the campaign claims and signs it ("candidate-signed").
Parameters:
id— integer — Official ID (from politics_search)expand— boolean — Deliver more positions inline (larger response). Default false = bounded for AI consumption.bioguide_id— string — Bioguide ID (alternative to id)positions_limit— integer — Max positions in the delivered feed (default 15, max 500). The complete signed feed (all positions) is always at signed_feed_url.positions_offset— integer — Pagination offset for positions.
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_alignmentread-onlyCompare an official's stated positions against their actual roll-call votes, per topic — what they SAY vs how they VOTED, both source-linked. Does NOT label agreement/contradiction (you judge and cite); surfaces the juxtaposition no unsigned source can. Use official id.
Parameters:
id(required) — integer — Official ID
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_coverageread-onlyCoverage map: per-state, per-dataset completeness (officials by level, positions, finance, state-legislative votes). Shows WHERE the data is deep (federal — complete) vs sparse (local). Use it to know whether silence means "no data captured" rather than "nothing there".
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_methodologyread-onlyGet the full transparency methodology — how we collect, assess, extract, sign, and verify political data. Includes quality assessment algorithm (signals + weights), trust levels, data sources, cron schedule, and what we can and cannot prove. Open and auditable.
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_provenanceread-onlyGet the complete origin proof chain for an official — every data source, content hash, quality assessment, snapshot history, and verification instructions. Proves where every piece of data came from.
Parameters:
official_id(required) — integer — Official ID
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_speechesread-onlySearch Congressional Record floor speeches by official, topic, date range, or keyword. Returns verbatim text from the official government record with origin proof hash. Every speech is directly citable with a GPO source URL.
Parameters:
text— string — Full-text search within speech contentlimit— integer — Max resultstopic— string — Topic (Cryptocurrency, Healthcare, Immigration, etc.)chamber— string — Filter by chamberdate_to— string — End date ISOdate_from— string — Start date ISO (e.g. 2025-01-03)bioguide_id— string — Bioguide ID (e.g. L000571 for Lummis, S001184 for Tim Scott)official_id— integer — Official ID from politics_search
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_candidatesread-onlyRegistered federal candidates for the 2026 election cycle, filterable by state, office (senate, house, president), party, or presence of a campaign URL. Returns campaign website, social media links, FEC data, and position and speech counts.
Parameters:
limit— integer — Max results (default 50)party— string — Filter by party (Democrat, Republican, Libertarian, etc.)state— string — Two-letter state code (e.g. ME, CA, TX)office— string — Filter by officeoffset— integer — Pagination offsethas_url— boolean — Only return candidates with campaign websites
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_state_votesread-onlySearch state legislature votes across 26+ US states. Filter by state, topic, or date. Returns bill title, vote result, yes/no counts.
Parameters:
days— integer — Look back N days (default 30, max 365)limit— integer — Max results (default 30, max 100)state— string — Two-letter state code (CA, TX, NY, etc.)topic— string — Topic filter (Healthcare, Economy, Education, etc.)bill_id— string — Specific bill identifier (e.g. HB 1234)
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_municipalitiesread-onlySearch US municipalities (cities, towns, villages, counties). Every incorporated place in the US with coordinates. Filter by state, name, or type. Returns website, platform, meeting calendar, and board/commission info where available.
Parameters:
name— string — Municipality name (partial match)type— string — Place type: city, town, village, borough, county, cdplimit— integer — Max results (default 30)state— string — Two-letter state code (MA, CA, TX, etc.)
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_create_watchlistCreates a Just the Facts watchlist bound to an email address, covering any combination of specific officials, issue topics, and a town with state for local meetings, agendas, and minutes. Sends a double-opt-in confirmation email and returns the bridge workspace URL.
Parameters:
email(required) — string — Subscriber email (required)name— string — Watchlist nametown— string — Town/city to track local meetings (e.g. Fort Myers)state— string — 2-letter state for the towntopics— array — Issue topics (e.g. Crypto, Healthcare)cadence— string — Digest frequencyofficials— array — Official IDs to trackreport_prompt— string — Plain-English brief for how the digest is written
Hints: read-only no · destructive no · idempotent no · open-world no
politics_pollsread-onlySearch the SIGNED public-poll archive. Unlike aggregators, every poll keeps the EXACT question wording, population base (LV/RV/adults), sample size, margin of error, mode, and per-option toplines — first-party sourced, snapshot-hashed, and cryptographically signed (verifiable). Filter by race_key, state, subject (e.g. "approval", "Senate"), pollster, or since (ISO date). Returns a list; call politics_poll {id} for full detail + signature. Use this when a question hinges on what a poll ACTUALLY asked vs how it was reported.
Parameters:
cycle— integer — Election/survey cycle year (e.g. 2026)limit— integersince— string — Only polls whose field_end >= this ISO date (e.g. 2026-08-01)state— string — 2-letter state (omit for national)offset— integersubject— string — Subject substring (e.g. "approval", "TX Senate", "immigration")pollster— string — Pollster substring (e.g. "Quinnipiac", "Emerson")race_key— string — Stable contest key to get every poll of one race over time (e.g. us-pres-approval-trump)
Hints: read-only yes · destructive no · idempotent yes · open-world no
politics_pollread-onlyGet one poll in full: pollster, sponsor, field dates, population, sample size, margin of error, mode, the VERBATIM question(s) asked, per-option toplines, the first-party source_url, and the signature (poll_proof) that binds the exact wording and numbers. This is the ground truth to check any claim about a poll against.
Parameters:
id(required) — integer — Poll ID from politics_polls results
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.