WIBI MCP Gateway
WIBI MCP Gateway
Servidor MCP (Model Context Protocol) que expone la API v2 de WIBI como herramientas para asistentes LLM.
Soporta dos modos:
Modo | Para quién | Cómo se autentica |
HTTP + OAuth 2.1 (producción) | Comercios o admins del panel WIBI vía claude.ai / Claude Desktop | Login con usuario/clave de comercio o de admin del panel; los admins eligen campaña/comercio (y OTP si el 2FA está activo) |
stdio (desarrollo) | Equipo técnico / Cursor local | Variables |
Guía para el cliente final (comercio WIBI)
No hace falta ser desarrollador ni editar archivos JSON.
Claude web (claude.ai)
Entrá a claude.ai con tu cuenta.
Andá a Settings → Connectors → Add custom connector.
Pegá la URL del servidor:
https://wibi.com.ar/mcp(URL temporal de prueba; ver nota DNS abajo).Claude abre la pantalla de login de WIBI en el navegador.
Ingresá el usuario y la contraseña WIBI:
Comercio: los mismos datos del comercio en el sistema → acceso directo.
Admin del panel: usuario del panel WIBI (no el del comercio). Si la campaña tiene 2FA, te pide el código del email. Después elegís campaña y comercio con el mismo alcance que en el panel (admin ve sus campañas/comercios; superadmin ve todas).
Autorizá. Ya podés pedirle a Claude cosas como:
“Listame los productos de mi campaña”
“Buscá el cliente con DNI …”
“¿Cuáles son mis campañas?”
Cada sesión opera solo sobre el comercio elegido. No hay tokens compartidos ni configuración por cliente.
Claude Desktop
Abrí Claude Desktop → Settings → Connectors (o Developers, según la versión).
Agregá un conector remoto con la URL
https://wibi.com.ar/mcp(temporal; ver nota DNS).Completá el login en el navegador con tu usuario/clave WIBI.
Related MCP server: meta-ads-mcp
Guía técnica (equipo interno)
Requisitos
Node.js >= 18
API key de aplicación WIBI (
approl1 o 3)API v2 desplegada (incluye
/onzecrm/v2/auth/*y/onzecrm/v2/campanias)
Instalación
cd wibi-mcp-gateway
npm install --ignore-scripts
npm run buildModo stdio (local)
export WIBI_BASE_URL=https://apiv2.wibi.com.ar
export WIBI_API_KEY=...
export WIBI_USER=...
export WIBI_PASS=...
# opcional:
# export WIBI_DEFAULT_CAMPANIA=13793
node dist/index.jsEjemplo de mcp.json (solo para desarrollo local):
{
"mcpServers": {
"wibi-local": {
"command": "node",
"args": ["/ruta/a/wibi-mcp-gateway/dist/index.js"],
"env": {
"WIBI_BASE_URL": "https://apiv2.wibi.com.ar",
"WIBI_API_KEY": "...",
"WIBI_USER": "...",
"WIBI_PASS": "..."
}
}
}
}Modo HTTP + OAuth (producción)
Variables mínimas:
Variable | Descripción |
| URL de la API ( |
| API key de la aplicación integradora |
| URL pública HTTPS del gateway (hoy |
|
|
| Puerto interno (default |
No configurar WIBI_USER, WIBI_PASS ni MCP_HTTP_TOKEN en este modo: el login es interactivo (comercio o admin del panel).
MCP_TRANSPORT=http \
WIBI_BASE_URL=https://apiv2.wibi.com.ar \
WIBI_API_KEY=... \
WIBI_PUBLIC_URL=https://wibi.com.ar \
node dist/index.js --httpEndpoints:
GET /healthz— healthcheckGET /.well-known/oauth-authorization-server— metadata OAuthPOST /register— Dynamic Client RegistrationGET /authorize— pantalla de loginPOST /oauth/approve— login multi-paso (credenciales → OTP opcional → selector campaña/comercio)POST /token— intercambia code / refreshPOST|GET|DELETE /mcp— MCP Streamable HTTP (Bearer OAuth)
API Laravel usada por el login OAuth:
POST /onzecrm/v2/auth/loginPOST /onzecrm/v2/auth/verify-otp/resend-otpPOST /onzecrm/v2/auth/scoped-comercios/select-scopePOST /onzecrm/v2/auth/refresh/revoke
Docker
cp .env.example .env # completar WIBI_BASE_URL, WIBI_API_KEY, WIBI_PUBLIC_URL
docker compose up -d --build
curl http://127.0.0.1:3939/healthzDNS / certificado
Acción requerida (Quien tenga acceso DonWeb): crear registro DNS:
Tipo | Host | Valor |
A |
|
|
Cuando exista el DNS, puedo:
Emitir certificado Let's Encrypt (
certbot --apache -d mcp.wibi.com.ar)Crear vhost dedicado que proxee toda la raíz al contenedor (
127.0.0.1:3939)Cambiar
WIBI_PUBLIC_URL=https://mcp.wibi.com.ary recrear el contenedorQuitar del vhost
wibi.com.arlosProxyPasstemporales de OAuth (/authorize,/token,/register, etc.)
Workaround actual (solo prueba): OAuth se publica en https://wibi.com.ar con el certificado comercial existente, proxeando rutas OAuth + /mcp al contenedor. No es el diseño final.
Notas:
Clients DCR + tokens OAuth +
WibiSessionse persisten en Redis (OAUTH_STORE=redisen Docker). Los transports MCP siguen en memoria del proceso.Una sola réplica hoy; Redis deja la puerta abierta a multi-réplica. Un recreate ya no debería pedir reconectar Claude.
HTTPS obligatorio (las credenciales viajan por el formulario).
El gateway nunca guarda usuario/clave del comercio; solo JWT corto + refresh token opaco (en Redis en producción).
Arquitectura de sesión
claude.ai → OAuth (login comercio o admin) → access token MCP
→ /mcp (Bearer) → WibiClient con JWT del comercio
→ API v2 Laravel (scope por IdComercio / IdRed / idCampania)Si entra un admin del panel, el JWT final sigue siendo del comercio seleccionado (mismo alcance v2). El actor real (actor_id / actor_name / actor_role) viaja en el JWT y en los logs de escritura para auditoría.
Cuando el JWT WIBI está por vencer, el gateway lo renueva con POST /onzecrm/v2/auth/refresh (sin volver a pedir la clave).
Cambio de comercio dentro de la misma sesión (solo admins): un admin/superadmin puede pasar de un comercio a otro sin volver a loguearse ni pasar 2FA de nuevo, usando las tools wibi_buscar_campanias, wibi_comercios_de_campania y wibi_cambiar_comercio (ver más abajo). Internamente llaman a POST /onzecrm/v2/auth/my-campanias, POST /onzecrm/v2/auth/my-scoped-comercios y POST /onzecrm/v2/auth/switch-scope (todos con Bearer del token actual); las dos primeras solo consultan, la tercera reemite JWT + refresh conservando el actor_id real para auditoría. El comercio directo (login sin actor) no ve estas tools.
Por qué existe wibi_buscar_campanias: wibi_mis_campanias solo devuelve la campaña asociada a la red del comercio activo (normalmente una sola), no todo el alcance del admin. Un superadmin como puede tener acceso a cientos de campañas, y no las conoce por ID. wibi_buscar_campanias permite pedirle a Claude "cambiate a la campaña X" por nombre, sin que el usuario tenga que saber el idCampania de antemano.
Herramientas principales
Informes: movimientos, clientes, productos, clasificadores, marcas, segmentos, tags, cupones
Comportamiento: resumen del cliente, análisis de clientes
Difusiones: tags, plantillas WhatsApp, programar/consultar
Suscripciones: tipos de alerta, crear/consultar
En modo OAuth:
wibi_mis_campaniasEn modo OAuth, solo para sesiones admin (
es_admin: trueenwibi_mis_campanias):wibi_buscar_campanias(busca campañas por nombre dentro del alcance del admin, sin necesidad de conocer el idCampania),wibi_comercios_de_campania(lista comercios de una campaña dentro del alcance del admin) ywibi_cambiar_comercio(cambia el comercio/campaña activos de la sesión sin relogin)
La tool de plantilla de email está deshabilitada hasta que exista el endpoint Laravel correspondiente.
Seguridad
Aislamiento por comercio: cada sesión MCP queda ligada al
sessionIdOAuth +IdComerciodel login.Escrituras en Laravel validan clientes/tags/alertas contra el scope del token.
Rate limit en
/oauth/approvey/mcp.Cache-Control: no-store,X-Frame-Options: DENY, CSP en la página de login.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for managing WooCommerce stores through AI assistants like Claude. Provides 101 tools covering products, orders, customers, coupons, shipping, taxes, webhooks, settings, reports, and more.1001001MIT
- AlicenseAqualityDmaintenanceMCP server to manage Meta Ads (Facebook/Instagram) campaigns, ad sets, insights, and audiences from Claude Code using natural language.97MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for the Wasabi WACM Connect API, enabling management of account hierarchy, storage, and billing data through Claude with 18 read-only and 12 opt-in write tools.1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceMCP server that connects Claude to Shopify stores, enabling natural language queries and actions on products, orders, customers, inventory, and sales analytics. Includes a demo mode with bundled fixtures for trying tools without credentials.87MIT
Related MCP Connectors
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/roalejandro/mcp_wibi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server