Ir al contenido

Conectar una IA por MCP

MCP permite que una IA descubra herramientas del ERP y las invoque con entradas y salidas estructuradas. La conexión usa el mismo tenant, usuario efectivo y permisos que la API.

Campo Valor
Transporte Streamable HTTP, sin sesión persistente
URL https://TU_AMBIENTE/api/v1/mcp
Autenticación OAuth, Authorization Code + PKCE para personas
Resource/audience La misma URL completa del MCP
Scope inicial data:read
Alta de la aplicación Previa, por un administrador; no hay registro dinámico público
  1. Obtené del cliente de IA su URL de callback y el tipo de autenticación OAuth que admite.
  2. El administrador crea una nueva aplicación externa para ese cliente con el callback exacto, grant authorization_code, PKCE y data:read. Si requiere renovación, autoriza también refresh_token y offline_access.
  3. Configurá la URL MCP y el client_id en el cliente. Cada usuario inicia sesión con su cuenta de Mopdow y presta su consentimiento.
  4. Pedí a la IA que ejecute erp_identity_get, compruebe el tenant y liste los objetos disponibles antes de consultar registros.

Cada persona necesita API habilitada (api.enabled) y debe estar permitida por la política de la aplicación. Si aparece api_access_disabled, un administrador debe asignar ese permiso; repetir el login o solicitar más scopes no lo resuelve.

Una sola aplicación puede atender a varios usuarios. El token es individual. No copies un token de administrador para que lo usen todos. La compatibilidad depende de que el cliente admita Streamable HTTP y OAuth con aplicaciones previamente registradas; un cliente que sólo admita registro dinámico necesitará incorporar ese modo.

Las aplicaciones creadas antes de esta entrega pueden no tener autorizada la audiencia MCP. Registrá una nueva aplicación para MCP; no reutilices un token REST. No hace falta modificar las conexiones REST existentes.

El catálogo tools/list se filtra por los scopes del token. Los permisos de objeto, campo, sharing y configuración se comprueban al ejecutar cada herramienta.

Las capacidades y campos editables de erp_objects_list y erp_objects_describe describen esta conexión. En esta versión de MCP las capacidades de escritura y editable son false, incluso si el token tiene scopes adicionales. Las herramientas siguen siendo de lectura y validación.

Herramientas Scopes
erp_identity_get Identidad de la conexión válida
erp_objects_list, erp_objects_describe data:read
erp_records_list, erp_records_get, erp_records_history data:read
erp_records_transitions_list actions:read
erp_metadata_retrieve, erp_metadata_deployments_list, erp_metadata_deployments_get setup:read
erp_metadata_validate metadata:deploy y permiso de lectura de metadata

Cada herramienta declara JSON Schema de entrada y salida. Los argumentos usan path, query y body cuando corresponden:

{ "path": { "objectApiName": "NOMBRE_OBTENIDO_DE_OBJECTS_LIST" }, "query": { "take": 5, "includeTotal": true } }

La respuesta exitosa tiene structuredContent: {data, meta}; meta.requestId permite correlacionar auditoría y meta.etag aparece en lecturas individuales. También se incluye su representación JSON en content. Los resultados se limitan a 2 MB: reducí selección o paginá si aparece result_too_large.

Esta entrega no expone herramientas de escritura, deploy, administración IAM, ejecución de código ni operaciones arbitrarias. Las descripciones no constituyen el control de seguridad: el servidor mantiene una lista explícita de operaciones permitidas y rechaza mutaciones.

Ante una solicitud sin autenticación, el servidor responde 401 con WWW-Authenticate apuntando a /.well-known/oauth-protected-resource/api/v1/mcp. Esa metadata indica el recurso y el authorization server. El cliente debe solicitar el resource en el flujo OAuth y enviar Authorization en cada solicitud.

resources/list ofrece mopdow://integration-manifest, con instrucciones y enlaces a los contratos del ambiente. El prompt explore_erp ayuda a seguir el orden identidad → objetos → campos → consulta.

Los clientes web deben usar un origen registrado en sus callbacks o el origen del ERP. GET y DELETE en la URL MCP responden 405; las interacciones se realizan con POST conforme al transporte Streamable HTTP sin sesiones.