MCP server to operate Slack Lists
Project description
Slack Lists MCP Server
An MCP (Model Context Protocol) server for managing Slack Lists. This server provides tools to create, read, update, and delete items in Slack Lists, with advanced filtering capabilities.
Features
- ✨ Full CRUD operations for Slack List items
- 🔍 Advanced filtering with multiple operators
- 📑 Pagination support for large lists
- 🏗️ Dynamic column structure discovery
- 🎯 Type-safe operations with validation
- 🚀 Async/await support for better performance
Installation
Configure in Claude Desktop
Add to your Claude Desktop configuration file:
{
"mcpServers": {
"slack-lists": {
"command": "uvx",
"args": ["slack-lists-mcp"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token"
}
}
}
}
Configuration
Environment Variables
| Variable | Description | Required | Default |
|---|---|---|---|
SLACK_BOT_TOKEN |
Slack Bot User OAuth Token | ✅ | - |
LOG_LEVEL |
Logging level (DEBUG, INFO, WARNING, ERROR) | ❌ | INFO |
SLACK_API_TIMEOUT |
Timeout for Slack API calls (seconds) | ❌ | 30 |
SLACK_RETRY_COUNT |
Number of retries for failed API calls | ❌ | 3 |
DEBUG_MODE |
Enable debug mode | ❌ | false |
Setting up Slack Bot
- Create a Slack App at api.slack.com
- Add the following OAuth scopes to your Bot Token:
lists:read- Read list itemslists:write- Create and update list items
- Install the app to your workspace
- Copy the Bot User OAuth Token (starts with
xoxb-)
Available Tools
1. get_list_structure
Get the column structure of a Slack List.
Parameters:
list_id(required): The ID of the list
Returns: Column definitions including IDs, names, types, and options
2. add_list_item
Add a new item to a Slack List.
Parameters:
list_id(required): The ID of the listinitial_fields(required): Array of field objects with column_id and value
Example:
{
"list_id": "F1234567890",
"initial_fields": [
{
"column_id": "Col123",
"rich_text": [{
"type": "rich_text",
"elements": [{
"type": "rich_text_section",
"elements": [{"type": "text", "text": "Task Name"}]
}]
}]
}
]
}
3. update_list_item
Update existing items in a Slack List.
Parameters:
list_id(required): The ID of the listcells(required): Array of cell objects with row_id, column_id, and value
Example:
{
"list_id": "F1234567890",
"cells": [
{
"row_id": "Rec123",
"column_id": "Col456",
"checkbox": true
}
]
}
4. delete_list_item
Delete an item from a Slack List.
Parameters:
list_id(required): The ID of the listitem_id(required): The ID of the item to delete
5. get_list_item
Get a specific item from a Slack List.
Parameters:
list_id(required): The ID of the listitem_id(required): The ID of the iteminclude_is_subscribed(optional): Include subscription status
6. list_items
List all items in a Slack List with optional filtering.
Parameters:
list_id(required): The ID of the listlimit(optional): Maximum number of items (default: 100)cursor(optional): Pagination cursorarchived(optional): Filter for archived itemsfilters(optional): Column-based filters
Filter Operators:
equals: Exact matchnot_equals: Not equal to valuecontains: Contains substring (case-insensitive)not_contains: Does not contain substringin: Value is in the provided listnot_in: Value is not in the provided list
Example with filters:
{
"list_id": "F1234567890",
"filters": {
"name": {"contains": "Task"},
"todo_completed": {"equals": false},
"todo_assignee": {"in": ["U123", "U456"]}
}
}
7. get_list_info
Get metadata about a Slack List.
Parameters:
list_id(required): The ID of the list
Development
Setup
# Clone the repository
git clone https://github.com/ppspps824/slack-lists-mcp.git
cd slack-lists-mcp
# Install dependencies
uv sync
Running in Development Mode
# Run with FastMCP dev mode (with auto-reload)
fastmcp dev slack_lists_mcp.server:mcp
# Or run directly
uv run slack-lists-mcp
Testing
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=slack_lists_mcp
# Run specific test file
uv run pytest tests/test_server.py -v
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
uv run pytest) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
MIT License - see LICENSE file for details
Support
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slack_lists_mcp-0.1.0.tar.gz.
File metadata
- Download URL: slack_lists_mcp-0.1.0.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
193eab0c3acb5f51293cd7942d82c53b583da1864bb2b505101475b47f5ff148
|
|
| MD5 |
47fe4fe7e437aca144a41467e395bc98
|
|
| BLAKE2b-256 |
13c69bec1d3c86a3bf6eadabb15064a90e0be9f158b95108827c14ebdad35d95
|
File details
Details for the file slack_lists_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: slack_lists_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e207395f5965c16f6cbe62202011d05d742c5732900041ecfd48246a9111ecdd
|
|
| MD5 |
a6c4de8f3394e6803a779b33b51bc86d
|
|
| BLAKE2b-256 |
5bd15c204d1b57b642f7b0f71f35558fa5b8842946986611efae750e215779f8
|