MCP Mattermost Server
MCP server para Mattermost com suporte completo a Playbooks, Runs, Tasks e Context Engineering.
Features
- Team dinâmico - Não fixo na config, passado por chamada
- 81 tools organizadas em 8 grupos + 9 helpers
- Props support - User, Team, Channel, Post
- Playbooks completo - PropertyFields, PropertyValues
- Tasks - Check batch (fase inteira), assignee, webhooks
Instalação
npm install
cp .env.example .env
# Editar .env com suas credenciais
npm run build
Configuração
MM_URL=https://seu-mattermost.com
MM_TOKEN=seu-token-aqui
Uso com Claude Desktop
{
"mcpServers": {
"mattermost": {
"command": "node",
"args": ["/caminho/para/mcp-mattermost/dist/index.js"],
"env": {
"MM_URL": "https://seu-mattermost.com",
"MM_TOKEN": "seu-token"
}
}
}
}
Tools Disponíveis
Index
| Tool |
Descrição |
mm_help |
Lista os 8 grupos e suas funções |
1. User (6 tools)
| Tool |
Descrição |
mm_user_help |
Helper do grupo |
mm_user_get |
Busca user por ID |
mm_user_get_by_username |
Busca user por @username |
mm_user_search |
Lista/busca usuários |
mm_user_create |
Cria novo usuário |
mm_user_update |
Atualiza perfil |
mm_user_update_props |
Atualiza props (config agente) |
2. Webhook (10 tools)
| Tool |
Descrição |
mm_webhook_help |
Helper do grupo |
mm_webhook_outgoing_create |
Cria webhook outgoing |
mm_webhook_outgoing_list |
Lista webhooks outgoing |
mm_webhook_outgoing_get |
Busca webhook por ID |
mm_webhook_outgoing_update |
Atualiza webhook |
mm_webhook_outgoing_delete |
Remove webhook |
mm_webhook_incoming_create |
Cria webhook incoming |
mm_webhook_incoming_list |
Lista webhooks incoming |
mm_webhook_incoming_get |
Busca webhook por ID |
mm_webhook_incoming_update |
Atualiza webhook |
mm_webhook_incoming_delete |
Remove webhook |
3. Team (7 tools)
| Tool |
Descrição |
mm_team_help |
Helper do grupo |
mm_team_get |
Busca time por ID |
mm_team_get_by_name |
Busca time por nome |
mm_team_list |
Lista todos os times |
mm_team_update_props |
Atualiza props do time |
mm_team_get_members |
Lista membros |
mm_team_add_member |
Adiciona membro |
mm_team_remove_member |
Remove membro |
4. Channel (11 tools)
| Tool |
Descrição |
mm_channel_help |
Helper do grupo |
mm_channel_get |
Busca canal por ID |
mm_channel_get_by_name |
Busca canal por nome |
mm_channel_list |
Lista canais do time |
mm_channel_search |
Busca canais |
mm_channel_create |
Cria canal |
mm_channel_update |
Atualiza canal |
mm_channel_update_props |
Atualiza props |
mm_channel_delete |
Remove canal |
mm_channel_get_members |
Lista membros |
mm_channel_add_member |
Adiciona membro |
mm_channel_remove_member |
Remove membro |
5. Post (14 tools)
| Tool |
Descrição |
mm_post_help |
Helper do grupo |
mm_post_get |
Busca post por ID |
mm_post_get_channel |
Lista posts do canal |
mm_post_get_thread |
Lista posts da thread |
mm_post_search |
Busca posts |
mm_post_create |
Cria post (message + props) |
mm_post_update |
Atualiza message |
mm_post_update_props |
Atualiza props |
mm_post_delete |
Remove post |
mm_post_pin |
Fixa post |
mm_post_unpin |
Desfixa post |
mm_post_get_pinned |
Lista fixados |
mm_post_reaction_add |
Adiciona emoji |
mm_post_reaction_remove |
Remove emoji |
mm_post_reaction_get |
Lista reactions |
6. Playbook (9 tools)
| Tool |
Descrição |
mm_playbook_help |
Helper do grupo |
mm_playbook_get |
Busca playbook por ID |
mm_playbook_list |
Lista playbooks |
mm_playbook_create |
Cria playbook |
mm_playbook_update |
Atualiza (webhooks, channel_mode) |
mm_playbook_delete |
Arquiva playbook |
mm_playbook_field_list |
Lista property fields |
mm_playbook_field_create |
Cria field |
mm_playbook_field_update |
Atualiza field |
mm_playbook_field_delete |
Remove field |
7. Run (13 tools)
| Tool |
Descrição |
mm_run_help |
Helper do grupo |
mm_run_get |
Busca run por ID |
mm_run_get_by_channel |
Busca run por channel_id |
mm_run_list |
Lista runs |
mm_run_start |
Inicia run (link canal existente) |
mm_run_update |
Atualiza run |
mm_run_finish |
Finaliza run |
mm_run_end |
Encerra run |
mm_run_restart |
Reinicia run |
mm_run_status_update |
Posta status |
mm_run_change_owner |
Troca owner |
mm_run_property_list |
Lista fields + values |
mm_run_property_get |
Busca value |
mm_run_property_set |
Define value (contexto) |
8. Task (11 tools)
| Tool |
Descrição |
mm_task_help |
Helper do grupo |
mm_task_get |
Busca task específica |
mm_task_add |
Adiciona task |
mm_task_update |
Atualiza (description=prompt) |
mm_task_delete |
Remove task |
mm_task_set_state |
Define estado |
mm_task_check |
Marca como done |
mm_task_uncheck |
Desmarca |
mm_task_set_assignee |
Atribui a usuário |
mm_task_run_command |
Executa slash |
mm_task_reorder |
Reordena |
mm_task_check_checklist |
Marca fase inteira |
Gavetas de Dados
| Local |
Campo |
Tamanho |
Uso |
| Post |
message |
16KB |
Conteúdo visível |
| Post |
props |
64KB |
Metadados invisíveis |
| Channel |
props |
64KB |
Config do canal |
| User |
props |
64KB |
Config do agente |
| Team |
props |
64KB |
Config compartilhada |
| Run |
PropertyValues |
5MB |
Contrato, contexto global |
| Task |
description |
64KB |
Prompt da task |
Para Context Engineering
LEITURA (Context Builder):
├── Run.PropertyValues → Contrato M2, contexto
├── Task.description → Prompt da task
├── Channel.Posts → Histórico
└── Post.props → Metadados
ESCRITA (LLM executa):
├── Post.message + props → Resposta + metadados
├── Run.PropertyValues → Output estruturado
├── Task.state = closed → Marca feito
└── Task.assignee_id → Próxima task
Licença
MIT