Politica Electoral

API de datos electorales del mundo democrático: partidos políticos, perfiles ideológicos y programas electorales.

Política Electoral — MCP Server

A political-data API covering the democratic world: parties, politicians, public figures, events, congressional votes, institutions, parliamentary procedures and political concepts. Available as an MCP (Model Context Protocol) server over HTTP for AI-agent integrations, plus a REST API at /api/v1/* and per-page raw Markdown twins ({any-page}.md).

Most content is in Spanish. Profiles of politicians, parties and public figures are also available in English for selected countries (Spain, Argentina, Great Britain, United States, France).


Endpoints

URLDescription
POST /mcp-serverMain JSON-RPC 2.0 endpoint
GET /mcp-serverServer info
GET /.well-known/mcp.jsonMCP discovery
GET /llms.txtLLM-friendly content index (ES + EN URLs)
GET /openapi.jsonOpenAPI 3.1 spec for the REST API
GET /api/docsInteractive REST API docs (Scalar)

Protocol

MCP 2024-11-05 over HTTP (JSON-RPC 2.0).

Minimal request:

POST /mcp-server
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_parties_list",
    "arguments": { "country": "es" }
  }
}

Full handshake:

# 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":{}}'

Country codes

The country argument is always an ISO 3166-1 alpha-2 code.

CodeCountry
esSpain
arArgentina
mxMexico
clChile
coColombia
uyUruguay
pePeru
veVenezuela
brBrazil
usUnited States
gbGreat Britain
frFrance
deGermany
itItaly
ptPortugal
nlNetherlands
seSweden
plPoland
huHungary
grGreece
ieIreland
ilIsrael
euEuropean Union

Tools

The server exposes 25 tools, grouped by purpose:

  • Discovery & search: summarize_country, search
  • Parties & politicians: get_parties_list, get_party_profile, get_politicians_list, get_politician_profile, compare_parties, compare_politicians
  • Elections: get_elections_list, get_election_regions, get_election_region, get_election_region_parties, get_election_region_party
  • Public figures: get_public_figures_list, get_public_figure
  • Congress votes (Spain): get_votes_list, get_vote
  • Institutions, procedures & concepts: get_institutions_list, get_institution, get_procedures_list, get_procedure, get_political_concepts_list, get_political_concept
  • Events: get_events_list, get_event

All tool examples below use the tools/call JSON-RPC method:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": { "name": "<TOOL>", "arguments": { ... } }
}

Discovery & search

summarize_country

High-level political summary: head of government, main parties, last/next elections, recent events, totals per resource type.

{ "name": "summarize_country", "arguments": { "country": "es" } }

search

Free-text cross-resource search (politicians, parties, public figures, events, votes, institutions, procedures, concepts), ranked by score.

ArgumentTypeRequiredDescription
countrystringyesISO-2 country code
qstringyesFree-text query (≥ 2 characters)
limitintegernoMax results (1–50, default 20)
{ "name": "search", "arguments": { "country": "es", "q": "sanchez", "limit": 5 } }

Parties & politicians

get_parties_list

List of political parties in a country.

{ "name": "get_parties_list", "arguments": { "country": "es" } }

get_party_profile

Ideological and historical profile of a party (Markdown).

ArgumentTypeRequiredDescription
countrystringyesISO-2 country code
partystringyesParty slug (e.g. pp, psoe, vox)
{ "name": "get_party_profile", "arguments": { "country": "es", "party": "psoe" } }

get_politicians_list

List of politicians in a country, optionally filtered by party.

ArgumentTypeRequiredDescription
countrystringyesISO-2 country code
partystringnoParty slug to filter
{ "name": "get_politicians_list", "arguments": { "country": "es", "party": "psoe" } }

get_politician_profile

Detailed profile of a politician: trajectory, current role and ideological positioning (Markdown).

ArgumentTypeRequiredDescription
countrystringyesISO-2 country code
politicianstringyesPolitician slug (e.g. pedro-sanchez)
{ "name": "get_politician_profile", "arguments": { "country": "es", "politician": "pedro-sanchez" } }

compare_parties

Side-by-side comparison of two parties of the same country.

{ "name": "compare_parties", "arguments": { "country": "es", "party_a": "pp", "party_b": "psoe" } }

compare_politicians

Side-by-side comparison of two politicians.

{ "name": "compare_politicians", "arguments": { "country": "es", "politician_a": "pedro-sanchez", "politician_b": "alberto-nunez-feijoo" } }

Elections

get_elections_list

List of elections available for a country, with type (generales, autonomicas, europeas) and date.

{ "name": "get_elections_list", "arguments": { "country": "es" } }

get_election_regions

List of regions (autonomous communities, states, etc.) available for a specific election.

ArgumentTypeRequiredDescription
countrystringyesISO-2 country code
electionstringyesElection slug (e.g. generales-2023, autonomicas-2024)
{ "name": "get_election_regions", "arguments": { "country": "es", "election": "generales-2023" } }

get_election_region

Overview landing for a specific election + region: context, participating parties, key data.

ArgumentTypeRequiredDescription
countrystringyesISO-2 country code
electionstringyesElection slug
regionstringyesRegion slug (e.g. nacional, cataluna, madrid)
{ "name": "get_election_region", "arguments": { "country": "es", "election": "generales-2023", "region": "nacional" } }

get_election_region_parties

List of parties with electoral content for a specific election + region.

{ "name": "get_election_region_parties", "arguments": { "country": "es", "election": "generales-2023", "region": "nacional" } }

get_election_region_party

Electoral programme summary for a party in a specific election + region (Markdown).

{ "name": "get_election_region_party",
  "arguments": { "country": "es", "election": "generales-2023", "region": "nacional", "party": "pp" } }

Public figures

Non-politician public figures with political relevance: monarchs, journalists, business leaders, advisors, judges, prosecutors, etc.

get_public_figures_list

ArgumentTypeRequiredDescription
countrystringyesISO-2 country code
kindstringnoFilter by type: 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" } }

Congress votes (Spain only)

get_votes_list

Key votes from the Spanish Congress.

{ "name": "get_votes_list", "arguments": { "country": "es" } }

get_vote

Detailed analysis of a vote: result, party-by-party breakdown, context.

{ "name": "get_vote", "arguments": { "country": "es", "vote": "ley-amnistia-2024" } }

Institutions, procedures & concepts

get_institutions_list · get_institution

State institutions (parliament, government, judiciary, control bodies, advisory bodies).

{ "name": "get_institution", "arguments": { "country": "es", "institution": "tribunal-constitucional" } }

get_procedures_list · get_procedure

Parliamentary procedures (e.g. investiture, motion of no confidence).

{ "name": "get_procedure", "arguments": { "country": "es", "procedure": "mocion-de-censura" } }

get_political_concepts_list · get_political_concept

Political concepts (separation of powers, D'Hondt method, blank vs null vote, etc.).

ArgumentTypeRequiredDescription
countrystringyesISO-2 country code
subcategorystringnofundamental or electoral
{ "name": "get_political_concept", "arguments": { "country": "es", "concept": "division-de-poderes" } }

Events

Major political events: scandals, crises, foreign-policy episodes, constitutional reforms, etc.

{ "name": "get_events_list", "arguments": { "country": "es" } }
{ "name": "get_event", "arguments": { "country": "es", "event": "atentados-11m-2004" } }

Recommended flow

Get a party's electoral programme:

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

Get a party profile:

get_parties_list(country)        → pick party slug
get_party_profile(country, ...)  → ideological profile as Markdown

Free-text exploration:

search(country, q="<term>")      → ranked mixed-resource results

Markdown twins (raw .md URLs)

Every public page also serves a raw Markdown version by appending .md to the URL. URL slugs are per-language: Spanish uses politicos/partido/personajes, English uses politicians/party/public-figures. Country slugs also change (espanaspain, reino-unidogreat-britain, eeuuunited-states).

Spanish (canonical, all entities):

/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

English (politicians + parties + public figures only, where translated):

/en/{country-en}/party/{slug}.md
/en/{country-en}/politicians/{slug}.md
/en/{country-en}/public-figures/{slug}.md

Examples:

https://www.politicaelectoral.com/es/espana/politicos/pedro-sanchez.md
https://www.politicaelectoral.com/en/spain/politicians/pedro-sanchez.md

https://www.politicaelectoral.com/es/reino-unido/personajes/king-charles-iii.md
https://www.politicaelectoral.com/en/great-britain/public-figures/king-charles-iii.md

https://www.politicaelectoral.com/es/eeuu/partido/republicano.md
https://www.politicaelectoral.com/en/united-states/party/republicano.md

If the requested language has no published .md for that slug the URL returns 404 (no fallback).


REST API

In addition to MCP, the same data is exposed as a REST API rooted at /api/v1/. Spec: /openapi.json. Interactive docs: /api/docs.

# List parties for Spain
curl 'https://www.politicaelectoral.com/api/v1/parties?country=es'

# Politician profile (English variant when available)
curl 'https://www.politicaelectoral.com/api/v1/politicians/pedro-sanchez?country=es&lang=en'

# Free-text search
curl 'https://www.politicaelectoral.com/api/v1/search?q=sanchez&country=es&limit=5'

country is always ISO-2. lang defaults to es; pass lang=en to receive the English variant (only items with EN content are returned in that case).


License & usage

Data is sourced from each party's official electoral programmes. Profiles and analysis are generated with AI from public sources. Free use for non-commercial projects with attribution.

Site: politicaelectoral.com

Serveurs connexes

NotebookLM Web Importer

Importez des pages web et des vidéos YouTube dans NotebookLM en un clic. Utilisé par plus de 200 000 utilisateurs.

Installer l'extension Chrome