Skip to main content
Glama

List Interventions

list_interventions
Read-onlyIdempotent

Interventions (discursos) — list, filter, or fetch one by id, in a single tool. ⚠️ Small dataset today (462 rows total, only Colombia and Perú populated as of 2026-07-21) — an empty result is usually a real coverage gap, not a bad query. Replaces list_interventions + get_intervention + list_bill_interventions + list_actor_interventions: pass bill_id and/or actor_id to scope to one bill/actor (freely combinable), or neither for a cross-country list.

No id: country_code is comma-separated; omit for every accessible/your default country. since/until filter on the intervention's own date. List rows omit the full transcript (content) to keep pages light — use id to fetch one intervention's full text.

With id: ignores every other filter and returns full detail — the full speech transcript (content), date, and the actor/bill it's linked to, if any.

Input Schema

NameRequiredDescriptionDefault
idNoAn intervention's own id. Set it to get the full speech transcript; list rows omit the body to keep pages light.
limitNoRows per page (1-100, default 20). The response's `meta.has_more` and `meta.next_cursor` tell you whether there are more. `meta.total`, when it is not null, is the full count without paging; some lists return null rather than pay for a count. Raise the limit when you genuinely need a whole list in one call rather than the most relevant few.
sinceNoFilters the intervention's own date (YYYY-MM-DD).
untilNoUpper bound on the intervention's date (YYYY-MM-DD).
cursorNoOpaque pagination cursor from a previous response's `meta.next_cursor`. Pass every other filter unchanged when paging. Only ever use a cursor this API handed you — never build one. With `q`, a cursor continues the keyword listing (`meta.mode: "keyword_fallback"`): relevance-ranked results are a single page of at most 20 rows and report `has_more: false`, so if you got one there is no next page to ask for, and a `limit` above 20 adds nothing to it. Narrow `q` instead of paging.
bill_idNoScope to speeches referencing this bill. ⚠️ The bill↔intervention link is barely populated, so empty here is a coverage gap, not evidence no speeches were given.
actor_idNoScope to speeches by this legislator.
country_codeNoISO alpha-2 country codes, comma-separated or as a list: 'BR,CO' or ['BR','CO']. Pass 'all' for every country you can access. Omitting it is NOT the same as 'all': logged in via OAuth it falls back to your own default country, and the response says so in `meta.country_scope`.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/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, non-destructive), and the description adds operational behavior that annotations cannot express: list rows intentionally omit the `content` transcript to keep pages light, `id` returns full detail, and omitting `country_code` falls back to the caller's default country rather than meaning 'all'. The 462-row/Colombia-Perú coverage caveat is exactly the kind of non-obvious trait that prevents false 'no results' conclusions.

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?

It is front-loaded with the purpose and the coverage warning, then cleanly segmented into 'No id' and 'With id' behavior using bold headers — easy to scan. It is somewhat long and repeats the transcript-omission point already present in the `id` schema description, so a sentence or two could be trimmed.

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?

For an 8-parameter, all-optional, dual-mode tool this is thorough: it covers mode selection, filter combination, pagination implications, country scoping defaults, and known data gaps. With an output schema present and rich annotations, nothing an agent needs in order to call it correctly is left implicit.

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% and the parameter descriptions already carry pagination cursor mechanics and country_code formats, so the baseline would be 3. The description earns above baseline by explaining cross-parameter interaction the schema cannot: `id` ignores all other filters, `bill_id` and `actor_id` are combinable, and `since`/`until` filter on the intervention's own date rather than a linked bill's date.

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 opening sentence names the resource (interventions/discursos) and explicitly splits the tool into list, filter, and fetch-by-id modes, which is the key distinction an agent needs. It also states which legacy/sibling operations it absorbs (get_intervention, list_bill_interventions, list_actor_interventions), so the agent knows it doesn't need a separate detail call. The only blemish is the slightly self-referential 'Replaces list_interventions + ...' note for a tool literally named list_interventions, but the functional purpose remains unambiguous.

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?

The description gives explicit branching rules: use `id` for full transcript vs. omit it for a list, `bill_id`/`actor_id` are freely combinable to scope to a bill or legislator, and neither gives a cross-country list. It also says `id` overrides every other filter, and warns that empty results are usually a dataset coverage gap rather than a bad query — a concrete corrective instruction.

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