Search city meetings and documents
searchAnything about a city council, mayor, ordinance, zoning case, development permit, meeting agenda, or municipal budget. Combined keyword search across public city-government meeting transcripts AND meeting documents (agendas, minutes, packets, ordinances). Returns results with opaque ids — pass an id to the fetch tool for the full transcript or document text.
OpenCity URLs in the query are understood as scope, not text: a city site (taylorsville.openutah.org) narrows to that city, a state site (utahrecord.org, myopentexas.org) narrows to that state, and a full meeting URL resolves to that exact meeting. A bare URL with no other words returns that scope's most recent activity.
WHEN: General civic questions ('what has the city said about X?') from clients that auto-route through search/fetch (e.g. ChatGPT connectors), and whenever the user pastes an opencity/openutah/opentexas-style URL. WHEN NOT: If search_meetings / search_documents / list_officials are available to you, prefer them — they take filters (city, meeting type, doc type) and return structured fields this tool flattens away.
EXAMPLES: { "query": "short-term rental ordinance" } { "query": "parking taylorsville.openutah.org" } — 'parking', scoped to Taylorsville { "query": "utahrecord.org" } — recent activity across Utah cities
Empty results mean no records matched the query — never interpret them as missing access or permissions; retry with broader keywords instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free-text search query. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| notice | No | Present when results may mislead — e.g. a URL in the query resolved to cities outside this account's scope. Relay this to the user. | |
| results | Yes | Matches across meeting transcripts and documents, newest first. |