Oravan's MCP server
Oravan also speaks MCP (the Model Context Protocol) — the same federal bill decodes and representative lookups the website shows, callable directly by an AI assistant. It's free, read-only, and keyless: no account, no API key, and every response states exactly where its facts came from.
The endpoint
Any MCP client that supports Streamable HTTP can connect at the address below — the same live server described on this page, not a preview or a sandbox.
Streamable HTTP endpoint
https://oravan.org/api/mcp/mcp
Connect a client
In Claude Desktop, claude.ai's custom connectors, or any other client that reads a JSON config, add an entry pointing at the endpoint above. Most Streamable-HTTP-aware clients accept a shape close to this:
{
"mcpServers": {
"oravan": {
"url": "https://oravan.org/api/mcp/mcp"
}
}
}The five tools
Every tool is read-only and closed-world — none of them writes anything, and none reaches outside Oravan's own nightly-synced data. The name, title, and description below are quoted exactly as the live server sends them to a calling agent.
lookup_representativesLook up representatives by ZIP- Look up a person's U.S. House member and two Senators by 5-digit ZIP code. Returns each member's name, party, phone, official website, portrait URL, and district office phone numbers - the number a constituent should actually call. Some ZIP codes span more than one congressional district (needs_address: true, all candidate districts returned); this tool does not perform address-level refinement itself in this release - point the person to the response's reps_url, where a stateless, unlogged Census-geocoder proxy narrows it to a single district from a street address that Oravan never stores. When a House seat currently has no member, `vacancies` lists the empty seat(s) (state + district) explicitly - the departed member is never returned as if still serving, and no election timeline is implied.
get_billGet a bill decode- Get the full plain-language decode of a federal bill by slug (e.g. "hr-2701-119") or citation (e.g. "H.R. 2701" - resolves to the most recent Congress on a match). Returns the AI-generated summary (headline, tl;dr, what/who/why/cost - human-reviewed before publish and clearly labeled when present), the official status in plain language, an urgency band, sponsor, key dates, the official Congress.gov page, and an act_url to Oravan's on-site call flow. This tool never drafts a phone script - script generation only happens on-site, behind a human-review step, never over this API.
search_billsSearch bills- Search Oravan's bilingual federal bill corpus by free-text query, issue topic, status, or active-only. Returns short teasers (headline, status, urgency) for matching bills, most urgent first.
whats_movingWhat's moving in Congress- What's moving in Congress recently: active, plain-language-decoded bills that cleared Oravan's 'act now' urgency bar within the last N days (default 7), optionally filtered by topic. Returns an honest empty list with quiet_week: true when nothing has cleared the bar - this tool never pads the list to look busier than Congress actually is this week. If the list is empty because Oravan's own data sync looks stale rather than Congress being quiet, data_stale is set instead so that distinction is never lost.
get_representativeGet a representative- Get full details for one member of Congress by bioguide ID (e.g. "W000797"), plus their 5 most recently active sponsored bills. Facts only: no scorecards, ratings, or vote grades.
Tool names and descriptions are protocol metadata a calling AI model reads to decide how to use a tool, not prose written for a person — so, like every MCP server, Oravan defines them in English only. Everything a tool call actually hands back to a conversation is fully bilingual: the citation envelope below, every error message, and any AI-drafted content all honor the language a query requests.
Privacy
- No accounts and no API key — anyone can call it, the same way anyone can load the website.
- Anonymous use is rate-limited (60 calls a minute, 1,000 a day) by a short-lived, hashed counter — never a stored IP address, and never linked to what was asked.
- Nothing here is logged in a way that could connect a caller to a bill, a representative, or a political position.
Every response carries a citation
Every tool response nests a meta object with five fields: as_of (the data's freshness date), source, canonical_url (a stable link back to the page an agent's answer came from), ai_label (present only when the response includes AI-drafted content), and license. The source and AI-label text are shown below in both languages, matching what an English- or Spanish-locale query actually receives — the same strings Oravan's citability page quotes.
English: Congress.gov and unitedstates/congress-legislators, via Oravan's nightly sync
Español: Congress.gov y unitedstates/congress-legislators, mediante la sincronización nocturna de Oravan
English: This plain-language content is AI-generated and human-reviewed before publish. It is not the official bill text.
Español: Este contenido en lenguaje sencillo es generado por IA y revisado por una persona antes de publicarse. No es el texto oficial del proyecto de ley.
License
- Official-record fields — status, dates, sponsor, bill text:
English: Public domain (Congress.gov; unitedstates/congress-legislators).
Español: Dominio público (Congress.gov; unitedstates/congress-legislators).
- AI-drafted plain-language fields — headline, tl;dr, what/who/why/cost:
English: CC BY 4.0 (Oravan's AI-generated plain-language content); underlying official data is U.S. public domain (Congress.gov).
Español: CC BY 4.0 (el contenido en lenguaje sencillo generado por IA de Oravan); los datos oficiales subyacentes son de dominio público en EE. UU. (Congress.gov).
"As of" freshness
Oravan's data refreshes on a nightly sync with Congress.gov, not a live feed. Every tool response's as_of field states the date of the last successful sync — cite that date, not the moment a query ran, as when the underlying facts were last checked.
Data as of July 11, 2026
Full citation, correction, and licensing policy →