Politica Electoral
API de dados eleitorais do mundo democrático: partidos políticos, perfis ideológicos e programas eleitorais.
Documentação
Política Electoral — Servidor MCP
Uma API de dados políticos que cobre o mundo democrático: partidos, políticos, figuras públicas, eventos, votações no congresso, instituições, procedimentos parlamentares e conceitos políticos. Disponível como um servidor MCP (Model Context Protocol) via HTTP para integrações com agentes de IA, além de uma API REST em /api/v1/* e versões Markdown cruas por página ({any-page}.md).
Todo o conteúdo está em espanhol. (Um piloto em inglês existiu até agosto de 2026; URLs legadas de perfil /en/ agora retornam 301 para sua versão em espanhol, e qualquer outra URL /en/ retorna 404.)
Endpoints
| URL | Descrição |
|---|---|
POST /mcp-server | Endpoint principal JSON-RPC 2.0 |
GET /mcp-server | Informações do servidor |
GET /.well-known/mcp.json | Descoberta MCP |
GET /llms.txt | Índice de conteúdo amigável para LLM (URLs em ES + EN) |
GET /openapi.json | Especificação OpenAPI 3.1 para a API REST |
GET /api/docs | Documentação interativa da API REST (Scalar) |
Protocolo
MCP 2024-11-05 via HTTP (JSON-RPC 2.0).
Requisição mínima:
POST /mcp-server
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_parties_list",
"arguments": { "country": "es" }
}
}
Handshake completo:
# 1. Initialize
curl -X POST https://www.politicaelectoral.com/mcp-server \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-client","version":"1.0"}}}'
# 2. Notify ready (no response expected)
curl -X POST https://www.politicaelectoral.com/mcp-server \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}'
# 3. List available tools
curl -X POST https://www.politicaelectoral.com/mcp-server \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
Códigos de país
O argumento country é sempre um código ISO 3166-1 alpha-2.
| Código | País |
|---|---|
es | Espanha |
ar | Argentina |
mx | México |
cl | Chile |
co | Colômbia |
uy | Uruguai |
pe | Peru |
ve | Venezuela |
br | Brasil |
us | Estados Unidos |
gb | Grã-Bretanha |
fr | França |
de | Alemanha |
it | Itália |
pt | Portugal |
nl | Países Baixos |
se | Suécia |
pl | Polônia |
hu | Hungria |
gr | Grécia |
il | Israel |
eu | União Europeia |
Ferramentas
O servidor expõe 25 ferramentas, agrupadas por finalidade:
- Descoberta e busca:
summarize_country,search - Partidos e políticos:
get_parties_list,get_party_profile,get_politicians_list,get_politician_profile,compare_parties,compare_politicians - Eleições:
get_elections_list,get_election_regions,get_election_region,get_election_region_parties,get_election_region_party - Figuras públicas:
get_public_figures_list,get_public_figure - Votações no Congresso (Espanha):
get_votes_list,get_vote - Instituições, procedimentos e conceitos:
get_institutions_list,get_institution,get_procedures_list,get_procedure,get_political_concepts_list,get_political_concept - Eventos:
get_events_list,get_event
Todos os exemplos de ferramentas abaixo usam o método JSON-RPC tools/call:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "<TOOL>", "arguments": { ... } }
}
Descoberta e busca
summarize_country
Resumo político de alto nível: chefe de governo, principais partidos, últimas/próximas eleições, eventos recentes, totais por tipo de recurso.
{ "name": "summarize_country", "arguments": { "country": "es" } }
search
Busca de texto livre entre recursos (políticos, partidos, figuras públicas, eventos, votações, instituições, procedimentos, conceitos), classificada por pontuação.
| Argumento | Tipo | Obrigatório | Descrição |
|---|---|---|---|
country | string | sim | Código de país ISO-2 |
q | string | sim | Consulta de texto livre (≥ 2 caracteres) |
limit | integer | não | Máximo de resultados (1–50, padrão 20) |
{ "name": "search", "arguments": { "country": "es", "q": "sanchez", "limit": 5 } }
Partidos e políticos
get_parties_list
Lista de partidos políticos em um país.
{ "name": "get_parties_list", "arguments": { "country": "es" } }
get_party_profile
Perfil ideológico e histórico de um partido (Markdown).
| Argumento | Tipo | Obrigatório | Descrição |
|---|---|---|---|
country | string | sim | Código de país ISO-2 |
party | string | sim | Slug do partido (ex.: pp, psoe, vox) |
{ "name": "get_party_profile", "arguments": { "country": "es", "party": "psoe" } }
get_politicians_list
Lista de políticos em um país, opcionalmente filtrada por partido.
| Argumento | Tipo | Obrigatório | Descrição |
|---|---|---|---|
country | string | sim | Código de país ISO-2 |
party | string | não | Slug do partido para filtrar |
{ "name": "get_politicians_list", "arguments": { "country": "es", "party": "psoe" } }
get_politician_profile
Perfil detalhado de um político: trajetória, função atual e posicionamento ideológico (Markdown).
| Argumento | Tipo | Obrigatório | Descrição |
|---|---|---|---|
country | string | sim | Código de país ISO-2 |
politician | string | sim | Slug do político (ex.: pedro-sanchez) |
{ "name": "get_politician_profile", "arguments": { "country": "es", "politician": "pedro-sanchez" } }
compare_parties
Comparação lado a lado de dois partidos do mesmo país.
{ "name": "compare_parties", "arguments": { "country": "es", "party_a": "pp", "party_b": "psoe" } }
compare_politicians
Comparação lado a lado de dois políticos.
{ "name": "compare_politicians", "arguments": { "country": "es", "politician_a": "pedro-sanchez", "politician_b": "alberto-nunez-feijoo" } }
Eleições
get_elections_list
Lista de eleições disponíveis para um país, com tipo (generales, autonomicas, europeas) e data.
{ "name": "get_elections_list", "arguments": { "country": "es" } }
get_election_regions
Lista de regiões (comunidades autônomas, estados, etc.) disponíveis para uma eleição específica.
| Argumento | Tipo | Obrigatório | Descrição |
|---|---|---|---|
country | string | sim | Código de país ISO-2 |
election | string | sim | Slug da eleição (ex.: generales-2023, autonomicas-2024) |
{ "name": "get_election_regions", "arguments": { "country": "es", "election": "generales-2023" } }
get_election_region
Página de visão geral para uma eleição + região específica: contexto, partidos participantes, dados-chave.
| Argumento | Tipo | Obrigatório | Descrição |
|---|---|---|---|
country | string | sim | Código de país ISO-2 |
election | string | sim | Slug da eleição |
region | string | sim | Slug da região (ex.: nacional, cataluna, madrid) |
{ "name": "get_election_region", "arguments": { "country": "es", "election": "generales-2023", "region": "nacional" } }
get_election_region_parties
Lista de partidos com conteúdo eleitoral para uma eleição + região específica.
{ "name": "get_election_region_parties", "arguments": { "country": "es", "election": "generales-2023", "region": "nacional" } }
get_election_region_party
Resumo do programa eleitoral de um partido em uma eleição + região específica (Markdown).
{ "name": "get_election_region_party",
"arguments": { "country": "es", "election": "generales-2023", "region": "nacional", "party": "pp" } }
Figuras públicas
Figuras públicas não-políticas com relevância política: monarcas, jornalistas, líderes empresariais, assessores, juízes, promotores, etc.
get_public_figures_list
| Argumento | Tipo | Obrigatório | Descrição |
|---|---|---|---|
country | string | sim | Código de país ISO-2 |
kind | string | não | Filtrar por tipo: monarca, periodista, empresario, asesor, juez, fiscal, figura |
{ "name": "get_public_figures_list", "arguments": { "country": "gb", "kind": "monarca" } }
get_public_figure
{ "name": "get_public_figure", "arguments": { "country": "gb", "slug": "king-charles-iii" } }
Votações no Congresso (somente Espanha)
get_votes_list
Votações-chave do Congresso espanhol.
{ "name": "get_votes_list", "arguments": { "country": "es" } }
get_vote
Análise detalhada de uma votação: resultado, detalhamento por partido, contexto.
{ "name": "get_vote", "arguments": { "country": "es", "vote": "ley-amnistia-2024" } }
Instituições, procedimentos e conceitos
get_institutions_list · get_institution
Instituições do Estado (parlamento, governo, judiciário, órgãos de controle, órgãos consultivos).
{ "name": "get_institution", "arguments": { "country": "es", "institution": "tribunal-constitucional" } }
get_procedures_list · get_procedure
Procedimentos parlamentares (ex.: investidura, moção de censura).
{ "name": "get_procedure", "arguments": { "country": "es", "procedure": "mocion-de-censura" } }
get_political_concepts_list · get_political_concept
Conceitos políticos (separação de poderes, método D'Hondt, voto em branco vs. nulo, etc.).
| Argumento | Tipo | Obrigatório | Descrição |
|---|---|---|---|
country | string | sim | Código de país ISO-2 |
subcategory | string | não | fundamental ou electoral |
{ "name": "get_political_concept", "arguments": { "country": "es", "concept": "division-de-poderes" } }
Eventos
Principais eventos políticos: escândalos, crises, episódios de política externa, reformas constitucionais, etc.
{ "name": "get_events_list", "arguments": { "country": "es" } }
{ "name": "get_event", "arguments": { "country": "es", "event": "atentados-11m-2004" } }
Fluxo recomendado
Obter o programa eleitoral de um partido:
get_elections_list(country) → pick election slug
get_election_regions(country, election) → pick region slug
get_election_region_parties(...) → pick party slug
get_election_region_party(...) → programme as Markdown
Obter o perfil de um partido:
get_parties_list(country) → pick party slug
get_party_profile(country, ...) → ideological profile as Markdown
Exploração de texto livre:
search(country, q="<term>") → ranked mixed-resource results
Versões Markdown cruas (URLs .md)
Toda página pública também serve uma versão Markdown crua ao anexar .md à
URL.
Todas as entidades (espanhol):
/es/{country-es}/partido/{slug}.md → party profile
/es/{country-es}/politicos/{slug}.md → politician profile
/es/{country-es}/personajes/{slug}.md → public figure profile
/es/{country-es}/eventos/{slug}.md → political event
/es/{country-es}/votaciones/{slug}.md → Congress vote (Spain)
/es/{country-es}/instituciones/{slug}.md → state institution
/es/{country-es}/procedimientos/{slug}.md → parliamentary procedure
/es/{country-es}/conceptos-politicos/{slug}.md → political concept
/es/{country-es}/{election}/{region}.md → election landing
/es/{country-es}/{election}/{region}/{party}.md → party programme summary
Exemplos:
https://www.politicaelectoral.com/es/espana/politicos/pedro-sanchez.md
https://www.politicaelectoral.com/es/reino-unido/personajes/king-charles-iii.md
https://www.politicaelectoral.com/es/eeuu/partido/republicano.md
Se não houver .md publicado para esse slug, a URL retorna 404.
API REST
Além do MCP, os mesmos dados são expostos como uma API REST com raiz em
/api/v1/. Especificação: /openapi.json. Documentação interativa: /api/docs.
# List parties for Spain
curl 'https://www.politicaelectoral.com/api/v1/parties?country=es'
# Politician profile
curl 'https://www.politicaelectoral.com/api/v1/politicians/pedro-sanchez?country=es'
# Free-text search
curl 'https://www.politicaelectoral.com/api/v1/search?q=sanchez&country=es&limit=5'
country é sempre ISO-2. lang tem como padrão es e é o único valor
suportado (qualquer outro retorna 400).
Licença e uso
Os dados são provenientes dos programas eleitorais oficiais de cada partido. Perfis e análises são gerados com IA a partir de fontes públicas. Uso gratuito para projetos não comerciais com atribuição.
Site: politicaelectoral.com