Skip to main content
Glama
karnagge

MCP DivulgaCandContas Server

by karnagge

listar_candidatos_municipio

Retrieve candidate lists for Brazilian municipal elections by specifying year, municipality code, election type, and position code to access official electoral data.

Instructions

Lista todos os candidatos para eleições em um município específico

Input Schema

NameRequiredDescriptionDefault
anoYesAno da eleição (ex: 2020)
cargoYesCódigo do cargo
eleicaoYesCódigo da eleição (ex: 2030402020 para eleições municipais de 2020)
municipioYesCódigo do município (ex: 35157 para São Paulo)

Input Schema (JSON Schema)

{ "properties": { "ano": { "description": "Ano da eleição (ex: 2020)", "maximum": 2025, "minimum": 2000, "type": "number" }, "cargo": { "description": "Código do cargo", "type": "number" }, "eleicao": { "description": "Código da eleição (ex: 2030402020 para eleições municipais de 2020)", "type": "number" }, "municipio": { "description": "Código do município (ex: 35157 para São Paulo)", "type": "number" } }, "required": [ "ano", "municipio", "eleicao", "cargo" ], "type": "object" }

Implementation Reference

  • Handler for 'listar_candidatos_municipio' tool: validates input using CandidatosParaMunicipioSchema, fetches candidates from TSE API endpoint `/candidatura/listar/{ano}/{municipio}/{eleicao}/{cargo}/candidatos`, and returns formatted text content with candidate data.
    case "listar_candidatos_municipio": { const params = CandidatosParaMunicipioSchema.parse(args); const data = await handleApiRequest(() => httpClient.get(`/candidatura/listar/${params.ano}/${params.municipio}/${params.eleicao}/${params.cargo}/candidatos`) ); return { content: [ { type: "text", text: `Candidatos encontrados: ${data.candidatos?.length || 0}\n\n` + JSON.stringify(data, null, 2) } ] }; }
  • src/index.ts:93-119 (registration)
    Registration of the 'listar_candidatos_municipio' tool in the ListToolsRequest handler, including name, description, and input schema definition.
    name: "listar_candidatos_municipio", description: "Lista todos os candidatos para eleições em um município específico", inputSchema: { type: "object", properties: { 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 (ex: 35157 para São Paulo)" }, eleicao: { type: "number", description: "Código da eleição (ex: 2030402020 para eleições municipais de 2020)" }, cargo: { type: "number", description: "Código do cargo" } }, required: ["ano", "municipio", "eleicao", "cargo"] } },
  • Zod schema for input validation of 'listar_candidatos_municipio' tool parameters, used in the handler.
    const CandidatosParaMunicipioSchema = z.object({ ano: z.number().int().min(2000).max(new Date().getFullYear()), municipio: z.number().int(), eleicao: z.number().int(), cargo: z.number().int() });
  • Helper function to handle API requests to the TSE DivulgaCandContas API, including error handling, used by the tool handler.
    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}`); } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/karnagge/mcpcand'

If you have feedback or need assistance with the MCP directory API, please join our Discord server