Slash fork of mattermost-plugin-agents — AI Agents plugin (license gate to be removed)
  • Go 64.7%
  • TypeScript 34%
  • Makefile 0.6%
  • Go Template 0.4%
  • JavaScript 0.3%
Find a file
2026-08-10 01:06:13 +00:00
.agents/skills/agent-browser Add agent-browser skill (#687) 2026-04-30 07:25:37 -07:00
.claude/agents Enable secure tool calling in channels (#491) 2026-02-12 13:36:21 -05:00
.config/notice-file updated NOTICE.txt and configuration (#285) 2025-01-28 09:56:40 -04:00
.github Build and upload FIPS bundle in CI (#769) 2026-05-25 04:25:35 -07:00
api MM-68980: preserve persisted plugin MCP servers when admins update an active one (#779) 2026-05-28 09:42:54 -07:00
assets Update license header to pass mattermost-govet (#578) 2026-03-30 09:59:03 -04:00
bifrost fix: synthesize a final answer when toolrunner hits MaxToolRounds (#768) 2026-05-28 09:55:32 -04:00
bots Rebuild bots when a DB-agent's service config changes (#787) 2026-05-29 07:12:48 -07:00
build Add Makefile FIPS targets for FIPS-compliant plugin bundles (#767) 2026-05-22 10:20:39 -07:00
channels Combine each LLM conversation turn into a single post (#731) 2026-05-18 06:28:42 -07:00
chunking Harden embedding search: indexing, search, citations, and admin tooling (#510) 2026-03-13 23:56:27 -07:00
cmd/evalviewer Rename Go module from mattermost-plugin-ai to mattermost-plugin-agents (#574) 2026-04-08 06:09:05 -07:00
config MM-68709: Remove unused 'Send User ID' service configuration (#747) 2026-05-19 09:37:31 -04:00
conversation Combine each LLM conversation turn into a single post (#731) 2026-05-18 06:28:42 -07:00
conversations Post tool images from the resolver, not from each caller 2026-08-10 00:53:10 +00:00
customprompts Add custom prompts feature (#590) 2026-04-15 03:54:06 -07:00
dev OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
docs docs: explain plugin-registered MCP servers (#733) 2026-05-19 13:23:30 -04:00
e2e MM-67439: re-measure agents tour dot position on layout shifts (#780) 2026-05-27 07:00:34 -07:00
embeddings Rename Go module from mattermost-plugin-ai to mattermost-plugin-agents (#574) 2026-04-08 06:09:05 -07:00
enterprise Slash: remove Mattermost enterprise license gate (full unlock) 2026-08-09 02:39:24 +00:00
evals OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
external/pluginmcp Add cross-plugin MCP registration and aggregation (#678) 2026-05-08 13:39:10 -04:00
format Channel automation additions (#558) 2026-05-06 15:22:36 -04:00
i18n Ephemeral reminder to @mention an agent when replying in an agent thread (#632) 2026-05-21 12:33:45 -04:00
img Cleanup of package structure for comprehensability. (#281) 2025-01-21 07:33:28 -08:00
indexer fix: 409 on first Full Reindex click for fresh installs (#764) 2026-05-21 07:36:07 -07:00
llm Post tool images from the resolver, not from each caller 2026-08-10 00:53:10 +00:00
llmcontext OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
mcp Post tool images from the resolver, not from each caller 2026-08-10 00:53:10 +00:00
mcpserver MM-67962: clarify search_posts is literal-AND and at-mentions use the username (#746) 2026-05-21 09:42:24 -04:00
meetings OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
metrics OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
mmapi Attach images returned by MCP tools instead of dropping them 2026-08-09 13:28:34 +00:00
mmtools OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
postgres fix: serialize concurrent embedding writes per post_id (#754) 2026-05-20 04:58:48 -07:00
prompts OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
public Add cross-plugin MCP registration and aggregation (#678) 2026-05-08 13:39:10 -04:00
react OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
scripts feat: per-tool config with vetted tool seeding and user provider toggles (#520) 2026-03-27 10:26:26 -07:00
search Combine each LLM conversation turn into a single post (#731) 2026-05-18 06:28:42 -07:00
server Give MCP tool calls their own timeout instead of httpservice's 30s 2026-08-09 19:20:41 +00:00
store MM-68709: Remove unused 'Send User ID' service configuration (#747) 2026-05-19 09:37:31 -04:00
streaming Combine each LLM conversation turn into a single post (#731) 2026-05-18 06:28:42 -07:00
subtitles Additional refactoring in support of Evals. (#333) 2025-06-03 05:49:40 -07:00
telemetry fix: Cohere/Mistral routing, opaque bifrost errors, and stray reasoning_effort (#781) 2026-05-27 06:36:41 -07:00
threads OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
toolrunner fix: synthesize a final answer when toolrunner hits MaxToolRounds (#768) 2026-05-28 09:55:32 -04:00
webapp Slash: remove Mattermost enterprise license gate (full unlock) 2026-08-09 02:39:24 +00:00
websearch OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
.editorconfig Plugin Template 2023-05-03 05:00:50 -07:00
.gitignore Adopt AGENTS.md and simplify build system for AI coding agents (#721) 2026-05-07 07:34:50 -07:00
.golangci.yml Add experimental embedding search (#301) 2025-04-02 06:52:11 -07:00
.mockery.yml Rename Go module from mattermost-plugin-ai to mattermost-plugin-agents (#574) 2026-04-08 06:09:05 -07:00
.nvmrc Rename Go module from mattermost-plugin-ai to mattermost-plugin-agents (#574) 2026-04-08 06:09:05 -07:00
AGENTS.md MM-68710: Fix native web search citations (#736) 2026-05-13 09:44:56 -04:00
CLAUDE.md Adopt AGENTS.md and simplify build system for AI coding agents (#721) 2026-05-07 07:34:50 -07:00
cursor_cloud_supplement.md Adopt AGENTS.md and simplify build system for AI coding agents (#721) 2026-05-07 07:34:50 -07:00
go.mod OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
go.sum OpenTelemetry tracing (#542) 2026-05-07 06:51:14 -07:00
go.tools.mod Adding server side localization (#196) 2024-06-04 14:08:07 -07:00
go.tools.sum Adding server side localization (#196) 2024-06-04 14:08:07 -07:00
LICENSE.enterprise Introduce source available folder. Move multiple LLMs to enterprise. (#108) 2024-01-18 14:36:49 -08:00
LICENSE.txt Apply and enforce file-level license headers (#282) 2025-01-24 17:03:41 -04:00
Makefile Add Makefile FIPS targets for FIPS-compliant plugin bundles (#767) 2026-05-22 10:20:39 -07:00
NOTICE.txt Remove built-in GitHub and Jira issue tools (#586) 2026-04-01 08:26:43 -07:00
plugin.json Rename Go module from mattermost-plugin-ai to mattermost-plugin-agents (#574) 2026-04-08 06:09:05 -07:00
README.md Add Channel Summaries documentation (#583) 2026-04-13 07:28:24 -07:00
skills-lock.json Add agent-browser skill (#687) 2026-04-30 07:25:37 -07:00

Mattermost Agents Plugin Download Latest Master Build

The Mattermost Agents Plugin integrates AI capabilities directly into your Mattermost workspace. Run any local LLM on your infrastructure or connect to cloud providers - you control your data and deployment.

The Mattermost Agents AI Plugin is an extension for mattermost that provides functionality for self-hosted and vendor-hosted LLMs

Key Features

  • Multiple AI Assistants: Configure different agents with specialized personalities and capabilities
  • Thread & Channel Summarization: Get concise summaries of long discussions with a single click
  • Action Item Extraction: Automatically identify and extract action items from threads
  • Meeting Transcription: Transcribe and summarize meeting recordings
  • Semantic Search: Find relevant content across your Mattermost instance using natural language
  • Smart Reactions: Let AI suggest contextually appropriate emoji reactions
  • Direct Conversations: Chat directly with AI assistants in dedicated channels
  • Flexible LLM Support: Use local models (Ollama, vLLM, etc.), cloud providers (OpenAI, Anthropic, Azure), or any OpenAI-compatible API

Documentation

Comprehensive documentation is available in the /docs directory:

Installation

  1. Download the latest release from the releases page. You can also download the experimental latest master
  2. Upload and enable the plugin through the Mattermost System Console
  3. Configure your desired LLM provider settings

System Requirements

  • Mattermost Server versions:
    • v10.0 or later recommended
    • v9.11+ (ESR)
  • PostgreSQL database with pgvector extension for semantic search capabilities
  • Network access to your chosen LLM provider

Quick Start

After installation, complete these steps to get started:

  1. Navigate to System Console > Plugins > Agents
  2. Create an agent and configure it with your LLM provider credentials
  3. Set permissions for who can access the agent
  4. Open the Agents panel from any channel using the AI icon in the right sidebar
  5. Start interacting with your AI assistant

For detailed configuration instructions, see the Admin Guide.

Integration

Bridge Client

The plugin provides a Go client library for other Mattermost plugins and the Mattermost server to interact with the AI plugin's LLM Bridge API. This allows you to easily add AI capabilities to your own plugins or server-side features.

See the Bridge Client README for installation and usage instructions.

Development

Prerequisites

  • Go 1.24+
  • Node.js 24.11+
  • Access to an LLM provider (OpenAI, Anthropic, etc.)

Local Setup

  1. Setup your Mattermost development environment by following the Mattermost developer setup guide. If you have a remote mattermost server you want to develop to you can skip this step.

  2. Setup your Mattermost plugin development environment by following the Plugin Developer setup guide.

  3. Clone the repository:

git clone https://github.com/mattermost/mattermost-plugin-agents.git
cd mattermost-plugin-agents
  1. Optional. If you are developing to a remote server, setup environment variables to deploy:
MM_SERVICESETTINGS_SITEURL=http://localhost:8065
MM_ADMIN_USERNAME=<YOUR_USERNAME>
MM_ADMIN_PASSWORD=<YOUR_PASSWORD>
  1. Run deploy to build the plugin
make deploy

Other make commands

  • Run make help for a list of all make commands
  • Run make check-style to verify code style
  • Run make test to run the test suite
  • Run make e2e to run the e2e tests
  • Run make evals to run prompt evaluations interactively (with TUI)
  • Run make evals-ci to run prompt evaluations in CI mode (non-interactive)

Benchmark Tests

The streaming code has benchmark tests to measure performance and detect regressions:

# Run all streaming benchmarks
go test -bench=. -benchmem ./llm/... ./streaming/...

# Run specific benchmark
go test -bench=BenchmarkStreamToPost -benchmem ./streaming/...

# Run with CPU profiling
go test -bench=BenchmarkReadAll -cpuprofile=cpu.prof ./llm/...

Benchmarks cover:

  • ReadAll() stream consumption with varying response sizes
  • TokenUsageLoggingWrapper interception overhead
  • StreamToPost() full processing pipeline with WebSocket events

Multi-Provider Evaluation Support

The evaluation system supports testing with multiple LLM providers: OpenAI, Anthropic, and Azure OpenAI. By default, evaluations run against all providers, but you can target specific ones:

# Run with all providers (default)
make evals

# Run with only Anthropic
LLM_PROVIDER=anthropic make evals

# Run with OpenAI and Azure
LLM_PROVIDER=openai,azure make evals

# Use a specific model
ANTHROPIC_MODEL=claude-3-opus-20240229 make evals

See cmd/evalviewer/README.md for complete documentation on environment variables and configuration options.

License

This repository is licensed under Apache-2, except for the server/enterprise directory which is licensed under the Mattermost Source Available License. See Mattermost Source Available License to learn more.