Politica Electoral
API de datos electorales del mundo democrático: partidos políticos, perfiles ideológicos y programas electorales.
Documentación
Política Electoral — Servidor MCP
Una API de datos políticos que cubre el mundo democrático: partidos, políticos, figuras públicas, eventos, votaciones del congreso, instituciones, procedimientos parlamentarios y conceptos políticos. Disponible como servidor MCP (Model Context Protocol) sobre HTTP para integraciones con agentes de IA, además de una API REST en /api/v1/* y versiones Markdown sin procesar por página ({any-page}.md).
Todo el contenido está en español. (Existió un piloto en inglés hasta agosto de 2026; las URL de perfil heredadas /en/ ahora devuelven 301 a su equivalente en español, cualquier otra URL /en/ devuelve 404).
Endpoints
| URL | Descripción |
|---|---|
POST /mcp-server | Endpoint principal JSON-RPC 2.0 |
GET /mcp-server | Información del servidor |
GET /.well-known/mcp.json | Descubrimiento MCP |
GET /llms.txt | Índice de contenido apto para LLM (URLs en ES + EN) |
GET /openapi.json | Especificación OpenAPI 3.1 para la API REST |
GET /api/docs | Documentación interactiva de la API REST (Scalar) |
Protocolo
MCP 2024-11-05 sobre HTTP (JSON-RPC 2.0).
Solicitud 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" }
}
}
Protocolo de enlace 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
El argumento country es siempre un código ISO 3166-1 alpha-2.
| Código | País |
|---|---|
es | España |
ar | Argentina |
mx | México |
cl | Chile |
co | Colombia |
uy | Uruguay |
pe | Perú |
ve | Venezuela |
br | Brasil |
us | Estados Unidos |
gb | Gran Bretaña |
fr | Francia |
de | Alemania |
it | Italia |
pt | Portugal |
nl | Países Bajos |
se | Suecia |
pl | Polonia |
hu | Hungría |
gr | Grecia |
il | Israel |
eu | Unión Europea |
Herramientas
El servidor expone 25 herramientas, agrupadas por propósito:
- Descubrimiento y búsqueda:
summarize_country,search - Partidos y políticos:
get_parties_list,get_party_profile,get_politicians_list,get_politician_profile,compare_parties,compare_politicians - Elecciones:
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 - Votaciones del Congreso (España):
get_votes_list,get_vote - Instituciones, procedimientos y conceptos:
get_institutions_list,get_institution,get_procedures_list,get_procedure,get_political_concepts_list,get_political_concept - Eventos:
get_events_list,get_event
Todos los ejemplos de herramientas a continuación usan el método JSON-RPC tools/call:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "<TOOL>", "arguments": { ... } }
}
Descubrimiento y búsqueda
summarize_country
Resumen político de alto nivel: jefe de gobierno, principales partidos, últimas/próximas elecciones, eventos recientes, totales por tipo de recurso.
{ "name": "summarize_country", "arguments": { "country": "es" } }
search
Búsqueda de texto libre entre recursos (políticos, partidos, figuras públicas, eventos, votaciones, instituciones, procedimientos, conceptos), ordenada por puntuación.
| Argumento | Tipo | Obligatorio | Descripción |
|---|---|---|---|
country | string | sí | Código de país ISO-2 |
q | string | sí | Consulta de texto libre (≥ 2 caracteres) |
limit | integer | no | Máximo de resultados (1–50, por defecto 20) |
{ "name": "search", "arguments": { "country": "es", "q": "sanchez", "limit": 5 } }
Partidos y políticos
get_parties_list
Lista de partidos políticos de un país.
{ "name": "get_parties_list", "arguments": { "country": "es" } }
get_party_profile
Perfil ideológico e histórico de un partido (Markdown).
| Argumento | Tipo | Obligatorio | Descripción |
|---|---|---|---|
country | string | sí | Código de país ISO-2 |
party | string | sí | Slug del partido (p. ej. pp, psoe, vox) |
{ "name": "get_party_profile", "arguments": { "country": "es", "party": "psoe" } }
get_politicians_list
Lista de políticos de un país, opcionalmente filtrada por partido.
| Argumento | Tipo | Obligatorio | Descripción |
|---|---|---|---|
country | string | sí | Código de país ISO-2 |
party | string | no | Slug del partido para filtrar |
{ "name": "get_politicians_list", "arguments": { "country": "es", "party": "psoe" } }
get_politician_profile
Perfil detallado de un político: trayectoria, cargo actual y posicionamiento ideológico (Markdown).
| Argumento | Tipo | Obligatorio | Descripción |
|---|---|---|---|
country | string | sí | Código de país ISO-2 |
politician | string | sí | Slug del político (p. ej. pedro-sanchez) |
{ "name": "get_politician_profile", "arguments": { "country": "es", "politician": "pedro-sanchez" } }
compare_parties
Comparación lado a lado de dos partidos del mismo país.
{ "name": "compare_parties", "arguments": { "country": "es", "party_a": "pp", "party_b": "psoe" } }
compare_politicians
Comparación lado a lado de dos políticos.
{ "name": "compare_politicians", "arguments": { "country": "es", "politician_a": "pedro-sanchez", "politician_b": "alberto-nunez-feijoo" } }
Elecciones
get_elections_list
Lista de elecciones disponibles para un país, con tipo (generales, autonomicas, europeas) y fecha.
{ "name": "get_elections_list", "arguments": { "country": "es" } }
get_election_regions
Lista de regiones (comunidades autónomas, estados, etc.) disponibles para una elección específica.
| Argumento | Tipo | Obligatorio | Descripción |
|---|---|---|---|
country | string | sí | Código de país ISO-2 |
election | string | sí | Slug de la elección (p. ej. generales-2023, autonomicas-2024) |
{ "name": "get_election_regions", "arguments": { "country": "es", "election": "generales-2023" } }
get_election_region
Página de inicio general para una elección + región específicas: contexto, partidos participantes, datos clave.
| Argumento | Tipo | Obligatorio | Descripción |
|---|---|---|---|
country | string | sí | Código de país ISO-2 |
election | string | sí | Slug de la elección |
region | string | sí | Slug de la región (p. ej. nacional, cataluna, madrid) |
{ "name": "get_election_region", "arguments": { "country": "es", "election": "generales-2023", "region": "nacional" } }
get_election_region_parties
Lista de partidos con contenido electoral para una elección + región específicas.
{ "name": "get_election_region_parties", "arguments": { "country": "es", "election": "generales-2023", "region": "nacional" } }
get_election_region_party
Resumen del programa electoral de un partido en una elección + región específicas (Markdown).
{ "name": "get_election_region_party",
"arguments": { "country": "es", "election": "generales-2023", "region": "nacional", "party": "pp" } }
Figuras públicas
Figuras públicas no políticas con relevancia política: monarcas, periodistas, líderes empresariales, asesores, jueces, fiscales, etc.
get_public_figures_list
| Argumento | Tipo | Obligatorio | Descripción |
|---|---|---|---|
country | string | sí | Código de país ISO-2 |
kind | string | no | 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" } }
Votaciones del Congreso (solo España)
get_votes_list
Votaciones clave del Congreso español.
{ "name": "get_votes_list", "arguments": { "country": "es" } }
get_vote
Análisis detallado de una votación: resultado, desglose por partido, contexto.
{ "name": "get_vote", "arguments": { "country": "es", "vote": "ley-amnistia-2024" } }
Instituciones, procedimientos y conceptos
get_institutions_list · get_institution
Instituciones del Estado (parlamento, gobierno, poder judicial, órganos de control, órganos consultivos).
{ "name": "get_institution", "arguments": { "country": "es", "institution": "tribunal-constitucional" } }
get_procedures_list · get_procedure
Procedimientos parlamentarios (p. ej. investidura, moción de censura).
{ "name": "get_procedure", "arguments": { "country": "es", "procedure": "mocion-de-censura" } }
get_political_concepts_list · get_political_concept
Conceptos políticos (separación de poderes, método D'Hondt, voto en blanco vs. nulo, etc.).
| Argumento | Tipo | Obligatorio | Descripción |
|---|---|---|---|
country | string | sí | Código de país ISO-2 |
subcategory | string | no | fundamental o electoral |
{ "name": "get_political_concept", "arguments": { "country": "es", "concept": "division-de-poderes" } }
Eventos
Grandes eventos políticos: escándalos, crisis, episodios de política exterior, reformas constitucionales, etc.
{ "name": "get_events_list", "arguments": { "country": "es" } }
{ "name": "get_event", "arguments": { "country": "es", "event": "atentados-11m-2004" } }
Flujo recomendado
Obtener el programa electoral de un 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
Obtener el perfil de un partido:
get_parties_list(country) → pick party slug
get_party_profile(country, ...) → ideological profile as Markdown
Exploración de texto libre:
search(country, q="<term>") → ranked mixed-resource results
Versiones Markdown (URLs .md sin procesar)
Cada página pública también ofrece una versión Markdown sin procesar añadiendo .md a la URL.
Todas las entidades (español):
/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
Ejemplos:
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
Si no hay un .md publicado para ese slug, la URL devuelve 404.
API REST
Además de MCP, los mismos datos se exponen como API REST con raíz en /api/v1/. Especificación: /openapi.json. Documentación interactiva: /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 es siempre ISO-2. lang tiene como valor predeterminado es y es el único valor admitido (cualquier otro devuelve 400).
Licencia y uso
Los datos provienen de los programas electorales oficiales de cada partido. Los perfiles y análisis se generan con IA a partir de fuentes públicas. Uso gratuito para proyectos no comerciales con atribución.
Sitio: politicaelectoral.com