Eleições 2026: Dados Públicos do TSE
Brazil 2026 election data from the TSE: ballot box reports, logs, results, SHA-256 and source link.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (10)
- HIGH
- MEDIUMen eleicoes_buscar_candidato
- LOWen eleicoes_totais
- LOWen eleicoes_comparar_turnos
- LOWen eleicoes_timeline_divulgacao
- LOWen eleicoes_conferir_bu_impresso
- LOWen eleicoes_verificar_hash
- LOWen eleicoes_buscar_candidato
- LOWen connect
- INFOen eleicoes_buscar_candidato
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"eleicoes-mcp": {
"url": "https://api.mcp.ai/p_eleicoes"
}
}
}Puntos de conexión remotos
https://api.mcp.ai/p_eleicoesstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (21)
🟢eleicoes_consultar_secao(ano, turno, uf, municipio, zona, ...)
Boletim de urna (BU) oficial de uma seção eleitoral nas eleições 2026: votos por candidato, brancos, nulos, aptos, comparecimento, abertura e encerramento (hora local e de Brasília), biometria em contagem agregada, código de carga e, quando houver, o resumo do log da urna por hora. Traz o SHA-256 e o link oficial do arquivo do TSE.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"turno": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"uf": {
"type": "string"
},
"municipio": {
"type": "string"
},
"zona": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"secao": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"secoes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"turno": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"uf": {
"type": "string"
},
"municipio": {
"type": "string"
},
"zona": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"secao": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"required": [
"uf",
"municipio",
"zona",
"secao"
]
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_votos_por_horario(ano, turno, uf, municipio, de, ...)
Votos computados por faixa de horário (Brasília) no 2º turno, contados nos logs de urna, por UF, por município ou com uf 'BR' para todas as UFs lado a lado. Informa quantas seções têm log no acervo em cada UF: a soma cobre só essas seções. Lista os logs de origem com SHA-256.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"turno": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"uf": {
"type": "string"
},
"municipio": {
"type": "string"
},
"de": {
"type": "string"
},
"ate": {
"type": "string"
},
"intervalo_minutos": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 5
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 15
},
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 60
}
]
}
},
"required": [
"uf"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_totais(ano, turno, nivel, codigo, uf, ...)
Totais oficiais por candidato (votos, % dos válidos, brancos, nulos, comparecimento, abstenções, seções totalizadas) no Brasil, numa UF ou num município, da última versão coletada do arquivo de resultado do TSE.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"turno": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"nivel": {
"type": "string",
"enum": [
"br",
"uf",
"municipio"
]
},
"codigo": {
"type": "string"
},
"uf": {
"type": "string"
},
"municipio": {
"type": "string"
},
"cargo": {
"type": "string",
"enum": [
"presidente",
"governador"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_comparar_turnos(ano, uf, municipio, zona, secao, ...)
1º e 2º turno lado a lado, só números: do Brasil, de uma UF ou de um município (totais oficiais) ou de uma seção (boletim de urna), com a subtração 2º − 1º em cada campo e a conferência de que as variações somam a variação do eleitorado. Sem interpretação.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"uf": {
"type": "string"
},
"municipio": {
"type": "string"
},
"zona": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"secao": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"cargo": {
"type": "string",
"enum": [
"presidente",
"governador"
]
}
},
"required": [
"uf"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_timeline_divulgacao(ano, uf, cargo, agrupar, max_pontos, ...)
Linha do tempo da divulgação do 2º turno no Brasil ou numa UF: cada versão do arquivo de resultado publicada pelo TSE (ou uma linha por hora, com os votos ganhos na hora), com % de seções totalizadas, votos por candidato, número da versão e SHA-256. Diz a partir de que horário o acervo tem dados.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"uf": {
"type": "string"
},
"cargo": {
"type": "string",
"enum": [
"presidente",
"governador"
]
},
"agrupar": {
"type": "string",
"enum": [
"versao",
"hora"
]
},
"max_pontos": {
"type": "number"
},
"de": {
"type": "string"
},
"ate": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_conferir_bu_impresso(ano, codigo_carga, turno, uf, municipio, ...)
Devolve o boletim de urna oficial de uma seção, campo a campo, para comparar com um BU impresso. Localize pelo código de carga impresso no papel ou por UF + município + zona + seção. Não lê foto: a comparação é de quem consulta.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"codigo_carga": {
"type": "string"
},
"turno": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"uf": {
"type": "string"
},
"municipio": {
"type": "string"
},
"zona": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"secao": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"itens": {
"type": "array",
"items": {
"type": "object",
"properties": {
"codigo_carga": {
"type": "string"
},
"turno": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"uf": {
"type": "string"
},
"municipio": {
"type": "string"
},
"zona": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"secao": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_verificar_hash(ano, sha256, arquivo, itens)
Diz se um SHA-256 é igual ao de um arquivo oficial do TSE no acervo e qual é o arquivo; ou, dado o nome do arquivo (ex.: o03221pr7691000660045-bu.dat, br-c0001-e006258-u.json), devolve o SHA-256 registrado.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"sha256": {
"type": "string"
},
"arquivo": {
"type": "string"
},
"itens": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sha256": {
"type": "string"
},
"arquivo": {
"type": "string"
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_filtrar_secoes(ano, turno, uf, municipio, filtros, ...)
Filtra e agrega seções (presidente) sem SQL, no servidor: filtros {campo, op, valor} (ex.: encerramento > '18:00', votos_13, comparecimento, abstencao_pct, sem_biometria_pct, votos_log_desde_17h), agrupar_por (uf, municipio, zona, hora_encerramento, hora_abertura) e metricas (contagem, soma:<campo>, media:<campo>, min:<campo>, max:<campo>). Sem uf nem municipio só agrega. Sempre devolve total_encontrado; listagem paginada (padrão 50, máximo 500), com o sha256 do BU de cada seção do 2º turno.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"turno": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"uf": {
"type": "string"
},
"municipio": {
"type": "string"
},
"filtros": {
"type": "array",
"items": {
"type": "object",
"properties": {
"campo": {
"type": "string",
"enum": [
"municipio",
"zona",
"secao",
"aptos",
"comparecimento",
"abstencao_pct",
"abertura",
"encerramento",
"votos_13",
"votos_22",
"votos_outros",
"brancos",
"nulos",
"compareceram_sem_biometria",
"sem_biometria_pct",
"votos_log_desde_17h",
"tem_log"
]
},
"op": {
"type": "string",
"enum": [
"=",
"!=",
">",
">=",
"<",
"<=",
"entre",
"em",
"contem"
]
},
"valor": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
}
]
}
},
"required": [
"campo",
"op",
"valor"
]
}
},
"agrupar_por": {
"type": "string",
"enum": [
"uf",
"municipio",
"zona",
"hora_encerramento",
"hora_abertura"
]
},
"metricas": {
"type": "array",
"items": {
"type": "string"
}
},
"ordenar": {
"type": "object",
"properties": {
"campo": {
"type": "string"
},
"direcao": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
},
"required": [
"campo"
]
},
"limite": {
"type": "number"
},
"cursor": {
"type": "number"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_exportar_csv(ano, turno, uf, municipio, filtros)
Mesmo recorte de filtrar_secoes, numa UF (opcionalmente um município), exportado como CSV completo: devolve um link que expira em 24 h, o sha256 do CSV e as linhas. Até 200 mil linhas por exportação. Para abrir no Excel ou no Python.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"turno": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"uf": {
"type": "string"
},
"municipio": {
"type": "string"
},
"filtros": {
"type": "array",
"items": {
"type": "object",
"properties": {
"campo": {
"type": "string",
"enum": [
"municipio",
"zona",
"secao",
"aptos",
"comparecimento",
"abstencao_pct",
"abertura",
"encerramento",
"votos_13",
"votos_22",
"votos_outros",
"brancos",
"nulos",
"compareceram_sem_biometria",
"sem_biometria_pct",
"votos_log_desde_17h",
"tem_log"
]
},
"op": {
"type": "string",
"enum": [
"=",
"!=",
">",
">=",
"<",
"<=",
"entre",
"em",
"contem"
]
},
"valor": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
}
]
}
},
"required": [
"campo",
"op",
"valor"
]
}
}
},
"required": [
"uf"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_esquema(ano)
Tabelas e colunas públicas do banco SQL deste MCP (secoes, municipios, totais_municipio, candidatos, votos_por_minuto, fontes), com o significado de cada coluna, 5 consultas de exemplo e os arquivos do TSE de origem (sha256). Chame antes de eleicoes_consulta_sql.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_consulta_sql(ano, sql, limite)
Executa UM SELECT (ou WITH … SELECT) somente leitura nas tabelas públicas da eleição (veja eleicoes_esquema antes). Um pré-voo pelo plano do SQLite estima as linhas lidas e recusa acima de 5 milhões sem executar, com sugestões para estreitar. Timeout de 5 s; até 1.000 linhas (padrão 100), com o SQL executado, o tempo e as linhas lidas.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"sql": {
"type": "string"
},
"limite": {
"type": "number"
}
},
"required": [
"sql"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_estimar_sql(ano, sql)
Só o pré-voo da eleicoes_consulta_sql, sem executar: valida o SELECT, mostra o plano, as linhas estimadas por tabela e se seria recusado (limite de 5 milhões de linhas lidas).
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"sql": {
"type": "string"
}
},
"required": [
"sql"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_buscar_candidato(ano, termos, cargo, uf)
Candidatos de todos os cargos de 2026 (presidente, governador, senador, deputados) por nome de urna ou número: partido, cargo, UF, situação e votos do 1º turno somados dos boletins de urna, com os municípios onde mais teve voto quando a busca acha um só. Presidente e governador trazem também o 2º turno oficial. Só dados públicos de candidatura (sem CPF, nascimento ou e-mail).
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"termos": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"cargo": {
"type": "string",
"enum": [
"presidente",
"governador",
"senador",
"deputado federal",
"deputado estadual",
"deputado distrital"
]
},
"uf": {
"type": "string"
}
},
"required": [
"termos"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_cobertura(ano, turno)
Quanto do acervo existe: seções com boletim de urna (BU) e com log de urna por UF, sobre o total de seções do TSE, e a hora da última sincronização. Use antes de tirar conclusão de dado por seção ou por horário; os totais oficiais da divulgação não dependem disso.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
},
"turno": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢eleicoes_como_ler(ano)
Glossário curto e neutro: boletim de urna, log de urna, código de carga, por que algumas seções fecham depois das 17h, prorrogação, fuso, biometria agregada, versões do arquivo e SHA-256. Mostra também a cobertura do acervo.
Esquema de entrada
{
"type": "object",
"properties": {
"ano": {
"type": "number"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢show_version
Show the current MCP platform and adapter versions.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡report_bug(message, context, conversation)
Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
Esquema de entrada
{
"type": "object",
"properties": {
"message": {
"type": "string"
},
"context": {
"default": "",
"type": "string"
},
"conversation": {
"default": "[]",
"type": "string"
}
},
"required": [
"message"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢connect
Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢toolkit_info
Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡marketplace(action, query, mcp_id, limit, tier_slug, ...)
The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.
Esquema de entrada
{
"type": "object",
"properties": {
"action": {
"default": "search",
"type": "string",
"enum": [
"search",
"describe",
"install",
"uninstall",
"subscribe",
"cancel",
"resume",
"report_bug",
"request_mcp",
"list_tools",
"invoke",
"search_prompts",
"get_prompt",
"publish_prompt"
]
},
"query": {
"default": "",
"type": "string"
},
"mcp_id": {
"default": "",
"type": "string"
},
"limit": {
"default": 10,
"type": "number"
},
"tier_slug": {
"default": "",
"type": "string"
},
"immediate": {
"default": false,
"type": "boolean"
},
"cancel_reason": {
"type": "string",
"enum": [
"too_expensive",
"missing_features",
"switched_service",
"unused",
"customer_service",
"too_complex",
"low_quality",
"other"
]
},
"cancel_comment": {
"default": "",
"type": "string"
},
"message": {
"default": "",
"type": "string"
},
"report_context": {
"default": "",
"type": "string"
},
"conversation": {
"default": "[]",
"type": "string"
},
"request_name": {
"default": "",
"type": "string"
},
"request_details": {
"default": "",
"type": "string"
},
"tool_id": {
"default": "",
"type": "string"
},
"arguments": {
"default": "{}",
"type": "string"
},
"prompt_slug": {
"default": "",
"type": "string"
},
"prompt_vars": {
"default": "{}",
"type": "string"
},
"prompt_category": {
"default": "",
"type": "string"
},
"prompt_tool": {
"default": "",
"type": "string"
},
"prompt_title": {
"default": "",
"type": "string"
},
"prompt_description": {
"default": "",
"type": "string"
},
"prompt_body": {
"default": "",
"type": "string"
},
"prompt_targets": {
"default": [],
"type": "array",
"items": {
"type": "string",
"enum": [
"claude",
"chatgpt",
"cursor",
"lovable"
]
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡authenticate(token)
MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.
Esquema de entrada
{
"type": "object",
"properties": {
"token": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia