Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Slack Mpm

БесплатноНе проверен

MCP server for Slack workspace integration, exposing 40+ Slack operations as tools for Claude Desktop and providing a clean async Python API.

GitHubEmbed

Описание

MCP server for Slack workspace integration, exposing 40+ Slack operations as tools for Claude Desktop and providing a clean async Python API.

README

A Python MCP (Model Context Protocol) server and API library for Slack workspace integration. Exposes 40+ Slack operations as MCP tools for use with Claude Desktop, and provides a clean async Python API for building Slack integrations.

What It Is

  • Python API library: from slack_mpm.api import messages; await messages.send_message(...)
  • MCP server: wraps the API for Claude Desktop via slack-mpm mcp
  • Agent scripts: standalone automation scripts in agents/

Prerequisites

  1. Python 3.10+ and uv
  2. A Slack App with a bot token

Creating a Slack App

  1. Go to https://api.slack.com/apps and click "Create New App"
  2. Choose "From scratch", give it a name and select your workspace
  3. Go to "OAuth & Permissions" and add these Bot Token Scopes:
    • channels:read, channels:write, channels:manage
    • chat:write, chat:write.public
    • users:read
    • files:read, files:write
    • reactions:write
    • pins:write
    • bookmarks:read, bookmarks:write
    • emoji:read
    • groups:read, groups:write
    • im:read, im:write
    • mpim:read, mpim:write
  4. Install the app to your workspace
  5. Copy the "Bot User OAuth Token" (starts with xoxb-)

For search_messages and reminders, also create a User Token with search:read, reminders:read, reminders:write.

Quick Start

git clone <repo>
cd slack-mpm
cp .env.local.example .env.local
# Edit .env.local and add your SLACK_BOT_TOKEN=xoxb-...

uv sync
uv run slack-mpm setup   # Verify your token works
uv run slack-mpm doctor  # Health check

Claude Desktop Configuration

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "slack": {
      "command": "uv",
      "args": ["run", "--directory", "/absolute/path/to/slack-mpm", "slack-mpm", "mcp"]
    }
  }
}

Restart Claude Desktop. You should see the Slack tools available.

Available Tools

Channel Tools (8)

Tool Description
list_channels List all channels (public + private)
get_channel_info Get details about a channel
create_channel Create a new channel
archive_channel Archive a channel
invite_to_channel Invite users to a channel
kick_from_channel Remove a user from a channel
join_channel Join a channel
set_channel_topic Set channel topic

Message Tools (13)

Tool Description
send_message Send a message (supports blocks + threading)
send_ephemeral Send a message visible only to one user
update_message Edit an existing message
delete_message Delete a message
get_permalink Get a permanent link to a message
search_messages Search messages (requires user token)
list_history Fetch channel message history
add_reaction Add emoji reaction
remove_reaction Remove emoji reaction
pin_message Pin a message
unpin_message Unpin a message
reply_in_thread Reply in a thread
get_thread_replies Fetch all thread replies

User Tools (5)

Tool Description
list_users List all workspace users
get_user_info Get user details
get_user_by_email Look up a user by email
open_dm Open a DM channel with user(s)
list_user_channels List channels a user belongs to

File Tools (5)

Tool Description
upload_file Upload a file to channel(s)
list_files List workspace files
get_file_info Get file details
delete_file Delete a file
share_file Share an existing file to channels

Workspace Tools (4)

Tool Description
get_workspace_info Get workspace/team info
list_emojis List custom emoji
get_bot_info Get bot details
auth_test Validate token

Reminder Tools (4)

Tool Description
add_reminder Create a reminder
list_reminders List reminders
complete_reminder Mark reminder complete
delete_reminder Delete a reminder

Bookmark Tools (3)

Tool Description
list_bookmarks List channel bookmarks
add_bookmark Add a bookmark to a channel
remove_bookmark Remove a bookmark

Scheduled Message Tools (3)

Tool Description
schedule_message Schedule a future message
list_scheduled_messages List pending scheduled messages
delete_scheduled_message Cancel a scheduled message

Using the Python API Directly

import asyncio
from slack_mpm.api import messages, channels, users
from slack_mpm.auth.token_manager import TokenManager

