WIBI MCP Gateway
WIBI MCP ゲートウェイ
WIBI API v2 をLLMアシスタント向けツールとして公開する MCP(Model Context Protocol) サーバー。
2つのモードに対応:
モード | 対象者 | 認証方法 |
HTTP + OAuth 2.1(本番) | claude.ai / Claude Desktop 経由のWIBIパネルの加盟店または管理者 | 加盟店またはパネル管理者のユーザー名/パスワードでログイン。管理者はキャンペーン/加盟店を選択(2FA有効時はOTPも入力) |
stdio(開発) | 技術チーム / ローカルのCursor | 環境変数 |
エンドユーザー向けガイド(WIBI加盟店)
開発者である必要も、JSONファイルを編集する必要もありません。
Claude Web(claude.ai)
自分のアカウントで claude.ai にログインします。
Settings → Connectors → Add custom connector に移動します。
サーバーのURLを貼り付けます:
https://wibi.com.ar/mcp(一時的なテストURL。下記のDNSメモを参照)。ClaudeがブラウザでWIBIのログイン画面を開きます。
WIBIのユーザー名とパスワードを入力します:
加盟店: システムの加盟店と同じ認証情報 → 直接アクセス。
パネル管理者: WIBIパネルのユーザー(加盟店のユーザーではありません)。キャンペーンで2FAが有効な場合、メールのコードを求められます。その後、パネルと同じ範囲でキャンペーンと加盟店を選択します(管理者は自分のキャンペーン/加盟店を表示、スーパー管理者はすべてを表示)。
承認します。これでClaudeに次のような依頼ができます:
「キャンペーンの商品を一覧表示して」
「DNI … の顧客を検索して」
「自分のキャンペーンはどれ?」
各セッションは選択した加盟店のみに対して動作します。共有トークンやクライアントごとの設定はありません。
Claude Desktop
Claude Desktopを開く → Settings → Connectors(バージョンによってはDevelopers)。
URL
https://wibi.com.ar/mcpでリモートコネクタを追加します (一時的。DNSメモ参照)。ブラウザでWIBIのユーザー名/パスワードでログインを完了します。
Related MCP server: meta-ads-mcp
技術ガイド(社内チーム)
要件
Node.js >= 18
WIBIアプリケーションAPIキー(
approl1または3)デプロイ済みのAPI v2(
/onzecrm/v2/auth/*と/onzecrm/v2/campaniasを含む)
インストール
cd wibi-mcp-gateway
npm install --ignore-scripts
npm run buildstdioモード(ローカル)
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.jsmcp.json の例(ローカル開発のみ):
{
"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モード(本番)
最小限の変数:
変数 | 説明 |
| APIのURL( |
| 統合アプリケーションのAPIキー |
| ゲートウェイの公開HTTPS URL(現在 |
|
|
| 内部ポート(デフォルト |
このモードでは WIBI_USER、WIBI_PASS、MCP_HTTP_TOKEN を設定しないでください。ログインは対話式です(加盟店またはパネル管理者)。
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 --httpエンドポイント:
GET /healthz— ヘルスチェックGET /.well-known/oauth-authorization-server— OAuthメタデータPOST /register— 動的クライアント登録GET /authorize— ログイン画面POST /oauth/approve— 多段階ログイン(認証情報 → 任意のOTP → キャンペーン/加盟店セレクター)POST /token— code / refreshの交換POST|GET|DELETE /mcp— MCP Streamable HTTP(Bearer OAuth)
OAuthログインで使用されるLaravel API:
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 / 証明書
必要な対応(DonWebへのアクセス権を持つ方): DNSレコードを作成:
タイプ | ホスト | 値 |
A |
|
|
DNSが存在すれば、以下が可能です:
Let's Encrypt証明書の発行(
certbot --apache -d mcp.wibi.com.ar)ルート全体をコンテナ(
127.0.0.1:3939)にプロキシする専用vhostの作成WIBI_PUBLIC_URL=https://mcp.wibi.com.arに変更してコンテナを再作成vhost
wibi.com.arから一時的なOAuthのProxyPass(/authorize、/token、/registerなど)を削除
現在の回避策(テストのみ): OAuthは既存の商用証明書を使用して https://wibi.com.ar で公開され、OAuthルート + /mcp をコンテナにプロキシしています。最終設計ではありません。
注意事項:
DCRクライアント + OAuthトークン +
WibiSessionはRedisに永続化されます(DockerではOAUTH_STORE=redis)。MCPトランスポートはプロセスのメモリ内に残ります。現在は単一レプリカ。Redisはマルチレプリカへの道を開きます。recreate後もClaudeの再接続を求めるべきではありません。
HTTPS必須(認証情報はフォームで送信されるため)。
ゲートウェイは加盟店のユーザー名/パスワードを決して保存しません。短命のJWT + 不透明なリフレッシュトークンのみ(本番ではRedis内)。
セッションアーキテクチャ
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)パネル管理者がログインした場合、最終的なJWTは引き続き選択された加盟店のものになります(v2と同じスコープ)。実際のアクター(actor_id / actor_name / actor_role)はJWTと監査用の書き込みログに含まれます。
WIBI JWTの有効期限が近づくと、ゲートウェイは POST /onzecrm/v2/auth/refresh で更新します(パスワードを再度要求することなく)。
同じセッション内での加盟店の切り替え(管理者のみ): 管理者/スーパー管理者は、再ログインや2FAを再度通過することなく、ツール wibi_buscar_campanias、wibi_comercios_de_campania、wibi_cambiar_comercio(下記参照)を使用して、ある加盟店から別の加盟店に切り替えることができます。内部的には POST /onzecrm/v2/auth/my-campanias、POST /onzecrm/v2/auth/my-scoped-comercios、POST /onzecrm/v2/auth/switch-scope を呼び出します(すべて現在のトークンのBearerを使用)。最初の2つは参照のみ、3つ目は監査用に実際の actor_id を保持したままJWT + refreshを再発行します。直接加盟店(アクターなしのログイン)はこれらのツールを表示できません。
wibi_buscar_campanias が存在する理由: wibi_mis_campanias は、アクティブな加盟店のネットワークに関連付けられたキャンペーン(通常は1つ)のみを返し、管理者の全スコープは返しません。スーパー管理者は何百ものキャンペーンにアクセスできる可能性があり、IDで把握していません。wibi_buscar_campanias を使用すると、ユーザーが事前にidCampaniaを知らなくても、Claudeに「キャンペーンXに切り替えて」と名前で依頼できます。
主なツール
レポート:取引、顧客、商品、分類子、ブランド、セグメント、タグ、クーポン
行動:顧客サマリー、顧客分析
配信:タグ、WhatsAppテンプレート、スケジュール/照会
サブスクリプション:アラートタイプ、作成/照会
OAuthモード:
wibi_mis_campaniasOAuthモードで、管理者セッションのみ(
wibi_mis_campaniasのes_admin: true):wibi_buscar_campanias(idCampaniaを知らなくても、管理者のスコープ内で名前でキャンペーンを検索)、wibi_comercios_de_campania(管理者のスコープ内のキャンペーンの加盟店を一覧表示)、wibi_cambiar_comercio(再ログインなしでセッションのアクティブな加盟店/キャンペーンを変更)
メールテンプレートツールは、対応するLaravelエンドポイントが存在するまで無効化されています。
セキュリティ
加盟店ごとの分離:各MCPセッションは、ログインの
sessionIdOAuth +IdComercioに紐付けられます。Laravelでの書き込みは、トークンのスコープに対して顧客/タグ/アラートを検証します。
/oauth/approveと/mcpでのレート制限。Cache-Control: no-store、X-Frame-Options: DENY、ログインページのCSP。
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