Skip to main content
Glama

Search what an official said (paid)

search_by_official
Read-onlyIdempotent

Retrieve every transcript segment a specific elected official has spoken. Optional q narrows within their segments. Returns their speaking history, newest first — what they argued, asked, and moved, in their own words.

WHEN: 'What has Councilmember X said about Y', their reasoning on an issue, or a verbatim quote with a jump-to timestamp. WHEN NOT: For how they voted, use track_position — that reads the recorded roll call (yes/no/abstain per decision). Transcripts capture discussion, not the tally, so compiling a voting record from these segments systematically under-reports and will miss votes entirely. If you don't yet have their UUID, call list_officials first. For non-elected speakers (staff, public commenters), use search_meetings.

EXAMPLES: { "official_id": "", "q": "housing" } { "official_id": "" } — full speaking history newest-first

REQUIRES: a paid plan (Resident and above). Free callers get an upgrade hint, no data.

Input Schema

NameRequiredDescriptionDefault
qNoOptional free-text query to narrow within this official's segments (e.g. 'budget', 'zoning').
limitNoMax hits returned. Default 10.
citiesNoOptional city-slug allow-list. Officials belong to one city already, so this is rarely needed; a list that excludes the official's city returns no hits.
official_idYesUUID of the elected official. Get this from list_officials or from the official_id field on a search_meetings hit.

Output Schema

NameRequiredDescriptionDefault
hitsYesTranscript segments where this official spoke, newest first.
totalYesTotal estimated matches for this official.
citiesQueriedYesNumber of cities actually searched.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, openWorld), and the description adds context they cannot: a paid-plan gate (Resident and above), the concrete free-tier behavior ('upgrade hint, no data'), and the newest-first ordering of results. These are exactly the behavioral traits an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core behavior, then cleanly sectioned into WHEN / WHEN NOT / EXAMPLES / REQUIRES. Every line carries routing or behavioral information; nothing is filler despite the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and the description covers everything else an agent needs: prerequisites (UUID from list_officials), paywall gating, alternative tools, and example calls. No material gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds invocation-shape value the schema doesn't: it clarifies that omitting q returns full speaking history and shows two worked examples. It slightly duplicates the schema's official_id sourcing note, keeping it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — retrieving every transcript segment a specific elected official has spoken — and scopes it ('spoken', newest-first). It explicitly distinguishes itself from siblings by naming track_position and search_meetings, so an agent can route correctly without opening other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit WHEN ('what has X said about Y', reasoning, verbatim quote with timestamp) and WHEN NOT sections name the exact alternatives: track_position for votes, list_officials for the UUID prerequisite, search_meetings for non-elected speakers. It even explains *why* the alternative is correct (transcripts under-report voting records), which is unusually strong routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources