Para empresas Para grandes empresas Soluciones Aplicaciones Precios Desarrolladores Blog Documentación Iniciar un espacio de trabajo
Blog / MCP para software empresarial

¿Qué es un servidor ERP MCP?

El protocolo es pequeño y la especificación es pública, por lo que la mecánica no es la parte difícil. Lo que hace que un servidor MCP para un ERP sea diferente de uno para un servicio meteorológico es que cada llamada cambia dinero, stock o un registro de cliente en nombre de una persona nombrada. Este es un relato técnico de ambas partes.

Lectura de 8 minActualizado 4 de septiembre de 2026Ingeniería de Sois, el equipo que construye la plataforma

Un pequeño armario de servidores en un pasillo de oficina: un rack con algunas unidades y luces parpadeantes, cables ordenadamente agrupados y una etiqueta impresa en la puerta.
Respuesta corta

Un servidor ERP MCP es un sistema de acciones de negocio publicado a través del Protocolo de Contexto del Modelo, para que cualquier agente de IA compatible pueda descubrir lo que el sistema puede hacer y hacerlo. Concretamente, es un punto final HTTPS que responde a dos métodos JSON-RPC: tools/list, que devuelve las herramientas disponibles para el llamador con un nombre, una descripción y un esquema JSON para las entradas, y tools/call, que ejecuta uno de ellos y devuelve un resultado que el modelo puede leer. Claude, ChatGPT, Cursor, VS Code y otros clientes hablan el protocolo, por lo que el servidor se escribe una vez y cada agente puede usarlo.

Para un ERP, las dos cosas que importan no están en el transporte. La primera es que la lista de herramientas y cada llamada están limitadas a la persona que representa el agente, lo que el protocolo apoya a través de OAuth y autorización por solicitud, pero deja al servidor hacer cumplir. La segunda es que cada herramienta debe corresponder a una transacción comercial que sea segura para reintentar, rechazar o preguntar, porque un modelo hará las tres cosas.

Un servidor que convierte un sistema en herramientas

El Protocolo de Contexto del Modelo tiene tres roles. Un anfitrión es una aplicación de IA como Claude o ChatGPT. Dentro del anfitrión, se crea un cliente por servidor y habla solo con ese servidor. Un servidor es un servicio que ofrece contexto y capacidades al anfitrión a través de un pequeño número de primitivas. Los principios de diseño de la especificación dicen que los servidores deben ser fáciles de construir, componibles y no deben poder ver toda la conversación ni otros servidores; el anfitrión mantiene la conversación y hace cumplir el consentimiento, el servidor solo ve las llamadas dirigidas a él.

Por lo tanto, un servidor ERP MCP no es el ERP. Es la superficie de acción del ERP, expresada como herramientas con entradas tipadas, servidas en una URL. La decisión de diseño interesante es qué es una herramienta. Un servidor meteorológico tiene una; un sistema de negocio tiene cientos, y las útiles son acciones que una persona podría realizar (crear una factura, registrar un pago, mover un trato, reservar stock) en lugar de filas en tablas. El servidor de espacio de trabajo de Sois, por ejemplo, publica herramientas con nombres como crear factura, registrarPago, searchContacts y examinarContacto agrupados por módulo, y la lista exacta que recibe un llamador depende de quién sea.

Herramientas, recursos y avisos

La especificación define tres primitivas de servidor, y difieren en quién controla su uso. Las herramientas son controladas por el modelo: el modelo decide cuándo llamar a una. Los recursos son impulsados por la aplicación: el anfitrión decide qué contexto adjuntar, a menudo con el usuario eligiendo de una lista. Los prompts son plantillas controladas por el usuario. Un ERP necesita la primera, puede beneficiarse de la segunda y rara vez necesita la tercera.

Primitive¿Quién lo invoca?FormaEn un ERP
HerramientasEl modelo, a través de herramientas/llamadaNombre, descripción, inputSchema, outputSchema opcional y anotaciones; el resultado tiene contenido, structuredContent opcional y isErrorCada acción: buscar, crear, actualizar, enviar, aprobar, conciliar
RecursosEl anfitrión o el usuario, a través de resources/readUna URI con un tipo MIME; contenidos de texto o binarios; plantillas opcionales y suscripciones a cambiosDocumentos de referencia, un estado de cuenta del cliente, un informe; útiles pero no donde ocurre el trabajo
IndicacionesEl usuario, a través de prompts/getUna plantilla de mensaje nombrada con argumentosOcasionalmente, para una rutina de fin de mes; la mayoría de los servidores ERP las omiten

El conector de la API de Mensajes de Claude y las herramientas de la API de Respuestas de OpenAI son las únicas que soportan herramientas, lo que es una razón más para integrar la sustancia del ERP en las herramientas.

