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
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
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()
|
||||
}
|
||||
Reference in New Issue
Block a user