# Slack MCP not_allowed_token_type on conversations_unreads

**TL;DR:** conversations_unreads needs a user token (xoxc or xoxd); a bot token (xoxb) is rejected with not_allowed_token_type. Add a user token to the server config alongside the bot token. Restart the client and retry the unread query.

## The error

```
not_allowed_token_type
```

## Fix it

1. Check which token type your Slack MCP config uses.
   Expected: It uses a bot token (xoxb).
2. Generate a user token (xoxc or xoxd) for the same Slack app with the needed scopes.
   Expected: You have the user token value.
3. Add the user token to the server config env.
   Expected: Both tokens are configured.
4. Restart the client and call conversations_unreads.
   Expected: It returns unread data.

## When this applies

Slack MCP conversations_unreads fails with not_allowed_token_type while other tools work on a bot token.

## When this does NOT apply

If everything fails, the bot token itself is wrong. missing_scope means the scope is absent, not the token type.

## Tool compatibility

korotovsky/slack-mcp-server, recent versions

## Also seen as

- Slack MCP unreads token type
- conversations_unreads xoxb fails
- not_allowed_token_type slack MCP

## Why it happens

Slack restricts some read APIs to user tokens. The MCP server passes your bot token through, and Slack rejects the token type before even checking scopes.

## Edge cases

- User tokens act as you; only request the scopes you need.
- Some workspaces restrict user token creation; ask an admin.
- Keep both tokens in the config; other tools still use the bot token.