Skip to main content
Glama

Slack-MCP

This project is a Multi-Tool MCP (Model Context Protocol) server for Slack automation using the FastMCP library. It allows you to fetch and process Slack messages using AI agents.This project is great example to learn and Build Understanding reagarding MCPs.


๐Ÿ“‚ Folder Structure

slack-mcp/
โ”œโ”€โ”€ main.py               # Main MCP tool server with multiple tools
โ”œโ”€โ”€ .env                  # Store your SLACK_TOKEN safely here
โ”œโ”€โ”€ smithery.yaml         # Configuration for Smithery deployment
โ”œโ”€โ”€ README.md             # This file
โ”œโ”€โ”€ uv-lock
โ””โ”€โ”€ pyproject.toml        # Python dependencies

Related MCP server: agenthub MCP

๐Ÿš€ Tools in This MCP

1. get_recent_messages

Fetches the most recent messages from a given Slack channel.

  • Inputs: channel_id, limit

  • Returns: Formatted recent messages.

2. get_user_messages

Fetches messages from a specific user within a channel.

  • Inputs: channel_id, username, limit

  • Returns: Messages sent by the user.

3. summarize_recent_messages

Summarizes the last N messages from a channel using a connected LLM.

  • Inputs: channel_id, limit

  • Returns: AI-generated summary.

4. group_messages_by_user

Groups recent channel messages by sender.

  • Inputs: channel_id, limit

  • Returns: A grouped format like:

    @user1:
    - Message 1
    - Message 2
    
    @user2:
    - Message A

๐Ÿšช Slack OAuth Setup & Token Generation

1. Create a Slack App

2. Set OAuth Scopes

In OAuth & Permissions, under Bot Token Scopes, add:

  • channels:read

  • channels:history

  • users:read

  • chat:write (optional for sending messages)

3. Install to Workspace

  • Click Install App to Workspace

  • Authorize permissions

  • Copy the Bot User OAuth Token (starts with xoxb-...)

4. Save the Token

Create a .env file:

SLACK_TOKEN=xoxb-your-token-here

If you change scopes later:

  • Revisit OAuth & Permissions

  • Click Reinstall App to apply new scopes


โœจ Testing the Tools

On MCP Inspector (Local)

  1. Run the server:

python main.py
  1. Use MCP Inspector to call tools and test output

mcp dev main.py

On Smithery (Cloud)

  1. Push your code to GitHub

  2. Deploy your MCP to Smithery

  3. Use the "Run tool" tab to test individual tools

On Claude (Cloud Desktop)

You can connect these tools via Smithery to Claude workflows for real-time Slack insights and summaries.


๐Ÿšœ Requirements

Install dependencies with:

uv pip install -r pyproject.toml

Or manually:

pip install fastmcp httpx python-dotenv

๐Ÿ”ง Environment File (.env)

SLACK_TOKEN=xoxb-123-your-token

๐ŸŽ‰ Contributing

Pull requests are welcome. If youโ€™d like to add new Slack tools (e.g., send_message, track_reactions, etc.), feel free to open an issue or PR.


๐Ÿ“น Video Demo On claude desktop:

https://github.com/user-attachments/assets/37d905a5-6382-40ce-9500-2dd744656546


๐Ÿ™ Acknowledgments


๐Ÿ“Š Example Output

Grouped Slack Messages:

@bakar:
- Just pushed latest PR
- Working on the backend API

@hamza:
- Updated Figma designs
- Fixed navbar bug

๐Ÿ“Š Smithery.ai (Cloud Deployment)

Here is the URL go and checkout this mcp_server: Slack_MCP_Server


๐Ÿง‘โ€๐Ÿ’ป Author

Built by Abu Bakar Yasir โ€” Computer Engineering @ COMSATS + AI Software Engineer | Full Stack Developer ๐Ÿš€

Available Tools

4 tools
get_recent_slack_messagesC

Fetch recent messages from a Slack channel.

Inputs: channel_id (required), limit. Returns: result

get_user_infoB
Get Slack user info by username or real name.

Args:
    username: Slack display name or real name (not user ID).

Inputs: username (required). Returns: result

get_user_messagesB
Fetch messages by a specific user (given by name) from a Slack channel.

Args:
    channel_id: The Slack channel ID.
    username: The Slack username or real name of the user.
    limit: How many messages to check (optional).

Inputs: channel_id (required), username (required), limit. Returns: result

post_messageC

Post a message to a Slack channel.

Inputs: channel_id (required), text (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelogโ€ฆ

    TDQS

    B3.2/5.0

    Scored across 4 tools

    Disambiguation4/5

    The tools are mostly distinct, but get_recent_slack_messages and get_user_messages could be confused as both fetch messages from channels. However, get_user_messages specifies a user filter, which helps differentiate it. The other tools (get_user_info, post_message) have clear, non-overlapping purposes.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with snake_case (e.g., get_recent_slack_messages, post_message). There are no deviations in naming conventions, making the set predictable and readable.

    Tool Count3/5

    With only 4 tools, the server feels thin for a Slack integration, which typically involves more operations like managing channels, files, or reactions. However, it covers basic messaging and user info, so it's borderline but not severely lacking.

    Completeness3/5

    The server covers core messaging operations (post and fetch) and user info, but there are notable gaps such as updating or deleting messages, listing channels, or handling reactions. Agents can work around this for basic tasks, but advanced workflows may fail.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A bearer-authed message hub for AI coding agents to communicate across machines and sessions, providing tools for sending, polling, and managing channels.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables Claude Code agents to communicate across sessions, terminals, and repositories through shared channels with persistent context.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Connect AI agents to shared Ping chat rooms for collaboration, with auto-delivery of new messages. Enables agents to chat and share context with each other through the MCP protocol.
      317,248 npm
      1
      MIT

    Appeared in Searches