Mattermost MCP server
A maintained MCP server for Mattermost that lets agents work with channels, messages, threads, reactions, users, teams, and files.
Mattermost MCP is an actively maintained community server that connects AI assistants like Claude and Cursor to a self-hosted Mattermost workspace. Its tool set spans the things a team chat agent actually needs: listing public and personal channels, creating and joining channels, opening direct channels, posting and editing messages, searching messages and users, working with threads and reactions, pinning messages, managing teams, and uploading or linking files. An Entry+ edition adds channel bookmark tools. That breadth makes it a fit for ops bots, incident-summary agents, and assistants that triage or post into the right channel.
The server is a Python project and the easiest install is uvx mcp-server-mattermost (or pip install mcp-server-mattermost). It also ships an official Docker image that runs over stdio or in HTTP mode. Authenticate with MATTERMOST_URL and a bot or personal MATTERMOST_TOKEN. Because it is community-built rather than published by Mattermost, review the source and use a scoped bot token before pointing it at a production workspace.
Quick install
Copy-paste configs are provided for all 8 supported clients. Pick your client below.
Available tools
| Tool | Description |
|---|---|
| list_public_channels | List public channels on the server. |
| list_my_channels | List channels the authenticated user belongs to. |
| get_channel | Get a channel by ID. |
| get_channel_by_name | Get a channel by team and channel name. |
| create_channel | Create a new channel. |
| join_channel | Join a channel. |
| leave_channel | Leave a channel. |
| mark_channel_viewed | Mark a channel as viewed (clears unread state). |
| get_channel_members | List members of a channel. |
| add_user_to_channel | Add a user to a channel. |
| create_direct_channel | Create or open a direct-message channel with a user. |
| post_message | Post a message to a channel. |
| get_channel_messages | Get recent messages from a channel. |
| search_messages | Search messages by query. |
| update_message | Edit an existing message. |
| delete_message | Delete a message. |
| add_reaction | Add an emoji reaction to a message. |
| remove_reaction | Remove an emoji reaction from a message. |
| get_reactions | List reactions on a message. |
| pin_message | Pin a message in a channel. |
| unpin_message | Unpin a message in a channel. |
| get_thread | Get a message thread and its replies. |
| get_me | Get the authenticated user's profile. |
| get_user | Get a user by ID. |
| get_user_by_username | Get a user by username. |
| search_users | Search users by query. |
| get_user_status | Get a user's online status. |
| list_teams | List teams on the server. |
| get_team | Get a team by ID. |
| get_team_members | List members of a team. |
| upload_file | Upload a file to a channel. |
| get_file_info | Get metadata for a file. |
| get_file_link | Get a public link for a file. |
| list_bookmarks | List channel bookmarks (Entry+ edition). |
| create_bookmark | Create a channel bookmark (Entry+ edition). |
| update_bookmark | Update a channel bookmark (Entry+ edition). |
| delete_bookmark | Delete a channel bookmark (Entry+ edition). |
| update_bookmark_sort_order | Reorder channel bookmarks (Entry+ edition). |
Required configuration
- MATTERMOST_URLRequired
Your Mattermost server URL.
- MATTERMOST_TOKENRequired
Bot or personal access token for authentication.
- MCP_TRANSPORTOptional
Optional. Set to 'http' to run the server in HTTP mode (Docker).
What you can do with it
Post incident summaries to the right channel
An ops agent searches for the relevant channel, posts a structured incident summary, and pins it so the on-call team sees it immediately.
Triage and respond in threads
The agent reads a thread, reacts to acknowledge, and posts a reply or escalates by adding the right user to the channel.
FAQ
- Is it official?
- No. This is a community-maintained server (cloud.ru). It is actively maintained, but review the source and use a scoped bot token before running it against production.
- Does it support remote/OAuth?
- It runs locally over stdio via uvx or pip, and the official Docker image can also run in HTTP mode. Authentication is a Mattermost bot or personal access token, not OAuth.
- What are the Entry+ bookmark tools?
- The five channel-bookmark tools (list, create, update, delete, and reorder) are part of the project's Entry+ edition; the core 33 channel, message, thread, user, team, and file tools are available in the base server.