Skip to main content
Glama

List Actors

list_actors
Read-onlyIdempotent

Actors (congresistas, ministros, legisladores, funcionarios) — list, search, or fetch one profile by id, in a single tool. Authoritative roster sourced directly from each congress's official directory.

No id (default): paginated roster across country_code (comma-separated; omit for every accessible/your default country). Use q to resolve a name to its id — accent/case-insensitive, and every token just has to appear somewhere in the full name, so q="braulio espinal" finds 'Braulio de Jesús Espinal Tavárez'. Use branch="executive" for ministers/government officials instead of congresistas (⚠️ coverage heavily skewed to Brazil today) or commission_id for 'members of Comisión X' questions.

Counting seats ('¿cuántos senadores tiene MIRA?', 'does La Libertad Avanza have a majority?'): combine party_id (from list_parties) with chamber, then read meta.total — it counts every match, not just this page, so never paginate a roster and tally rows yourself. chamber is token-matched against the chamber's name ('senado', 'camara', 'diputados'); chambers are named differently per country and every row carries its own chamber, so use those values as the vocabulary. For a majority question, run the same count without party_id to get the chamber's size.

With id: ignores every other filter and returns a complete profile in one call — actor detail (name, party, commissions, social links, current_position, CV) + up to 10 most recent votes + up to 5 most recently filed bills. Replaces the old get_actor + list_actor_votes + list_actor_bills call sequence. For more than 10 votes / 5 bills, or for interventions/tweets, use list_votes(actor_id=...), list_bills(actor_id=...), list_interventions(actor_id=...), or list_actor_tweets(id=...) directly.

Input Schema

NameRequiredDescriptionDefault
qNoSearch by name. Accent/case-insensitive, and every token just has to appear somewhere in the full name, so 'braulio espinal' finds 'Braulio de Jesús Espinal Tavárez'.
idNoAn actor's own id. Set it for that one person's full profile plus recent votes and bills; 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.
branchNo'executive' for ministers and government officials, 'legislative' for congresistas with an active mandate. Executive coverage is heavily skewed to Brazil today.
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.
chamberNoChamber name, token-matched and accent/case-insensitive: 'senado', 'camara', 'diputados', 'asamblea'. Chambers are named differently per country and every row carries its own `chamber`, so use those values as the vocabulary. Excludes anyone with no active mandate.
party_idNoMembers of this party (list_parties to discover IDs). Combine with `chamber` and read `meta.total` to answer seat counts.
has_mandateNoFilter by whether the person currently holds a seat. Brazil's roster carries many real people with no active mandate — former candidates and officials — and counting 'diputados del partido X' counted them. Leave unset to see everyone (executive-branch actors have no mandate row by construction, so a default would empty branch='executive'); every row carries `has_mandate`, which is how you know whether you need this.
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_idNoMembers of this commission (list_commissions to discover IDs). Matches both the actor's primary commission and any additional ones.

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 declare readOnly/idempotent/non-destructive, and the description adds substantial behavior beyond them: `id` overrides every other filter and returns a bundled profile with capped votes and bills, `meta.total` counts all matches while `meta.has_more`/`next_cursor` drive paging, the `q` keyword fallback is a single relevance-ranked page of at most 20 rows, and executive-branch coverage is heavily skewed to Brazil. These are exactly the operational caveats an agent cannot infer from structured fields.

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?

Long but front-loaded and clearly sectioned with bold headers ('No `id`', 'Counting seats', 'With `id`'), and every section maps to a real invocation pattern. It loses a point for density that borders on redundancy, e.g. the chamber token-matching vocabulary is restated in both the general and counting guidance.

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?

Covers the full decision surface for a 10-parameter tool with 0 required params: default behavior, filter combinations, pagination semantics, override behavior of `id`, coverage limitations, and where to go for data this tool truncates. An output schema exists, yet the description still correctly flags the shape of the bundled profile response.

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 schema already carries per-parameter meaning and the baseline is 3. The description adds genuine semantic value on top: how to combine `party_id` with `chamber` and read `meta.total` for seat counts, the majority-question recipe (rerun the same count without `party_id`), and why `has_mandate` should be left unset for executive queries.

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 set (list, search, fetch one by id) and a specific resource (political actors: congresistas, ministros, legisladores, funcionarios), explicitly framed as a single tool that consolidates three prior calls. An agent can distinguish it from list_parties, list_votes, or list_bills immediately.

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: no `id` for rosters, `q` to resolve a name to an id, `branch="executive"` for ministers, `commission_id` for commission membership, `party_id`+`chamber`+`meta.total` for seat counts. It also names the alternatives and their thresholds (use list_votes/list_bills/list_interventions/list_actor_tweets for more than 10 votes / 5 bills), and warns against paginating a roster to tally seats yourself.

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