Si tienes SAP Business One y quieres probar cómo se siente hablar con tu ERP, esta guía te lleva de la instalación al primer pedido de venta en menos de 15 minutos. No hace falta programar nada. Solo necesitas acceso a tu SAP B1, Node.js y Claude Desktop.
Requisitos previos
- SAP Business One 10.0 FP 2208 o posterior (HANA o SQL Server)
- SAP Service Layer habilitado — puerto 50000 accesible desde la máquina donde instales MCP One
- .NET 8 Runtime instalado en el servidor MCP (Linux o Windows)
- Claude Desktop instalado en tu equipo (macOS o Windows)
- Un usuario SAP B1 con permisos para crear pedidos de venta
Paso 1: Instala MCP One
MCP One se distribuye como paquete npm para facilitar el bootstrapping. En producción se recomienda Docker, pero para un piloto rápido, npx es suficiente.
En la máquina donde corre SAP Service Layer (o en cualquier servidor con acceso a él), abre un terminal y verifica que tienes Node.js 18+:
# Verifica versión de Node.js node --version # v18.x.x o superior # Instala MCP One globalmente (opcional, para uso continuado) npm install -g @aretaslab/mcp-one # O úsalo directamente con npx sin instalación previa npx @aretaslab/mcp-one --help
Si prefieres Docker, la imagen oficial está disponible en el registry de AretasLab:
docker pull aretaslab/mcp-one:0.4.1 docker run -d \ --name mcp-one \ -e SBO_COMPANY=SBOCOMP \ -e SBO_AUTH=oauth \ -e SERVICE_LAYER_URL=https://b1.tuempresa.local:50000/b1s/v1 \ -p 3000:3000 \ aretaslab/mcp-one:0.4.1
Paso 2: Configura OAuth con tu usuario SAP
MCP One usa OAuth 2.1 con PKCE para autenticar al usuario final contra SAP B1. Esto es fundamental: el servidor MCP nunca almacena contraseñas SAP en texto plano y cada petición lleva el token del usuario que la origina.
2.1 — Habilitar el usuario en SAP
Entra en SAP B1 como administrador y ve a Administración → Gestión de usuarios. Verifica que el usuario tiene:
- Autorización para Pedidos de venta en modo lectura/escritura
- Acceso al módulo de Socios de negocio (para
find_business_partner) - Autorización de Inventario → Consulta de stock
2.2 — Inicializar el flujo PKCE
Con MCP One corriendo, lanza el flujo de autorización por primera vez:
# Inicia el servidor con configuración mínima npx @aretaslab/mcp-one \ --service-layer https://b1.tuempresa.local:50000/b1s/v1 \ --company SBOCOMP \ --auth oauth \ --port 3000 # Primera ejecución: abrirá el flujo PKCE en tu navegador # Introduce usuario y contraseña SAP → el token se guarda cifrado en ~/.mcp-one/tokens/
El token de acceso dura 1 hora; el refresh token, 30 días. MCP One renueva automáticamente sin interrumpir la sesión de Claude.
Paso 3: Configura Claude Desktop
Claude Desktop lee su configuración de servidores MCP desde ~/claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json).
Abre el archivo con cualquier editor y añade la configuración de MCP One:
{
"mcpServers": {
"mcpone": {
"command": "npx",
"args": [
"-y",
"@aretaslab/mcp-one",
"--service-layer",
"https://b1.tuempresa.local:50000/b1s/v1",
"--company",
"SBOCOMP",
"--auth",
"oauth"
],
"env": {
"SBO_AUTH": "oauth",
"MCP_ONE_LOG_LEVEL": "info"
}
}
}
}
Sustituye b1.tuempresa.local por el hostname o IP de tu servidor SAP y SBOCOMP por el nombre de tu empresa en B1 (el que aparece en el selector de empresa al hacer login).
mcpServers con nombres distintos (mcpone_es, mcpone_fr, etc.) apuntando a la misma URL de Service Layer pero con diferente --company.
Paso 4: Verifica la conexión
Cierra y vuelve a abrir Claude Desktop. En la barra inferior de la ventana de chat verás el icono de conector (🔌). Si aparece con MCP One listado, la conexión es correcta.
Para confirmar que las herramientas están disponibles, prueba estas consultas en Claude:
# 1. Consulta de stock básica "¿Cuántas unidades del artículo SKU-1001 hay en el almacén principal?" # 2. Búsqueda de cliente "Busca el cliente con nombre que contenga 'Mora' y dime su límite de crédito." # 3. Listado de pedidos recientes "¿Qué pedidos de venta se han creado esta semana? Dame los últimos 5."
Si recibes respuestas con datos reales de tu SAP, todo está funcionando. Si hay error de conexión, verifica que Service Layer es accesible desde la máquina de Claude con:
curl -k https://b1.tuempresa.local:50000/b1s/v1/\$metadata
# Debe devolver XML de metadata OData si Service Layer está activo
Paso 5: Tu primer pedido de venta por voz
Ahora la parte interesante. Con Claude Desktop conectado a MCP One, puedes crear un pedido real en SAP B1 con una instrucción en lenguaje natural.
Escribe (o dicta con el micrófono de Claude Desktop) lo siguiente:
"Crea un pedido de venta para el cliente Industrias Mora SL,
12 unidades del artículo SKU-4421, precio de lista,
condiciones de pago a 60 días. Dime el número de documento
cuando esté creado."
Lo que ocurre internamente en esos segundos:
- Claude analiza el prompt e identifica que necesita
find_business_partnerpara resolver el nombre del cliente al CardCode de SAP. - Con el CardCode, llama a
check_credit_limitpara verificar que el cliente tiene crédito disponible. - Llama a
get_item_pricepara confirmar el precio de lista del SKU-4421. - Finalmente llama a
create_sales_ordercon todos los campos validados. Service Layer valida la transacción y Transaction Notifications ejecutan las reglas de negocio configuradas en tu B1. - Claude recibe el
DocEntryy elDocNumdel pedido creado y te responde en lenguaje natural.
La respuesta típica de Claude será algo así:
He creado el pedido de venta correctamente: · Documento nº: PV-2026-04721 · Cliente: Industrias Mora SL (CardCode: C10042) · Artículo: SKU-4421 — Válvula reguladora DN25 (12 uds.) · Precio unitario: 48,50 € · Total: 582,00 € + IVA · Condiciones de pago: 60 días fecha factura · Estado: Abierto · En revisión por almacén El límite de crédito disponible tras este pedido es de 12.340 €. ¿Quieres que envíe la confirmación de pedido al cliente?
Rendimiento y observabilidad
En producción, el ciclo completo prompt → respuesta se sitúa por debajo de 3 segundos en el percentil 95, medido sobre 4 clientes B1 HANA activos (datos de mayo 2026). El cuello de botella habitual es SAP Service Layer, no MCP One.
Cada invocación queda registrada en el log de MCP One con:
- El prompt original del usuario
- La herramienta invocada y los argumentos exactos
- El resultado devuelto por Service Layer
- La latencia de cada paso (desglosada por herramienta)
- El usuario SAP que realizó la operación (trazabilidad completa)
Los logs siguen el formato OpenTelemetry y son exportables a cualquier stack de observabilidad: Grafana/Loki, Datadog, Azure Monitor o simplemente fichero plano para entornos sin observabilidad centralizada.
Para ver los logs en tiempo real durante las primeras pruebas:
npx @aretaslab/mcp-one \ --service-layer https://b1.tuempresa.local:50000/b1s/v1 \ --company SBOCOMP \ --auth oauth \ --log-level debug \ --log-format json | jq '.'
Próximos pasos
Con la conexión básica funcionando, los siguientes pasos habituales en un piloto son:
- Activa el módulo de compras (F.02) para que el agente pueda proponer órdenes de compra basadas en stock proyectado.
- Configura human-in-the-loop en
mcp-one.config.jsonpara que cualquier pedido por encima de un importe requiera confirmación explícita del usuario antes de grabarse en SAP. - Conecta con n8n o LangChain para automatizaciones más complejas: email del cliente → pedido en SAP → confirmación automática → actualización CRM.
- Despliega vía Docker Compose junto a Prometheus y Grafana para tener observabilidad desde el primer día en producción.
La documentación completa de cada módulo y el catálogo de herramientas disponibles están disponibles para clientes con plan Production.
¿Tu B1 listo para un piloto?
2 semanas, 3 herramientas (lectura), 5 usuarios. Sin coste para los primeros 5 clientes del trimestre. Respuesta en menos de 48 horas.