Slack聊天机器人服务

一款基于Slack平台的聊天机器人服务,支持天气查询、文件信息获取、网络变更解释等功能,适用于团队协作和自动化任务处理。

  • by tc18
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 tc18/slack-mcp-bot

使用说明

Step1创建松弛应用程序

配置应用程序

一旦创建了App,

首选https://api.slack.com/apps

创建新应用程序

从头开始

名称:mcp-bot

工作区:您的工作区

启用Bot权限

OAuth和权限→ Bot令牌范围 添加:

app_mentions:read
chat:write
channels:history

单击“安装到工作区”

复制:机器人用户OAuth令牌(xoxb-…)

启用事件

事件订阅

Enable Events: ✅

Request URL (we’ll add later)

Subscribe to bot events:

app_mention

.env文件

SLACK_BOT_TOKEN=xoxb-####
SLACK_SIGNING_SECRET=####

命令需要运行

uv venv
uv pip install slack-bolt fastapi uvicorn httpx python-dotenv

uv run uvicorn mcp_server:app --port 3333
uv run uvicorn slack_bot:api --port 3000

ngrok http 3000

https://dashboard.ngrok.com/

放 ngrok http 3000 url进入slack。

你会得到这样的结果:

https://abc123.ngrok.io

将Slack请求URL设置为:

https://abc123.ngrok.io/slack/events

测试代码

@mcp-bot what's the weather in austin
@mcp-bot show file info for /etc/hosts
@mcp-bot explain prod network change
@mcp-bot check vcn update

下一步:基于LLM的工具选择


This is what actually want long-term.

Router prompt (conceptual)

Given a user message, select the best tool and arguments.

Tools:
- get_weather(city)
- get_file_info(path)
- explain_network_change(change_id)

User message: "{text}"

Return JSON:
{ "tool": "...", "args": {...} }


Plug:

OpenAI

local LLM

OCI GenAI

Claude
later — tools stay unchanged.

Next natural upgrades:

1️⃣ Replace router.py with an LLM-based router
2️⃣ Auto-generate tool schema (name, args, docstring)
3️⃣ Permissions per Slack user
4️⃣ Observability (tool call tracing)
5️⃣ Feedback loop (improves routing)