
Slack Lists Mcp
io.github.justadityaraj由 GitHub 帳號 justadityaraj 發布v1.1.0更新於 Oct 24, 2026
Full read + write access to Slack Lists for AI: create, update, check off, reassign, delete.
概覽
讓 AI 助理透過 Slack 機器人權杖讀取、建立、更新、篩選、匯出與刪除 Slack Lists 中的項目。
- 可以做什麼
- 把 AI 助理連接到 Slack Lists,提供建立單筆或批次項目、取得項目、依欄位值篩選、更新某一列任意儲存格、刪除列、匯出為 JSON 或 CSV,以及建立子任務等工具。由於 Slack 沒有提供讀取清單結構的 API,discover_list_columns 工具會從既有項目推斷欄位 ID、型別與選項 ID。支援文字、日期、使用者、選取、核取方塊、數字、電子郵件、電話等所有 Slack List 欄位型別。
- 適用情境
- 適合讓助理管理已存在於 Slack Lists 的任務、專案或表格資料,例如勾選完成任務、重新指派或改期、批次新增項目,或匯出清單以供分析或備份。
- 執行需求
- 以 Python 3.10+ 本機程序透過 stdio 執行,可從 PyPI 套件 ars-slack-lists-mcp 或程式碼倉庫安裝。需要可安裝應用程式的 Slack 工作區、具備 lists:read 與 lists:write 機器人權限範圍的 Slack 應用程式,以及透過 SLACK_BOT_TOKEN 環境變數或專案 .env 檔提供的機器人權杖。機器人必須被授予存取它所管理的每個清單的權限。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Slack Lists Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Slack Lists MCP Server
[License: MIT] [Python Version] [MCP Version]
A Model Context Protocol (MCP) server that gives AI assistants full read and write access to Slack Lists.
This server acts as a bridge between AI models and Slack, enabling seamless creation, retrieval, updating, deletion, filtering, and management of Slack List items through a standardized protocol. It empowers AI assistants like Claude Desktop to become powerful productivity tools for managing tasks, projects, and data within Slack.
This project provides a complete package with:
- Comprehensive Toolset: Create, query, update, delete, filter, and export list items.
- Robust Implementation: Built with Python, FastMCP, and best practices.
- Easy Deployment: Simple setup with environment variables.
- Detailed Documentation: Full README, tool reference, and examples.
- Extensible Design: Easily add new tools and functionality.
The write paths have been verified against a live Slack workspace (see Verification status).
Features
This MCP server provides a rich set of tools for interacting with Slack Lists:
- Create Single Item: Add one item to a list with detailed fields.
- Bulk Create Items: Add multiple items at once with built-in rate limiting to respect Slack's API.
- Retrieve Items: Fetch a list of items with optional metadata.
- Update Items: Update any cell on an existing item — check a task off, reassign it, reschedule it, or edit any field (full task management).
- Delete Items: Permanently remove an item from a list.
- Discover Columns: Infer a list's column IDs, types, and select option IDs from its existing items (Slack exposes no schema API, so this saves you from hunting for IDs in browser dev tools).
- Filter Items: Powerful server-side filtering based on any field value (status, assignee, priority, etc.).
- Export Data: Export list items to JSON or CSV format for analysis or backup.
- Subtask Creation: Create sub-items under a parent item.
- Full Field Support: Works with all Slack List field types (text, date, user, select, checkbox, number, email, phone).
- Error Handling: Robust error handling and clear feedback for failed operations.
Getting Started
Follow these steps to get your Slack Lists MCP server up and running.
Prerequisites
- Python 3.10+
- Slack Workspace: A Slack workspace where you have permission to install apps.
- Slack Bot Token: A bot token with
lists:readandlists:writescopes.
1. Create a Slack App
- Go to the Slack API website and click Create New App.
- Choose "From scratch", give your app a name (e.g., "Lists MCP Server"), and select your workspace.
- In the app settings, go to OAuth & Permissions.
- Under Bot Token Scopes, add the following scopes:
lists:readlists:write
- Click Install to Workspace at the top of the page and authorize the app.
- Copy the Bot User OAuth Token (it starts with
xoxb-). This is yourSLACK_BOT_TOKEN.
2. Installation
Clone the repository and install the dependencies:
3. Configuration
Create a .env file by copying the example:
Open the .env file and set your SLACK_BOT_TOKEN:
The server loads this .env (from the project root) automatically on startup, so you do not need to put the token anywhere else. A real SLACK_BOT_TOKEN environment variable always takes precedence over the file.
4. Running the Server
You can run the server directly from the command line:
The server will start and listen for MCP requests over STDIO.
5. Connecting to an MCP Host (e.g., Claude Desktop)
To use the server with an AI assistant, you need to configure your MCP host.
- Open your MCP host's configuration file (e.g.,
mcp_servers.jsonfor Claude Desktop). - Add a new server entry pointing to your
slack_lists_server.pyscript.
Example mcp_servers.json configuration:
Important: Make sure to use the absolute path to your Python executable and the server script. Because the server reads the token from the project .env, the env block above is optional.
Once configured, restart your MCP host. The Slack Lists tools should now be available to your AI assistant.
Claude Code (CLI)
No -e SLACK_BOT_TOKEN=... is needed; the server picks the token up from .env.
Tool Reference
This server exposes the following tools to your AI assistant. Each tool is designed to be intuitive and powerful, with clear descriptions and parameters.
create_list_item
Creates a single new item in a Slack List.
Description: This tool creates one item in the specified Slack List. The item must have at least a title field, and can include additional fields as needed. All field values are validated against the list's schema.
Parameters:
list_id(string, required): The ID of the Slack List (e.g.,F1234ABCD).title(string, required): The main title/text for the item.title_column_id(string, optional): Column ID for the title field (defaults toCol10000000).additional_fields(string, optional): JSON string of additional fields. See Field Formats for details.parent_item_id(string, optional): Optional parent item ID to create a subtask.
Example Prompt:
"Create a new task in my project list
F1234ABCDwith the title 'Finish Q4 report' and a due date of 2024-12-20."
create_multiple_list_items
Creates multiple items in a Slack List with rate limiting.
Description: This tool allows bulk creation of list items. Each item is created individually with proper rate limiting to respect Slack's API limits (~50 requests per minute).
Parameters:
list_id(string, required): The ID of the Slack List.items_data(string, required): JSON array of items to create. See Bulk Creation Format for details.title_column_id(string, optional): Column ID for the title field.rate_limit_delay(float, optional): Delay between requests in seconds (default: 1.2s).
Example Prompt:
"Add these three tasks to my list
F1234ABCD: 1. Design mockups (due 12/10), 2. Write tests (due 12/15), 3. Update documentation (due 12/20)."
get_list_items
Retrieves items from a Slack List.
Description: This tool fetches items from the specified Slack List with optional metadata. Use this to view current list contents, check item details, or prepare data for filtering.
Parameters:
list_id(string, required): The ID of the Slack List.limit(integer, optional): Maximum number of items to retrieve (default: 50, max: 100).include_metadata(boolean, optional): Whether to include creation/update metadata (default: True).
Example Prompt:
"Show me the 10 most recent items in my 'Tasks' list
F5678EFGH."
filter_list_items
Filters and retrieves items from a Slack List based on field values.
Description: This tool allows you to search and filter list items by specific field values. Useful for finding items with a specific status, assignee, priority, or any other field.
Parameters:
list_id(string, required): The ID of the Slack List.filter_column_id(string, required): Column ID to filter by.filter_value(string, required): Value to search for.filter_operator(string, optional): How to match the value. See Filter Operators for options.max_items(integer, optional): Maximum number of items to process (default: 100).
Example Prompt:
"Find all tasks in list
F1234ABCDassigned to me that are marked as 'High' priority."
export_list_items
Exports items from a Slack List to a structured data format.
Description: This tool exports list items to JSON or CSV format, with optional filtering. Useful for backup, analysis, or integration with other systems.
Parameters:
list_id(string, required): The ID of the Slack List.export_format(string, optional): Output format -jsonorcsv(default:json).filter_column_id(string, optional): Optional column ID to filter by.filter_value(string, optional): Value to filter for (required iffilter_column_idis provided).filter_operator(string, optional): Filter operator.
Example Prompt:
"Export all completed tasks from my project list
F1234ABCDto a CSV file."
update_list_item
Updates one or more cells on an existing Slack List item (row). This is the tool for full task management: check a task off, reassign it, reschedule it, or edit any field — in a single call.
Description:
Updates the given columns on the item identified by row_id. Find the row_id with get_list_items or filter_list_items (it is each item's id, e.g. Rec1234567). Find column_ids and select option IDs with discover_list_columns.
Parameters:
list_id(string, required): The ID of the Slack List (e.g.,F1234ABCD).row_id(string, required): The ID of the item/row to update (e.g.,Rec1234567).fields(string, required): JSON array of cells to update. Each cell is{"column_id": "...", "type": "...", "value": ...}. See Field Formats. Supported types:text,date,user,select,checkbox,number,email,phone.
Example Prompt:
"Mark task
Rec1234567in listF1234ABCDas done, reassign it toU1234567, and move the due date to 2025-09-20."
delete_list_item
Permanently deletes an item (row) from a Slack List. This cannot be undone.
Parameters:
list_id(string, required): The ID of the Slack List (e.g.,F1234ABCD).row_id(string, required): The ID of the item/row to delete (e.g.,Rec1234567).
Example Prompt:
"Delete item
Rec1234567from listF1234ABCD."
discover_list_columns
Discovers a list's columns by inspecting its existing items. Slack exposes no API to read a list's schema directly, so this infers each column's ID, type, a sample value, and (for select columns) the option IDs from the data already in the list. Use it to find the column_id and select option IDs needed by create_list_item and update_list_item.
Note: A column is only discoverable if at least one item has a value in it. Empty columns will not appear.
Parameters:
list_id(string, required): The ID of the Slack List (e.g.,F1234ABCD).sample_size(integer, optional): How many items to scan, 1-1000 (default: 100).
Example Prompt:
"What columns does list
F1234ABCDhave, and what are the status option IDs?"
Data Formats
Field Formats
When using create_list_item or create_multiple_list_items, you need to provide field data in a specific JSON format. The additional_fields and items_data parameters expect a JSON string.
Each field is an object with column_id, type, and value:
Supported Field Types:
text: String value.date: String inYYYY-MM-DDformat.user: Array of Slack user IDs (e.g.,["U1234567"]).select: Array of select option IDs.checkbox: Booleantrueorfalse.number: Numeric value.email: String email address.phone: String phone number.
Bulk Creation Format
The items_data parameter for create_multiple_list_items expects a JSON array where each object represents an item to be created.
Filter Operators
The filter_list_items tool supports the following operators:
contains: Field contains the value (case-insensitive).equals: Field exactly matches the value (case-insensitive).not_equals: Field does not match the value.not_contains: Field does not contain the value.exists: Field has any non-empty value.not_exists: Field is empty or missing.
Troubleshooting
invalid_authError: YourSLACK_BOT_TOKENis likely incorrect or has been revoked. Generate a new one and update your.envfile.missing_scopeError: Ensure your Slack app has bothlists:readandlists:writescopes.list_not_foundError: Thelist_idyou provided is incorrect. Double-check the ID in Slack.- Server Not Responding: Make sure the server is running and that the path in your MCP host configuration is correct. Check for any errors in the server logs.
- JSON Errors: Validate your JSON strings for
additional_fieldsanditems_datausing an online validator.
How to Find List and Column IDs
- List ID: Open the list in Slack. The ID is the last part of the URL (e.g.,
https://app.slack.com/client/.../F1234ABCD). - Column ID: The easiest way is the
discover_list_columnstool, which lists every column's ID, type, and select option IDs by inspecting the list's existing items. (You can also inspect browser network requests, or read the raw output ofget_list_items.)
Contributing
Contributions are welcome! If you have ideas for new features, bug fixes, or improvements, please open an issue or submit a pull request. See CONTRIBUTING.md for more details.
Verification status
All tools are covered by unit tests and have been exercised against a live Slack workspace: discover_list_columns, create_list_item, update_list_item (text, user, date, and checkbox cells, including a single multi-cell "check off + reassign + reschedule" update), and delete_list_item all round-trip correctly.
One field shape differs from the published docs: checkbox cells take a bare boolean ("checkbox": true), not an array. The docs show "checkbox": [boolean], but the live API rejects the array form with invalid_arguments and returns the value as a bare bool, so this server sends a bare bool.
Credits
This project is derived from maplehilllabs/mcp-slack-lists (MIT), extended with update_list_item, delete_list_item, and discover_list_columns plus full field-type support.
License
This project is licensed under the MIT License. See the LICENSE file for details.
來源:README.md,提交 48c08f7
工具
0版本歷史
1- v1.1.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分