Related MCP Server Resources

Explore more AI models, providers, and integration options:

  • Explore AI Models
  • Explore AI Providers
  • Explore MCP Servers
  • LangDB Pricing
  • Documentation
  • AI Industry Blog
  • GitLab MCP Server
  • mcp-server-asana
  • Ollama MCP Server
  • MindManager MCP Server
  • TxtAi Memory Vector Server
Back to MCP Servers
Mattermost MCP Server

Mattermost MCP Server

Public
pvev/mattermost-mcp

Enables seamless interaction with Mattermost workspaces via Model Context Protocol, offering channel monitoring, message posting, user management, and scheduled topic notifications for enhanced collaboration and automation.

typescript
0 tools
May 30, 2025
Updated Jun 4, 2025

Supercharge Your AI with Mattermost MCP Server

MCP Server

Unlock the full potential of Mattermost MCP Server through LangDB's AI Gateway. Get enterprise-grade security, analytics, and seamless integration with zero configuration.

Unified API Access
Complete Tracing
Instant Setup
Get Started Now

Free tier available • No credit card required

Instant Setup
99.9% Uptime
10,000+Monthly Requests

Mattermost MCP Server

MCP Server for the Mattermost API, enabling Claude and other MCP clients to interact with Mattermost workspaces.

Features

This MCP server provides tools for interacting with Mattermost, including:

Topic Monitoring

The server includes a topic monitoring system that can:

  • Monitor specified channels for messages containing topics of interest
  • Run on a configurable schedule (using cron syntax)
  • Send notifications when relevant topics are discussed
  • Mention you in a specified channel when topics are found

Channel Tools

  • mattermost_list_channels: List public channels in the workspace
  • mattermost_get_channel_history: Get recent messages from a channel

Message Tools

  • mattermost_post_message: Post a new message to a channel
  • mattermost_reply_to_thread: Reply to a specific message thread
  • mattermost_add_reaction: Add an emoji reaction to a message
  • mattermost_get_thread_replies: Get all replies in a thread

Monitoring Tools

  • mattermost_run_monitoring: Trigger the topic monitoring process immediately

User Tools

  • mattermost_get_users: Get a list of users in the workspace
  • mattermost_get_user_profile: Get detailed profile information for a user

Setup

  1. Clone this repository:
git clone https://github.com/yourusername/mattermost-mcp.git cd mattermost-mcp
  1. Install dependencies:
npm install
  1. Configure the server:

    The repository includes a config.json file with placeholder values. For your actual configuration, create a config.local.json file (which is gitignored) with your real credentials:

    { "mattermostUrl": "https://your-mattermost-instance.com/api/v4", "token": "your-personal-access-token", "teamId": "your-team-id", "monitoring": { "enabled": false, "schedule": "*/15 * * * *", "channels": ["town-square", "off-topic"], "topics": ["tv series", "champions league"], "messageLimit": 50 } }

    This approach keeps your real credentials out of the repository while maintaining the template for others.

  2. Build the server:

npm run build
  1. Run the server:
npm start

Topic Monitoring Configuration

The monitoring system can be configured with the following options:

  • enabled (boolean): Whether monitoring is enabled
  • schedule (string): Cron expression for when to check for new messages (e.g., "*/15 * * * *" for every 15 minutes)
  • channels (string[]): Array of channel names to monitor
  • topics (string[]): Array of topics to look for in messages
  • messageLimit (number): Number of recent messages to analyze per check
  • notificationChannelId (string, optional): Channel ID where notifications will be sent. If not provided, the system will automatically use a direct message channel.
  • userId (string, optional): Your user ID for mentions in notifications. If not provided, the system will automatically detect the current user.

To enable monitoring, set enabled to true in your config.local.json file.

Running Monitoring Manually

You can trigger the monitoring process manually in several ways:

  1. Using the provided scripts:

    • ./run-monitoring-http.sh - Triggers monitoring via HTTP without restarting the server (recommended)
    • ./run-monitoring.sh - Starts a new server instance with monitoring enabled
    • ./trigger-monitoring.sh - Runs the monitoring process and exits (useful for cron jobs)
    • ./view-channel-messages.js [count] - View the last messages in a channel
    • ./analyze-channel.js [count] - Analyze message statistics in a channel
    • ./get-last-message.js - Get the last message from a channel
  2. Using the command-line interface (CLI):

    • While the server is running, simply type one of these commands in the terminal:
      • run - Run the monitoring process
      • monitor - Same as run
      • check - Same as run
    • Other available commands:
      • help - Show available commands
      • exit - Shutdown the server
  3. Using the MCP tool:

    • Use the mattermost_run_monitoring tool through the MCP interface
    • This will immediately check all configured channels for your topics of interest
  4. Using the command-line flags:

    • Start the server with the --run-monitoring flag:
    npm start -- --run-monitoring
    • This will run the monitoring process immediately after the server starts
    • Add --exit-after-monitoring to exit after the monitoring process completes:
    npm start -- --run-monitoring --exit-after-monitoring
    • This is useful for running the monitoring process from cron jobs

Tool Details

Channel Tools

mattermost_list_channels

  • List public channels in the workspace
  • Optional inputs:
    • limit (number, default: 100, max: 200): Maximum number of channels to return
    • page (number, default: 0): Page number for pagination
  • Returns: List of channels with their IDs and information

