Skip to main content
Glama

Get a candidate

get_candidate

Fetch one election candidate by id (GET /v1/candidates/{id}): their party, office, district and cycle, plus an FEC filer id where the campaign has filed and a Bioguide id for sitting members of Congress. When people_id is set, the candidate has a legislative voting record — pass it to get_legislator or get_legislator_scorecard to go from candidate to voting history in one hop. Get an id from list_candidates.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesCandidate id from list_candidates or get_midterms.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that it is a read operation (GET), returns specific fields, and that people_id is conditionally present, indicating the candidate's voting record. It does not mention error handling or rate limits, but for a simple fetch this is adequate and transparent about what the agent can expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, with the core action and resource front-loaded. Each sentence adds value: the first defines the tool and its output, the second explains the conditional field and downstream tools, and the third gives the id source. No fluff or repetition.

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 single-parameter fetch with no output schema, the description covers purpose, expected data, related tools, and id provenance. It gives an agent everything needed to call the tool correctly and understand the result, even without annotations or an output schema.

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?

The schema already describes the id parameter as coming from list_candidates or get_midterms, which is 100% coverage. The description repeats the source ('Get an id from list_candidates') and adds the context about people_id, but that's about the response, not the parameter. Since the schema is fully descriptive, the description adds minimal extra semantic value, so baseline 3 is appropriate.

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 description clearly states the tool fetches a single candidate by id, specifies the endpoint, and lists the returned fields (party, office, district, cycle, FEC filer id, Bioguide id). It differentiates from siblings by naming related tools like get_legislator and list_candidates, so an agent can distinguish its role without ambiguity.

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?

It explicitly tells when to use this tool (to get a candidate's base data) and how to extend it: if people_id is present, pass it to get_legislator or get_legislator_scorecard for voting history. It also instructs where to obtain the id (list_candidates), giving clear guidance on the workflow and alternatives.

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