Skip to main content
Claude Tag lets you @-mention Claude in a Slack channel. With a plugin and a custom connector pointed at the MerchantOps MCP server, anyone in that channel can ask Claude about your catalog without signing in individually.
Everyone in the channel shares one credential. The key you create authenticates the channel, not each person who types in it. Anyone who can post in the channel (or in the Slack Connect / bundle it’s scoped to) can read whatever that key can read. See What the agent can see below before scoping it to a channel with sensitive membership.

Prerequisites

  • Claude Enterprise with Claude Tag enabled for your Slack workspace.
  • A MerchantOps account with the Owner role — only Owners can create server API keys. See Team & roles.

Set it up

1

Create the server API key

Sign in as an Owner and go to Settings › API Keys › Create API Key. Name it for the channel it will serve (for example #catalog-ops Claude Tag), and assign it the channel_agent_reader role only. Copy the key — it’s shown once. See Server API keys for the full key-creation flow.
If you don’t see channel_agent_reader in the role list, ask your MerchantOps admin to add it rather than assigning a broader role instead.
2

Add a MerchantOps plugin

Add a Claude plugin whose .mcp.json points at the MerchantOps MCP server:
Don’t put the key in this file — it names the server, not the credential.
3

Add a custom connector with a Bearer credential

In Claude’s connector settings, add a custom connector for the MerchantOps MCP server and configure its credential as Bearer, using the full key you copied:
Set Allowed websites to the MCP host, mcp.merchantops.ai, so the credential is never sent anywhere else.
4

Scope it to the right channels

Enable the connector for the specific channel (or the Claude Tag bundle) where you want catalog access, not workspace-wide. Scope follows your Claude Tag / bundle configuration — keep it limited to channels whose members should all see this data.

What the agent can see

The channel_agent_reader role is read-only, scoped to your organization, covering products, product types, property definitions, pricing, MAP pricing, catalog batches, jobs, lakehouse data, and documents. Anything the key can read, Claude can surface to anyone posting in the scoped channel — there’s no per-person filtering inside the channel. If someone in the channel asks Claude to change a price, update a product, or run any other write, the request is declined: this role carries no write permissions on the MerchantOps side.
Because the key represents the channel rather than a person, whoami and usage history show the organization and key identity — not which teammate asked the question.

Revoking access

Revoke the key from Settings › API Keys at any time. The API refuses the key immediately, but a channel that’s still connected can keep working against the MCP server for up to about a minute afterward, since auth lookups are cached briefly. Delete the connector or disable the plugin in Slack as well to fully stop the channel from calling it.

Server API keys

Create, scope, rotate, and revoke keys — including channel_agent_reader.

MerchantOps in Microsoft Teams

The same read-only pattern through Copilot Studio.