Slack ↔ WxO MCP Gateway について
Slack ↔ WxO MCP Gatewayは、SlackのメッセージをWatson Orchestrateエージェントにルーティングし、運用や他のクライアント向けにMCPツールキットを提供します。メッセージごとの起動、チャンネルとエージェントの紐付け、スレッド返信に対応します。
主な機能
- 01人間の各メッセージでエージェントを起動
- 02複数チャンネルをエージェントへルーティング
- 03スレッド返信とコンテキストの取得
- 04スレッド回答の投稿とノイズの除去
- 05管理UI、診断、ログ
活用シーン
- 01チャンネルのメッセージからWxOエージェントを起動
- 02サポートと運用のチャンネルを別々のエージェントに割り当て
- 03ゲートウェイの状態とルーティング設定を確認
MCP 対応
`/mcp`でStreamable HTTPのMCPツールキットを提供し、Slack、WxO、ルーティング、ポーリング、状態、ログ、診断を扱えます。WxOやIDEクライアントなどのMCPクライアントが接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @markusvankempen/slack-wxo-mcp-gatewaySLACK_BOT_TOKENシークレットSlack Bot User OAuth Token (xoxb-…)WXO_INSTANCE_URLwatsonx Orchestrate instance base URLWXO_API_KEYシークレットwatsonx Orchestrate / MCSP API keyWXO_AGENT_IDDefault WxO agent id for bindingsGATEWAY_TRANSPORTstdio (IDE) or streamable-http (hosted). Default for npx IDE use: stdioSLACK_SIGNING_SECRETシークレットSlack signing secret (Events mode)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Slack ↔ WxO MCP Gateway
作成者: Markus van Kempen
メール: [email protected] · [email protected]
Web: https://markusvankempen.github.io/ · GitHub
npm: @markusvankempen/slack-wxo-mcp-gateway · MCP: io.github.markusvankempen/slack-wxo-mcp-gateway
この GitHub リポジトリに含まれるのは、ドキュメントとレジストリのメタデータです。 実行可能なアプリケーションのソースコードは含まれていません。
npm 経由でインストール/実行:npx -y @markusvankempen/slack-wxo-mcp-gateway· サイト:https://markusvankempen.github.io/
概要: watsonx Orchestrate の Slack に関する制限を解消する MCP ゲートウェイです。すべてのメッセージでエージェントを起動し、複数のチャンネルから複数のエージェントへルーティングし、スレッド内で整った返信を行います。また、WxO と Cursor/VS Code/Bob/Antigravity 向けにストリーミング可能な HTTP ツールキットを提供します。エージェントを置き換えることはありません。
tags: wxo-limitations · byo-slack · every-message · multi-channel · multi-agent · thread-followups · gateway-thread · no-done-noise · mcp-toolkit · streamable-http · poller · code-engine · ngrok · agentic-ai
設定は1か所: 多数の Slack チャンネルを多数の WxO エージェントにマッピングします。
ポーラー(およびオプションの Slack Events)がエージェントを起動します。
同じホストで WxO/Cursor/その他のクライアント向けの MCP ツールキット(/mcp)も公開します。
アーキテクチャの概要
flowchart LR
subgraph Slack
C1["#support"]
C2["#orders"]
C3["#ops"]
end
subgraph Gateway["Slack ↔ WxO MCP Gateway"]
Bind["config.yaml bindings"]
Poll["Poller / Events"]
MCP["/mcp streamable-http"]
UI["Admin UI /"]
end
subgraph WxO["watsonx Orchestrate"]
A1["Agent A"]
A2["Agent B"]
A3["Agent C"]
end
subgraph Clients["MCP clients"]
IDE["Cursor / VS Code / Bob / …"]
TK["WxO toolkits"]
end
C1 & C2 & C3 --> Poll
Poll --> Bind
Bind --> A1 & A2 & A3
A1 & A2 & A3 -.->|gateway_thread reply| Poll
IDE & TK --> MCP
UI --> Bind
このアプローチを選ぶ理由(WxO の制限を解消)
| WxO/Slack の制限 | タグ | ゲートウェイによる解消方法 |
|---|---|---|
byo_slack は @メンション/DM のみ | every-message | ポーラー/Events が人間からのすべてのメッセージでエージェントを起動 |
| 多数のチャンネルから多数のエージェントを実行するのが難しい | multi-channel multi-agent | 1つのバインディングテーブルと管理 UI |
| スレッドでの返信を取りこぼしやすい | thread-followups | スレッドの返信とコンテキストを読み取り |
Slack に不要な最終メッセージ(done など)が表示される | gateway-thread no-done-noise | ゲートウェイが回答を投稿し、不要なメッセージを除外 |
| エージェントが実際の DNS を使うリモートツールを必要とする | mcp-toolkit streamable-http | Orchestrate ツールキット向けに /mcp をホスト |
| 運用担当者がポーラーの複製から抜け出せない | ops-self-serve | MCP ツール、診断、ログ |
| Slack の運用が Slack/WxO UI 内に限られる | ide-parity | Cursor、VS Code、Bob、Antigravity、Claude でも同じツールを使用可能 |
WxO は引き続き頭脳(LLM、スキル、フロー)を担います。このゲートウェイはSlack、ルーティング、MCP のエッジです。
独自のエージェントフレームワークを利用できます:docs/frameworks/(LangGraph、LlamaIndex、OpenAI Agents)。
npm/MCP の識別情報
| npm | @markusvankempen/slack-wxo-mcp-gateway |
| MCP 名 | io.github.markusvankempen/slack-wxo-mcp-gateway |
| トピック | mcp · mcp-server · slack · watsonx · watsonx-orchestrate · ibm · wxo · byo-slack · multi-channel · code-engine · streamable-http · cursor · agentic-ai |
npm で見つけやすくするためのキーワード一覧は、package.json にあります。
公開と実行のモード(A~D)
1 つのパッケージ/1 つのイメージ — モードを選択してください(docs/PUBLISH-MODES.md を参照)。
flowchart TB
PKG["npm @markusvankempen/slack-wxo-mcp-gateway<br/>+ optional container image"]
PKG --> A["A Local HTTP<br/>:3100 UI + /mcp + poller"]
PKG --> B["B Podman / Docker<br/>:8080"]
PKG --> C["C Code Engine<br/>HTTPS always-on"]
PKG --> D["D IDE stdio<br/>Cursor / VS Code / Bob"]
A --> N["ngrok demo tunnel"]
A & B & C --> R["Remote /mcp clients"]
D --> L["Local MCP session"]
| モード | コマンド | 用途 |
|---|---|---|
| A ローカル HTTP | ./scripts/run.sh --mode http | ノート PC 上で UI、/mcp、ポーラーを実行 |
| B Podman/Docker | ./scripts/run.sh --mode podman | 同じアプリをコンテナー内で実行 |
| C Code Engine | ./scripts/run.sh --mode ce | 常時稼働の HTTPS |
| D IDE MCP | ./scripts/run.sh --mode ide | Cursor / VS Code の stdio スニペット(--exec も使用可能) |
| Ngrok デモ | ./scripts/run.sh --mode ngrok | A + トンネル + WxO ツールキット |
./scripts/run.sh --mode ide # print Cursor + VS Code mcp.json
./scripts/run.sh --mode http # local host :3100
./scripts/run.sh --mode podman # container :8080
./scripts/run.sh --mode ce # IBM Code Engine
詳細ガイド:docs/local-ngrok/ · docs/code-engine/ · docs/ide/
インデックス:docs/README.md · セットアップ:SETUP.md
コピーして貼り付けられる IDE JSON:examples/mcp/
エージェントフレームワーク(LangGraph · LlamaIndex · OpenAI Agents)
フレームワークはこの MCP に接続してください。ゲートウェイに埋め込まないでください。
| ガイド | 内容 |
|---|---|
docs/frameworks/ | インデックス+チェックリスト |
docs/frameworks/langgraph.md | LangGraph / LangChain |
docs/frameworks/llamaindex.md | LlamaIndex |
docs/frameworks/openai-agents.md | OpenAI Agents SDK |
インストール(npm / npx)— このリポジトリからではありません
# Hosted HTTP + admin UI (default)
npx -y @markusvankempen/slack-wxo-mcp-gateway
# IDE / stdio MCP
npx -y @markusvankempen/slack-wxo-mcp-gateway --stdio
Node 18+ と Python 3.10+ が必要です。環境変数テンプレート: .env.example。ガイド:local-ngrok · code-engine。
全体像
マルチチャネルルーティング:
flowchart LR
S1["#support"] --> G["Gateway bindings"]
S2["#orders"] --> G
S3["#ops"] --> G
G --> WA["WxO agent A"]
G --> WB["WxO agent B"]
G --> WC["WxO agent C"]
メッセージの経路(reply_mode: gateway_thread):
sequenceDiagram
participant U as Slack user
participant Ch as Channel / thread
participant GW as Gateway poller
participant Wx as WxO Runs API
participant Bot as Slack bot reply
U->>Ch: Human message
GW->>Ch: Read new messages / replies
GW->>Wx: Start bound agent run
Wx-->>GW: Agent answer text
GW->>Bot: chat.postMessage in thread
Bot-->>Ch: Clean reply (no done noise)
同じホストで、/mcp の MCP と / の 管理 UI も提供します。
設定(config.yaml)
| フィールド | 説明 |
|---|---|
slack_channel_id | 例:C0BHWEZ7NLC |
wxo.agent_id | 対象の Orchestrate エージェント |
mode | poll | events | both |
reply_mode | gateway_thread = Runs API の後、ゲートウェイが Slack スレッドに投稿します。agent_tools = エージェントを起動するだけです |
poll_sec / lookback_sec | ポーラーの間隔 |
シークレット:${ENV_VAR} を使用します(.env から読み込まれます)。
エンドポイント
| パス | 役割 |
|---|---|
/ | 管理 UI |
/mcp | MCP ストリーム可能 HTTP |
/slack/events | Slack Event Subscriptions |
/health | 稼働状態 |
/api/logs | ログのリングバッファー |
/api/tools | MCP ツールカタログ |
/api/diagnostics | Slack と WxO のチェック |
/api/poll | ポーリングを 1 サイクル実行 |
/api/config | マスク済み JSON/未加工 YAML |
管理ダッシュボードの認証
GATEWAY_ADMIN_USER=admin
GATEWAY_ADMIN_PASSWORD=choose-a-strong-password
/ と /api/* を保護します。公開対象: /health、/mcp、/slack/events。
IBM Code Engine
./deploy_code_engine.sh
./test_code_engine.sh
ツールキットを登録します:
orchestrate toolkits add -k mcp -n slack_wxo_gateway \
--url "https://YOUR-HOST/mcp" \
--transport streamable_http \
--tools "*"
MCP ツール(14 個)
設定: list_bindings、upsert_binding
Slack: list_slack_channels、list_recent_messages、list_thread_replies、get_message_context、post_thread_reply、set_typing_indicator
WxO: list_wxo_agents、invoke_wxo_agent
運用: poll_once、get_gateway_status、get_recent_logs、run_diagnostics_tool
ボットのスコープ:channels:read、groups:read、reactions:write(追加後、Slack アプリを再インストールしてください)。
エージェント:
| エージェント | 役割 |
|---|---|
agent.yaml → slack_gateway_test_agent | ツールキット全体のスモークテスト |
agents/slack_gateway_ops_agent.yaml | Day-2 運用/ルーティング |
agents/slack_gateway_answer_agent.yaml | チャネルでの回答(gateway_thread) |
セットアップ(Slack + WxO): SETUP.md — 管理 UI → Setup からも利用できます
ユースケース+テスト計画: USE_CASES.md
公開(npm / GitHub): PUBLISH.md
返信モード
gateway_thread(デフォルト) — ポーラー/Events → Runs API → ゲートウェイがスレッド内で chat.postMessage を実行します。回答専用エージェント(done なし)を使用してください。
agent_tools — ゲートウェイはエージェントを起動するだけです。エージェントは独自の Slack ツールを使用します。
Cursor / VS Code / Bob / Antigravity / Claude
See docs/ide/ for each client. Quick remote bridge:
{
"mcpServers": {
"slack-wxo-gateway": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://YOUR-HOST/mcp"]
}
}
}
Package identity:
- npm:
@markusvankempen/slack-wxo-mcp-gateway - MCP:
io.github.markusvankempen/slack-wxo-mcp-gateway - Site: https://markusvankempen.github.io/
License
Apache-2.0 — © Markus van Kempen
https://markusvankempen.github.io/ · https://github.com/markusvankempen
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。