Files
mattermost-mcp-server/operation/operation.go
T
Karti Tripathi a4e51f6412 feat: initial release with 48 Mattermost MCP tools
- 27 base tools: channels, messaging, users, reactions, files, DMs
- Team management: invite/remove users, get stats, list members
- Slash commands: execute /remind, /poll, etc.
- Webhook management: incoming and outgoing webhooks
- System tools: server config, logs, bulk status updates
- Channel admin: create, invite, leave, delete channels
- Read-only mode for safe exploration
- Dual token support (bot + PAT) for enhanced security
- Apache 2.0 licensed
2026-04-15 21:15:26 -07:00

100 lines
2.4 KiB
Go

package operation
import (
"github.com/karti-ai/mattermost-mcp-server/operation/channel"
"github.com/karti-ai/mattermost-mcp-server/operation/command"
"github.com/karti-ai/mattermost-mcp-server/operation/dm"
"github.com/karti-ai/mattermost-mcp-server/operation/file"
"github.com/karti-ai/mattermost-mcp-server/operation/messaging"
"github.com/karti-ai/mattermost-mcp-server/operation/outgoing"
"github.com/karti-ai/mattermost-mcp-server/operation/reaction"
"github.com/karti-ai/mattermost-mcp-server/operation/system"
"github.com/karti-ai/mattermost-mcp-server/operation/team"
"github.com/karti-ai/mattermost-mcp-server/operation/user"
"github.com/karti-ai/mattermost-mcp-server/operation/webhook"
"github.com/karti-ai/mattermost-mcp-server/pkg/flag"
"github.com/karti-ai/mattermost-mcp-server/pkg/log"
"github.com/karti-ai/mattermost-mcp-server/pkg/tool"
"github.com/mark3labs/mcp-go/server"
)
func Register() []server.ServerTool {
log.Infof("Registering tools for Mattermost MCP server %s", flag.Version)
tools := tool.New()
for _, t := range messaging.Tool.WriteTools() {
tools.RegisterWrite(t)
}
for _, t := range file.Tool.WriteTools() {
tools.RegisterWrite(t)
}
for _, t := range dm.Tool.WriteTools() {
tools.RegisterWrite(t)
}
for _, t := range reaction.Tool.WriteTools() {
tools.RegisterWrite(t)
}
for _, t := range channel.AdminTool.WriteTools() {
tools.RegisterWrite(t)
}
for _, t := range messaging.Tool.ReadTools() {
tools.RegisterRead(t)
}
for _, t := range file.Tool.ReadTools() {
tools.RegisterRead(t)
}
for _, t := range channel.Tool.ReadTools() {
tools.RegisterRead(t)
}
for _, t := range user.Tool.ReadTools() {
tools.RegisterRead(t)
}
for _, t := range team.Tool.ReadTools() {
tools.RegisterRead(t)
}
for _, t := range dm.Tool.ReadTools() {
tools.RegisterRead(t)
}
for _, t := range reaction.Tool.ReadTools() {
tools.RegisterRead(t)
}
for _, t := range webhook.Tool.WriteTools() {
tools.RegisterWrite(t)
}
for _, t := range webhook.Tool.ReadTools() {
tools.RegisterRead(t)
}
for _, t := range command.Tool.WriteTools() {
tools.RegisterWrite(t)
}
for _, t := range outgoing.Tool.WriteTools() {
tools.RegisterWrite(t)
}
for _, t := range outgoing.Tool.ReadTools() {
tools.RegisterRead(t)
}
for _, t := range system.Tool.ReadTools() {
tools.RegisterRead(t)
}
return tools.Tools()
}