Skip to main content
Glama

canada-parliament-mcp-server

Canparl Search Speeches

canparl_search_speeches
Read-onlyIdempotent

Find indexed House Hansard speeches by speaker, bill debated or mentioned, or date. contains scans at most 100 candidate speeches per call; follow nextOffset without changing filters until exhausted before drawing a negative conclusion.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum returned matches, 1–10 per call; larger values up to 10000 clamp to 10 with a notice. A page ends early at the 24000-byte response budget, returning at least one match whole. Candidate pages contain 20 rows.
dateToNoInclusive Ottawa civil date upper bound, YYYY-MM-DD; independently optional.
offsetNoRaw candidate offset; keep every filter identical when continuing.
containsNoLocal case-insensitive Unicode-normalized literal English text substring; cannot be the only scope.
dateFromNoInclusive Ottawa civil date lower bound, YYYY-MM-DD; independently optional.
politicianNoSpeaker OpenParliament slug or exact politician path/HTTPS URL (member.slug from canparl_get_member, or an includeFormer canparl_search_members row), or a current MP's official personId. A digit-only value equal to a current personId, or its /politicians/<digits>/ path or profile URL, is read as that personId.
billDebatedNoBill debated; combined with all other scopes using AND.
mentionedBillNoBill mentioned; combined with all other scopes using AND.
substantiveOnlyNoExclude procedural remarks when true; false includes substantive and procedural remarks.

Output Schema

NameRequiredDescriptionDefault
capNoEffective maximum returned matches after the per-call cap.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of returned matching speeches.
noticeNoLimit clamp, coverage, continuation, procedural-filter, unavailable affiliation, and response-budget guidance.
scannedNoRaw candidates visited, including excluded committee records; at most 100. A response-budget stop ends it before the first match not returned.
speechesNoMatching House speeches in source order with complete English prose.
exhaustedNoTrue only after visiting every row of a source-terminal page.
truncatedNoWhether raw candidates remain to be scanned; not an exact count of further matches.
nextOffsetNoFirst unvisited raw candidate offset, or null when exhausted; after a response-budget stop, the first match not returned.
provenanceNoOriginal retrieval metadata for scope validation, candidate pages fetched before the page ended, and memberships of returned speeches.
appliedFiltersNoAll normalized filters applied with AND; bill relationships rely on the source endpoint.
excludedCommitteesNoVisited candidates excluded because they were not House debate documents.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

The description adds genuinely useful context beyond the annotations: the 100-candidate cap per call and the warning against drawing a negative conclusion before exhausting pagination. With readOnlyHint/idempotentHint already covering the safety profile, this is exactly the kind of extra operational context that earns credit. Its only flaw is the "nextOffset" naming, which blurs whether it refers to a response field or the offset input.

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 sentences, front-loaded with purpose before the operational caveat; no filler. The second sentence is dense but each clause carries a distinct instruction (cap, pagination continuity, negative-conclusion warning). The only nit is the inconsistent "nextOffset" term.

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, and annotations already cover read-only/idempotent/open-world semantics, so the description needs only purpose and pagination guidance; it provides both. The 100-candidate cap and the 'exhaust before concluding absence' rule are the key non-obvious facts for a search tool. The remaining gap is the offset/nextOffset terminology mismatch.

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 parameters such as limit, dateFrom/dateTo, contains, and billDebated/mentionedBill are already fully documented, including the clamp behavior. The description only restates the filter dimensions (speaker, bill, date) without adding syntax or edge-case meaning beyond what the schema provides, so it sits at the baseline of 3.

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?

It states a specific verb+resource ("Find indexed House Hansard speeches") and enumerates the three scope dimensions: speaker, bill debated/mentioned, and date. The resource is unambiguously distinct from siblings like canparl_search_bills, canparl_search_votes, and canparl_get_member, so an agent can route without opening a 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?

The description explains pagination behavior: it returns up to 100 candidate speeches, and the agent should follow nextOffset with unchanged filters until exhausted before concluding a negative. However, it never states when to choose this tool over siblings such as canparl_get_bill for bill details, and the reference to "nextOffset" does not match the input parameter name "offset", which could momentarily confuse an agent about whether it should pass offset or nextOffset.

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.