mattermost_get_channel_history

  • Get recent messages from a channel
  • Required inputs:
    • channel_id (string): The ID of the channel
  • Optional inputs:
    • limit (number, default: 30): Number of messages to retrieve
    • page (number, default: 0): Page number for pagination
  • Returns: List of messages with their content and metadata

Message Tools

mattermost_post_message

  • Post a new message to a Mattermost channel
  • Required inputs:
    • channel_id (string): The ID of the channel to post to
    • message (string): The message text to post
  • Returns: Message posting confirmation and ID

mattermost_reply_to_thread

  • Reply to a specific message thread
  • Required inputs:
    • channel_id (string): The channel containing the thread
    • post_id (string): ID of the parent message
    • message (string): The reply text
  • Returns: Reply confirmation and ID

mattermost_add_reaction

  • Add an emoji reaction to a message
  • Required inputs:
    • channel_id (string): The channel containing the message
    • post_id (string): Message ID to react to
    • emoji_name (string): Emoji name without colons
  • Returns: Reaction confirmation

mattermost_get_thread_replies

  • Get all replies in a message thread
  • Required inputs:
    • channel_id (string): The channel containing the thread
    • post_id (string): ID of the parent message
  • Returns: List of replies with their content and metadata

User Tools

mattermost_get_users

  • Get list of workspace users with basic profile information
  • Optional inputs:
    • limit (number, default: 100, max: 200): Maximum users to return
    • page (number, default: 0): Page number for pagination
  • Returns: List of users with their basic profiles

mattermost_get_user_profile

  • Get detailed profile information for a specific user
  • Required inputs:
    • user_id (string): The user's ID
  • Returns: Detailed user profile information

Usage with Claude Desktop

Add the following to your claude_desktop_config.json:

{ "mcpServers": { "mattermost": { "command": "node", "args": [ "/path/to/mattermost-mcp/build/index.js" ] } } }

Troubleshooting

If you encounter permission errors, verify that:

  1. Your personal access token has the necessary permissions
  2. The token is correctly copied to your configuration
  3. The Mattermost URL and team ID are correct

HTTP Endpoints

The server exposes HTTP endpoints for remote control:

  • Run Monitoring: http://localhost:3456/run-monitoring

    • Triggers the monitoring process immediately
    • Returns JSON response with success/error information
  • Check Status: http://localhost:3456/status

    • Returns information about the server and monitoring status
    • Useful for health checks

You can use these endpoints with curl or any HTTP client:

# Trigger monitoring curl http://localhost:3456/run-monitoring # Check status curl http://localhost:3456/status

Utility Scripts

run-monitoring-http.sh

This script triggers the monitoring process via the HTTP endpoint:

./run-monitoring-http.sh

This is the recommended way to trigger monitoring manually as it:

  • Doesn't restart the server
  • Doesn't interfere with the scheduled monitoring
  • Works reliably from any terminal

view-channel-messages.js

This script allows you to view the most recent messages in any channel:

# View messages in a channel (channel name is required) node view-channel-messages.js # View a specific number of messages node view-channel-messages.js # Example: View the last 10 messages in a channel node view-channel-messages.js general 10

The script will display:

  • Channel information (name, purpose, total message count)
  • The most recent messages with timestamps and usernames
  • If the channel doesn't exist, it will list all available channels

analyze-channel.js

This script provides detailed statistics about messages in a channel:

# Analyze messages in a channel (channel name is required) node analyze-channel.js # Analyze a specific number of messages node analyze-channel.js # Example: Analyze the last 50 messages in a channel node analyze-channel.js general 50

The script will display:

  • Channel information and metadata
  • Total message count (including system messages)
  • Breakdown of user messages vs. system messages
  • Message count by user
  • The most recent messages in the channel

get-last-message.js

This script retrieves only the most recent message from a channel:

# Get the last message from a channel (channel name is required) node get-last-message.js # Example: Get the last message from the general channel node get-last-message.js general

The script will display:

  • The sender's user ID and username
  • The timestamp of the message
  • The full message content

License

This MCP server is licensed under the MIT License.

Publicly Shared Threads0

Discover shared experiences

Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!

Share your threads to help others
Related MCPs5
  • GitLab MCP Server
    GitLab MCP Server

    Enables seamless interaction with GitLab via Model Context Protocol, offering comprehensive reposito...

    41 tools
    Added May 30, 2025
  • mcp-server-asana
    mcp-server-asana

    Enables seamless interaction with Asana API via Model Context Protocol, providing advanced task, pro...

    22 tools
    Added May 30, 2025
  • Ollama MCP Server
    Ollama MCP Server

    Enables seamless integration of local Ollama LLM models with MCP-compatible applications, offering m...

    Added May 30, 2025
  • MindManager MCP Server
    MindManager MCP Server

    Enables programmatic interaction with MindManager on Windows and macOS via the Model Context Protoco...

    9 tools
    Added May 30, 2025
  • TxtAi Memory Vector Server
    TxtAi Memory Vector Server

    Model Context Protocol server offering advanced semantic search, persistent memory management, tag-b...

    Added May 30, 2025