Skip to main content
Glama

List Schedules

list_schedules
Read-onlyIdempotent

Legislative agenda (sesiones, audiencias, debates) — list, or fetch one by id, in a single tool. Authoritative, sourced directly from each congress's official session calendar, refreshed every 1-2 hours on session days.

No id (default): paginated list across country_code (comma-separated; omit for every accessible/your default country). Use since/until (event_date, the actual session/hearing date) for upcoming or past events, e.g. since=today until=today+7 for the week ahead. Default order is ingestion recency; pass order_by="event_date" for chronological order (the week ahead) or "event_date_desc" for the latest sessions first — across pages, not just within one. Rows carry commission_name and bill_title next to their ids. Optionally narrow to one commission with commission_id (use list_commissions(country_code=...) to discover valid IDs). Use q to search by title and body (accent/case-insensitive). An empty future window says whether the agenda is likely just not published yet (empty_result.feed).

With id: ignores every other filter and returns full detail — title, date, issuing body, and the linked bill (project_id), if any.

Input Schema

NameRequiredDescriptionDefault
qNoSearch the event title **and its subject/body** (accent/case-insensitive; every token must appear in one of them). Search the topic, not the bill number: a Colombian event is titled 'Proyecto de Ley número 141 de 2024 Senado', and what the session is about -- ponencia, debate, audiencia, the policy area -- is in the body. Schedules are not in the semantic corpus, so this is keyword-only.
idNoAn event's own id. Set it for full detail including the linked bill; every other filter is ignored.
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 event_date — the actual session/hearing date, not ingestion time. For the week ahead: since=today, until=today+7.
untilNoUpper bound on event_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.
order_byNo'ingested' (default): newest-ingested first. 'event_date': chronological by session date, earliest first — use with since=today for what is coming up. 'event_date_desc': latest session first. A cursor only continues the order it came from.ingested
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`.
commission_idNoNarrow to one commission's agenda (list_commissions to discover IDs).

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive and closed-world, so the bar is lower; the description still adds real context on provenance and freshness (official calendars, refreshed every 1-2 hours on session days), country-scope fallback vs 'all', and the single-page relevance fallback for `q`. It stops short of describing auth/rate-limit constraints or the detail payload shape, though the output schema covers the latter.

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?

Front-loaded with purpose then split into bold-labeled 'No id' / 'With id' modes, which is easy to scan. It is on the long side and repeats some schema text (e.g. the week-ahead example, cursor guidance), so a point comes off for redundancy rather than for structure.

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 a 9-parameter, dual-mode listing tool with an output schema, the description covers everything needed to call it correctly: mode selection, filtering, ordering, pagination, scope defaults and the empty-result interpretation. 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?

With 100% schema description coverage the baseline is 3, but the prose adds cross-parameter semantics the schema states only piecemeal: that a cursor only continues the order it came from, that `id` overrides all other filters, and that omitting country_code differs from 'all' via meta.country_scope. This is meaning beyond a per-parameter restatement.

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?

Opens with a specific verb+resource ('Legislative agenda (sesiones, audiencias, debates) — list, or fetch one by id'), and explicitly resolves the dual-mode ambiguity by explaining that `id` switches to detail. An agent can distinguish it from list_bills, list_commissions and list_committee_minutes 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 Guidelines5/5

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

Gives explicit when-to-use branches: omit `id` for a paginated list, pass `id` for full detail, use order_by='event_date' with since=today for the week ahead, and points at list_commissions(country_code=...) to discover commission IDs. It also states when-not behavior ('ignores every other filter') and the keyword-only limitation of `q`.

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