mcp-server-mattermost
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | HTTP bind host | 127.0.0.1 |
| MCP_PORT | No | HTTP port | 8000 |
| MCP_TRANSPORT | No | Transport: stdio or http | stdio |
| MATTERMOST_URL | Yes | Mattermost server URL | |
| MATTERMOST_TOKEN | Yes | Bot or personal token. Required for static_token auth mode (default). | |
| MATTERMOST_TIMEOUT | No | Request timeout in seconds | 30 |
| MATTERMOST_AUTH_MODE | No | Auth mode: static_token, client_token, or oauth_proxy | static_token |
| MATTERMOST_LOG_LEVEL | No | Logging level | INFO |
| MATTERMOST_LOG_FORMAT | No | Log output format: json or text | json |
| MATTERMOST_VERIFY_SSL | No | Verify SSL certificates | true |
| MATTERMOST_API_VERSION | No | Mattermost API version | v4 |
| MATTERMOST_MAX_RETRIES | No | Max retry attempts | 3 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_bookmarkA | Create a channel bookmark. Creates a link bookmark (URL) or file bookmark (attached file). For link type, link_url is required. For file type, file_id is required (from upload_file). Note: Requires Entry, Professional, Enterprise, or Enterprise Advanced edition (not available in Team Edition). Minimum version: v10.1. |
| delete_bookmarkA | Delete a channel bookmark. Archives the bookmark (soft delete via delete_at timestamp). The bookmark will no longer appear in the channel. Note: Requires Entry, Professional, Enterprise, or Enterprise Advanced edition (not available in Team Edition). Minimum version: v10.1. |
| list_bookmarksA | List all bookmarks in a channel. Returns bookmarks in sort order. Use to see saved links and files pinned to a channel. For searching messages, use search_messages instead. Note: Requires Entry, Professional, Enterprise, or Enterprise Advanced edition (not available in Team Edition). Minimum version: v10.1. |
| update_bookmarkA | Update a channel bookmark. Partially updates bookmark properties. Only provided fields are updated; others remain unchanged. Note: Requires Entry, Professional, Enterprise, or Enterprise Advanced edition (not available in Team Edition). Minimum version: v10.1. |
| update_bookmark_sort_orderA | Reorder a channel bookmark. Moves the bookmark to the specified position. Other bookmarks are automatically adjusted. Returns all affected bookmarks with updated positions. Note: Requires Entry, Professional, Enterprise, or Enterprise Advanced edition (not available in Team Edition). Minimum version: v10.1. |
| add_user_to_channelA | Add a user to a channel. Requires permission to manage channel members. Adding a user who is already in the channel has no additional effect. |
| create_channelA | Create a new channel in a team. Creates either a public (O) or private (P) channel. The authenticated user becomes the channel admin. Each call creates a new channel; use get_channel_by_name to check if it exists. |
| create_direct_channelA | Create a direct message channel between two users. Returns an existing DM channel if one already exists between the users. Use this to get a channel ID for sending private messages. Then use post_message with the returned channel_id to send messages. |
| get_channelA | Get detailed information about a specific channel. Returns channel metadata including name, purpose, header, and member count. Use when you have the channel ID. For lookup by channel name, use get_channel_by_name instead. |
| get_channel_by_nameA | Get a channel by its name within a team. Returns channel metadata including name, purpose, header, and member count. Use when you know the channel name but not the ID. For lookup by ID, use get_channel instead. |
| get_channel_membersA | Get members of a channel. Returns list of users who are members of the channel. Use to see who can receive messages in a channel. |
| join_channelA | Join a public channel. Adds the authenticated user to the channel. Cannot be used to join private channels. Joining a channel you're already in has no additional effect. |
| leave_channelA | Leave a channel. Removes the authenticated user from the channel. Cannot leave Town Square or other default channels. Can rejoin public channels later with join_channel. |
| list_my_channelsA | List channels you are a member of in a team. Returns your channels with unread counters and the read marker for the authenticated user. Two counter pairs are provided:
Channels without a membership record report 0 for all counters and Use channel_types to narrow results: ["O", "P"] for workspace channels without DMs, or ["D"] for direct messages only. Use only_unread=True to get only channels with unread messages. For discovering public channels you haven't joined yet, use list_public_channels. |
| list_public_channelsA | List public channels available in a team. Returns all public channels for discovery, including ones you haven't joined. Results are paginated. Use page/per_page to retrieve all channels. Useful for finding channels to join. For channels you are already a member of (including private), use list_my_channels. |
| mark_channel_viewedA | Mark a channel as read for the authenticated user. Clears unread counters and advances Do NOT call on accounts shared with humans — it clears their UI badge. |
| get_file_infoA | Get metadata about an uploaded file. Returns file name, size, type, and upload information. Use to check file details before downloading or sharing. |
| get_file_linkA | Get a public link to download a file. Link can be shared with users who don't have Mattermost access. Link may expire based on server settings. |
| upload_fileA | Upload a file to a channel. The file will be attached to messages in the specified channel. Returns file ID that can be used when posting messages with file_ids parameter. |
| delete_messageA | Delete a message permanently. Can only delete your own messages (unless admin). Deleted messages cannot be recovered. All reactions and thread context will be lost. |
| get_channel_messagesA | Get messages from a channel — recent history, the user's unread window, or posts changed since a watermark. Three mutually-exclusive modes. Pick by user intent:
Returns For keyword search use |
| post_messageA | Post a message to a Mattermost channel. Send text messages with Markdown support. Use root_id to reply in a thread. Use file_ids to attach uploaded files. Use attachments for rich formatted content. To read all messages in a thread, use get_thread. Attachment examples:
|
| search_messagesA | Search for messages matching specific criteria across channels. Searches message content within a team. For simply reading recent channel messages, use get_channel_messages instead. Search syntax examples:
|
| update_messageA | Edit an existing message. Can only edit your own messages (unless admin). The message will show as edited. Original content is replaced; edit history is not preserved. Attachment examples:
|
| add_reactionA | Add an emoji reaction to a message. Adds a reaction from the authenticated user. Common emojis: thumbsup, thumbsdown, smile, heart, eyes. Adding the same reaction twice has no additional effect. |
| get_reactionsA | Get all reactions on a message. Returns list of reactions with emoji names and user IDs. Use to see who reacted to a message and with what emoji. |
| get_threadA | Get all messages in a thread. Returns the root post and all replies in chronological order. Use to read full conversation context before replying. |
| pin_messageA | Pin a message in a channel. Pinned messages appear in the channel's pinned posts section. Pinning an already pinned message has no additional effect. |
| remove_reactionA | Remove your emoji reaction from a message. Removes a reaction previously added by the authenticated user. Removing a non-existent reaction has no effect. |
| unpin_messageA | Unpin a message from a channel. Removes the message from the channel's pinned posts. Unpinning a non-pinned message has no effect. |
| get_teamA | Get team details by ID. Returns team name, description, and settings. Use when you have the team ID and need detailed information. |
| get_team_membersA | Get members of a team. Returns list of users who belong to the team. Use to discover users before sending direct messages or mentions. |
| list_teamsA | List teams the current user belongs to. Returns team name, description, and settings. Use this to discover available teams before listing channels. |
| get_meA | Get the current authenticated user's profile. Returns user information including username, email, and status. Use to get your own user ID for operations like create_direct_channel. |
| get_userA | Get a user's profile by their ID. Returns user information including username, email, and status. Use when you have the user ID. For lookup by @username, use get_user_by_username instead. |
| get_user_by_usernameA | Get a user's profile by their username. Returns user information including username, email, and status. Use when you know the @username but not the user ID. For lookup by ID, use get_user instead. |
| get_user_statusA | Get a user's online/offline status. Returns: online, away, dnd (do not disturb), or offline. Use to check if a user is available before sending a message. |
| search_usersA | Search for users by name or username. Searches across username, first name, last name, and nickname. Use to find users when you don't know their exact username or ID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cloud-ru-tech/mcp-server-mattermost'
If you have feedback or need assistance with the MCP directory API, please join our Discord server