MCP para asistentes de IA
ReaderDocs publica un servidor MCP para que tu asistente de código (Claude Code, Cursor, VS Code, etc.) diseñe y valide extracciones sin que tengas que memorizar las reglas.
- URL:
https://ocr.789.com.mx/mcp - Autenticación: ninguna. No necesitas API Key.
- Qué hace: entrega reglas, plantillas y valida
custom_instruction+response_schemacon las mismas reglas que la API. - Qué no hace: no sube documentos, no ejecuta extracciones ni ve datos de ningún proyecto. Para eso usa la API con tu key.
- Transporte: HTTP (Streamable HTTP). Si tu cliente pregunta, elige
http, nosse. - Límite: 60 peticiones por minuto por IP.
Antes de empezar: comprueba que llegas al servidor
Este comando hace el mismo saludo inicial que hace cualquier cliente MCP:
curl -s -X POST https://ocr.789.com.mx/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'
Si la respuesta incluye "serverInfo":{"name":"ReaderDocs", el servidor funciona y cualquier problema está en la configuración de tu cliente.
Abrir
https://ocr.789.com.mx/mcpen el navegador devuelve405 Method Not Allowed. Es normal: el servidor solo aceptaPOST.
Conectar tu cliente
Elige tu cliente, agrega la configuración y haz la comprobación del final de cada bloque.
Claude Code
claude mcp add --transport http readerdocs https://ocr.789.com.mx/mcp
Por defecto queda solo para ti y en el proyecto actual. Cambia el alcance con --scope:
| Alcance | Para quién |
|---|---|
local (default) |
Solo tú, en este proyecto. |
project |
Todo el equipo: se guarda en .mcp.json en la raíz del repo para que lo commitees. |
user |
Solo tú, en todos tus proyectos. |
Con --scope project el archivo .mcp.json queda así:
{
"mcpServers": {
"readerdocs": {
"type": "http",
"url": "https://ocr.789.com.mx/mcp"
}
}
}
Comprueba: claude mcp list debe mostrar readerdocs como conectado (✓ Connected). Dentro de una sesión, /mcp lista el servidor y sus herramientas.
Claude Desktop y claude.ai
- Abre Configuración → Conectores → Agregar conector personalizado.
- Nombre:
ReaderDocs. URL:https://ocr.789.com.mx/mcp. - Deja vacíos los campos de OAuth: el servidor no pide autenticación.
- Guarda y activa el conector desde el menú de herramientas de la conversación.
Claude se conecta a los conectores desde la nube de Anthropic, así que necesita una URL pública por HTTPS: no funciona contra un entorno local. En planes Team y Enterprise, un administrador debe agregar el conector a la organización primero.
Comprueba: en una conversación nueva, el menú de herramientas muestra ReaderDocs con sus herramientas.
Cursor
En .cursor/mcp.json (solo este proyecto) o ~/.cursor/mcp.json (todos tus proyectos):
{
"mcpServers": {
"readerdocs": {
"url": "https://ocr.789.com.mx/mcp"
}
}
}
Comprueba: en Cursor Settings → MCP, readerdocs aparece con indicador verde y sus herramientas. Si está en rojo, usa el botón de recargar del servidor.
VS Code (GitHub Copilot)
En .vscode/mcp.json:
{
"servers": {
"readerdocs": {
"type": "http",
"url": "https://ocr.789.com.mx/mcp"
}
}
}
La clave raíz es
servers, nomcpServerscomo en Cursor o Claude. ConmcpServersVS Code lee el archivo pero no registra ningún servidor.
Comprueba: en el chat de Copilot cambia a modo Agente, abre el selector de herramientas y busca readerdocs. Las herramientas no aparecen en los modos Ask ni Edit. Si no sale, revisa Output → MCP.
Windsurf
En ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"readerdocs": {
"serverUrl": "https://ocr.789.com.mx/mcp"
}
}
}
Windsurf usa
serverUrl, nourl.
Comprueba: en Cascade abre Manage MCPs y pulsa Refresh. readerdocs debe aparecer con sus herramientas.
Clientes que solo aceptan servidores locales
Si tu cliente solo ejecuta servidores por comando (stdio), usa mcp-remote como puente. Requiere Node.js 18 o superior:
{
"mcpServers": {
"readerdocs": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ocr.789.com.mx/mcp"]
}
}
}
Comprueba que funciona
Con el cliente ya conectado, pregúntale a tu asistente:
¿Qué herramientas tiene el MCP de readerdocs?
Debe mencionar validate-extraction-request y get-schema-template. Después pide una prueba completa:
Usa get-schema-template con cfdi_invoice y valida el resultado con validate-extraction-request.
Debe responder que la petición es válida. Si llegas aquí, ya está todo listo.
Problemas comunes
| Síntoma | Causa | Solución |
|---|---|---|
| El cliente no muestra herramientas | No recargó la configuración | Reinicia el cliente o recarga la ventana después de editar el archivo. |
| VS Code no registra el servidor | La clave raíz es mcpServers |
Usa servers y "type": "http". |
| Windsurf no conecta | Usaste url |
Usa serverUrl. |
| Error de SSE o de transporte | El cliente está configurado como sse |
Usa transporte http (Streamable HTTP). |
405 Method Not Allowed |
Abriste la URL con GET (navegador) |
Es normal; los clientes MCP usan POST. |
429 Too Many Requests |
Más de 60 peticiones por minuto desde tu IP | Espera un minuto; los headers X-RateLimit-* muestran el saldo. |
| El conector de Claude no conecta | URL local o sin HTTPS | Usa la URL pública https://ocr.789.com.mx/mcp. |
El curl de arriba falla |
Red, VPN o proxy bloquean la URL | Resuélvelo antes de configurar el cliente: ningún cliente conectará. |
Qué expone
| Tipo | Nombre | Para qué |
|---|---|---|
| Tool | validate-extraction-request |
Valida response_schema (y opcionalmente custom_instruction). Devuelve los mismos mensajes que un 422 de la API. |
| Tool | get-schema-template |
Plantilla completa y válida por perfil: cfdi_invoice, ine_document, csf_document, proof_of_address. |
| Prompt | design-extraction |
Guía al asistente: plantilla → ajuste → validación → petición final. |
| Resource | readerdocs://docs/integracion-completa |
La guía completa para IA como contexto. |
Al conectarse, el asistente recibe además las reglas de schema e instrucción, así que las aplica aunque no invoques nada explícitamente.
Ejemplos de uso
Pídelo en lenguaje natural:
Con el MCP de readerdocs, arma la extracción para recibos de nómina: RFC del patrón,
nombre del empleado, periodo, percepciones, deducciones y neto a pagar. Valídala.
Integra ReaderDocs en app/Services/Kyc: sube la INE, espera el OCR y extrae nombre,
CURP y vigencia. Usa get-schema-template y valida el schema antes de escribir el código.
En Claude Code también puedes invocar el prompt directamente:
/mcp__readerdocs__design-extraction "comprobante de domicilio" "titular, dirección, código postal"
Siguiente paso
- Guía de prompts y schemas — las mismas reglas explicadas para personas.
- Flujo: extracción — cómo ejecutar la petición ya validada.