Model Context Protocol

MCP Server

Elicita expone un servidor Model Context Protocol(MCP) que permite a asistentes de IA como Claude, Cursor o Bedrock buscar en 66M+ de contratos públicos españoles.

Operativo en https://elicita.es/mcp

Introducción

El servidor MCP de Elicita implementa el protocolo Streamable HTTP (spec 2026-07-28 stateless). Expone 7 herramientas (todas read-only) para buscar licitaciones, consultar estadísticas, explorar códigos CPV y analizar relaciones contractuales.

Funciona en dos modos:

Gratuito

4 tools públicas sin autenticación. 20 búsquedas/hora por IP.

OAuth 2.0

7 tools completas. Sin rate limit del MCP. Límites del plan del usuario.

Conexión

Claude Desktop

Añade Elicita como servidor MCP en tu configuración de Claude Desktop:

Cursor

En Cursor: Settings → MCP → Add Server:

Cualquier cliente MCP

El servidor acepta peticiones POST con JSON-RPC 2.0 sobre Streamable HTTP:

Listar tools disponibles:

Buscar licitaciones:

Autenticación OAuth 2.0

Para desbloquear las 7 tools completas (incluyendo grafo de contratos y perfil de organismo), conecta tu cuenta de Elicita mediante OAuth 2.0 con Dynamic Client Registration (RFC 7591).

Endpoints

Discovery: GET https://elicita.es/.well-known/oauth-authorization-server
Authorize: GET https://elicita.es/authorize
Token: POST https://elicita.es/token
Register: POST https://elicita.es/register

Flujo

  1. 1.El cliente MCP se registra dinámicamente en /register y obtiene client_id + client_secret.
  2. 2.Redirige al usuario a /authorize que redirige a Clerk (clerk.elicita.es/oauth/authorize) donde el usuario inicia sesión con su cuenta de Elicita.
  3. 3.Tras autorizar, se redirige con un code al callback del cliente.
  4. 4.Clerk redirige a /mcp/callback con un code. El MCP server intercambia ese code con Clerk por userinfo (email, userId), busca o crea la API key de Elicita del usuario, y genera un MCP auth code. El cliente intercambia ese MCP code por un access_token en /token.
  5. 5.El access_token se envía como Authorization: Bearer <token> en cada petición a /mcp.

Nota: Los access tokens del MCP se almacenan en memoria del servidor con un TTL de 1 hora. No se persisten en disco ni en base de datos. La autenticación se delega a Clerk (IdP), por lo que el MCP server nunca maneja passwords ni credenciales de usuario directamente.

Registrar un cliente

Obtener un token

Tools

7 herramientas, todas read-only (readOnlyHint: true).

search_licitaciones

Gratuitoread-only

Buscar licitaciones y contratos públicos por texto libre, código CPV, rango de importe, estado, fuente, NIF de organismo o adjudicatario, y rango de fechas.

Parámetros

qstringTexto libre (título, descripción)
cpvstringCódigo CPV o prefijo (ej. 48000000 para TI)
estadostringEstado: licitada, adjudicada, formalizada
fuentestringFuente: TED, PLACSP, GALICIA, ANDALUCIA, etc.
importe_minnumberImporte mínimo en euros
importe_maxnumberImporte máximo en euros
nif_organismostringNIF del organismo contratante
nif_adjudicatariostringNIF del adjudicatario
fecha_desdestringFecha publicación desde (YYYY-MM-DD)
fecha_hastastringFecha publicación hasta (YYYY-MM-DD)
limitnumberMáximo resultados (default 10, max 50)

Retorna

Lista de licitaciones con ID, título, organismo, importe, estado, fuente, fecha y enlace.

get_stats

Gratuitoread-only

Estadísticas globales del dataset: total de registros, fuentes cubiertas y última actualización.

Retorna

Objeto con total_licitaciones, total_borme, total_calidad, fuentes y ultima_actualizacion.

get_cobertura

Gratuitoread-only

Cobertura de fuentes dinámicas: listado de fuentes activas con su periodicidad de actualización.

Retorna

Lista de fuentes con nombre, tipo, periodicidad y última descarga.

search_cpv

Gratuitoread-only

Buscar códigos CPV (Common Procurement Vocabulary) por texto en español. 9.454 códigos disponibles.

Parámetros

qstring*requeridoTexto a buscar (ej. "software", "limpieza", "ciberseguridad")
limitnumberMáximo resultados (default 10, max 50)

Retorna

Lista de códigos CPV con código numérico y descripción en español.

get_organismo

OAuthread-only

Información detallada de un organismo por su NIF: nombre, importe total contratado, número de contratos y desglose por estado.

Parámetros

nifstring*requeridoNIF del organismo (ej. "A28223730")

Retorna

Objeto con nombre, nif, importe_total, num_contratos y desglose por estado.

graph_search

OAuthread-only

Grafo de relaciones contractuales de un organismo. Muestra a quién contrata, con qué CPVs, y qué empresas relacionadas aparecen.

Parámetros

nifstring*requeridoNIF del organismo
depthnumberProfundidad del grafo (default 1, max 2)

Retorna

Nodos (organismos, empresas) y aristas (contratos) del grafo de relaciones.

graph_contracts

OAuthread-only

Contratos relacionados a partir de un organismo, CPV, importe o adjudicatario. Útil para encontrar oportunidades similares.

Parámetros

nifstringNIF del organismo
cpvstringCódigo CPV
importe_minnumberImporte mínimo
adjudicatariostringNIF del adjudicatario
limitnumberMáximo resultados (default 10)

Retorna

Lista de contratos relacionados con puntuación de similitud.

Ejemplos

Buscar licitaciones de ciberseguridad

Buscar códigos CPV de software

Perfil de organismo (OAuth)

Grafo de relaciones (OAuth)

Primeros prompts

Copia y pega estos prompts en tu agente de IA después de conectar Elicita MCP. Están diseñados para mostrar valor inmediato — cada uno exercising una tool distinta y revelando datos que un agente sin Elicita no puede obtener.

Gratuitosearch_licitaciones

1. Oportunidades por sector y zona

Encuentra contratos activos en tu sector sin abrir cinco plataformas.

Busca licitaciones activas de limpieza de edificios en Madrid. Filtra por importe mínimo 50.000€. ¿Cuántas hay? ¿Quién las convoca? Resume las 5 más relevantes.
Gratuitosearch_licitaciones + search_cpv

2. Descubre tus códigos CPV

Los códigos CPV definen qué se contrata. Si no sabes cuáles usar, el agente los busca por ti.

Busca códigos CPV relacionados con "ciberseguridad". Luego usa esos códigos para encontrar contratos adjudicados de más de 100.000€ en 2025. ¿Qué empresas se los llevan?
Gratuitosearch_licitaciones

3. Radar competitivo

Monitoriza qué contrata tu competencia directa.

Busca contratos adjudicados a Indra Sistemas (NIF A-86437928) en los últimos 6 meses. ¿En qué sectores? ¿Qué organismos? ¿Cuál es el importe medio?
OAuthget_organismo

4. Perfil de organismo

Cuánto contrata un organismo, en qué sectores, con qué frecuencia.

Dime todo lo que sabe Elicita del Ministerio de Defensa (NIF S2823013H). ¿Cuánto contrata anualmente? ¿En qué CPVs concentra su gasto?
OAuthgraph_search

5. Mapa de relaciones

Quién contrata con quién. Patrones de concentración no visibles en listados.

Construye el grafo de relaciones del Ayuntamiento de Sevilla (NIF P4111800F). ¿Qué empresas aparecen más veces como adjudicatarias? ¿Hay patrones de concentración?
OAuthgraph_contracts

6. Oportunidades similares

Encontraste un contrato interesante. Busca parecidos activos.

Tengo este contrato de software para banca adjudicado a una empresa. Busca contratos similares por CPV y rango de importe que estén en estado licitada ahora mismo.

Por qué Elicita

Un agente de IA sin Elicita puede escribir emails, generar código o resumir documentos. Pero no puede ver 66M de contratos públicos españoles. Esto es lo que cambia cuando lo conectas:

Sin Elicita

  • Datos de entrenamiento desactualizados o incompletos
  • No puede buscar en PLACE, TED ni plataformas autonómicas
  • Alucina nombres de organismos, importes y adjudicatarios
  • No puede cruzar BORME con licitaciones
  • Te dice "no tengo acceso a datos en tiempo real"

Con Elicita MCP

  • 66.4M de registros actualizados cada 4 horas
  • 12 fuentes oficiales (PLACE, TED, 9 autonómicas, BORME)
  • Datos verificables con enlace a la fuente original
  • Grafo de relaciones: quien contrata con quien
  • BORME integrado: 26M de cargos societarios
  • Sin alucinaciones: los datos son reales o no existen

Elicita es un superpoder en contratos públicos.Tu agente de IA ya sabe razonar, escribir código y planificar. Conectado a Elicita, también sabe qué se contrata, quién se lo lleva, cuándo y por cuánto. No es información que pueda buscar en Google o extraer de su memoria de entrenamiento — son 66M de registros que solo existen en Elicita.

2-3h

tiempo manual de recopilación diaria sin Elicita

~5s

tiempo con un prompt y Elicita MCP

66.4M

registros que tu agente no tiene de otra forma

Límites

ModoLímiteAplicación
Gratuito20 req/hora por IPMCP server
OAuthSin rate limit en MCPLímites del plan del usuario en la API
nginx5 req/segundo burstProtección contra picos (todos los modos)

Al alcanzar el límite gratuito, se devuelve HTTP 429 con Retry-After indicando los minutos restantes.

Errores

CódigoNombreDescripción
400Bad RequestParámetros inválidos o faltantes.
401UnauthorizedToken OAuth inválido o expirado.
429Too Many RequestsLímite de rate excedido. Reintentar después del tiempo indicado en Retry-After.
500Internal Server ErrorError interno del servidor.