使用说明
Slack代理CLI
用于Slack API集成的CLI和模型上下文协议(MCP)服务器。使用 slack 从终端获取脚本和代理工作流,或 slack mcp 通过stdio MCP集成AI助手。
AI代理: 看 代理商.md 用于安装、身份验证、所有命令、MCP工具名称和工作流示例。
特征
渠道管理
- 列出所有可访问的频道(公共/私人)
- 获取频道信息和详细信息
- 创建新频道
- 存档频道
- 加入/退出频道
- 设置频道主题
- 获取频道消息历史记录
消息传递
- 将消息发布到频道
- 回复消息线程
- 更新和删除邮件
- 添加和删除表情符号反应
- 获取消息反应
直接消息(DM)
- 向用户发送直接消息
- 列出DM和组DM对话
- 获取DM对话历史记录
- 打开新的DM对话
搜索(需要用户令牌)
- 在工作区中搜索邮件
- 搜索文件
- 邮件和文件的组合搜索
用户管理
- 列出工作区用户
- 获取用户配置文件信息
- 检查用户状态/在线状态
- 通过电子邮件查找用户
- 获取机器人和团队信息
先决条件
- Python 3.10或更高版本
- 具有管理员权限的Slack工作区,用于创建应用程序
- 用于大多数操作的Slack Bot令牌(xoxb-…)
- 用于搜索功能的Slack用户令牌(xoxp-…)
安装
npm(推荐)
需要 Node.js 18+ 和 Python 3.10+.
npm install -g slack-agent-cli
slack --version
MCP通过全局安装:
slack mcp
来源(Python)
1.克隆存储库
git clone https://github.com/bcharleson/slack-agent-cli.git
cd slack-agent-cli
2.创建虚拟环境
python3.12 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
3.安装依赖项
pip install -e .
或根据要求安装:
pip install -r requirements.txt
Slack应用程序设置
1.创建Slack应用程序
- 首选 Slack API应用程序
- 点击“创建新应用”→ “从头开始”
- 命名您的应用程序并选择您的工作区
2.配置Bot令牌作用域
导航至 OAuth和权限 并添加这些Bot令牌范围:
频道
channels:read-查看基本频道信息channels:write-管理公共渠道channels:history-查看公共频道中的消息groups:read-查看私人频道groups:write-管理私人频道groups:history-查看私人频道中的消息
消息传递
chat:write-发送消息reactions:read-查看反应reactions:write-添加反应
直接消息
im:read-查看DM信息im:write-启动DMim:history-查看DM历史记录mpim:read-查看组DM信息mpim:write-启动组DMmpim:history-查看组DM历史记录
用户
users:read-查看用户users:read.email-查看用户电子邮件
3.配置用户令牌范围(用于搜索)
如果您需要搜索功能,请添加以下用户令牌范围:
search:read-搜索邮件和文件
4.安装应用程序
- 点击“安装到工作区”
- 授权应用程序
- 复制 Bot用户OAuth令牌 (开始于
xoxb-) - 如果使用搜索,也要复制 用户OAuth令牌 (开始于
xoxp-)
配置
环境变量
创建 .env 项目根目录中的文件:
# Required: Bot Token for most operations
SLACK_BOT_TOKEN=xoxb-your-bot-token-here
# Optional: User Token for search functionality
SLACK_USER_TOKEN=xoxp-your-user-token-here
您可以复制示例文件:
cp .env.example .env
# Then edit .env with your tokens
用法
命令行界面
安装后 slack 命令公开反映MCP工具的分组子命令:
# Channels
slack channels list
slack channels info C01234567
slack channels history C01234567 --limit 10
# Messages
slack messages post C01234567 "Hello from the CLI"
slack messages reply C01234567 1710000000.000100 "Thread reply"
# DMs
slack dms send U01234567 "Quick note from CLI"
slack dms list
# Search (requires SLACK_USER_TOKEN)
slack search messages "project update in:#general"
# Users / workspace
slack users list
slack users lookup brandon@example.com
slack workspace team
# Output formatting
slack --pretty channels list
slack --output json --quiet channels list
全局选项:
--bot-token/SLACK_BOT_TOKEN--user-token/SLACK_USER_TOKEN--output json|pretty(默认值:json)--pretty速记--quiet仅用于退出代码自动化
MCP服务器
启动stdio MCP服务器:
slack mcp
# or
slack-agent-cli mcp
运行服务器(开发)
source venv/bin/activate
python -m slack_agent_cli.cli mcp
Claude桌面配置
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"slack": {
"command": "/path/to/slack-agent-cli/venv/bin/python",
"args": ["-m", "slack_agent_cli"],
"cwd": "/path/to/slack-agent-cli",
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_USER_TOKEN": "xoxp-your-user-token"
}
}
}
}
替换 /path/to/slack-agent-cli 安装的实际路径。
光标IDE配置
添加到光标MCP设置(~/.cursor/mcp.json):
{
"mcpServers": {
"slack-agent-cli": {
"command": "slack",
"args": ["mcp"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_USER_TOKEN": "xoxp-your-user-token"
}
}
}
}
或者进行全局安装:
{
"mcpServers": {
"slack-agent-cli": {
"command": "slack",
"args": ["mcp"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_USER_TOKEN": "xoxp-your-user-token"
}
}
}
}
可用工具
渠道工具
| 工具 | 说明 |
|---|---|
list_channels |
列出所有可访问的频道 |
get_channel_info |
获取特定频道的详细信息 |
create_channel |
创建新频道 |
archive_channel |
存档频道 |
get_channel_history |
获取消息历史记录 |
join_channel |
加入频道 |
leave_channel |
留下一个频道 |
set_channel_topic |
设置频道主题 |
消息工具
| 工具 | 说明 |
|---|---|
post_message |
向频道发布消息 |
reply_to_thread |
在帖子中回复 |
get_thread_replies |
在一个帖子中获取所有回复 |
add_reaction |
添加表情符号反应 |
remove_reaction |
删除表情符号反应 |
get_message_reactions |
获取消息的反应 |
update_message |
更新现有邮件 |
delete_message |
删除消息 |
DM工具
| 工具 | 说明 |
|---|---|
send_dm |
发送直接消息 |
list_conversations |
列出DM对话 |
get_dm_history |
获取DM历史记录 |
open_dm |
打开DM对话 |
搜索工具(需要用户令牌)
| 工具 | 说明 |
|---|---|
search_messages |
搜索邮件 |
search_files |
搜索文件 |
search_all |
搜索邮件和文件 |
用户工具
| 工具 | 说明 |
|---|---|
list_users |
列出工作区用户 |
get_user_info |
获取用户详细信息 |
get_user_presence |
检查用户是否在线 |
lookup_user_by_email |
通过电子邮件查找用户 |
get_user_profile |
获取详细资料 |
get_bot_info |
获取机器人身份 |
get_team_info |
获取工作区信息 |
测试
使用MCP检查器
npx @modelcontextprotocol/inspector python -m slack_agent_cli
这将打开一个web界面,以交互方式测试所有可用工具。
手动测试
- 启动服务器
- 使用Claude Desktop或其他MCP客户端
- 尝试基本命令:
- “列出工作区中的所有频道”
- “获取#普通频道的历史记录”
- “向#test频道发送一条消息,说你好!”
故障排除
“SLACK_BOT_TOKEN未设置”
确保您的 .env 文件存在并包含令牌,或在MCP客户端配置中设置它。
“搜索需要用户令牌”
搜索操作需要用户令牌(SLACK_USER_TOKEN).将用户令牌范围添加到您的Slack应用程序中并包含令牌。
“channel_not_found”
机器人可能无法访问该频道。确保:
- 频道存在
- 机器人是私人频道的成员
- 通道ID正确(使用
list_channels查找ID)
“缺少作用域”
你的Slack应用缺少所需的权限。检查上面的OAuth作用域部分,并在Slack应用程序设置中添加缺少的作用域。
发展
项目结构
slack-agent-cli/
├── src/
│ └── slack_agent_cli/
│ ├── cli/
│ │ └── main.py # Click CLI + `slack mcp`
│ ├── core/
│ │ └── output.py # JSON/pretty output helpers
│ ├── operations/ # Shared handlers for CLI + MCP
│ │ ├── channels.py
│ │ ├── messages.py
│ │ ├── search.py
│ │ └── users.py
│ ├── tools/ # MCP tool registration
│ ├── utils/
│ │ └── slack_client.py
│ └── server.py # FastMCP stdio server
├── pyproject.toml
├── package.json
├── AGENTS.md # AI agent guide (commands, MCP, workflows)
├── requirements.txt
├── .env.example
└── README.md
添加新工具
- 在中创建或编辑文件
src/slack_agent_cli/tools/ - 使用定义工具
@mcp.tool()装饰器 - 通过调用注册函数在服务器中注册工具
许可证
MIT许可证
贡献
欢迎投稿!请随时提交拉取请求。