Dos características de los resultados de las herramientas son importantes para un sistema empresarial. Una herramienta puede declarar un esquemaDeSalida y devolver contenidoEstructurado que se ajuste a él, junto con el texto que un modelo lee, para que una integración pueda utilizar el resultado sin analizar prosa. Y una herramienta que falla por una razón empresarial (una factura en el estado incorrecto, una fecha en el pasado, un permiso faltante) devuelve un resultado normal con isError: true y una explicación, en lugar de un error de protocolo, para que el modelo pueda corregir su entrada y volver a intentarlo. Los errores de protocolo están reservados para solicitudes mal formadas y herramientas desconocidas.

El transporte y la especificación actual

Dos transportes son estándar. Stdio es para un servidor que el cliente lanza como un proceso local, que es cómo funcionan las herramientas de escritorio como el acceso a archivos. HTTP transmitible es para servidores remotos y es lo que utiliza un ERP: el servidor expone un punto final que acepta un HTTP POST por mensaje JSON-RPC y responde con un objeto JSON o un flujo de Eventos Enviados por el Servidor limitado a esa solicitud, de modo que una llamada larga puede enviar progreso antes de su resultado final. El transporte anterior de HTTP con SSE está obsoleto.

La revisión actual, 2026-07-28, cambió el transporte de una manera que importa para cualquiera que despliegue un servidor detrás de un equilibrador de carga. Eliminó las sesiones a nivel de protocolo: ya no hay un apretón de manos de inicialización ni un encabezado de identificador de sesión, cada solicitud lleva su versión de protocolo y capacidades del cliente en su propia metadata, y un servidor que necesita estado entre llamadas devuelve un identificador explícito que el modelo pasa de vuelta como un argumento. Los servidores escritos contra la revisión de 2025-11-25, que sí usaban sesiones, siguen funcionando porque se requiere que los clientes detecten la era anterior y retrocedan; un nuevo servidor no debería adoptar sesiones.

Autorización: para quién es la llamada

Para los transportes HTTP, la especificación define un flujo OAuth 2.1. El servidor es un servidor de recursos y debe publicar metadatos de recursos protegidos (RFC 9728) nombrando su servidor de autorización; cuando llega una solicitud sin un token, responde 401 con un encabezado WWW-Authenticate que apunta a esos metadatos y, idealmente, al alcance mínimo necesario. El cliente descubre los puntos finales del servidor de autorización, se identifica (los documentos de metadatos del ID del cliente son la ruta recomendada; se mantiene el registro dinámico por compatibilidad), ejecuta un flujo de código de autorización con PKCE y debe incluir la URI canónica del servidor como el parámetro de recurso para que el token esté vinculado solo a este servidor. El servidor debe validar esa audiencia, debe rechazar tokens emitidos para cualquier otra cosa y nunca debe pasar un token a otro servicio.

La consecuencia para un ERP es la importante. Debido a que el token identifica a una persona, el servidor puede variar el resultado de tools/list por las credenciales en la solicitud, y la especificación lo dice explícitamente. Ese es el mecanismo para el filtrado basado en roles: la lista de un usuario de finanzas y la lista de un usuario de almacén provienen del mismo servidor y son diferentes. Un alcance insuficiente en tiempo de ejecución se señala con un 403 y un desafío de alcance del que el cliente puede avanzar, aunque para la mayoría de los sistemas empresariales el verdadero límite es el rol en el ERP en lugar del alcance amplio de OAuth.

La parte difícil: permisos y transacciones

Todo lo anterior se puede implementar en una tarde con un SDK. Lo que separa a un servidor ERP MCP de una demostración es el tratamiento de las dos cosas que el protocolo deja al servidor: si se permite una llamada y qué significa una llamada.

La autorización debe ser verificada dos veces. Filtrar la lista de herramientas evita que el modelo elija algo que no debería, lo que ahorra tokens y confusión. Verificar de nuevo cuando la herramienta se ejecuta es el límite real, porque un cliente puede enviar cualquier llamada que desee. Un rechazo es mejor devuelto como un error de ejecución de la herramienta, para que el modelo lo lea y lo informe, en lugar de como un fallo de transporte que termina el turno. Así es como se ve una llamada rechazada desde un espacio de trabajo de Sois: un resultado normal, marcado, con una razón.

{
  "jsonrpc": "2.0",
  "id": 7,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Tool not permitted for this account: approveInvoice requires the finance approver role."
      }
    ],
    "isError": true
  }
}

Un rechazo de autorización devuelto como un error de ejecución de la herramienta. El modelo aprende por qué y puede pedir a la persona que apruebe en su lugar; no se escribió nada. Sois también reserva códigos de error JSON-RPC para sesiones no autorizadas, créditos insuficientes, herramientas no permitidas y límites de presupuesto alcanzados.

