a4e51f6412
- 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
100 lines
2.4 KiB
Go
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()
|
|
}
|