WIBI MCP Gateway
WIBI MCP Gateway
Server MCP (Model Context Protocol), der die WIBI-API v2 als Werkzeuge für LLM-Assistenten bereitstellt.
Unterstützt zwei Modi:
Modus | Für wen | Wie die Authentifizierung erfolgt |
HTTP + OAuth 2.1 (Produktion) | Händler oder Admins des WIBI-Panels über claude.ai / Claude Desktop | Login mit Benutzer/Passwort des Händlers oder des Panel-Admins; Admins wählen Kampagne/Händler (und OTP, wenn 2FA aktiv ist) |
stdio (Entwicklung) | Technisches Team / lokales Cursor | Umgebungsvariablen |
Leitfaden für den Endkunden (WIBI-Händler)
Sie müssen kein Entwickler sein und keine JSON-Dateien bearbeiten.
Claude Web (claude.ai)
Melden Sie sich bei claude.ai mit Ihrem Konto an.
Gehen Sie zu Settings → Connectors → Add custom connector.
Fügen Sie die Server-URL ein:
https://wibi.com.ar/mcp(temporäre Test-URL; siehe DNS-Hinweis unten).Claude öffnet den WIBI-Login-Bildschirm im Browser.
Geben Sie Benutzername und Passwort von WIBI ein:
Händler: dieselben Daten wie der Händler im System → direkter Zugriff.
Panel-Admin: Benutzer des WIBI-Panels (nicht der des Händlers). Wenn die Kampagne 2FA aktiviert hat, wird der Code aus der E-Mail abgefragt. Danach wählen Sie Kampagne und Händler mit demselben Umfang wie im Panel (Admin sieht seine Kampagnen/Händler; Superadmin sieht alle).
Autorisieren Sie. Sie können Claude nun Dinge wie folgende bitten:
„Liste die Produkte meiner Kampagne auf“
„Suche den Kunden mit der ID …“
„Welche Kampagnen habe ich?“
Jede Sitzung arbeitet nur auf dem gewählten Händler. Es gibt keine gemeinsamen Tokens oder Konfiguration pro Kunde.
Claude Desktop
Öffnen Sie Claude Desktop → Settings → Connectors (oder Developers, je nach Version).
Fügen Sie einen Remote-Connector mit der URL
https://wibi.com.ar/mcphinzu (temporär; siehe DNS-Hinweis).Schließen Sie den Login im Browser mit Ihrem WIBI-Benutzer/Passwort ab.
Related MCP server: meta-ads-mcp
Technischer Leitfaden (internes Team)
Voraussetzungen
Node.js >= 18
API-Key der WIBI-Anwendung (
approl1 oder 3)API v2 bereitgestellt (enthält
/onzecrm/v2/auth/*und/onzecrm/v2/campanias)
Installation
cd wibi-mcp-gateway
npm install --ignore-scripts
npm run buildstdio-Modus (lokal)
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.jsBeispiel mcp.json (nur für lokale Entwicklung):
{
"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": "..."
}
}
}
}HTTP + OAuth-Modus (Produktion)
Mindestvariablen:
Variable | Beschreibung |
| URL der API ( |
| API-Key der integrierenden Anwendung |
| Öffentliche HTTPS-URL des Gateways (derzeit |
|
|
| Interner Port (Standard |
In diesem Modus nicht WIBI_USER, WIBI_PASS oder MCP_HTTP_TOKEN konfigurieren: Der Login ist interaktiv (Händler oder Panel-Admin).
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 --httpEndpunkte:
GET /healthz— HealthcheckGET /.well-known/oauth-authorization-server— OAuth-MetadatenPOST /register— Dynamic Client RegistrationGET /authorize— Login-BildschirmPOST /oauth/approve— mehrstufiger Login (Anmeldedaten → optionales OTP → Kampagnen-/Händlerauswahl)POST /token— tauscht Code / RefreshPOST|GET|DELETE /mcp— MCP Streamable HTTP (Bearer OAuth)
Laravel-API, die vom OAuth-Login verwendet wird:
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 / Zertifikat
Erforderliche Aktion (wer DonWeb-Zugriff hat): DNS-Eintrag erstellen:
Typ | Host | Wert |
A |
|
|
Wenn das DNS existiert, kann ich:
Let's-Encrypt-Zertifikat ausstellen (
certbot --apache -d mcp.wibi.com.ar)Dedizierten vhost erstellen, der die gesamte Wurzel an den Container proxyt (
127.0.0.1:3939)WIBI_PUBLIC_URL=https://mcp.wibi.com.arändern und den Container neu erstellenAus dem vhost
wibi.com.ardie temporären OAuth-ProxyPass-Einträge (/authorize,/token,/registerusw.) entfernen
Aktueller Workaround (nur Test): OAuth wird auf https://wibi.com.ar mit dem vorhandenen kommerziellen Zertifikat veröffentlicht, wobei OAuth-Routen + /mcp an den Container proxyt werden. Das ist nicht das endgültige Design.
Hinweise:
DCR-Clients + OAuth-Tokens +
WibiSessionwerden in Redis persistiert (OAUTH_STORE=redisin Docker). Die MCP-Transports bleiben im Prozessspeicher.Derzeit eine einzige Replik; Redis lässt die Tür für Multi-Replik offen. Ein Recreate sollte kein erneutes Verbinden von Claude mehr erfordern.
HTTPS ist Pflicht (die Anmeldedaten werden über das Formular übertragen).
Das Gateway speichert niemals Benutzer/Passwort des Händlers; nur kurzes JWT + undurchsichtiges Refresh-Token (in Redis in Produktion).
Sitzungsarchitektur
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)Wenn ein Panel-Admin sich anmeldet, gehört das endgültige JWT weiterhin dem ausgewählten Händler (gleicher v2-Umfang). Der tatsächliche Akteur (actor_id / actor_name / actor_role) reist im JWT und in den Schreib-Logs für die Auditierung.
Wenn das WIBI-JWT kurz vor dem Ablauf steht, erneuert das Gateway es mit POST /onzecrm/v2/auth/refresh (ohne erneute Abfrage des Passworts).
Händlerwechsel innerhalb derselben Sitzung (nur Admins): Ein Admin/Superadmin kann ohne erneutes Login oder erneutes 2FA von einem Händler zu einem anderen wechseln, mithilfe der Tools wibi_buscar_campanias, wibi_comercios_de_campania und wibi_cambiar_comercio (siehe unten). Intern rufen sie POST /onzecrm/v2/auth/my-campanias, POST /onzecrm/v2/auth/my-scoped-comercios und POST /onzecrm/v2/auth/switch-scope auf (alle mit Bearer des aktuellen Tokens); die ersten beiden fragen nur ab, das dritte gibt JWT + Refresh neu aus und bewahrt die tatsächliche actor_id für die Auditierung. Der direkte Händler (Login ohne Akteur) sieht diese Tools nicht.
Warum es wibi_buscar_campanias gibt: wibi_mis_campanias gibt nur die Kampagne zurück, die mit dem Netzwerk des aktiven Händlers verbunden ist (normalerweise eine einzige), nicht den gesamten Umfang des Admins. Ein Superadmin kann Zugriff auf Hunderte von Kampagnen haben und kennt sie nicht per ID. wibi_buscar_campanias ermöglicht es, Claude zu bitten „Wechsle zu Kampagne X“ per Name, ohne dass der Benutzer die idCampania im Voraus kennen muss.
Hauptwerkzeuge
Berichte: Bewegungen, Kunden, Produkte, Klassifikatoren, Marken, Segmente, Tags, Gutscheine
Verhalten: Kundenübersicht, Kundenanalyse
Verteilungen: Tags, WhatsApp-Vorlagen, planen/abfragen
Abonnements: Alarmtypen, erstellen/abfragen
Im OAuth-Modus:
wibi_mis_campaniasIm OAuth-Modus, nur für Admin-Sitzungen (
es_admin: trueinwibi_mis_campanias):wibi_buscar_campanias(sucht Kampagnen per Name innerhalb des Admin-Umfangs, ohne die idCampania zu kennen),wibi_comercios_de_campania(listet Händler einer Kampagne innerhalb des Admin-Umfangs) undwibi_cambiar_comercio(ändert den aktiven Händler/die aktive Kampagne der Sitzung ohne erneutes Login)
Das E-Mail-Vorlagen-Tool ist deaktiviert, bis der entsprechende Laravel-Endpunkt existiert.
Sicherheit
Isolierung pro Händler: Jede MCP-Sitzung ist an die OAuth-
sessionId+IdComerciodes Logins gebunden.Schreibvorgänge in Laravel validieren Kunden/Tags/Alarme gegen den Umfang des Tokens.
Rate-Limit auf
/oauth/approveund/mcp.Cache-Control: no-store,X-Frame-Options: DENY, CSP auf der Login-Seite.
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