这是一个生产就绪的模型上下文协议(MCP)服务器,它为 AI 助手提供了与 Slack 列表进行交互的强大工具。该服务器充当 AI 模型和 Slack 之间的桥梁,通过标准化协议实现 Slack 列表项的无缝创建、检索、过滤和管理。它使 Claude Desktop 等 AI 助手成为在 Slack 中管理任务、项目和数据的强大生产力工具。
本项目提供了一个完整的、可用于生产环境的软件包,具备以下特点:
无论你是想将 AI 与 Slack 集成的开发者,还是希望提升生产力的用户,这个 MCP 服务器都为与 Slack 列表进行强大的上下文感知交互奠定了基础。
这个 MCP 服务器提供了一组丰富的工具,用于与 Slack 列表进行交互:
按照以下步骤启动并运行你的 Slack Lists MCP 服务器。
lists:read
和 lists:write
权限的机器人令牌。lists:read
lists:write
xoxb-
开头)。这就是你的 SLACK_BOT_TOKEN
。克隆仓库并安装依赖项:
# 克隆仓库
git clone https://github.com/your-org/slack-lists-mcp-server.git
cd slack-lists-mcp-server
# 创建并激活虚拟环境
python3 -m venv .venv
source .venv/bin/activate
# 安装依赖项
pip install -r requirements.txt
通过复制示例文件创建 .env
文件:
cp .env.example .env
打开 .env
文件,设置你的 SLACK_BOT_TOKEN
:
SLACK_BOT_TOKEN=xoxb-your-bot-token-here
你可以直接从命令行运行服务器:
python src/slack_lists_server.py
服务器将启动并通过标准输入输出监听 MCP 请求。
要将服务器与 AI 助手一起使用,你需要配置你的 MCP 主机。
mcp_servers.json
)。slack_lists_server.py
脚本。mcp_servers.json
配置示例:
{
"mcpServers": {
"slack-lists": {
"command": "/path/to/your/.venv/bin/python",
"args": ["/path/to/slack-lists-mcp-server/src/slack_lists_server.py"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token-here"
}
}
}
}
重要提示:请确保使用 Python 可执行文件和服务器脚本的绝对路径。
配置完成后,重启你的 MCP 主机。现在,Slack 列表工具应该可供你的 AI 助手使用。
此服务器向你的 AI 助手提供以下工具。每个工具都设计得直观且强大,具有清晰的描述和参数。
create_list_item
在 Slack 列表中创建一个新的单项。
list_id
(字符串,必需):Slack 列表的 ID(例如 F1234ABCD
)。title
(字符串,必需):项目的主要标题/文本。title_column_id
(字符串,可选):标题字段的列 ID(默认为 Col10000000
)。additional_fields
(字符串,可选):其他字段的 JSON 字符串。详情请参阅 字段格式。parent_item_id
(字符串,可选):可选的父项目 ID,用于创建子任务。"在我的项目列表
F1234ABCD
中创建一个新任务,标题为 '完成第四季度报告',截止日期为 2024-12-20。"
create_multiple_list_items
使用速率限制在 Slack 列表中批量创建项目。
list_id
(字符串,必需):Slack 列表的 ID。items_data
(字符串,必需):要创建的项目的 JSON 数组。详情请参阅 批量创建格式。title_column_id
(字符串,可选):标题字段的列 ID。rate_limit_delay
(浮点数,可选):请求之间的延迟时间(秒)(默认值:1.2 秒)。"将以下三个任务添加到我的列表
F1234ABCD
中:1. 设计原型(截止日期 12/10),2. 编写测试(截止日期 12/15),3. 更新文档(截止日期 12/20)。"
get_list_items
从 Slack 列表中检索项目。
list_id
(字符串,必需):Slack 列表的 ID。limit
(整数,可选):要检索的最大项目数(默认值:50,最大值:100)。include_metadata
(布尔值,可选):是否包含创建/更新元数据(默认值:True)。"显示我的 '任务' 列表
F5678EFGH
中最近的 10 个项目。"
filter_list_items
根据字段值过滤并检索 Slack 列表中的项目。
list_id
(字符串,必需):Slack 列表的 ID。filter_column_id
(字符串,必需):用于过滤的列 ID。filter_value
(字符串,必需):要搜索的值。filter_operator
(字符串,可选):如何匹配值。选项请参阅 过滤运算符。max_items
(整数,可选):要处理的最大项目数(默认值:100)。"查找列表
F1234ABCD
中分配给我的所有标记为 '高' 优先级的任务。"
export_list_items
将 Slack 列表中的项目导出为结构化数据格式。
list_id
(字符串,必需):Slack 列表的 ID。export_format
(字符串,可选):输出格式 - json
或 csv
(默认值:json
)。filter_column_id
(字符串,可选):可选的用于过滤的列 ID。filter_value
(字符串,可选):要过滤的值(如果提供了 filter_column_id
,则为必需)。filter_operator
(字符串,可选):过滤运算符。"将我的项目列表
F1234ABCD
中所有已完成的任务导出为 CSV 文件。"
在使用 create_list_item
或 create_multiple_list_items
时,你需要以特定的 JSON 格式提供字段数据。additional_fields
和 items_data
参数需要一个 JSON 字符串。
每个字段是一个包含 column_id
、type
和 value
的对象:
[
{
"column_id": "Col10000001",
"type": "date",
"value": "2024-12-31"
},
{
"column_id": "Col10000002",
"type": "select",
"value": ["OptionID123"]
},
{
"column_id": "Col10000003",
"type": "user",
"value": ["U1234567", "U2345678"]
},
{
"column_id": "Col10000004",
"type": "checkbox",
"value": true
}
]
支持的字段类型:
text
:字符串值。date
:YYYY-MM-DD
格式的字符串。user
:Slack 用户 ID 数组(例如 ["U1234567"]
)。select
:选择选项 ID 数组。checkbox
:布尔值 true
或 false
。number
:数值。email
:字符串电子邮件地址。phone
:字符串电话号码。create_multiple_list_items
的 items_data
参数需要一个 JSON 数组,其中每个对象代表一个要创建的项目。
[
{
"title": "第一个任务",
"fields": [
{"column_id": "Col123", "type": "date", "value": "2024-12-15"}
]
},
{
"title": "第二个任务",
"fields": [
{"column_id": "Col123", "type": "date", "value": "2024-12-20"},
{"column_id": "Col456", "type": "user", "value": ["U1234567"]}
]
}
]
filter_list_items
工具支持以下运算符:
contains
:字段包含该值(不区分大小写)。equals
:字段与该值完全匹配(不区分大小写)。not_equals
:字段与该值不匹配。not_contains
:字段不包含该值。exists
:字段有任何非空值。not_exists
:字段为空或缺失。invalid_auth
错误:你的 SLACK_BOT_TOKEN
可能不正确或已被撤销。生成一个新的令牌,并更新你的 .env
文件。missing_scope
错误:确保你的 Slack 应用同时具有 lists:read
和 lists:write
权限。list_not_found
错误:你提供的 list_id
不正确。在 Slack 中仔细检查该 ID。additional_fields
和 items_data
的 JSON 字符串。https://app.slack.com/client/.../F1234ABCD
)。get_list_items
工具并检查输出。欢迎贡献!如果你有新功能、错误修复或改进的想法,请打开一个问题或提交一个拉取请求。更多详细信息请参阅 CONTRIBUTING.md
。
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。