使用说明
Slack MCP服务器
使用FastMCP构建的Slack模型上下文协议(MCP)服务器。此服务器提供对Slack数据(包括消息、通道和用户)的只读访问,并通过承载令牌身份验证保护所有API端点。
特性
- 列出工作区中的所有频道
- 获取特定频道的详细信息
- 从频道读取消息
- 列出工作区中的所有用户
- 获取特定用户的详细信息
- 通过承载令牌身份验证实现API安全访问
设置
-
安装依赖项:
pip install -r requirements.txt -
创建一个
.env使用您的Slack机器人令牌的文件:cp sample.env .env -
编辑
.env文件并添加您的Slack Bot用户OAuth令牌:SLACK_BOT_TOKEN=xoxb-your-token-here服务器使用JWT(JSON Web令牌)进行身份验证。你 必须 还可以将RSA密钥对添加为base64编码的PEM字符串:
RSA_PRIVATE_KEY="<base64-encoded-PEM-private-key>" RSA_PUBLIC_KEY="<base64-encoded-PEM-public-key>"- 如果没有这些值,请运行服务器或
python generate_client_token.py一次;它将打印出base64编码的密钥以添加到您的.env文件。 - 钥匙 必须 采用base64编码(不是原始PEM)。
- 如果没有这些值,请运行服务器或
获取Slack Bot令牌
- 首选 https://api.slack.com/apps
- 创建新应用程序(或使用现有应用程序)
- 导航到“OAuth和权限”
- 将以下范围添加到您的机器人中:
channels:readchannels:historygroups:readgroups:historyusers:read
- 将应用程序安装到您的工作区
- 复制以开头的“Bot用户OAuth令牌”
xoxb-
运行服务器
使用以下命令启动服务器:
python main.py
服务器将在以下时间运行 http://localhost:8000。默认情况下,所有API端点都使用承载令牌身份验证进行保护。
可用的API工具
服务器公开了以下MCP工具:
list_channels
列出工作区中的所有频道。
get_channel_info
获取特定频道的详细信息。
获取消息
从支持分页的频道获取消息。
list_users
列出工作区中的所有用户。
get_user_info
获取特定用户的详细信息。
认证
对MCP服务器的所有请求都需要JWT承载令牌身份验证。启动服务器时,它将显示一个可用于身份验证的JWT令牌。
要验证您的请求,请在服务器提供的令牌中包含以下标头:
Authorization: Bearer eyJhbGciOiJS...your-jwt-token...XwQ
这既适用于HTTP API端点,也适用于服务器端事件(SSE)连接。
卷曲示例
curl -H "Authorization: Bearer eyJhbGciOiJS...your-jwt-token...XwQ" http://localhost:8000/mcp/list
SSE的JavaScript示例
const eventSource = new EventSource('http://localhost:8000/sse', {
headers: {
'Authorization': 'Bearer eyJhbGciOiJS...your-jwt-token...XwQ'
}
});
注: JWT令牌是在服务器启动时生成的。如果重新启动服务器,它将使用相同的密钥对(存储在
jwt_keys.json),但您可能需要从服务器输出中获取新令牌。
与LLM集成
此MCP服务器可以与LLM集成,为它们提供对Slack数据的只读访问。LLM可以查询通道、用户和消息,但不能发送消息或修改任何数据。与LLM集成时,请确保将API令牌安全地传递给建立连接的客户端代码。