Slack列出MCP服务器
 ](https://www.python.org/) ](https://modelcontextprotocol.io/)
一个生产就绪的模型上下文协议(MCP)服务器,为AI助手提供强大的工具与Slack列表进行交互。
该服务器充当AI模型和Slack之间的桥梁,通过标准化协议实现Slack列表项的无缝创建、检索、过滤和管理。它使像Claude Desktop这样的人工智能助手成为Slack中管理任务、项目和数据的强大生产力工具。

该项目提供了一个完整的、可生产的包,包括:
- 综合工具集:创建、查询、筛选和导出列表项。
- 稳健的实施:使用Python、FastMCP和最佳实践构建。
- 轻松部署:使用环境变量进行简单设置。
- 详细文件:完整的README、工具参考和示例。
- 可扩展设计:轻松添加新工具和功能。
无论您是希望将AI与Slack集成的开发人员,还是希望提高生产力的用户,此MCP服务器都为与Slack列表进行强大的上下文感知交互提供了基础。
特性
此MCP服务器为与Slack列表交互提供了一套丰富的工具:
- 创建单个项目:向包含详细字段的列表中添加一个项目。
- 批量创建项目:根据Slack的API,使用内置的速率限制同时添加多个项目。
- 检索项目:获取包含可选元数据的项目列表。
- 筛选项目:基于任何字段值(状态、受让人、优先级等)的强大服务器端过滤。
- 导出数据:将列表项导出为JSON或CSV格式进行分析或备份。
- 子任务创建:在父项下创建子项。
- 全面现场支持:适用于所有Slack列表字段类型(文本、日期、用户、选择、复选框等)。
- 错误处理:强大的错误处理和失败操作的清晰反馈。
- 生产就绪:包括日志记录、基于环境的配置和干净的项目结构。
入门指南
按照以下步骤启动并运行Slack Lists MCP服务器。
先决条件
- Python 3.10+
- Slack工作区:Slack工作区,您有权在其中安装应用程序。
- Slack机器人令牌:一个机器人令牌
lists:read和lists:write范围。
1.创建Slack应用程序
- 转到 Slack API网站 然后单击 创建新应用程序.
- 选择“从头开始”,为您的应用程序命名(例如“列出MCP服务器”),然后选择您的工作区。
- 在应用程序设置中,转到 OAuth和权限.
- 在...之下 Bot令牌范围,添加以下范围:
- lists:read - lists:write
- 点击 安装到工作区 在页面顶部,对应用程序进行授权。
- 复制 Bot用户OAuth令牌 (它以
xoxb-).这是你的SLACK_BOT_TOKEN.
2.安装
克隆存储库并安装依赖项:
# Clone the repository
git clone https://github.com/your-org/slack-lists-mcp-server.git
cd slack-lists-mcp-server
# Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt3.配置
创建一个 .env 通过复制示例来创建文件:
cp .env.example .env打开 .env 文件并设置您的 SLACK_BOT_TOKEN:
SLACK_BOT_TOKEN=xoxb-your-bot-token-here4.运行服务器
您可以直接从命令行运行服务器:
python src/slack_lists_server.py服务器将启动并通过STDIO监听MCP请求。
5.连接到MCP主机(例如Claude Desktop)
要将服务器与AI助手一起使用,您需要配置MCP主机。
- 打开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(string,必填):松弛列表的ID(例如。,F1234ABCD).title(string,必填):项目的主要标题/文本。title_column_id(字符串,可选):标题字段的列ID(默认为Col10000000).additional_fields(string,可选):附加字段的JSON字符串。看 字段格式 了解详情。parent_item_id(字符串,可选):创建子任务的可选父项ID。
示例提示:
“在我的项目列表中创建新任务 F1234ABCD 标题为“完成第四季度报告”,截止日期为2024年12月20日。”______________________________________________________________________
create_multiple_list_items
在具有速率限制的松弛列表中创建多个项目。
说明: 此工具允许批量创建列表项。每个项目都是单独创建的,并有适当的速率限制,以遵守Slack的API限制(每分钟约50个请求)。
参数:
list_id(string,必填):松弛列表的ID。items_data(string,必填):要创建的JSON项目数组。看 批量创建格式 了解详情。title_column_id(字符串,可选):标题字段的列ID。rate_limit_delay(float,可选):请求之间的延迟(秒)(默认值:1.2秒)。
示例提示:
“将这三项任务添加到我的列表中 F1234ABCD1.设计模型(应于2010年12月提交),2。编写测试(截止日期为12/15),3。更新文件(应于12/20提交)。"______________________________________________________________________
get_list_items
从Slack列表中检索项目。
说明: 此工具使用可选元数据从指定的Slack列表中获取项目。使用此功能可以查看当前列表内容、检查项目详细信息或准备筛选数据。
参数:
list_id(string,必填):松弛列表的ID。limit(整数,可选):要检索的最大项目数(默认值:50,最大值:100)。include_metadata(布尔值,可选):是否包含创建/更新元数据(默认值:True)。
示例提示:
“显示“任务”列表中最近的10个项目 F5678EFGH."______________________________________________________________________
filter_list_items
根据字段值从松弛列表中筛选和检索项目。
说明: 此工具允许您按特定字段值搜索和筛选列表项。可用于查找具有特定状态、受让人、优先级或任何其他字段的项目。
参数:
list_id(string,必填):松弛列表的ID。filter_column_id(字符串,必填):要筛选的列ID。filter_value(字符串,必填):要搜索的值。filter_operator(string,可选):如何匹配值。看 过滤器操作员 选择。max_items(整数,可选):要处理的最大项目数(默认值:100)。
示例提示:
“查找列表中的所有任务 F1234ABCD 分配给我的标记为“高”优先级的任务。"______________________________________________________________________
export_list_items
将项目从Slack列表导出为结构化数据格式。
说明: 此工具将列表项导出为JSON或CSV格式,并可选择过滤。可用于备份、分析或与其他系统集成。
参数:
list_id(string,必填):松弛列表的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格式。userSlack用户ID数组(例如。,["U1234567"]).select:选择选项ID的数组。checkbox:布尔值true或false.number:数值。email:字符串电子邮件地址。phone:字符串电话号码。
批量创建格式
这 items_data 参数 create_multiple_list_items 期望一个JSON数组,其中每个对象表示要创建的项目。
[
{
"title": "First Task",
"fields": [
{"column_id": "Col123", "type": "date", "value": "2024-12-15"}
]
},
{
"title": "Second Task",
"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错误:Thelist_id您提供的信息不正确。仔细检查Slack中的ID。- 服务器未响应:确保服务器正在运行,并且MCP主机配置中的路径正确。检查服务器日志中是否有任何错误。
- JSON错误:验证您的JSON字符串
additional_fields和items_data使用在线验证器。
如何查找列表和列ID
- 列表ID:在Slack中打开列表。ID是URL的最后一部分(例如。,
https://app.slack.com/client/.../F1234ABCD). - 列ID:当您与列表交互时,可以通过检查浏览器开发人员工具中的网络请求或使用
get_list_items工具并检查输出。
贡献
欢迎投稿!如果您对新功能、错误修复或改进有想法,请打开问题或提交拉取请求。看 CONTRIBUTING.md 了解更多详情。
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。
