Labsco
MCP SERVER

Slack Webhook

by masseater

One tool, one job: post a message to a Slack channel from an assistant, over an incoming webhook.

Team Chat Platforms
Summary
Deliberately one-directional, which is why it is simple.

An incoming webhook can post and nothing else — it cannot read the channel, list members or see history — so the credential you hand over is narrowly scoped by construction. That makes this the right size for build notifications and status pings, and the wrong tool for anything conversational. The per-call URL override is the small piece of flexibility worth knowing about: one server can reach several channels if you pass the target explicitly.

What it is

A small MCP server that sends messages to Slack through an incoming webhook. There is no Slack app to install and no OAuth scope to negotiate — the webhook URL is the whole credential, and it is bound to one channel.

What you get
  • `send_slack_message` posts to the configured channel, taking the `message` text
  • An optional `format` of `text` or `markdown`, defaulting to `markdown`
  • An optional `webhook_url` on the call itself, to override the default and post somewhere else
  • Webhook URLs are validated against Slack's format before use, and errors are returned without exposing the URL
Requirements

Deno installed on the machine, and an incoming webhook created in your Slack workspace for the channel you want to post to. Set `SLACK_WEBHOOK_URL` in the client config and launch `src/index.ts` with `deno run --allow-net --allow-env --allow-read`, or compile a standalone binary first with `deno task build` and point the config at that instead.