consultar_prestador_contas
Retrieve Brazilian candidate campaign finance accountability information by providing election year, municipality, and candidate details.
Instructions
Consulta informações sobre prestação de contas de um candidato
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ano | Yes | Ano da eleição (ex: 2020) | |
| candidato | Yes | Código do candidato | |
| cargo | Yes | Código do cargo | |
| eleicao | Yes | Código da eleição | |
| municipio | Yes | Código do município |
Input Schema (JSON Schema)
{
"properties": {
"ano": {
"description": "Ano da eleição (ex: 2020)",
"maximum": 2025,
"minimum": 2000,
"type": "number"
},
"candidato": {
"description": "Código do candidato",
"type": "number"
},
"cargo": {
"description": "Código do cargo",
"type": "number"
},
"eleicao": {
"description": "Código da eleição",
"type": "number"
},
"municipio": {
"description": "Código do município",
"type": "number"
}
},
"required": [
"eleicao",
"ano",
"municipio",
"cargo",
"candidato"
],
"type": "object"
}
Implementation Reference
- src/index.ts:354-374 (handler)Handler function for the 'consultar_prestador_contas' tool. Parses input parameters using ConsultaPrestadorSchema, fetches data from the API endpoint `/prestador/consulta/...`, and returns formatted response content.case "consultar_prestador_contas": { const params = ConsultaPrestadorSchema.parse(args); const data = await handleApiRequest(() => httpClient.get(`/prestador/consulta/${params.eleicao}/${params.ano}/${params.municipio}/${params.cargo}/90/90/${params.candidato}`) ); return { content: [ { type: "text", text: `Informações de prestação de contas:\n\n` + `Candidato: ${data.nomeCompleto || 'N/A'}\n` + `Partido: ${data.nomePartido || 'N/A'} (${data.siglaPartido || 'N/A'})\n` + `CNPJ: ${data.cnpj || 'N/A'}\n` + `Total Recebido: R$ ${data.dadosConsolidados?.totalRecebido || 0}\n` + `Total Despesas: R$ ${data.despesas?.totalDespesasPagas || 0}\n\n` + `Detalhes completos:\n${JSON.stringify(data, null, 2)}` } ] }; }
- src/index.ts:51-57 (schema)Zod schema used for input validation in the 'consultar_prestador_contas' tool handler.const ConsultaPrestadorSchema = z.object({ eleicao: z.number().int(), ano: z.number().int().min(2000).max(new Date().getFullYear()), municipio: z.number().int(), cargo: z.number().int(), candidato: z.number().int() });
- src/index.ts:205-236 (registration)Tool registration in the ListToolsRequest handler, defining name, description, and input schema matching the Zod schema.{ name: "consultar_prestador_contas", description: "Consulta informações sobre prestação de contas de um candidato", inputSchema: { type: "object", properties: { eleicao: { type: "number", description: "Código da eleição" }, ano: { type: "number", description: "Ano da eleição (ex: 2020)", minimum: 2000, maximum: new Date().getFullYear() }, municipio: { type: "number", description: "Código do município" }, cargo: { type: "number", description: "Código do cargo" }, candidato: { type: "number", description: "Código do candidato" } }, required: ["eleicao", "ano", "municipio", "cargo", "candidato"] } }
- src/index.ts:73-86 (helper)Helper function used by the tool handler to make API requests and handle errors uniformly.async function handleApiRequest(request: () => Promise<any>): Promise<any> { try { const response = await request(); return response.data; } catch (error) { if (axios.isAxiosError(error)) { if (error.response?.status === 404) { throw new Error("Dados não encontrados para os parâmetros informados"); } throw new Error(`Erro na API: ${error.response?.status} - ${error.response?.statusText}`); } throw new Error(`Erro inesperado: ${error}`); } }