Slack notify
The optional notify MCP tool sends messages to Slack with chat.postMessage. Use it for workflow milestones, batch completions, and alerts so agents do not need to call execute("chat_postMessage", …) for every post.
- Enable:
CLAWQL_ENABLE_NOTIFY=1(ortrue/yes). - Spec: The loaded OpenAPI merge must include Slack (operation id
chat_postMessage), e.g.CLAWQL_PROVIDER=slack,CLAWQL_BUNDLED_PROVIDERScontainingslack, or a default merge that already includes Slack. - Auth:
CLAWQL_SLACK_TOKEN/SLACK_BOT_TOKEN/ … — same rules asexecutefor theslacklabel. Minimum scopechat:write.
Canonical guide (setup, notify vs execute, thread replies, Block Kit, errors, Cursor JSON, Helm): notify-tool.md · mcp-tools.md § notify · issue #77.
Quick examples
Minimal completion message:
{
"channel": "C0123456789",
"text": "✅ Q1 invoice import finished — 14 files archived."
}
Thread reply (use the parent message ts from Slack):
{
"channel": "C0123456789",
"thread_ts": "1713898000.000100",
"text": "Step 3/3: import complete — doc id `5102`."
}
Public channel by name (bot must be a member):
{
"channel": "#releases",
"text": "*Deploy* succeeded for `v4.0.0`."
}
Slack sometimes returns {"ok":false,"error":"not_in_channel"} with HTTP 200. The notify tool maps that to a tool result error string plus the parsed slack object so the model can retry or ask you to /invite the bot.
Testing
Repo tests: src/clawql-notify.test.ts, src/server.test.ts. Follow-up issues: #136–#140 — index notify-tool-test-backlog.md.
See also Tools for how notify fits alongside search, execute, memory_*, cache, and audit.
