Skip to main content
Glama

Server Details

Search US local-government meetings: AI summaries, transcripts, and adopted plan documents.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 59 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation4/5

Each tool targets a distinct resource/action, but the three meeting-search tools (search_meeting_content, search_meetings_semantic, search_meeting_transcript) plus search_documents share enough surface that an agent must read descriptions carefully to pick correctly. The descriptions do actively disambiguate (semantic vs stored-text vs single-meeting scope), so overlap is manageable rather than confusing. The three find_governments_* tools are cleanly separated by input type (name, ZIP, coordinate).

Naming Consistency5/5

All 16 tools use strict snake_case with a leading verb (discover_, find_, get_, list_, read_, search_) followed by a clear noun phrase. The convention is uniform across the whole set, making tool names predictable and scannable.

Tool Count4/5

16 tools slightly exceeds the typical sweet spot but each maps to a real capability (government resolution, meeting browsing/search, document listing/search/reading, vocabulary discovery, stats). The count is defensible for a search-oriented domain that combines meetings and documents, though the four search variants feel like the main source of bloat.

Completeness4/5

For a read-only public-records search server, coverage is strong: government discovery by name/ZIP/coordinate, meeting list/get/semantic-search/content-search, document list/get/read/search, plus vocabulary and coverage/stats helpers. There are no obvious lifecycle gaps in a domain where mutation isn't expected, though a unified cross-meeting-and-document search or a 'list all governments' primitive is not present.

Available Tools

