slackcli
  
对于AI,由AI。 Slack CLI和MCP服务器从头开始构建,用于LLM驱动的代理和编程访问。
为什么是slackcli?
大多数Slack工具都是为人类构建的。slackcli是为代理构建的。每一个设计决策——JSON优先输出、结构化错误代码、自动分页、速率限制重试——都是为了让LLM可以在不需要手动的情况下与Slack可靠地交互。将其作为MCP服务器插入,您的AI代理将获得Slack的超能力。使用 --read-only 当你需要护栏时,选择模式。
快速开始
- 创建Slack应用程序 并使用所需的范围将其安装到您的工作区(例如。
channels:read,chat:write,search:read). - 获取Bot或用户OAuth令牌(
xoxb-...)从 OAuth和权限. - 运行:
brew install jackchuka/tap/slackcli
export SLACK_TOKEN=xoxb-your-token
slackcli channels list特性
- CLI命令 用于频道、消息、用户、文件、反应和搜索
- MCP服务器 (stdio传输)用于AI代理集成
- JSON第一个输出 针对LLM消费进行了优化,具有TTY感知表回退功能
- 费率限制处理 自动重试
- 错误分类 带有结构化错误代码
- 分页 支持所有列表操作
- 只读模式 防止AI代理意外写入
安装
自制:
brew install jackchuka/tap/slackcli或者通过Go:
go install github.com/jackchuka/slackcli/cmd/slackcli@latest或者从源代码构建:
make build认证
通过环境变量或CLI设置Slack令牌:
# Environment variable
export SLACK_TOKEN=xoxb-your-token
# Or use the auth command
slackcli auth login --token xoxb-your-token
# With a named workspace
slackcli auth login --token xoxb-your-token --name my-workspace令牌解析顺序: --token 旗帜> SLACK_TOKEN env>存储的配置。
用法
命令行界面
# Channels
slackcli channels list
slackcli channels info C1234567890
slackcli channels create new-channel
# Messages
slackcli messages list --channel C1234567890
slackcli messages send --channel C1234567890 --text "Hello"
slackcli messages search --query "important"
# Users
slackcli users list
slackcli users info U1234567890
# Files
slackcli files list
slackcli files upload --channel C1234567890 --file ./report.pdf
# Reactions
slackcli reactions add --channel C1234567890 --timestamp 1234567890.123456 --name thumbsup
slackcli reactions list --user U1234567890MCP服务器
启动MCP服务器以进行AI代理集成:
slackcli mcp serve在MCP客户端(例如Claude Desktop)中配置:
{
"mcpServers": {
"slack": {
"command": "slackcli",
"args": ["mcp", "serve"],
"env": {
"SLACK_TOKEN": "xoxb-your-token"
}
}
}
}可用的MCP工具:
| 类别 | 工具 |
|---|---|
| 频道 | list_channels, get_channel_info, create_channel, archive_channel, invite_to_channel, kick_from_channel, set_channel_topic, set_channel_purpose |
| 留言 | list_messages, send_message, edit_message, delete_message, search_messages |
| 用户 | list_users, get_user_info, get_user_presence |
| 反应 | add_reaction, remove_reaction, list_reactions |
| 文件 | list_files, get_file_info, delete_file |
| 认证 | auth_test |
只读模式
使用 --read-only 限制为只读操作。这可以防止AI代理意外发送消息、删除文件或修改频道。
命令行界面 --写入命令在执行前被拒绝:
slackcli --read-only channels list # works
slackcli --read-only messages send ... # blocked
# Error: command "slackcli messages send" is a write operation and cannot be used in read-only modeMCP服务器 --编写工具完全隐藏(AI代理永远看不到它们):
{
"mcpServers": {
"slack-readonly": {
"command": "slackcli",
"args": ["--read-only", "mcp", "serve"],
"env": {
"SLACK_TOKEN": "xoxb-your-token"
}
}
}
}只读工具(始终可用): auth_test, list_channels, get_channel_info, list_messages, list_users, get_user_info, get_user_presence, list_reactions, list_files, get_file_info, search_messages.
写入工具(以只读模式隐藏): create_channel, archive_channel, invite_to_channel, kick_from_channel, set_channel_topic, set_channel_purpose, send_message, edit_message, delete_message, add_reaction, remove_reaction, delete_file.
输出格式
# Force JSON output
slackcli channels list -o json
# Force table output
slackcli channels list -o table默认值:TTY为table,管道输出为JSON。
许可证
麻省理工学院

