Skip to content

Conversation

@RedSlowpoke
Copy link

Summary

Add five new tools for managing Slack user groups (subteams):

  • usergroups_list - List all user groups in the workspace with optional filters
  • usergroups_me - Manage your own membership: list groups you're in, join, or leave
  • usergroups_create - Create a new user group with name, handle, and description
  • usergroups_update - Update group metadata (name, handle, description, default channels)
  • usergroups_users_update - Replace all members of a group

Key Features

The usergroups_me tool provides a convenient way to join or leave groups without needing to know the full member list. It handles fetching current members and updating the list automatically - addressing the limitation that Slack's API only supports replacing the entire member list.

Required OAuth Scopes

  • usergroups:read - For list operations
  • usergroups:write - For create/update/join/leave operations

Tool Descriptions

All tools include detailed descriptions optimized for LLM understanding, explaining:

  • What user groups are (mention groups like @engineering)
  • When to use each tool
  • Output format (CSV vs JSON)
  • ID format and how to get IDs
  • Warnings about destructive operations

Test Plan

  • Build passes: go build ./...
  • Vet passes: go vet ./...
  • Manual testing with MCP Inspector
  • Verified idempotent join/leave (returns message if already member/not member)

@korotovsky
Copy link
Owner

Bringing new tools into the MCP is one of the most complicated things, because I try to keep them functional on the same level among all three types of tokens: xoxp, xoxb and xoxd/xoxc. Have you researched possible solutions how usergroups could be managed via xoxc/xoxd?

@RedSlowpoke
Copy link
Author

I've manually tested with xoxc/xoxd and it works just fine.

@RedSlowpoke
Copy link
Author

Additionaly, I want to add, that some of the tools that I propose in this PR are desctructive.
I think it may be the best to finalize the #173 before finalizing this one.

@korotovsky
Copy link
Owner

I agree, was about to suggest the same. But please update OAuth JSON spec in docs for completeness anyway.

sspiridonov and others added 2 commits February 8, 2026 20:14
Add five new tools for managing Slack user groups (subteams):

- usergroups_list: List all user groups in the workspace
- usergroups_me: Manage your own membership (list/join/leave)
- usergroups_create: Create a new user group
- usergroups_update: Update group metadata (name, handle, description)
- usergroups_users_update: Replace all members of a group

The usergroups_me tool provides a convenient way to join or leave
groups without needing to know the full member list. It handles
fetching current members and updating the list automatically.

Required OAuth scopes:
- usergroups:read (for list operations)
- usergroups:write (for create/update/join/leave operations)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add usergroups:read and usergroups:write scopes to:
- OAuth scope list
- App manifest JSON

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@RedSlowpoke RedSlowpoke force-pushed the feat/usergroups-management branch from f10088c to e1d1086 Compare February 8, 2026 19:18
sspiridonov and others added 2 commits February 8, 2026 23:30
@RedSlowpoke
Copy link
Author

RedSlowpoke commented Feb 9, 2026

I've tested with xoxb as well and it make it possible for list and even _me works to join and leave for the bot.
So I've tested with all 3 types of tokens manually and it seems working for me on my corporate slack.

Update available tools list and clarify that usergroups tools are
registered by default and require appropriate OAuth scopes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants