Servidor MCP
@constaia/mcp conecta Constaia con agentes de IA como Claude Desktop, Claude Code o Cursor mediante Model Context Protocol.
@constaia/mcp es un servidor Model Context Protocol que permite a un agente de IA validar, clasificar y extraer datos de documentos con Constaia. Le pides "¿es este PDF un certificado médico deportivo vigente?" y el agente llama a la API por ti.
Se ejecuta en tu equipo por stdio con un solo comando:
npx -y @constaia/mcpNecesita Node.js 18 o superior y la variable CONSTAIA_API_KEY.
API preliminar
Las herramientas y sus parámetros pueden cambiar antes de la versión 1.0.
Configuración
| Variable | Obligatoria | Descripción |
|---|---|---|
CONSTAIA_API_KEY | Sí | Tu clave. Empieza con una ck_test_…: es gratuita y determinista. |
CONSTAIA_ALLOWED_DIRS | No | Carpetas (separadas por comas) desde las que el agente puede subir ficheros. Si no la defines, puede leer cualquier ruta. |
CONSTAIA_BASE_URL | No | URL base de la API. Por defecto https://api.constaia.com. |
Edita claude_desktop_config.json (en macOS, ~/Library/Application Support/Claude/; en Windows, %APPDATA%\Claude\) y reinicia la aplicación:
{
"mcpServers": {
"constaia": {
"command": "npx",
"args": ["-y", "@constaia/mcp"],
"env": {
"CONSTAIA_API_KEY": "ck_test_…",
"CONSTAIA_ALLOWED_DIRS": "/Users/tu-usuario/Documentos/constaia"
}
}
}
}Herramientas
| Herramienta | Qué hace | Parámetros |
|---|---|---|
analyze_document | Valida y extrae datos. Devuelve tipo, veredicto (si hay expect), campos, checks y warnings. | file, expect, checks, exports, extract, language, metadata |
classify_document | Solo identifica el tipo (0,2 créditos). | file, expect |
list_document_types | Lista los tipos del catálogo con sus campos. | — |
get_analysis | Recupera un análisis por id (an_…), p. ej. uno asíncrono. | id |
get_balance | Muestra créditos disponibles, reservados y del plan gratis. | — |
file es una ruta local absoluta (o que empiece por ~/) a un JPEG, PNG, WEBP, HEIC o PDF de hasta 20 MB, o una URL http(s) pública. checks usa los mismos nombres que la API, en snake_case: not_expired, max_age_days, holder… Ver Analizar un documento.
Cada herramienta devuelve un resumen legible (veredicto, motivos, campos) y, a continuación, el JSON completo de la respuesta.
Ejemplos de uso
Con una clave ck_test_… puedes probar con los ficheros de ejemplo del modo test:
Analiza
~/Documentos/constaia/dni_valid.jpg. ¿Es un DNI español vigente?
Revisa
~/Documentos/constaia/medical_certificate.pdfy dime si es un certificado médico deportivo de menos de un año y firmado.
Clasifica todos los ficheros de
~/Documentos/constaiay hazme una tabla con el tipo de cada uno.
¿Cuántos créditos me quedan?
Buenas prácticas
- Empieza con una clave de test. Con
ck_test_…no se consumen créditos y las respuestas son deterministas. Cambia ack_live_…solo cuando sepas qué hará el agente. - Limita las carpetas. Define
CONSTAIA_ALLOWED_DIRSpara que el agente solo pueda subir documentos de una carpeta concreta. - Piensa en los datos personales. Los documentos se analizan en la UE y, por defecto, el fichero se borra al terminar (
storage: "none"). Pero el resultado (nombre, número de documento, fechas) vuelve al agente y queda en la conversación con el modelo que uses. No lo uses con documentos de terceros si ese tratamiento no está cubierto en tu política de privacidad. - No compartas la clave. Si guardas la configuración en un fichero del proyecto que se sube a git (como
.cursor/mcp.json), no pongas ahí una claveck_live_…. - Revisa las acciones.
analyze_documentyclassify_documentconsumen créditos en modo real. Deja que tu cliente te pida confirmación antes de ejecutarlas. - Los warnings no son pruebas. Un
screen_photo_suspectedoedited_suspectedes un indicio para que una persona lo revise, no una prueba de fraude.
Widget de subida
<constaia-upload>: componente web para que tus usuarios suban documentos desde el navegador o la cámara del móvil, sin exponer tu clave secreta.
Guías por framework
Integra Constaia en Next.js, React, Vue, Angular, SvelteKit, Expo, Express, Laravel, Symfony, WordPress, Django, FastAPI o n8n.