Repository navigation
Add conversations_open, conversations_rename, conversations_create, conversations_invite, and conversations_invite_shared tools - #326
Open
RomainLapeyre wants to merge 6 commits into
Conversation
Wraps Slack's conversations.open API so the MCP client can open a 1:1 DM or multi-person group DM (mpim) given a list of user IDs or handles, then post into it with conversations_add_message. Previously there was no way to start a brand-new group conversation - only posting into channels/DMs that already existed. Disabled by default (SLACK_MCP_OPEN_CONVERSATION_TOOL=true to enable), matching the opt-in pattern used for conversations_add_message and conversations_delete_message.
Announced channel renames in Slack sometimes don't take effect since there was no way to actually invoke conversations.rename; add a gated tool (SLACK_MCP_RENAME_CHANNEL_TOOL) following the existing join/leave/open pattern. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Wraps Slack's conversations.create and conversations.inviteShared APIs so the MCP client can stand up a new channel and turn it into a Slack Connect shared channel by inviting external emails or user IDs. Previously there was no way to originate a Slack Connect invite - only to interact with channels/DMs that already existed. Both tools are disabled by default (SLACK_MCP_CREATE_CHANNEL_TOOL and SLACK_MCP_INVITE_SHARED_TOOL to enable), matching the opt-in pattern used for conversations_open/conversations_rename. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
conversations_create/conversations_invite_shared cover creating a channel and inviting external Slack Connect parties, but there was still no way to add an existing internal workspace member to a freshly created channel. Wraps conversations.invite and factors the user-token-resolution loop (ID/@handle/email -> user ID) already used by conversations_open into a shared resolveUserTokens helper so both tools stay in sync. Disabled by default (SLACK_MCP_INVITE_TOOL=true to enable), matching the opt-in pattern used for the other conversations_* write tools. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This reverts commit 0d38487.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
conversations_openfor creating/resuming DMs and group DMsconversations_renamefor renaming a public/private channel (gated behindSLACK_MCP_RENAME_CHANNEL_TOOL, off by default), following the existingconversations_join/conversations_leavepatternconversations_createfor creating a new public/private channel (gated behindSLACK_MCP_CREATE_CHANNEL_TOOL, off by default)conversations_invitefor inviting existing workspace members to a channel, i.e.conversations.invite(gated behindSLACK_MCP_INVITE_TOOL, off by default)conversations_invite_sharedfor inviting external emails/user IDs to a channel via Slack Connect, i.e.conversations.inviteShared(gated behindSLACK_MCP_INVITE_SHARED_TOOL, off by default)Together,
conversations_create+conversations_invite+conversations_invite_sharedlet the MCP client stand up a brand-new channel, populate it with internal teammates, and turn it into a Slack Connect shared channel with an external partner - end to end, in one session.Test plan
go build ./...andgo vet ./...passconversations_renameagainst a live workspace (renamed 3 channels successfully via the Slack API)go test ./...passes (pre-existing integration tests that require live credentials, e.g.SLACK_MCP_XOXP_TOKEN, are skipped/failed locally as before, unrelated to this change)