
Slack ↔ WxO MCP Gateway
io.github.markusvankempenPublished by GitHub account markusvankempenv1.0.3Updated Oct 24, 2026
Lifts WxO Slack limits: every-message wake-up, multi-channel MCP. https://markusvankempen.github.io/
Overview
A local gateway that connects Slack channels to watsonx Orchestrate agents and exposes Slack, WxO and ops tools to MCP clients.
- What you can do
- Manage channel-to-agent bindings and view the current configuration table (list_bindings, upsert_binding). Read Slack channels, recent messages, thread replies and message context, and post thread replies or typing indicators. List watsonx Orchestrate agents and invoke a bound agent run. Run a poll cycle, check gateway status, read recent logs and run Slack/WxO diagnostics.
- When to use it
- Use it when you want Slack messages in several channels routed to different watsonx Orchestrate agents, with replies posted back in-thread, or when an IDE or agent toolkit needs MCP access to Slack and WxO operations from one host.
- Requirements
- Runs locally via npx (Node 18+ and Python 3.10+ per the README). Needs SLACK_BOT_TOKEN, WXO_API_KEY and WXO_INSTANCE_URL, optionally SLACK_SIGNING_SECRET for Events mode and WXO_AGENT_ID as a default agent. Slack bot scopes channels:read, groups:read and reactions:write are required. GATEWAY_TRANSPORT selects stdio or streamable-http.
Installation
In SourceWeft
- Open Slack ↔ WxO MCP Gateway in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Slack ↔ WxO MCP Gateway
Author: Markus van Kempen
Email: [email protected] · [email protected]
Web: https://markusvankempen.github.io/ · GitHub
npm: @markusvankempen/slack-wxo-mcp-gateway · MCP: io.github.markusvankempen/slack-wxo-mcp-gateway
This GitHub repo is documentation + registry metadata. It does not include the runnable application source.
Install / run via npm:npx -y @markusvankempen/slack-wxo-mcp-gateway· Site: https://markusvankempen.github.io/
Pitch: MCP gateway that lifts watsonx Orchestrate Slack limitations — every-message wake-up, multi-channel→multi-agent routing, clean in-thread replies, and a streamable-http toolkit for WxO + Cursor / VS Code / Bob / Antigravity — without replacing your agents.
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
One config site: map many Slack channels → many WxO agents.
Poller (and optional Slack Events) wake agents.
Same host exposes an MCP toolkit (/mcp) for WxO / Cursor / other clients.
Deep dive: Why this MCP — lifting WxO limits
Architecture at a glance
Why this approach (WxO limits → lift)
WxO stays the brain (LLMs, skills, flows). This gateway is the Slack + routing + MCP edge.
Bring-your-own agent frameworks: docs/frameworks/ (LangGraph, LlamaIndex, OpenAI Agents).
npm / MCP identity
Full keyword list lives in package.json for npm discoverability.
Publish & run modes (A–D)
One package / one image — pick a mode (see docs/PUBLISH-MODES.md):
Deep guides: docs/local-ngrok/ · docs/code-engine/ · docs/ide/
Index: docs/README.md · Setup: SETUP.md
Copy-paste IDE JSON: examples/mcp/
Agent frameworks (LangGraph · LlamaIndex · OpenAI Agents)
Connect frameworks to this MCP — do not embed them in the gateway.
Install (npm / npx) — not from this repo
Requires Node 18+ and Python 3.10+. Env template: .env.example. Guides: local-ngrok · code-engine.
Mental model
Multi-channel routing:
Message path (reply_mode: gateway_thread):
Same host also serves MCP at /mcp and the admin UI at /.
Config (config.yaml)
Secrets: use ${ENV_VAR} (loaded from .env).
Endpoints
Admin dashboard auth
Protects / and /api/*. Public: /health, /mcp, /slack/events.
IBM Code Engine
Register the toolkit:
MCP tools (14)
Config: 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
Ops: poll_once, get_gateway_status, get_recent_logs, run_diagnostics_tool
Bot scopes: channels:read, groups:read, reactions:write (reinstall Slack app after adding).
Agents:
Setup (Slack + WxO): SETUP.md — also live in admin UI → Setup
Use cases + test plan: USE_CASES.md
Publish (npm / GitHub): PUBLISH.md
Reply modes
gateway_thread (default) — poller/Events → Runs API → gateway chat.postMessage in thread. Use the answer-only agent (no done).
agent_tools — gateway only starts the agent; agent uses its own Slack tools.
Cursor / VS Code / Bob / Antigravity / Claude
See docs/ide/ for each client. Quick remote bridge:
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
Source: README.md at commit a6ed8ab
Tools
0Version history
1- v1.0.3LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts