You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Add tool annotations for improved LLM tool understanding
Add readOnlyHint and destructiveHint annotations to all tools
to help LLMs better understand tool behavior and make safer decisions.
Changes:
- Added readOnlyHint: true to read-only tools (conversations_history,
conversations_replies, conversations_search_messages, channels_list)
- Added destructiveHint: true to conversations_add_message tool
- Added title annotations for human-readable display
This improves tool safety metadata for MCP clients by providing
semantic hints about whether tools modify data or just read it.
Co-Authored-By: Claude <noreply@anthropic.com>
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.Description(" - `channel_id` (string): ID of the channel in format Cxxxxxxxxxx or its name starting with #... or @... aka #general or @username_dm."),
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"),
59
+
mcp.WithTitleAnnotation("Get Thread Replies"),
60
+
mcp.WithReadOnlyHintAnnotation(true),
57
61
mcp.WithString("channel_id",
58
62
mcp.Required(),
59
63
mcp.Description("ID of the channel in format Cxxxxxxxxxx or its name starting with #... or @... aka #general or @username_dm."),
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."),
104
+
mcp.WithTitleAnnotation("Search Messages"),
105
+
mcp.WithReadOnlyHintAnnotation(true),
98
106
mcp.WithString("search_query",
99
107
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."),
0 commit comments