async def main():
    token = TokenManager().get_token()

    # Send a message
    await messages.send_message(token, "#general", "Hello from Python!")

    # List channels
    data = await channels.list_channels(token)
    for ch in data["channels"]:
        print(ch["name"])

    # Get user info
    user = await users.get_user_by_email(token, "[email protected]")
    print(user["user"]["real_name"])

asyncio.run(main())

Agent Scripts

Standalone automation scripts in the agents/ directory.

slack_listener.py — Real-time channel monitor

Polls a channel and prints new messages as they arrive.

uv run agents/slack_listener.py --channel C1234567890
uv run agents/slack_listener.py --channel C1234567890 --interval 10
uv run agents/slack_listener.py --channel C1234567890 --no-history

slack_notifier.py — Send notifications

Sends messages or file uploads to Slack channels from the command line or stdin.

uv run agents/slack_notifier.py --channel C1234567890 --message "Deploy complete"
echo "alert!" | uv run agents/slack_notifier.py --channel C1234567890
cat report.txt | uv run agents/slack_notifier.py --channel C1234567890 --as-file --filename report.txt

slack_responder.py — Auto-responder bot

Monitors for @mentions or DMs and auto-replies with a configured message.

uv run agents/slack_responder.py --response "Thanks, I'll get back to you!"
uv run agents/slack_responder.py --channel C1234567890 --response "Got it!" --interval 60
uv run agents/slack_responder.py --response "Out of office" --dry-run

slack_digest.py — Activity digest

Generates a summary of recent channel activity: message counts, active users, top threads.

uv run agents/slack_digest.py --channel C1234567890
uv run agents/slack_digest.py --channel C1234567890 --hours 168  # 1 week
uv run agents/slack_digest.py --channel C1234567890 --hours 24 --top-users 10

slack_archiver.py — Channel history export

Exports complete channel message history to JSON or Markdown files with thread support.

uv run agents/slack_archiver.py --channel C1234567890 --output ./archive/
uv run agents/slack_archiver.py --channel C1234567890 --output ./archive/ --format markdown
uv run agents/slack_archiver.py --channel C1234567890 --output ./archive/ --days 30

Development

# Install dev dependencies
uv sync

# Run tests
uv run pytest
uv run pytest --cov=src --cov-report=html

# Type checking
uv run mypy --strict src/

# Linting
uv run ruff check src/ agents/
uv run ruff format src/ agents/

Project Structure

src/slack_mpm/
├── api/
│   ├── _client.py      # Shared httpx client + SlackAPIError
│   ├── channels.py     # Channel operations
│   ├── messages.py     # Message operations
│   ├── users.py        # User operations
│   ├── files.py        # File operations
│   ├── workspace.py    # Workspace operations
│   ├── reminders.py    # Reminder operations
│   ├── bookmarks.py    # Bookmark operations
│   └── scheduled.py    # Scheduled message operations
├── auth/
│   ├── models.py       # SlackToken, TokenStatus, WorkspaceInfo
│   └── token_manager.py # TokenManager (loads from .env.local)
├── cli/
│   └── main.py         # CLI: setup, doctor, mcp commands
└── server/
    └── slack_mpm_server.py  # SlackMCPServer (MCP adapter)

agents/
├── slack_listener.py   # Channel message poller
├── slack_notifier.py   # Send notifications
├── slack_responder.py  # Auto-responder bot
├── slack_digest.py     # Activity digest
└── slack_archiver.py   # History export

from github.com/bobmatnyc/slack-mpm

Установить Slack Mpm в Claude Desktop, Claude Code, Cursor

Рекомендуется · одна команда, все IDE
unyly install slack-mpm

Ставит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.

Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh

Или настроить вручную

Выполни в терминале:

claude mcp add slack-mpm -- uvx slack-mpm

FAQ

Slack Mpm MCP бесплатный?

Да, Slack Mpm MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Slack Mpm?

Нет, Slack Mpm работает без API-ключей и переменных окружения.

Slack Mpm — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить Slack Mpm в Claude Desktop, Claude Code или Cursor?

Открой Slack Mpm на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Slack Mpm with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории communication