返回市场
Slack-MCP服务器

Slack-MCP服务器

作者:duolingo2 星标更新:2025-11-22

项目介绍

Slack MCP 服务器

一个只读的 MCP(模型上下文协议)服务器,用于 Slack,并支持 OAuth 认证和多用户会话。

License Python 3.10+

演示

https://github.com/user-attachments/assets/211bd428-209f-461a-b9a1-9cc85fd7c438

可用工具

  • slack_get_channel_messages - 从频道中检索消息
  • slack_get_thread_replies - 获取对话线程回复
  • slack_search_messages - 使用过滤器进行高级消息搜索
  • slack_get_users - 列出工作区用户或获取特定个人资料
  • slack_get_channels - 列出频道或获取详细信息
  • slack_get_oauth_url - 生成 OAuth 授权 URL

快速开始

1. 创建 Slack 应用

  1. 访问 Slack API 应用 并创建一个新的应用
  2. 应用凭证 下,复制你的 客户端ID客户端密钥
  3. 导航到 OAuth & 权限 并添加这些 用户令牌范围channels:history groups:history im:history mpim:history channels:read groups:read im:read mpim:read users:read users:read.email search:read
  4. OAuth & 权限 下添加 重定向 URL
    • 对于本地测试:使用 ngrok 或类似的 HTTPS 代理(例如:https://abc123.ngrok.io/oauth2callback)。参见下面的本地开发设置。
    • 对于生产环境:https://your-domain.com/oauth2callback

2. 安装

uv sync

3. 本地开发设置(HTTPS 代理)

Slack 要求 OAuth 回调使用 HTTPS。对于本地开发,可以使用 ngrok 或类似的 HTTPS 代理:

# 访问 https://ngrok.com/ 下载 ngrok 并启动代理
ngrok http 8001

复制 HTTPS 转发 URL(例如,https://abc123.ngrok.io/oauth2callback),并将其添加到你的 Slack 应用设置中的重定向 URL 中。

4. 配置

设置所需的环境变量:

export SLACK_CLIENT_ID="your_client_id"
export SLACK_CLIENT_SECRET="your_client_secret"
# 生产环境中使用 https://your-domain.com。
export SLACK_MCP_BASE_URI="http://localhost"
# 生产环境中使用 https://your-domain.com。
export SLACK_EXTERNAL_URL="https://abc123.ngrok.io"
# 可选,如果你希望在不同的端口上运行 MCP 服务器。
export SL
ACK_MCP_PORT=8001

5. 运行服务器

uv run python main.py

默认情况下,服务器将在 http://localhost:8001 上启动。确保 ngrok 代理与之一起运行以使 OAuth 正常工作。

6. 配置你的 MCP 客户端

在你的 MCP 客户端配置中添加(例如,Cursor 的 ~/.cursor/mcp.json):

{
  "mcpServers": {
    "slack": { "url": "http://localhost:8001/mcp", "transport": "http" }
  }
}

7. 认证

调用 slack_get_oauth_url() MCP 工具以获取授权 URL,在浏览器中访问它,并在首次使用 MCP 服务器时批准访问权限。

部署

对于生产部署,你可以将其放在 Docker 中运行:

docker build -t slack-mcp .
docker run -p 8001:8001 \
  -e SLACK_CLIENT_ID="your_client_id" \
  -e SLACK_CLIENT_SECRET="your_client_secret" \
  -e SLACK_MCP_BASE_URI="https://your-domain.com" \
  -e SLACK_EXTERNAL_URL="https://your-domain.com" \
  slack-mcp

开发

使用 uv run pytest 运行测试。

许可证

本项目根据 Apache 许可证 2.0 发布 - 查看 LICENSE 文件了解详情。

Duolingo 正在招聘!申请职位请访问 https://www.duolingo.com/careers