16 tools
discover_meeting_vocabularyDiscover category and topic filtersA
Read-only
Inspect

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`).
NameRequiredDescriptionDefault
end_dateNoOptional latest date, MM-DD-YYYY.
start_dateNoOptional earliest date, MM-DD-YYYY.
topic_limitNoMax topics to return, most common first (1-200).
government_idNoOptional account_id to scope the vocabulary to one government.
government_idsNoOptional list of account_ids to scope to several governments. Overrides government_id.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, non-destructive), and the description adds real behavioral context: values are opaque UUIDs, topics have no fixed list, and calls without explicit dates fall back to a recent window returned as default_window_days. This is genuinely useful beyond the annotations, though not exhaustive.

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 action and rationale, then the downstream routing and scoping note. Every sentence carries distinct information with no padding.

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 values need not be restated, and all five parameters are documented in the schema. The description supplies the missing 'why' and 'when', leaving nothing an agent needs to call it correctly.

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 meaning: it explains the government/date scoping intent and the default-window behavior when start_date/end_date are omitted, which the schema alone does not convey.

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 ('Discover the valid category and topic filter values') and explains why the tool exists (values cannot be guessed). It clearly differentiates itself from the search/list siblings it feeds into.

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?

Explicitly says to 'Call this first' and names the downstream alternatives ('search_meetings_semantic' / 'list_recent_meetings') with the exact arguments to pass. When-to-use is unambiguous.

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

find_governments_by_nameFind governments by nameA
Read-only
Inspect

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.
NameRequiredDescriptionDefault
limitNoMax governments to return (1-50).
queryYesA place name to search for, e.g. 'Sacramento', 'San Francisco, CA', or a state like 'Texas'.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context: results carry an `account_id`, prefix matches are ranked first, and the output feeds downstream search/list tools. It omits edge cases such as zero-match behavior and result ordering ties, so it stops short of a 5.

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?

Two sentences, zero waste: the resolution behavior and the routing rule each get one sentence, with the name-vs-coordinates distinction front-loaded before the sibling comparison.

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?

An output schema exists, so return values need not be enumerated, yet the description still calls out the `account_id` field that makes the tool useful as a pipeline step. For a 2-parameter lookup with full schema coverage and annotations, nothing an agent needs is missing.

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. The description goes beyond the schema by disclosing query matching semantics (prefix matches ranked first) and by naming the returned `account_id` as the value to hand to other tools, which is meaningful parameter/flow context the schema does not carry.

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 ('Resolve') and resource ('place name' → 'governments OpenPublica tracks'), and the sibling list makes the distinction sharp: find_governments_by_zip, find_local_governments, and get_government_info all cover adjacent territory. An agent can route without opening any schema.

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-to-use ('when you know a city/state name but not its coordinates'), explicit alternative ('Prefer this over find_local_governments'), and the condition that selects between them (name vs latitude/longitude). Nothing is left to inference.

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

find_governments_by_zipFind governments by ZIP codeA
Read-only
Inspect

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.
NameRequiredDescriptionDefault
limitNoMax governments to return (1-50).
postal_codeYesA US ZIP code, e.g. '95814'.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly, non-destructive, openWorld). The description adds real value beyond them: that it internally geocodes, resolves proximity, returns account_ids plus resolved location, and that an empty list means none tracked nearby yet. That last point is a genuinely useful behavioral disclosure.

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?

Two short paragraphs, front-loaded with the purpose, with no wasted sentences. The wrapper explanation and empty-result note each earn their place.

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?

Given an output schema exists, return-shape explanation is not required, yet the description still clarifies what is returned (account_ids, resolved location) and the empty-result edge case. An agent has everything needed to call and interpret it correctly.

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

Parameters3/5

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

Schema coverage is 100%, so both postal_code (US ZIP example) and limit (1-50) are fully documented in the schema. The description adds the resolved-location/account_id semantics but no additional parameter syntax beyond the schema, so baseline 3 applies.

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?

Specific verb (resolve) and resource (ZIP to nearby governments), and explicitly labels itself a convenience wrapper combining geocoding plus proximity lookup. It is clearly distinguishable from siblings like find_governments_by_name or find_local_governments.

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

Usage Guidelines4/5

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

Explains it geocodes then finds nearest tracked governments, giving a clear usage context. It does not explicitly say when to prefer find_governments_by_name or find_local_governments instead of this ZIP route, so no explicit exclusion/routing is offered.

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

find_local_governmentsFind governments near a locationA
Read-only
Inspect

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.
NameRequiredDescriptionDefault
limitNoMax governments to return (1-50).
latitudeYesLatitude of the location of interest.
longitudeYesLongitude of the location of interest.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld, and non-destructive. The description adds genuinely new behavioral context: OpenPublica's limited US-locality coverage and the fact that an empty result means nothing is tracked nearby yet. That coverage caveat is exactly the kind of detail annotations cannot convey.

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?

Three short sentences, front-loaded with the purpose, followed by the practical use of the return value and the coverage caveat. No filler.

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?

An output schema exists, so return values need not be enumerated, yet the description still highlights the one field that matters (account_id) and the coverage caveat. For a simple geo-lookup tool, nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so longitude, latitude, and limit are already fully documented (including range bounds). The description adds no syntax or format detail beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Discover which governments OpenPublica tracks near a coordinate'), and the coordinate-based mechanism implicitly separates it from the by_name and by_zip siblings. It stops short of naming those siblings explicitly, so it is clear but not fully differentiated.

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

Usage Guidelines4/5

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

Explains the downstream workflow: the returned account_id can be passed to other tools to scope results to a city or board. It also clarifies what an empty result means. It does not state when to prefer this over find_governments_by_name or by_zip.

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

get_coverage_overviewGet coverage overviewA
Read-only
Inspect

Get estimated stored-record totals, not publication-filtered coverage.

Counts do not establish completeness, searchability or freshness. DC is
reported separately from states as `includes_dc`.
NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful interpretive caveats beyond that: counts do not establish completeness, searchability or freshness, and DC is reported separately as includes_dc. This tells the agent how to read the result, not just that it is safe.

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

Conciseness4/5

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

Three short sentences that are front-loaded with the core definition and then the caveats. No filler, though the line breaks make it slightly choppier than a single tight paragraph.

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

Completeness4/5

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

An output schema exists, so the description needn't enumerate return fields; it supplies the interpretive framing an agent needs. The only gap is the absence of routing guidance relative to the many sibling tools.

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?

The tool takes zero parameters, so there is nothing to document and the baseline of 4 applies. The schema is an empty object and the description correctly does not invent parameter behavior.

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

Purpose4/5

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

States a specific verb+resource: it returns estimated stored-record totals, and explicitly frames this as coverage at the storage level rather than publication-filtered coverage. It is clear enough to distinguish from a publication-oriented sibling, though it never names which collection the records belong to.

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

Usage Guidelines3/5

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

It clarifies the scope of the counts (stored-record, not publication-filtered) which implicitly tells the agent when this is the right metric, but it names no alternative tool and gives no explicit when/when-not guidance against siblings like get_government_stats or get_document.

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

get_documentGet document metadataA
Read-only
Inspect

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.
NameRequiredDescriptionDefault
document_idYesDocument id from list_government_documents or search_documents.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds meaningful behavior beyond that: it explains the optional availability key and what its problems list means, which the agent cannot infer from annotations or schema. It does not cover what fields the metadata contains, keeping it below a 5.

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

Conciseness4/5

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

Two short paragraphs, front-loaded with the purpose and the sibling redirect, then the conditional availability note. No wasted words, though the second paragraph is slightly dense.

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

Completeness4/5

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

For a one-parameter read-only metadata tool, the description covers purpose, the sibling boundary, and the one non-obvious behavioral detail (availability problems). No output schema exists, so field-level return detail is absent, but the essential calling context is present.

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

Parameters3/5

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

The single document_id parameter is fully described in the schema (100% coverage), including its source, so the description does not need to repeat it. Baseline 3 applies because the description adds nothing about the parameter beyond the schema.

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

Purpose4/5

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

States a specific verb and resource: retrieving one document's metadata, and explicitly redirects to read_document_pages for the actual content. This distinguishes it from its closest sibling. The only shortfall is that 'metadata' is not itemized, but the scope is still clear.

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?

Explicitly names the alternative (read_document_pages) and the condition that selects it (to read the document). It also gives a conditional check on the availability key before quoting figures, which is actionable routing guidance.

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

get_government_infoGet government profileA
Read-only
Inspect

Get a tracked government's profile: name, location, and meeting categories.

NameRequiredDescriptionDefault
government_idYesThe account_id of the government.
include_weekly_summaryNoIf true, include the AI-generated weekly digest (markdown). Default false.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered. The description adds little behavioral context beyond naming the returned fields; it doesn't mention the optional weekly digest, auth needs, or rate limits.

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?

A single, front-loaded sentence with zero waste that states the verb, resource, and returned fields.

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

Completeness3/5

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

An output schema exists, so return values needn't be explained, and annotations cover safety. However, for a tool with an optional weekly-summary flag and open-world scope, the description is thin on when to include the summary and on any access prerequisites.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both government_id and include_weekly_summary. The description does not add any parameter meaning beyond what the schema provides; baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('a tracked government's profile') and enumerates the returned fields (name, location, meeting categories). It is distinguishable from siblings like find_governments_by_name or get_government_stats, though it doesn't explicitly name an alternative.

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

Usage Guidelines3/5

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

The word 'tracked' implies the government must already be in the system, but the description never states when to use this versus find_governments_by_name or get_government_stats, nor any prerequisites. Usage is only weakly implied.

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

get_government_statsGet government meeting statsA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
daysNoLook-back window in days (1-365).
government_idYesaccount_id of the government, or 'all' for corpus-wide stats.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, non-destructive, openWorld, so the safety profile is covered. The description adds that results are aggregated over a window and what is aggregated, but adds nothing on caching, result size, or 'all' corpus behavior beyond what the schema states.

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

Conciseness4/5

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

Two tight sentences, purpose front-loaded before the return summary. The output enumeration is slightly list-like but each item earns its place by signaling what an agent can extract.

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

Completeness4/5

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

With an output schema present, the description needn't describe return values, yet it cleanly conveys purpose, scope, and use case. Nothing essential is missing for correct invocation, though cross-tool routing detail is absent.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (days, government_id) are fully documented in the schema, including the 'all' sentinel and 1-365 range. The description's 'recent window' wording adds no syntax or default detail beyond that.

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

Purpose4/5

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

States a specific verb+resource (meeting-activity stats for a government) and enumerates the three outputs (total count, per-day map, category breakdown). This is clearly an aggregate-stats tool distinct from list/search siblings, though it never names them explicitly.

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

Usage Guidelines4/5

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

Gives a concrete use case ('how active has X been lately?') that tells the agent when to reach for this instead of a list/search tool. It lacks explicit when-not-to-use or named alternatives, keeping it short of a 5.

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

get_meetingGet meetingA
Read-only
Inspect

Get a single meeting's full AI summary and topics.

Set `include_transcript=true` to also retrieve the complete transcript text
for direct quotation. Returns an error object if the meeting is not found.
NameRequiredDescriptionDefault
meeting_idYesThe meeting_id returned by a search/list tool.
include_transcriptNoIf true, also fetch the full meeting transcript (can be long). Default false.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuinely useful behavior the annotations do not: it returns an error object when the meeting is not found, and it warns that the transcript fetch can be long.

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?

Two short sentences, front-loaded with the core purpose, followed by the single optional-flag instruction and the error behavior. No filler or repetition.

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

Completeness4/5

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

With a full output schema, return shape need not be explained, and annotations carry the safety profile. The description covers the error case and the optional transcript, leaving only minor gaps such as whether 'topics' differ from the transcript and any rate/length limits.

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 a baseline of 3 applies. The description goes beyond the schema by explaining the intent of include_transcript — retrieving the complete transcript specifically for direct quotation — which tells the agent why it would pay the size cost.

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 ('Get a single meeting') and names the payload ('full AI summary and topics'), which cleanly separates it from list_recent_meetings and the search_* siblings. An agent can tell what it will receive without opening the schema.

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

Usage Guidelines3/5

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

It gives a clear conditional for the optional flag ('Set include_transcript=true to also retrieve the complete transcript... for direct quotation'), which is real usage guidance. But it never states when to call this tool versus the search/list siblings or where the required meeting_id comes from in the description itself (that hint lives only in the schema).

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

list_government_documentsList government documentsA
Read-only
Inspect

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.
NameRequiredDescriptionDefault
government_idYesaccount_id from find_local_governments.
include_supersededNoAlso include prior editions retired by a newer document.

TDQS

A3.9/5.0
Behavior5/5

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

With annotations already covering read-only and non-destructive, the description goes well beyond them by decoding the `status` values (`converted` searchable, `superseded` stored but unsearchable, `failed` held but unreadable) and the conditional `availability` block. The `failed`-is-not-absence warning and `source_url` fallback are exactly the non-obvious traits an agent needs to avoid misreporting.

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

Conciseness4/5

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

Purpose is front-loaded, then interpretation rules follow in short paragraphs that each earn their place (covers, status, availability). It is slightly longer than strictly necessary but avoids filler.

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

Completeness4/5

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

With no output schema, the description correctly assumes the burden of explaining the returned fields and does so thoroughly for the fields that matter most. Ordering and pagination are left unstated, a minor gap for a list endpoint.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented, and the description adds only indirect context through its explanation of the `superseded` status. Baseline 3 is appropriate when the schema carries the parameter definitions.

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

Purpose4/5

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

States a specific verb and resource with a narrow scope: listing a government's adopted plan and budget documents. An agent can tell this apart from generic document search, though it never names the sibling it differs from (e.g. search_documents).

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

Usage Guidelines3/5

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

Usage guidance is about interpreting output rather than choosing between tools: it warns not to treat missing element names as unpublished and explains that `failed` is not evidence of nothing published. There is no explicit when-to-use or when-not-to-use versus sibling tools like search_documents or get_document.

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

list_recent_meetingsList recent meetingsA
Read-only
Inspect

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`.
NameRequiredDescriptionDefault
pageNo1-based page number for older results.
limitNoMeetings per page (1-25).
topicNoOptional topic filter — a topic name from discover_meeting_vocabulary, e.g. 'Affordable Housing'.
end_dateNoOptional latest date, MM-DD-YYYY.
start_dateNoOptional earliest date, MM-DD-YYYY.
category_tagNoOptional meeting-type filter — an opaque category_tag from discover_meeting_vocabulary (not a guessable slug; don't invent it).
government_idNoaccount_id to list meetings for (from find_local_governments). Omit to list across all governments.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, so the safety profile is covered. The description adds the newest-first ordering and paging behavior, which is useful context beyond the annotations, but doesn't cover rate limits or result size beyond what limit implies.

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?

Two short sentences, front-loaded with the core behavior (newest-first browsing) before the alternative route. No wasted text.

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

Completeness4/5

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

Output schema exists, so return values need not be explained. Annotations cover safety; the description covers ordering and the alternative tool. Complete enough to call correctly, though it could mention that filters are combinable or vendor the vocabulary dependency.

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

Parameters3/5

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

Schema coverage is 100%, with all seven parameters documented in detail including date format, tag provenance, and government_id source. The description mentions the filter dimensions but adds no syntax or examples beyond the schema. Baseline 3 is appropriate.

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 ('Browse meetings newest-first') with explicit filter dimensions, and contrasts against the topical alternative `search_meetings_semantic`. An agent can distinguish it from the semantic search sibling without opening either schema.

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?

Gives explicit when-to-use cases ('what are the most recent meetings', paging a government's history) and names the alternative for topical questions. The routing decision is fully specified.

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

read_document_pagesRead document pagesA
Read-only
Inspect

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`.
NameRequiredDescriptionDefault
last_pageYesLast page to read. Spans longer than 40 pages are clamped to 40 from first_page.
first_pageYesFirst page to read (1-based, as the PDF renders).
document_idYesDocument id from list_government_documents or search_documents.

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations, the description discloses real behavioral traits: content is transcribed from rendered pixels (so tables/scans become text), untranscribed pages appear as marked holes the agent should surface rather than skip, and the returned `covered` range may be wider than the requested range. These are non-obvious traits an agent cannot get from the annotations or schema.

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?

Three short paragraphs, front-loaded with the core action, then behavior, then the citation rule. Every sentence carries operational weight — no filler, no restatement of the name.

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 no output schema, the description carries the return-format burden and does so: markdown output, hole markers for failed transcription, and the `covered` field semantics. Combined with the schema's 40-page clamping note, an agent has everything needed to call and interpret this tool correctly.

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 description coverage is 100%, so the baseline is 3, but the description adds meaning about how the requested page inputs relate to the returned coverage ('covered may be slightly wider than what you asked for; cite the page numbers in covered, not requested'). That is genuine semantic value for interpreting first_page/last_page behavior, above the schema baseline.

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

Purpose4/5

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

The description opens with a precise verb+resource+scope: 'Read a page range of a document as markdown.' That distinguishes it from whole-document retrieval, and the second paragraph clarifies it works from rendered pixels. However, it never names sibling tools like get_document or search_documents to make the boundary explicit, so differentiation is inferred rather than stated.

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

Usage Guidelines3/5

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

Usage context is implied (you call this to read pages of an already-known document) and there is useful operational guidance on handling transcribed holes and on citing `covered`. But there is no explicit statement of when to prefer this over get_document or search_documents, and no stated prerequisites beyond the schema's document_id provenance hint.

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

search_documentsSearch documentsA
Read-only
Inspect

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.
NameRequiredDescriptionDefault
limitNoMaximum excerpts to return.
queryYesWords to find in plan and budget text, e.g. 'accessory dwelling unit parking'.
government_idNoOptional account_id to restrict the search to one government.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations confirm readOnly/no-destructive/openWorld, and the description goes well beyond them: it discloses that matching is lexical not semantic, that only currently-served documents are covered, that `document_complete: false` flags transcription findings requiring verification, and the exact hit fields returned. This is unusually rich behavioral context.

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

Conciseness4/5

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

Purpose and return shape are front-loaded, and each subsequent paragraph addresses a distinct concern (context reading, citation, lexical matching, empty results, transcription warnings). It is longer than strictly necessary but almost every sentence carries actionable information.

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?

There is no output schema, yet the description fully specifies the relevant hit fields (text, first_page, last_page, source_url, document_complete) and how to act on them. Given the tool's complexity and the absence of structured return documentation, this is complete.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents query, limit, and government_id, giving a baseline of 3. The description adds useful semantic framing for the query parameter (word matching, use terms a plan would actually use) but adds nothing for limit or government_id.

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 (search) plus a specific resource (adopted plan and budget documents) and the shape of the return (page-cited excerpts). This clearly separates it from siblings like search_meeting_content and search_meetings_semantic without needing to open any schema.

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?

Explicitly routes the agent: use read_document_pages with the hit's `first_page` for context, and check list_government_documents when results are empty or documents may not have been read. It also warns that an empty result is not evidence of absence, which is a when-to-trust-this condition.

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

search_meeting_contentSearch meeting contentB
Read-only
Inspect

Search public meetings once across metadata and stored transcript text.

Returns one card per meeting and native pagination metadata, without a total. Small current-text previews can be absent and do not establish timestamps. Text relevance can lag updates or match across untimed boundaries. Source transcripts searches stored text, including meetings without timed proof.

NameRequiredDescriptionDefault
limitNo
queryYesAnalyzed words; put the whole query in double quotes for an analyzed phrase.
topicNo
cursorNoNative next_cursor or previous_cursor from the same query and filters.
sourceNoall
end_dateNo
start_dateNo
category_tagNo
government_idNo
government_idsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, openWorld), and the description adds real behavioral context: one card per meeting, native pagination with no total, previews that may be absent and are not timestamp evidence, and relevance lag with matches across untimed boundaries. These are genuine operational caveats an agent would not get from the annotations alone.

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

Conciseness3/5

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

The purpose is front-loaded, which is good, but the caveat lines are terse fragments that read as internal jargon ('do not establish timestamps', 'match across untimed boundaries') and are hard to parse. Size is reasonable; clarity of the later sentences is not.

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

Completeness3/5

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

With 10 parameters at 20% description coverage and an output schema present, the description correctly focuses on search semantics rather than return shape. Still, the many undocumented filter parameters and the absence of any sibling differentiation leave meaningful gaps for a moderately complex search tool.

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

Parameters2/5

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

Schema description coverage is only 20% – just query and cursor carry descriptions. The description touches the source parameter tangentially ('Source transcripts...'), but leaves topic, category_tag, government_id, government_ids, start_date, end_date, and limit entirely unexplained in both places. It does not compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource: 'Search public meetings once across metadata and stored transcript text.' That is clear enough for an agent to know what the tool does. However, it never names or contrasts with the obvious siblings search_meetings_semantic and search_meeting_transcript, so the agent must infer the boundary itself.

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

Usage Guidelines2/5

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

There is no explicit when-to-use, when-not, or alternatives guidance. The closest thing is an oblique line, 'Source transcripts searches stored text, including meetings without timed proof,' which hints at a mode but does not tell the agent when to pick this tool over search_meetings_semantic or search_meeting_transcript.

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

search_meetings_semanticSearch meetingsA
Read-only
Inspect

Find AI summaries by meaning; use search_meeting_content for stored words.

Results carry relevance_score and a summary preview. Narrow with government,
category_tag, topic or dates; get_meeting retrieves the full summary.
NameRequiredDescriptionDefault
limitNoMax meetings to return (1-25).
queryYesWhat to search for in plain language, e.g. 'short-term rental regulations' or 'police budget overtime'.
topicNoOptional topic filter — a topic name from discover_meeting_vocabulary, e.g. 'Affordable Housing'. Restricts to meetings that discussed it.
end_dateNoOptional latest meeting date, MM-DD-YYYY.
min_scoreNoOptional semantic relevance floor 0-1 (default 0.4). Raise to return only strong matches; lower to widen recall.
match_typeNoSemantic only; use search_meeting_content for keyword searches.semantic
start_dateNoOptional earliest meeting date, MM-DD-YYYY.
category_tagNoOptional meeting-type filter — an opaque category_tag from discover_meeting_vocabulary (not a guessable slug).
government_idNoOptional account_id (from find_local_governments) to restrict the search to one government.
government_idsNoOptional list of account_ids to search across several governments at once (e.g. to compare cities). Overrides government_id.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the bar is lower. The description adds genuinely useful behavior: results carry a relevance_score and only a preview, with get_meeting needed for the full text. It stops short of describing result ordering or pagination beyond the schema's limit.

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?

Two dense sentences, front-loaded with the core purpose and the disambiguating sibling name, followed by result shape and filtering/navigation hints. No filler or redundant restatement of the name.

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

Completeness4/5

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

With 10 parameters, an output schema, and full annotation coverage, the description supplies the missing routing and result-shape context an agent needs. Only minor gaps remain (ordering of results, how min_score interacts with relevance_score in practice), which the schema largely covers.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (limit, min_score default 0.4, date formats, government_ids overriding government_id) is already documented. The description only restates the filter categories at a high level and adds no syntax or defaults beyond the schema, so the baseline 3 applies.

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?

The description gives a specific verb+resource+mechanism ('Find AI summaries by meaning'), and immediately contrasts with the sibling that does lexical search ('use search_meeting_content for stored words'). An agent can distinguish this from search_meeting_content and search_meeting_transcript without opening any schema.

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?

It names the alternative (search_meeting_content) and the condition selecting it (stored words vs meaning), describes how to narrow results (government, category_tag, topic, dates), and routes to get_meeting for the full summary. Both the routing decision and the follow-up path are explicit.

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

search_meeting_transcriptSearch meeting transcriptA
Read-only
Inspect

Use unified stored-text search inside one currently public meeting.

Returns an optional current-text preview, without resolving timing. A text match
can lack a literal preview; use get_meeting(include_transcript=true) for full source
retrieval. This does not run a separate local scan or fuzzy passage ranking.
NameRequiredDescriptionDefault
queryYesAnalyzed words or a whole quoted phrase.
meeting_idYesCanonical meeting_id returned by a search/list tool.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive, and the description adds genuinely useful behavior: results may lack a literal preview, timing is not resolved, and it is not a local scan or fuzzy ranking. These are non-obvious traits not derivable from the schema or annotations.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core action before the caveats. Every sentence carries content, though the 'separate local scan or fuzzy passage ranking' clause is slightly oblique and requires interpretation.

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

Completeness4/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 values need not be fully explained, and the description still flags the optional-preview behavior and the retrieval alternative. The 'currently public meeting' restriction is stated, leaving little an agent needs to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (query as analyzed words or quoted phrase, meeting_id as canonical id). The description adds no parameter-level syntax or format detail beyond the scope constraint, so the baseline 3 applies.

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

Purpose4/5

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

The first sentence gives a specific verb and resource (stored-text search) plus a scope constraint ('inside one currently public meeting'), which is more precise than the bare name. It does not explicitly distinguish itself from the close siblings search_meeting_content or search_meetings_semantic, so an agent must infer the split.

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

Usage Guidelines3/5

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

It names one alternative with a condition ('use get_meeting(include_transcript=true) for full source retrieval'), which is real routing guidance. However, it never says when to prefer this over the other meeting-search siblings, leaving the main selection decision implied.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Addedsearch_meeting_content
    • Changedsearch_meeting_transcript6 fields changed
      • removedInput schema / properties / context_chars
        Removed value: -{
        -  "default": 300,
        -  "description": "Characters of surrounding context per side of a match (0-2000).",
        -  "maximum": 2000,
        -  "minimum": 0,
        -  "title": "Context Chars",
        -  "type": "integer"
        -}
      • removedInput schema / properties / max_passages
        Removed value: -{
        -  "default": 5,
        -  "description": "Max matched passages to return (1-20).",
        -  "maximum": 20,
        -  "minimum": 1,
        -  "title": "Max Passages",
        -  "type": "integer"
        -}
      • changedInput schema / properties / meeting_id / description
        Previous value: -"The meeting_id (from a search/list tool) whose transcript to search."New value: +"Canonical meeting_id returned by a search/list tool."
      • changedInput schema / properties / query / description
        Previous value: -"The phrase or terms to find in the transcript, e.g. 'rent stabilization' or a speaker's exact words."New value: +"Analyzed words or a whole quoted phrase."
      • addedInput schema / properties / query / maxLength
        Added value: +160
      • addedInput schema / properties / query / minLength
        Added value: +1
    • Changedsearch_meetings_semantic6 fields changed
      • removedInput schema / properties / match_type / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "semantic",
        -      "keyword",
        -      "hybrid"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / properties / match_type / const
        Added value: +"semantic"
      • changedInput schema / properties / match_type / default
        Previous value: -nullNew value: +"semantic"
      • changedInput schema / properties / match_type / description
        Previous value: -"How to match: 'semantic' (default, by meaning — best for concepts/paraphrases), 'keyword' (analyzed words in titles, summaries and topics), or 'hybrid' (both, rank-fused). Neither searches literal transcript phrases."New value: +"Semantic only; use search_meeting_content for keyword searches."
      • addedInput schema / properties / match_type / type
        Added value: +"string"
      • changedInput schema / properties / min_score / description
        Previous value: -"Optional semantic relevance floor 0-1 (default 0.4). Raise to return only strong matches; lower to widen recall. Applies to semantic matching only — keyword (BM25) hits are not filtered by it."New value: +"Optional semantic relevance floor 0-1 (default 0.4). Raise to return only strong matches; lower to widen recall."
  2. 1 tool update
    • Changedsearch_meetings_semantic1 field changed
      • changedInput schema / properties / match_type / description
        Previous value: -"How to match: 'semantic' (default, by meaning — best for concepts/paraphrases), 'keyword' (exact terms — best for names, ordinance numbers, quoted phrases), or 'hybrid' (both, rank-fused). Use keyword/hybrid when the query has a literal string an embedding might miss."New value: +"How to match: 'semantic' (default, by meaning — best for concepts/paraphrases), 'keyword' (analyzed words in titles, summaries and topics), or 'hybrid' (both, rank-fused). Neither searches literal transcript phrases."
  3. 4 tool updates
    • Removedget_meeting_officials
    • Removedget_official
    • Removedlist_government_officials
    • Removedlist_official_meetings
  4. 4 tool updates
    • Addedget_meeting_officials
    • Addedget_official
    • Addedlist_government_officials
    • Addedlist_official_meetings
  5. 15 tool updates
    • First observeddiscover_meeting_vocabulary
    • First observedfind_governments_by_name
    • First observedfind_governments_by_zip
    • First observedfind_local_governments
    • First observedget_coverage_overview
    • First observedget_document
    • First observedget_government_info
    • First observedget_government_stats
    • First observedget_meeting
    • First observedlist_government_documents
    • First observedlist_recent_meetings
    • First observedread_document_pages
    • First observedsearch_documents
    • First observedsearch_meeting_transcript
    • First observedsearch_meetings_semantic

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables searching and browsing municipal resolutions, meetings, votes, and member voting records through tools for full-text and semantic search, details, statistics, and attendance/voting history.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to query sourced rural land, zoning, permit, public decision, and related government data for covered jurisdictions, with free coverage and pricing tools plus paid per-call data and watch tools.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Ask about any of Massachusetts' 351 municipal governments — meetings, transcripts, bylaws, news, calendars, and archives.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources