Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions pkg/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ func NewMCPServer(provider *provider.ApiProvider, logger *zap.Logger) *MCPServer

s.AddTool(mcp.NewTool("conversations_history",
mcp.WithDescription("Get messages from the channel (or DM) by channel_id, the last row/column in the response is used as 'cursor' parameter for pagination if not empty"),
mcp.WithTitleAnnotation("Get Conversation History"),
mcp.WithReadOnlyHintAnnotation(true),
mcp.WithString("channel_id",
mcp.Required(),
mcp.Description(" - `channel_id` (string): ID of the channel in format Cxxxxxxxxxx or its name starting with #... or @... aka #general or @username_dm."),
Expand All @@ -54,6 +56,8 @@ func NewMCPServer(provider *provider.ApiProvider, logger *zap.Logger) *MCPServer

s.AddTool(mcp.NewTool("conversations_replies",
mcp.WithDescription("Get a thread of messages posted to a conversation by channelID and thread_ts, the last row/column in the response is used as 'cursor' parameter for pagination if not empty"),
mcp.WithTitleAnnotation("Get Thread Replies"),
mcp.WithReadOnlyHintAnnotation(true),
mcp.WithString("channel_id",
mcp.Required(),
mcp.Description("ID of the channel in format Cxxxxxxxxxx or its name starting with #... or @... aka #general or @username_dm."),
Expand All @@ -77,6 +81,8 @@ func NewMCPServer(provider *provider.ApiProvider, logger *zap.Logger) *MCPServer

s.AddTool(mcp.NewTool("conversations_add_message",
mcp.WithDescription("Add a message to a public channel, private channel, or direct message (DM, or IM) conversation by channel_id and thread_ts."),
mcp.WithTitleAnnotation("Send Message"),
mcp.WithDestructiveHintAnnotation(true),
mcp.WithString("channel_id",
mcp.Required(),
mcp.Description("ID of the channel in format Cxxxxxxxxxx or its name starting with #... or @... aka #general or @username_dm."),
Expand All @@ -95,6 +101,8 @@ func NewMCPServer(provider *provider.ApiProvider, logger *zap.Logger) *MCPServer

conversationsSearchTool := mcp.NewTool("conversations_search_messages",
mcp.WithDescription("Search messages in a public channel, private channel, or direct message (DM, or IM) conversation using filters. All filters are optional, if not provided then search_query is required."),
mcp.WithTitleAnnotation("Search Messages"),
mcp.WithReadOnlyHintAnnotation(true),
mcp.WithString("search_query",
mcp.Description("Search query to filter messages. Example: 'marketing report' or full URL of Slack message e.g. 'https://slack.com/archives/C1234567890/p1234567890123456', then the tool will return a single message matching given URL, herewith all other parameters will be ignored."),
),
Expand Down Expand Up @@ -143,6 +151,8 @@ func NewMCPServer(provider *provider.ApiProvider, logger *zap.Logger) *MCPServer

s.AddTool(mcp.NewTool("channels_list",
mcp.WithDescription("Get list of channels"),
mcp.WithTitleAnnotation("List Channels"),
mcp.WithReadOnlyHintAnnotation(true),
mcp.WithString("channel_types",
mcp.Required(),
mcp.Description("Comma-separated channel types. Allowed values: 'mpim', 'im', 'public_channel', 'private_channel'. Example: 'public_channel,private_channel,im'"),
Expand Down