Skip to main content
Glama
conarti

Mattermost MCP Server

by conarti

Mattermost MCP Server

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

Quick Start

npx @conarti/mattermost-mcp --help

Using environment variables

MATTERMOST_URL=https://your-mattermost.com/api/v4 \
MATTERMOST_TOKEN=your-token \
MATTERMOST_TEAM_ID=your-team-id \
npx @conarti/mattermost-mcp

Using CLI arguments

npx @conarti/mattermost-mcp \
  --url https://your-mattermost.com/api/v4 \
  --token your-token \
  --team-id your-team-id

Installation

Option 1: npx (no installation needed)

npx @conarti/mattermost-mcp

Option 2: Global installation

npm install -g @conarti/mattermost-mcp
mattermost-mcp --help

Option 3: Clone and build

git clone https://github.com/conarti/mattermost-mcp.git
cd mattermost-mcp
npm install
npm run build
npm start

Configuration

The server supports multiple configuration methods with the following priority (highest to lowest):

  1. CLI arguments (--url, --token, --team-id)

  2. Environment variables (MATTERMOST_URL, MATTERMOST_TOKEN, MATTERMOST_TEAM_ID)

  3. config.local.json (for local overrides, gitignored)

  4. config.json (default configuration)

CLI Arguments

Argument

Description

--url <url>

Mattermost API URL (e.g., https://mattermost.example.com/api/v4)

--token <token>

Mattermost personal access token

--team-id <id>

Mattermost team ID

--run-monitoring

Run topic monitoring immediately on startup

--exit-after-monitoring

Exit after running monitoring (use with --run-monitoring)

--help

Show help message

Environment Variables

Variable

Description

MATTERMOST_URL

Mattermost API URL

MATTERMOST_TOKEN

Mattermost personal access token

MATTERMOST_TEAM_ID

Mattermost team ID

Configuration File

Create config.local.json (gitignored) or use config.json:

{
  "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
  }
}

Claude Code Integration

Add to your Claude Code MCP settings (~/.claude/claude_desktop_config.json or via claude mcp add):

{
  "mcpServers": {
    "mattermost": {
      "command": "npx",
      "args": ["-y", "@conarti/mattermost-mcp@latest"],
      "env": {
        "MATTERMOST_URL": "https://your-mattermost.com/api/v4",
        "MATTERMOST_TOKEN": "your-token",
        "MATTERMOST_TEAM_ID": "your-team-id"
      }
    }
  }
}

Or using a config file:

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

Features

Channel Tools

Tool

Description

mattermost_list_channels

List channels in the workspace (public, private, and DMs)

mattermost_get_channel_history

Get messages from a channel with filtering options

mattermost_list_channels Options

  • limit (default: 100): Maximum number of channels to return

  • page (default: 0): Page number for pagination

  • include_private (default: false): If true, returns all channels including private channels and direct messages (DMs)

mattermost_get_channel_history Options

  • channel_id (required): The ID of the channel

  • limit: Number of messages to retrieve. If not specified or 0, returns ALL messages

  • page (default: 0): Page number for pagination (only used when limit > 0)

  • since_date: ISO 8601 date to get messages after (e.g., "2025-01-15")

  • before_date: ISO 8601 date to get messages before. Use with since_date for date ranges

  • before_post_id: Get messages before this post ID (cursor pagination)

  • after_post_id: Get messages after this post ID (cursor pagination)

Examples:

// Get ALL messages from a channel
{ "channel_id": "abc123" }

// Get last 50 messages
{ "channel_id": "abc123", "limit": 50 }

// Get all messages from December 18, 2025
{ "channel_id": "abc123", "since_date": "2025-12-18", "before_date": "2025-12-19" }

// Get messages from a specific date onwards
{ "channel_id": "abc123", "since_date": "2025-12-15" }

Message Tools

Tool

Description

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

User Tools

Tool

Description

mattermost_get_users

Get a list of users in the workspace

mattermost_get_user_profile

Get detailed profile information for a user

Monitoring Tools

Tool

Description

mattermost_run_monitoring

Trigger topic monitoring immediately

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

Configuration

{
  "monitoring": {
    "enabled": true,
    "schedule": "*/15 * * * *",
    "channels": ["general", "random"],
    "topics": ["important", "urgent"],
    "messageLimit": 50,
    "notificationChannelId": "optional-channel-id",
    "userId": "optional-user-id"
  }
}

Running Monitoring Manually

# Run monitoring and continue server
mattermost-mcp --run-monitoring

# Run monitoring and exit (useful for cron jobs)
mattermost-mcp --run-monitoring --exit-after-monitoring

Getting Your Credentials

Mattermost URL

Your Mattermost API URL is typically: https://your-mattermost-domain.com/api/v4

Personal Access Token

  1. Go to Account Settings > Security > Personal Access Tokens

  2. Click Create Token

  3. Give it a description and create

  4. Copy the token (it won't be shown again)

Team ID

  1. Go to your team in Mattermost

  2. Open browser developer tools (F12)

  3. Go to Network tab

  4. Refresh the page

  5. Look for API calls containing teams/ — the ID is in the URL

Or use the Mattermost API:

curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://your-mattermost.com/api/v4/teams

Troubleshooting

Missing Configuration Error

Missing required configuration:
  - mattermostUrl (--url or MATTERMOST_URL)
  - token (--token or MATTERMOST_TOKEN)
  - teamId (--team-id or MATTERMOST_TEAM_ID)

Make sure you've provided all required configuration via CLI arguments, environment variables, or config file.

Permission Errors

Verify that:

  1. Your personal access token has the necessary permissions

  2. The token is correctly set

  3. The Mattermost URL and team ID are correct

License

MIT License

Install Server
A
license - permissive license
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/conarti/mattermost-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server