Skip to main content
Glama

List Consultations

list_consultations
Read-onlyIdempotent

Public consultations (consultas públicas) — list, search, or fetch one by id, in a single tool. Authoritative data from official consultation portals and ministry sites. No body/summary field — only title, dates, and external_link; for the substance, follow external_link to the source.

No id (default): paginated list across country_code (comma-separated; omit for every accessible/your default country), newest-published first by default; order_by="end_date" lists the ones closing soonest first (pair it with status="open"), across pages. Filter by since/until (publication date) or closing_before/closing_after/status (vigencia, end_date) — e.g. status="open" for consultations still accepting comments. Use entity_id for '¿qué consultas públicas abrió ?' — resolve the name with list_entities(q="") first (comma-separated for several); every row also carries its own entity_id/entity_name. Use q to search by title or meaning — tries the hybrid/semantic engine first, falls back to a title match where every token must appear; semantic hits carry a relevance score and anything at or below min_similarity (default 0.5) is dropped rather than returned as filler.

With id: ignores every other filter and returns full detail — title, description, publication window, and external_link.

Input Schema

NameRequiredDescriptionDefault
qNoSearch by title or meaning. Semantic first, then a title match requiring every token in any order.
idNoA consultation's own id. Set it for full detail; 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.
sinceNoPublished on or after this date (YYYY-MM-DD). This is the publication date, not the closing date — use closing_before/closing_after for that.
untilNoPublished on or before this 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.
statusNo'open' = still accepting comments (end_date in the future, or unknown); 'closed' = past its end_date.
order_byNo'ingested' (default): newest-published first. 'end_date': closing soonest first — with status='open', 'what closes next'. 'end_date_desc': latest closing date first. With `q`, the semantic page is re-sorted by it. A cursor only continues the order it came from.ingested
entity_idNoIssuing agency ID; several as '21,44' or [21, 44]. This is how you answer '¿qué consultas abrió <agencia>?' — resolve the name with list_entities(q='<name>') first.
min_rerankNoCross-encoder floor for the semantic branch of `q`. Rows the reranker scores below this are dropped; if that empties the result, what was rejected comes back under `empty_result.near_misses` so you can see what the index does hold. Pass null to disable the filter entirely.
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`.
closing_afterNoCloses (end_date) on or after this date.
closing_beforeNoCloses (end_date) on or before this date. For 'closing in the next N days', pass status='open' plus closing_before=<today+N>.
min_similarityNoCosine-similarity floor for the semantic branch of `q` (0-1). A coarse filter only: measured on production, 58% of the rows that clear it are then rejected by the cross-encoder, and the two score ranges overlap almost completely — `min_rerank` is the parameter that actually discriminates. Lower this to widen a search that came back empty.

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 goes well beyond them: it discloses the payload limitation (no body/summary, only title/dates/external_link, follow the link for substance), the semantic-then-keyword fallback with a relevance floor that drops filler rather than padding results, and that omitting `country_code` is not the same as 'all' and shows up in `meta.country_scope`. Those are non-obvious behaviors an agent would otherwise discover by surprise.

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?

Strong front-loading with the mode split bolded before any filter detail, and the two-mode structure mirrors how an agent will actually branch. Some content is doubled up with the schema (the `list_entities` resolution hint and the semantic-threshold explanation appear in both), which keeps it short of maximally tight.

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 14-parameter tool this is adequately covered: annotations give the safety profile, an output schema exists so return shape needn't be spelled out, yet the description still flags the one return detail that changes behavior — the missing body field and the external_link workaround. Nothing needed to call it correctly is absent.

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 per-parameter meaning is already carried; the description's added value is combinatorial — pairing `order_by="end_date"` with `status="open"` for 'what closes next', pairing `status` with `closing_before` for a rolling window, and the rule that a cursor only continues the order and filters it came from. It repeats some schema content (min_similarity, entity_id resolution), so it lands above baseline but not a full parameter-reference replacement.

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 the specific resource plus verb set — 'list, search, or fetch one by id, in a single tool' — and immediately separates the two modes (no `id` = paginated list, with `id` = full detail). It also names the boundary case that matters versus siblings: `list_entities` is where agency names get resolved, not here.

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 routing for the real questions agents ask: 'status="open" for consultations still accepting comments', '¿qué consultas públicas abrió <agencia>?' → list_entities first, and 'for closing in the next N days pass status=open plus closing_before=<today+N>'. It even states the exit condition for search — 'narrow `q` instead of paging' — rather than leaving it to inference.

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