mcpField
S
Slack ↔ WxO MCP Gateway

Slack ↔ WxO MCP Gateway

本地服务
markusvankempen.github.io通信协作015 周前更新

关于 Slack ↔ WxO MCP Gateway

Slack ↔ WxO MCP Gateway 将 Slack 消息路由给 Watson Orchestrate Agent,并为运维及其他客户端提供 MCP 工具集。它支持消息触发、频道到 Agent 的绑定,以及线程回复。

主要功能

  1. 01每条用户消息都可唤醒 Agent
  2. 02将多个频道路由到 Agent
  3. 03读取线程回复和上下文
  4. 04发布线程答案并过滤噪声
  5. 05管理界面、诊断与日志

适用场景

  1. 01通过频道消息触发 WxO Agent
  2. 02将支持和运维频道分配给不同 Agent
  3. 03检查网关状态和路由配置

MCP 相关

在 `/mcp` 提供 Streamable HTTP MCP 工具集,涵盖 Slack、WxO、路由、轮询、状态、日志和诊断。WxO 及 IDE 客户端等 MCP 客户端可连接使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"markusvankempen-slack-wxo-mcp-gateway": {
"command": "npx",
"args": [
"-y",
"@markusvankempen/slack-wxo-mcp-gateway"
],
"env": {
"SLACK_BOT_TOKEN": "<SLACK_BOT_TOKEN>",
"WXO_INSTANCE_URL": "<WXO_INSTANCE_URL>",
"WXO_API_KEY": "<WXO_API_KEY>",
"WXO_AGENT_ID": "<WXO_AGENT_ID>",
"GATEWAY_TRANSPORT": "<GATEWAY_TRANSPORT>",
"SLACK_SIGNING_SECRET": "<SLACK_SIGNING_SECRET>"
}
}
}
}
启动命令npx -y @markusvankempen/slack-wxo-mcp-gateway
需要配置的环境变量
SLACK_BOT_TOKEN密钥Slack Bot User OAuth Token (xoxb-…)
WXO_INSTANCE_URLwatsonx Orchestrate instance base URL
WXO_API_KEY密钥watsonx Orchestrate / MCSP API key
WXO_AGENT_IDDefault WxO agent id for bindings
GATEWAY_TRANSPORTstdio (IDE) or streamable-http (hosted). Default for npx IDE use: stdio
SLACK_SIGNING_SECRET密钥Slack signing secret (Events mode)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@markusvankempen/slack-wxo-mcp-gateway1.0.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Slack ↔ WxO MCP 网关

作者: Markus van Kempen
邮箱: [email protected] · [email protected]
网站: 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/

简介: MCP 网关,突破 watsonx Orchestrate 的 Slack 限制——每条消息唤醒、多频道→多 Agent 路由、整洁的线程内回复,以及适用于 WxO + Cursor / VS Code / Bob / Antigravity 的可流式传输 HTTP 工具包——同时无需替换你的 Agent。

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

一个配置站点: 将多个 Slack 频道映射到多个 WxO Agent。
轮询器(以及可选的 Slack Events)会唤醒 Agent。
同一主机还提供用于 WxO / Cursor / 其他客户端的 MCP 工具包(/mcp)。

深入了解:为什么选择此 MCP——突破 WxO 限制

架构概览
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 ≈ 仅支持 @提及 / 私信every-message轮询器 / Events 会在每条人工消息到达时唤醒 Agent
难以让多个频道对应多个 Agentmulti-channel multi-agent一个绑定表 + 管理界面
线程后续回复容易遗漏thread-followups读取线程回复和上下文
Slack 中会出现嘈杂的最终消息(done 等)gateway-thread no-done-noise网关发布答案并过滤噪声
Agent 需要使用具备真实 DNS 的远程工具mcp-toolkit streamable-http为 Orchestrate 工具包托管 /mcp
运维人员只能通过克隆轮询器来部署ops-self-serveMCP 工具 + 诊断 + 日志
Slack 运维仅能在 Slack / WxO UI 中进行ide-parity在 Cursor、VS Code、Bob、Antigravity、Claude 中使用相同工具

WxO 仍是大脑(大模型、技能、流程)。此网关是 Slack + 路由 + MCP 边缘层。
自带 Agent 框架: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

完整关键词列表见 package.json,方便用户在 npm 上发现此项目。


发布与运行模式(A–D)

一个包 / 一个镜像 — 选择一种模式(参见 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笔记本电脑上的 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 ideCursor / VS Code stdio 代码片段(+ --exec)
Ngrok 演示./scripts/run.sh --mode ngrokA + 隧道 + 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/

Agent 框架(LangGraph · LlamaIndex · OpenAI Agents)

将框架连接到此 MCP — 不要将它们嵌入网关。

指南重点
docs/frameworks/索引 + 检查清单
docs/frameworks/langgraph.mdLangGraph / LangChain
docs/frameworks/llamaindex.mdLlamaIndex
docs/frameworks/openai-agents.mdOpenAI 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 Agent
modepoll | events | both
reply_modegateway_thread = Runs API 调用后由网关在 Slack 线程中发帖;agent_tools = 仅启动 Agent
poll_sec / lookback_sec轮询器时间设置

密钥:使用 ${ENV_VAR}(从 .env 加载)。


端点

路径作用
/管理 UI
/mcpMCP 流式 HTTP
/slack/eventsSlack 事件订阅
/health存活状态
/api/logs日志环形缓冲区
/api/toolsMCP 工具目录
/api/diagnosticsSlack + WxO 检查
/api/poll执行一次轮询
/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

Bot 权限范围:channels:read、groups:read、reactions:write(添加权限后重新安装 Slack 应用)。

Agent:

Agent作用
agent.yaml → slack_gateway_test_agent全工具包冒烟测试
agents/slack_gateway_ops_agent.yaml日常运维 / 路由
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 在线程中发帖。使用仅负责回答的 Agent(不包含 done)。

agent_tools — 网关只启动 Agent;Agent 使用自己的 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:


License

Apache-2.0 — © Markus van Kempen
https://markusvankempen.github.io/ · https://github.com/markusvankempen

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。