Slack MCP conversations_search_messages fails with a bot token (needs xoxp user token)
Fixes Slack message search failing through the MCP server on a bot token. Use when search tools fail but posting and listing work. Not for channel membership or scope issues.
Slack MCP conversationssearchmessages fails with a bot token (needs xoxp user token)
TL;DR: Message search requires a user token (xoxp); bot tokens are rejected for conversationssearchmessages. Add an xoxp user token with search:read scope to the server config. Restart the client and retry the search.
The error
conversations_search_messages fails with a bot (xoxb) tokenFix it
- Confirm the failing tool is a search call and other tools work.
Expected: Only search fails.
- Create a user token (xoxp) with the search:read scope.
Expected: You have the xoxp value.
- Add it to the Slack MCP server config env.
Expected: The config carries the user token.
- Restart the client and run the search.
Expected: Results return.
When this applies
Slack MCP search tools fail on a bot token while channel reads and posting work.
When this does NOT apply
If nothing works, the bot token is wrong. If search 403s on a user token, the scope is missing.
Tool compatibility
korotovsky/slack-mcp-server, recent versions
Also seen as
- Slack MCP search needs user token
- conversationssearchmessages xoxp
- Slack MCP search forbidden bot token
Why it happens
Slack's search API is user-scoped; it searches what the user can see. Bot tokens are not accepted for it regardless of scopes, so the server needs a user token for search tools.
Edge cases
- Search results follow the user's permissions, not the bot's.
- xoxp tokens expire with the user's sessions; reissue if search breaks later.
- Enterprise Grid search has extra visibility rules.
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.