# Slack MCP conversations_search_messages fails with a bot token (needs xoxp user token)

**TL;DR:** Message search requires a user token (xoxp); bot tokens are rejected for conversations_search_messages. 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) token
```

## Fix it

1. Confirm the failing tool is a search call and other tools work.
   Expected: Only search fails.
2. Create a user token (xoxp) with the search:read scope.
   Expected: You have the xoxp value.
3. Add it to the Slack MCP server config env.
   Expected: The config carries the user token.
4. 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
- conversations_search_messages 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.