使用说明
Slack MCP服务器
用于Slack API与HTTP传输集成的MCP服务器。
身份验证方法
选项1:机器人/用户令牌(推荐)
标准Slack API令牌。需要一个具有适当范围的Slack应用程序。
export SLACK_TOKEN=xoxb-your-bot-token
# or
export SLACK_TOKEN=xoxp-your-user-token
选项2:基于Cookie的身份验证(用户模拟)
使用浏览器会话Cookie模拟登录用户。在以下情况下有用:
- 您没有Slack应用程序的管理员批准
- 您需要以特定用户的身份行事
- 您想访问用户所属的私人频道
从Chrome提取令牌
-
打开Chrome工具 在Slack工作区上:
- 导航到
https://your-workspace.slack.com - 按
F12或单击鼠标右键→ “检查” - 去 应用 标签
- 导航到
-
得到
xoxc令牌:- 在DevTools中,转到 控制台 标签
- 粘贴并运行:
JSON.parse(localStorage.localConfig_v2).teams[Object.keys(JSON.parse(localStorage.localConfig_v2).teams)[0]].token - 复制
xoxc-...令牌
-
得到
xoxd饼干:- 在DevTools中,转到 应用 → Cookie →
https://your-workspace.slack.com - 查找名为的cookie
d - 复制 价值 (开始于
xoxd-...) - ⚠️ 该值是URL编码的——保持原样
- 在DevTools中,转到 应用 → Cookie →
-
获取工作区详细信息:
- 团队ID:在Console中,运行:
JSON.parse(localStorage.localConfig_v2).teams[Object.keys(JSON.parse(localStorage.localConfig_v2).teams)[0]].id - 用户ID:运行:
JSON.parse(localStorage.localConfig_v2).teams[Object.keys(JSON.parse(localStorage.localConfig_v2).teams)[0]].user_id - 领域:您的Slack URL(例如。,
your-workspace.slack.com)
- 团队ID:在Console中,运行:
-
创建您的env文件:
cp cookie-tokens.env.example /path/to/secrets/cookie-tokens.env # Edit the file with your extracted values
使用Cookie客户端
为API快速调用提供了一个shell脚本:
# Set up your tokens
source /path/to/secrets/cookie-tokens.env
# Test authentication
./scripts/slack-cookie-client.sh auth
# List channels
./scripts/slack-cookie-client.sh channels 20
# Get channel history
./scripts/slack-cookie-client.sh history C0123ABCDEF 10
# Send a message
./scripts/slack-cookie-client.sh send C0123ABCDEF "Hello from the script!"
# Search messages
./scripts/slack-cookie-client.sh search "keyword"
# List users
./scripts/slack-cookie-client.sh users 50
令牌到期
Cookie令牌在以下情况下过期:
- 您在浏览器中注销了Slack
- 您更改了密码
- Slack轮换会话令牌(通常每几周一次)
当令牌过期时,重复提取过程。
设置(标准令牌)
-
获取Slack令牌(Bot令牌
xoxb-...或用户令牌xoxp-...) -
配置环境:
export SLACK_TOKEN=xoxb-your-token
- 运行:
npm install
npm run start:http
码头工人
docker build -t slack-mcp .
docker run -d -p 3929:3929 -e SLACK_TOKEN=xoxb-... slack-mcp
端点
GET /health-健康检查GET /tools-列出可用工具POST /call-调用工具
可用工具
| 工具 | 说明 |
|---|---|
slack_list_channels |
列出频道 |
slack_get_channel_history |
获取频道消息 |
slack_post_message |
发送消息 |
slack_update_message |
编辑消息 |
slack_delete_message |
删除消息 |
slack_add_reaction |
添加表情符号反应 |
slack_get_user_info |
获取用户详细信息 |
slack_list_users |
列出工作区用户 |
slack_search_messages |
搜索邮件 |
示例
# List channels
curl -X POST http://localhost:3929/call \
-H "Content-Type: application/json" \
-d '{"name": "slack_list_channels", "arguments": {}}'
# Post message
curl -X POST http://localhost:3929/call \
-H "Content-Type: application/json" \
-d '{"name": "slack_post_message", "arguments": {"channel": "C123", "text": "Hello!"}}'
需要令牌范围
对于Bot令牌(xoxb-...):
channels:read,channels:historychat:writeusers:readreactions:writesearch:read(用于搜索)
用户令牌(xoxp-...):
- 与上述相同,加上您的用例的任何其他范围
Cookie授权:
- 无需作用域--继承登录用户的所有权限
