Connection check
verified live · 28h ago
civic-meetings
Search US local-government meetings: AI summaries, transcripts, and adopted plan documents.
Tools
15
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
28h ago
Tools & capabilities
15 toolsRead from the running server on 28h ago.
discover_meeting_vocabulary
read-only
end_datestart_datetopic_limitgovernment_idgovernment_ids
Discover the valid category and topic filter values before filtering a search. Meeting `category_tag`s are opaque UUIDs and topics have no fixed list, so you cannot guess… Discover the valid category and topic filter values before filtering a search. Meeting `category_tag`s are opaque UUIDs and topics have no fixed list, so you cannot guess them. Call this first to get the real values, then pass a returned `category_tag` (from `categories[].tags`) or `topic` string into `search_meetings_semantic` / `list_recent_meetings`. Scope with a government and/or date range; calls without explicit dates default to a recent window (returned as `default_window_days`).
find_governments_by_name
read-only
limitquery*
Resolve a place *name* to the governments OpenPublica tracks there. Use this when you know a city/state name but not its coordinates — it returns matching governments with… Resolve a place *name* to the governments OpenPublica tracks there. Use this when you know a city/state name but not its coordinates — it returns matching governments with their `account_id` (prefix matches first), which you then pass to the search/list tools. Prefer this over `find_local_governments` when starting from a name rather than a latitude/longitude.
find_governments_by_zip
read-only
limitpostal_code*
Resolve a ZIP code to nearby tracked governments. Convenience wrapper: geocodes the ZIP, then finds the governments OpenPublica tracks nearest that point. Returns their `a… Resolve a ZIP code to nearby tracked governments. Convenience wrapper: geocodes the ZIP, then finds the governments OpenPublica tracks nearest that point. Returns their `account_id`s plus the resolved location. An empty `governments` list means none are tracked near that ZIP yet.
find_local_governments
read-only
limitlatitude*longitude*
Discover which governments OpenPublica tracks near a coordinate. Returns nearby governments with their `account_id`, which you can pass to the other tools to scope results… Discover which governments OpenPublica tracks near a coordinate. Returns nearby governments with their `account_id`, which you can pass to the other tools to scope results to a specific city or board. Note OpenPublica only covers a limited set of US localities; an empty result means none are tracked near that point yet.
get_coverage_overview
read-only
Get OpenPublica's overall coverage: total governments, states, and meetings indexed. DC is tracked but is not a state, so it is reported separately as `includes_dc` — read… Get OpenPublica's overall coverage: total governments, states, and meetings indexed. DC is tracked but is not a state, so it is reported separately as `includes_dc` — read the pair as "N states and DC".
get_document
read-only
document_id*
One document's metadata. Use read_document_pages to read it. If an `availability` key is present, read it before quoting figures: its `problems` are transcription-lint fin… One document's metadata. Use read_document_pages to read it. If an `availability` key is present, read it before quoting figures: its `problems` are transcription-lint findings, most often a footnote marker that may have been merged into the number it annotates. No such key means the document transcribed cleanly.
get_government_info
read-only
government_id*include_weekly_summary
Get a tracked government's profile: name, location, and meeting categories. Get a tracked government's profile: name, location, and meeting categories.
get_government_stats
read-only
daysgovernment_id*
Get meeting-activity stats for a government over a recent window. Returns total meeting count, a per-day activity map, and a breakdown of meeting categories — useful for "… Get meeting-activity stats for a government over a recent window. Returns total meeting count, a per-day activity map, and a breakdown of meeting categories — useful for "how active has X been lately?" questions.
get_meeting
read-only
meeting_id*include_transcript
Get a single meeting's full AI summary, topics, and attendees. Set `include_transcript=true` to also retrieve the complete transcript text for direct quotation. Returns an… Get a single meeting's full AI summary, topics, and attendees. Set `include_transcript=true` to also retrieve the complete transcript text for direct quotation. Returns an error object if the meeting is not found.
list_government_documents
read-only
government_id*include_superseded
List a government's adopted plan and budget documents. Each entry carries `covers` — every general-plan element that document answers for. A city that publishes one bound… List a government's adopted plan and budget documents. Each entry carries `covers` — every general-plan element that document answers for. A city that publishes one bound general plan satisfies all eight with the same PDF, so do not conclude an element is unpublished because no entry is named after it. `status` says what the entry offers: `converted` is searchable and readable; `superseded` is a retired edition, still stored but not searchable; and **`failed` means we hold this document and could not read it — it is not evidence the city published nothing.** Cite `source_url` in that case; it is always the city's own copy. An `availability` block appears ONLY when something is wrong with a document, and `availability.reason` says what. No `availability` key means there is nothing to report.
list_recent_meetings
read-only
pagelimittopicend_datestart_datecategory_tag
+1
Browse meetings newest-first, optionally filtered by government, type, topic, or date. Use this for "what are the most recent meetings" or to page through a government's h… Browse meetings newest-first, optionally filtered by government, type, topic, or date. Use this for "what are the most recent meetings" or to page through a government's history. For topical questions, prefer `search_meetings_semantic`.
read_document_pages
read-only
last_page*first_page*document_id*
Read a page range of a document as markdown. Pages are transcribed from rendered pixels, so tables and scanned text come through as text. A page that could not be transcri… Read a page range of a document as markdown. Pages are transcribed from rendered pixels, so tables and scanned text come through as text. A page that could not be transcribed appears as a marked hole rather than being silently dropped — if you see one, say so instead of reading past it. Text is assembled from page windows, so `covered` may be slightly wider than what you asked for; cite the page numbers in `covered`, not `requested`.
search_documents
read-only
limitquery*government_id
Search adopted plan and budget documents, returning page-cited excerpts. Each hit's `text` is a short passage around the match, not the full page — call read_document_page… Search adopted plan and budget documents, returning page-cited excerpts. Each hit's `text` is a short passage around the match, not the full page — call read_document_pages with the hit's `first_page` to read it in context. Every hit carries `first_page`/`last_page` and `source_url`. Quote those when citing: the page number is what makes the claim checkable against the city's own copy. This is word matching, not semantic search — try the terms a plan would actually use. Only currently-served documents are searchable, so an empty result is not evidence the government has no such policy; check list_government_documents for what is held and what could not be read. A hit with `document_complete: false` comes from a document with transcription findings. Verify it against `source_url` before quoting a number from it.
search_meetings_semantic
read-only
limitquery*topicend_datemin_scorematch_type
+4
Search OpenPublica meeting summaries by meaning, exact terms, or both. The best default tool for "what has been said/decided about X" questions. Results carry a `relevance… Search OpenPublica meeting summaries by meaning, exact terms, or both. The best default tool for "what has been said/decided about X" questions. Results carry a `relevance_score` (semantic, 0-1) and/or `keyword_score` (BM25) plus `highlights`, so you can triage matches by confidence. If the response sets `degraded_to_vector`, the keyword index was unavailable and results are semantic-only — do NOT treat them as exact-term matches. Narrow with `category_tag`/`topic` (get valid values from `discover_meeting_vocabulary`), a date range, or one or more governments. Returns a summary preview; call `get_meeting` with a returned `meeting_id` for the full summary or transcript.
search_meeting_transcript
read-only
query*meeting_id*max_passagescontext_chars