Servidor MCP
Claix como servidor MCP
Endpoint
https://claix.dev/mcpClaix expone un servidor Model Context Protocol (MCP) (versión 1.7.0, 17 tools) para que asistentes de IA y herramientas de automatización invoquen extracción, Modo agente, ventana de contexto y gestión de documentos persistidos sin escribir integraciones REST a mano.
La URL pública del servidor es https://claix.dev/mcp. La autenticación usa tu API key de Claix en la cabecera x-api-key (o el parámetro opcional api_key en cada tool si el cliente no envía cabeceras).
Las tools usan nomenclatura dot notation (claix.schemas.list, claix.extract.pdf, …) y devuelven structuredContent con success, data y error.
1. Clientes compatibles
Cualquier programa que soporte MCP puede conectarse a Claix. Estos son los más habituales en producción y desarrollo:
- Cursor
- Claude Desktop
- Claude Code
- Windsurf
- Cline
- Continue
- Zed
- Smithery
- Lovable
- Replit Agent
- ChatGPT (con conectores MCP)
- n8n
- Make
- Zapier (vía HTTP/MCP)
- LangGraph / LangChain
- Cualquier cliente MCP con Streamable HTTP o SSE
IDEs y agentes de código (Cursor, Windsurf, Cline…) suelen usar configuración JSON con la URL del servidor y cabeceras. Smithery y clientes Streamable HTTP envían JSON-RPC directamente a POST /mcp. Claude Desktop suele usar SSE vía mcp-remote (GET /mcp + POST /mcp/message).
2. Autenticación
Opción recomendada — cabecera HTTP en todas las peticiones:
x-api-key: <TU_API_KEY>
En Smithery, configura el header con x-from: { "header": "x-api-key" } para que el usuario introduzca su clave al conectar. La API key es opcional en el schema de configuración si el cliente ya envía x-api-key.
Alternativa por tool: muchas tools aceptan api_key en los argumentos si el cliente MCP no puede enviar cabeceras personalizadas.
3. Modos de transporte
| Modo | Uso típico | Cómo conectar |
|---|---|---|
| Streamable HTTP | Smithery, Cursor, clientes modernos | POST /mcp con JSON-RPC (initialize, tools/list, tools/call). Cabecera Accept: application/json, text/event-stream |
| SSE legacy | Claude Desktop, mcp-remote | GET /mcp (stream SSE) + POST /mcp/message?sessionId=… para mensajes |
Ambos modos están activos en la misma URL base. El servidor detecta automáticamente el tipo de petición.
Metadatos estáticos para escaneo (Smithery, clientes): https://claix.dev/.well-known/mcp/server-card.json
4. Flujo recomendado
- Llama
claix.schemas.listpara obtenerschema_id, tipo y si tiene Modo agente. - Usa
claix.extract.*para extracción estructurada oclaix.agent.*siis_agent_mode=true. - Envía el archivo en
file_base64(Base64 o data URL). El servidor reconstruye el multipart hacia la API REST de Claix. - Lee la respuesta en
structuredContent.data(JSON tipado) o el texto encontent. - Si el schema tiene ventana de contexto activa y la extracción devuelve
document_id, guarda ese UUID: es la referencia al documento persistido en memoria de Claix. - Con el
document_id, usaclaix.window_context.getpara leer el contenido bruto,claix.window_context.askpara preguntas en lenguaje natural, oclaix.document.deletepara eliminar el documento cuando ya no lo necesites.
5. Ventana de contexto y documentos
Cuando un schema tiene ventana de contexto habilitada, Claix persiste el documento procesado y devuelve un document_id en la extracción. Las tres tools siguientes son proxies directos a la API REST de ventana de contexto y borrado; no consumen créditos de extracción.
| Tool | API REST | Argumentos | Respuesta |
|---|---|---|---|
| claix.window_context.get | GET /window-context/{document_id} | document_id (UUID) | document_id, file_name, schema_id, processed_at, content |
| claix.window_context.ask | POST /window-context/{document_id} | document_id, questions[] (máx. 5, 400 car. c/u) | user_ask, ia_response |
| claix.document.delete | DELETE /delete-document/{document_id} | document_id (UUID) | { document_id } — irreversible, destructiveHint |
Errores habituales en structuredContent.error: 401 (API key inválida), 404 (documento no encontrado o no pertenece a tu cuenta), 400 (parámetros inválidos). El borrado solo acepta DELETE sin body.
Prompt de workflow relacionado: workflow.window-context-ask (vía prompts/get).
6. Tools disponibles
Tras conectar, llama a tools/list para obtener las 17 tools con inputSchema, outputSchema y annotations (incluye destructiveHint en claix.document.delete):
| Tool | Descripción |
|---|---|
| claix.schemas.list | Lista schemas de la cuenta (id, nombre, tipo, is_agent_mode, agent_definition). Llama primero para obtener schema_id. |
| claix.schemas.create | Crea un schema (POST /api/create-schema): name, type, schema_definition; opcional Modo agente y window_context. |
| claix.schemas.delete | Elimina un schema de la cuenta (POST /api/delete-schema) por schema_id. |
| claix.extract.excel | Excel/CSV → JSON tipado (POST /api/excel-json). Primera hoja. |
| claix.extract.pdf | PDF → JSON tipado (POST /api/pdf-json). Texto o escaneado, máx. 15 MB. |
| claix.extract.doc | Documento (.docx, .txt, .md, .rtf) → JSON (POST /api/doc-json). |
| claix.extract.image | Imagen (JPEG, PNG, WebP, HEIC) → JSON (POST /api/img-json). |
| claix.extract.text | Texto/HTML/XML → JSON (POST /api/txt-json). Campo content, sin archivo. |
| claix.convert.json_to_excel | JSON → Excel .xlsx (POST /api/json-excel). Devuelve file_base64. |
| claix.agent.excel | Excel/CSV + Modo agente → data[] y agent_data (POST /agent/excel-json). |
| claix.agent.pdf | PDF + Modo agente → data[] y agent_data (POST /agent/pdf-json). |
| claix.agent.doc | Documento + Modo agente (POST /agent/doc-json). |
| claix.agent.image | Imagen + Modo agente (POST /agent/img-json). |
| claix.agent.text | Texto/HTML/XML + Modo agente (POST /agent/txt-json). |
| claix.window_context.get | Contenido bruto y metadatos de un documento persistido. Proxy a GET /window-context/{document_id}. Argumentos: document_id (UUID). Devuelve success, document_id, file_name, schema_id, processed_at y content. Llamada gratuita. |
| claix.window_context.ask | Preguntas a un documento persistido. Proxy a POST /window-context/{document_id}. Argumentos: document_id y questions (array, máx. 5, 400 caracteres c/u). Devuelve user_ask e ia_response. |
| claix.document.delete | Elimina un documento persistido. Proxy a DELETE /delete-document/{document_id}. Sin body. Argumentos: document_id. Respuesta { document_id }. Irreversible. destructiveHint. Llamada gratuita. |
7. Prompts de workflow
El servidor expone prompts reutilizables vía prompts/list:
| Prompt | Descripción |
|---|---|
| workflow.discover-and-extract | Descubre schemas con claix.schemas.list y extrae JSON con claix.extract.*. |
| workflow.agent-document-analysis | Ejecuta claix.agent.* cuando el schema tiene is_agent_mode. |
| workflow.invoice-pdf | Flujo optimizado para facturas PDF con claix.extract.pdf. |
| workflow.window-context-ask | Pregunta a un document_id persistido con claix.window_context.ask (también puedes leer con claix.window_context.get o borrar con claix.document.delete). |
8. Resources
Recursos de documentación disponibles con resources/list:
| URI | Descripción |
|---|---|
| claix://docs/mcp | Guía de conexión MCP y catálogo de tools. |
| claix://docs/openapi | URL de la especificación OpenAPI de Claix. |
| claix://docs/tools | Catálogo JSON de todas las tools MCP. |
9. Ejemplo Smithery
Instalación one-click:
npx -y @smithery/cli run info-f4xz/claix
Configuración manual:
{
"mcpUrl": "https://claix.dev/mcp",
"headers": {
"x-api-key": "TU_API_KEY"
}
}Directorio: smithery.ai/server/info-f4xz/claix
10. Ejemplo Cursor
Añade en la configuración MCP de Cursor (Settings → MCP):
{
"mcpServers": {
"claix": {
"url": "https://claix.dev/mcp",
"headers": {
"x-api-key": "TU_API_KEY"
}
}
}
}11. Ejemplo Claude Desktop
{
"mcpServers": {
"claix": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://claix.dev/mcp",
"--header",
"x-api-key:TU_API_KEY"
]
}
}
}12. n8n y automatización
En n8n puedes usar un nodo HTTP Request con POST https://claix.dev/mcp, cabeceras JSON-RPC y body {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"claix.extract.pdf","arguments":{"schema_id":"…","file_base64":"…"}}}. Para ventana de contexto, cambia name a claix.window_context.get, claix.window_context.ask o claix.document.delete con document_id en arguments. También existen nodos comunitarios MCP; apunta la URL base a Claix y pasa x-api-key.