Skip to main content
Glama
roalejandro

WIBI MCP Gateway

by roalejandro

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_USER / WIBI_PASS


エンドユーザー向けガイド(WIBI加盟店)

開発者である必要も、JSONファイルを編集する必要もありません。

Claude Web(claude.ai)

  1. 自分のアカウントで claude.ai にログインします。

  2. Settings → Connectors → Add custom connector に移動します。

  3. サーバーのURLを貼り付けます:https://wibi.com.ar/mcp (一時的なテストURL。下記のDNSメモを参照)

  4. ClaudeがブラウザでWIBIのログイン画面を開きます。

  5. WIBIのユーザー名とパスワードを入力します:

    • 加盟店: システムの加盟店と同じ認証情報 → 直接アクセス。

    • パネル管理者: WIBIパネルのユーザー(加盟店のユーザーではありません)。キャンペーンで2FAが有効な場合、メールのコードを求められます。その後、パネルと同じ範囲でキャンペーン加盟店を選択します(管理者は自分のキャンペーン/加盟店を表示、スーパー管理者はすべてを表示)。

  6. 承認します。これでClaudeに次のような依頼ができます:

    • 「キャンペーンの商品を一覧表示して」

    • 「DNI … の顧客を検索して」

    • 「自分のキャンペーンはどれ?」

各セッションは選択した加盟店のみに対して動作します。共有トークンやクライアントごとの設定はありません。

Claude Desktop

  1. Claude Desktopを開く → Settings → Connectors(バージョンによってはDevelopers)。

  2. URL https://wibi.com.ar/mcp でリモートコネクタを追加します (一時的。DNSメモ参照)

  3. ブラウザでWIBIのユーザー名/パスワードでログインを完了します。


Related MCP server: meta-ads-mcp

技術ガイド(社内チーム)

要件

  • Node.js >= 18

  • WIBIアプリケーションAPIキー(approl 1または3)

  • デプロイ済みのAPI v2(/onzecrm/v2/auth/*/onzecrm/v2/campanias を含む)

インストール

cd wibi-mcp-gateway
npm install --ignore-scripts
npm run build

stdioモード(ローカル)

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.js

mcp.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モード(本番)

最小限の変数:

変数

説明

WIBI_BASE_URL

APIのURL(https://apiv2.wibi.com.ar

WIBI_API_KEY

統合アプリケーションのAPIキー

WIBI_PUBLIC_URL

ゲートウェイの公開HTTPS URL(現在 https://wibi.com.ar。目標 https://mcp.wibi.com.ar

MCP_TRANSPORT

http

WIBI_HTTP_PORT

内部ポート(デフォルト 3939

このモードでは WIBI_USERWIBI_PASSMCP_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/login

  • POST /onzecrm/v2/auth/verify-otp / resend-otp

  • POST /onzecrm/v2/auth/scoped-comercios / select-scope

  • POST /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/healthz

DNS / 証明書

必要な対応(DonWebへのアクセス権を持つ方): DNSレコードを作成:

タイプ

ホスト

A

mcpmcp.wibi.com.ar

191.234.207.236

DNSが存在すれば、以下が可能です:

  1. Let's Encrypt証明書の発行(certbot --apache -d mcp.wibi.com.ar

  2. ルート全体をコンテナ(127.0.0.1:3939)にプロキシする専用vhostの作成

  3. WIBI_PUBLIC_URL=https://mcp.wibi.com.ar に変更してコンテナを再作成

  4. 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_campaniaswibi_comercios_de_campaniawibi_cambiar_comercio(下記参照)を使用して、ある加盟店から別の加盟店に切り替えることができます。内部的には POST /onzecrm/v2/auth/my-campaniasPOST /onzecrm/v2/auth/my-scoped-comerciosPOST /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_campanias

  • OAuthモードで、管理者セッションのみ(wibi_mis_campaniases_admin: true):wibi_buscar_campanias(idCampaniaを知らなくても、管理者のスコープ内で名前でキャンペーンを検索)、wibi_comercios_de_campania(管理者のスコープ内のキャンペーンの加盟店を一覧表示)、wibi_cambiar_comercio(再ログインなしでセッションのアクティブな加盟店/キャンペーンを変更)

メールテンプレートツールは、対応するLaravelエンドポイントが存在するまで無効化されています。


セキュリティ

  • 加盟店ごとの分離:各MCPセッションは、ログインの sessionId OAuth + IdComercio に紐付けられます。

  • Laravelでの書き込みは、トークンのスコープに対して顧客/タグ/アラートを検証します。

  • /oauth/approve/mcp でのレート制限。

  • Cache-Control: no-storeX-Frame-Options: DENY、ログインページのCSP。

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    C
    maintenance
    MCP 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.
    100
    100
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server to manage Meta Ads (Facebook/Instagram) campaigns, ad sets, insights, and audiences from Claude Code using natural language.
    9
    7
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP 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.
    87
    MIT

View all related MCP servers

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

View all MCP Connectors

Latest Blog Posts

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