使用说明
Slack MCP服务器
Slack 在工作区中搜索消息MCP (Model Context Protocol) 服务器。AI 代理Slack 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
概要
此项目包括:MCP 实施符合协议的服务器Slack Web API 对较大场景进行渲染期间已观察到该故障。Claude Desktop 或者其他MCP 可从客户端使用。
主要功能
- ✅ MCP 遵守协议:标准MCP 服务器实施
- ✅ Slack 邮件搜索:在工作区中查找消息
- ✅ 频道滤波:搜索特定频道
- ✅ 支持汇率限制: Slack API 合理的汇率限制
- ✅ 错误处理:统一的错误处理策略
- ✅ 记录:搜索请求统计信息和日志记录
前提条件
- 包子 v1.2.21 以降
- 已启用Slack User Token (
xoxb-或xoxp-),模板名称将采用不同的格式
Slack User Token 所需权限
具有以下权限Slack User Token 需要:
channels:history:显示用户公共频道中的消息和内容channels:read:显示工作区中公共通道的基本信息groups:history:显示用户专用通道中的消息和内容groups:read:显示用户专用频道的基本信息im:history:显示用户直接消息中的消息和内容im:read:显示用户直接消息的基本信息mpim:history:显示用户组直接消息中的消息和内容mpim:read:显示用户组直接消息的基本信息search:read:查找工作区内容
安装,安装
1.克隆存储库
git clone https://github.com/paterapatera/slack-mcp.git
cd slack-mcp
2.安装相关性
bun install
3.设置环境变量
必需的环境变量:
export SLACK_USER_TOKEN="xoxb-your-token-here"
可选环境变量:
export SLACK_TEAM_ID="T1234567890" # チーム/ワークスペース ID
export SLACK_CHANNEL_IDS="C1234567890,C0987654321" # 検索対象チャンネル(カンマ区切り)
4.构建
bun run build
构建后dist/index.js 将条目添加到文档注册表。
使用方法
bun link 安装
在本地开发环境中使用时bun link 使用:
# プロジェクトディレクトリで実行
bun link
# グローバルにリンクされた後、どこからでも実行可能
slack-mcp
指定环境变量时:
SLACK_USER_TOKEN="xoxb-your-token" slack-mcp
MCP 用作客户端
这个服务器MCP 客户端(例如:Claude Desktop, MCP Inspector)中所述修改相应参数的值。
Claude Desktop 中的设置
claude_desktop_config.json 添加:
bun link 中所述修改相应参数的值(推奨):
{
"mcpServers": {
"slack-mcp": {
"command": "slack-mcp",
"env": {
"SLACK_USER_TOKEN": "xoxb-your-token-here",
"SLACK_TEAM_ID": "T1234567890",
"SLACK_CHANNEL_IDS": "C1234567890,C0987654321"
}
}
}
}
bun link 中描述的相应参数的值slack-mcp 命令可用。
使用本地路径时:
{
"mcpServers": {
"slack-mcp": {
"command": "bun",
"args": ["/path/to/slack-mcp/dist/index.js"],
"env": {
"SLACK_USER_TOKEN": "xoxb-your-token-here",
"SLACK_TEAM_ID": "T1234567890",
"SLACK_CHANNEL_IDS": "C1234567890,C0987654321"
}
}
}
}
直接実行
bun dist/index.js
但是,通常MCP 通过客户端使用。
测试
单元测试
bun test
共运行80个测试,包括:
- 配置服务
- Slack API客户端
- 搜索服务
- MCP 服务器
- 日志服务
- 集成测试
MCP Inspector 使用E2E 测试
MCP Inspector 单击功能区上的MCP_INSPECTOR_GUIDE.md 来修改标记元素的显示属性。
简单步骤:
# 1. 環境変数を設定
export SLACK_USER_TOKEN="xoxb-your-token-here"
# 2. ビルド
bun run build
# 3. MCP Inspector を起動
bun run inspector
或者,使用测试脚本:
./scripts/test-with-inspector.sh
了解更多信息 MCP_INSPECTOR_GUIDE.md 来修改标记元素的显示属性。
体系结构
主要组件
- McpServer: MCP 协议实现和工具注册
- SlackAPI客户端: Slack Web API 通信和速率限制处理
- 搜索服务:消息搜索业务逻辑
- 配置服务:加载和验证环境变量
- 记录服务:管理日志记录和统计信息
项目结构
slack-mcp/
├── src/
│ ├── index.ts # エントリーポイント
│ └── services/
│ ├── mcp-server.ts # MCP サーバー実装
│ ├── slack-api-client.ts # Slack API クライアント
│ ├── search-service.ts # 検索サービス
│ ├── config-service.ts # 設定管理
│ ├── logging-service.ts # ログ記録
│ └── __tests__/ # テストファイル
├── dist/ # ビルド出力
├── scripts/ # ユーティリティスクリプト
└── .kiro/ # 仕様書と設計ドキュメント
工具
search_messages
Slack 在工作区中搜索消息。
参数:
query(string, 必需:搜索查询limit(number, 可选:最大搜索结果数
返回值:
{
"messages": [
{
"text": "メッセージのテキスト",
"timestamp": "2024-01-01T00:00:00.000Z",
"channelId": "C1234567890",
"channelName": "general",
"userId": "U1234567890",
"userName": "username"
}
],
"total": 1,
"hasMore": false
}
环境变数
| 变数名 | 必须 | 说明 |
|---|---|---|
SLACK_USER_TOKEN |
✅ | Slack用户令牌(xoxb- 或 xoxp- 开始于 |
SLACK_TEAM_ID |
❌ | 团队/工作区ID |
SLACK_CHANNEL_IDS |
❌ | 搜索频道ID(逗号分隔) |
故障排除
服务器未启动
- 环境变数
SLACK_USER_TOKEN确认是否正确设置 - 标记有效的格式(
xoxb-或xoxp-)或确认 dist/index.js确认是否存在(bun run build执行)
搜索失败
- Slack API 验证标记是否有效
- 标记所需的作用域(
search:read),模板名称将采用不同的格式 - 检查网络连接
MCP Inspector 发生错误
- 日志stdout 查看项目中可用的所有族stderr ),模板名称将采用不同的格式
- 了解更多信息 MCP_INSPECTOR_GUIDE.md 请参见故障排除部分
开発
开发环境设置
# 依存関係のインストール
bun install
# 開発モードでテストを実行
bun test --watch
# ビルド
bun run build
代码样式
- TypeScript 使用
- TDD (Test-Driven Development) 方法
- 符合统一错误处理策略
许可证
国际学生中心
参考链接
貢献
这个项目是个人项目。如果有问题或改善建议Issue 中所述修改相应参数的值。
注意:此项目包括 bun link 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。npm 的明细栏样式中定义的设置。