Las transacciones son la segunda mitad. Una herramienta debe mapearse a una transacción empresarial con un claro antes y después: crear factura produce un borrador con un identificador, registrarPago aplica un pago a una factura, y ninguno deja un estado a medio escribir si falla. Los modelos reintentan, por lo que las escrituras deben ser seguras para repetir o deben rechazar una repetición con un mensaje claro; las anotaciones de la especificación permiten a un servidor declarar una herramienta como de solo lectura, idempotente o destructiva, y clientes como ChatGPT utilizan esas pistas al decidir si pedir confirmación. Donde un paso necesita una decisión que está por encima de la autoridad del agente, el servidor puede devolver un resultado que requiere entrada pidiendo a la persona una pregunta a través del cliente, en lugar de adivinar.

Tu agente
capa de permisos de Sois
ContabilidadAlmacénCRMDocumentos

La capa de autorización se sitúa entre el punto final y los módulos. La lista de herramientas se filtra por el rol del llamador en la salida, y cada llamada se verifica de nuevo en la entrada, antes de que llegue a un módulo.

Cómo Sois implementa uno

Un espacio de trabajo de Sois es un servidor MCP en una única URL, la dirección del espacio de trabajo seguida de /api/mcpResponde al desafío 401 con metadatos de recursos protegidos, publica los metadatos de su servidor de autorización, requiere PKCE y emite tokens limitados al espacio de trabajo; un conector en Claude o ChatGPT completa el inicio de sesión sin nada copiado. Un token portador con una clave API está disponible para scripts que no utilizan OAuth, con la identidad y el gasto mantenidos en credenciales separadas a propósito.

La lista de herramientas se genera a partir de las definiciones de herramientas en vivo y se filtra por rol y aplicaciones instaladas; luego, cada llamada se verifica en cuanto a permisos en la ejecución y falla de forma segura. Las llamadas tienen un límite de tasa por conexión, se miden donde el propio agente del espacio de trabajo realiza el razonamiento y son gratuitas en cuanto a cargos de IA donde lo hace el agente del llamador, con un límite establecido por un presupuesto que define el espacio de trabajo, y se registran con entradas y resultados en relación con la persona que las realizó. Las aplicaciones publicadas en el mercado añaden sus herramientas a la misma lista bajo las mismas reglas, por lo que la aplicación de un desarrollador es operativa por un agente en el momento en que se instala.

Preguntas que la gente hace

¿Es un servidor MCP solo un envoltorio alrededor de una API REST?

A menudo se implementa de esa manera, y está bien. La diferencia es lo que publica: herramientas tipadas que un modelo puede descubrir en tiempo de ejecución, resultados que un modelo puede leer y recuperar, y autorización OAuth por usuario, nada de lo cual una API REST proporciona a un agente por sí sola.

¿Qué agentes pueden usar un servidor ERP MCP hoy?

Claude (web, escritorio, Cowork, Claude Code y el conector de la API de Mensajes), ChatGPT en modo desarrollador y la API de Respuestas, Cursor, VS Code y cualquier otro cliente que implemente el protocolo. El servidor no necesita saber cuál está llamando.

¿El servidor necesita mantener sesiones?

No bajo la revisión actual, que eliminó las sesiones a nivel de protocolo y pide a los servidores que devuelvan identificadores explícitos para cualquier cosa que abarque llamadas. Los clientes aún interoperan con servidores en la revisión del 2025-11-25, que utilizó un encabezado de sesión, al detectar la era anterior.

¿Dónde aplica el ERP los permisos?

En el servidor, en la ejecución, en cada llamada. Filtrar la lista de herramientas es una conveniencia para el modelo; la verificación que importa ocurre cuando la herramienta se ejecuta, y una negativa debe volver como un error de herramienta legible para que nada se escriba y el modelo pueda explicar por qué.

Fuentes
  1. Especificación del Protocolo de Contexto del Modelo (2026-07-28): herramientas definiciones de herramientas, resultados, manejo de errores, anotaciones y la variación de herramientas/lista por solicitud.
  2. Especificación del Protocolo de Contexto del Modelo: transporte HTTP transmitible y registro de cambios el transporte de un solo punto final, la eliminación de sesiones y la compatibilidad hacia atrás
  3. especificación del Protocolo de Contexto del Modelo: autorización OAuth 2.1, metadatos de recursos protegidos, indicadores de recursos y reglas de tokens
  4. Documentación de Sois: el servidor MCP del espacio de trabajo el punto final, documentos de descubrimiento, filtrado de roles, límites y códigos de error tal como se implementa

Este artículo se revisa cuando cambian los productos que describe. Próxima revisión programada: 4 de diciembre de 2026.

Comenzar

Conecta tu agente a Sois.

Tu espacio de trabajo es un servidor MCP. Apunta a Claude, ChatGPT, Cursor o cualquier cliente MCP y trabaja dentro de tus permisos.

  • Gratis para empezar
  • Trae tu propio agente
  • Sin bloqueo de proveedor