MCP seats: tokens, tools and modes
MCP seats are the identities that connect to your running mcp-core server. Each seat has its own token, its own subset of the tools on your license and its own read-only or read-write mode per tool. An MCP Self-hosted license includes three. You manage them under My Account → MCP Self-hosted, on the Seats tab of your license.
What is an MCP seat, and what is it not?
A seat is one person, device or service that talks to your server: Claude Desktop on a laptop, Claude Code on a build machine, an automation. It is not an installation. An installation is an activation, and MCP Self-hosted includes one. One container can serve all MCP seats on the license; each request is authenticated against one of them and gets that seat’s tool list. Each seat also has its own rate limit: 60 tool calls per minute per add-on by default.
Where do you manage MCP seats?
Open My Account → MCP Self-hosted and choose the Seats tab of the license. The table has four columns:
- Label: the name you gave the seat.
- Tools: the entitlements this seat can use.
- Token: the token itself, with a Copy button.
- Actions: Regenerate token and Revoke.
A license without seats shows “No seats yet.” In practice you always see at least one: when your download is built, a seat labelled “Default install” is created with every tool on the license and each tool’s default mode. Its token is also written to BEARER_TOKEN in .env and to the Claude Code plugin in claude-plugin/.mcp.json.
How do you add MCP seats?
Use the form below the table:
- Enter a Label, for example “Claude Desktop” or “Support laptop”.
- Tick the tools this seat can use. Only tools on your license are listed.
- Pick read-only or read-write next to each ticked tool.
- Click Add seat and copy the new token from the table.
When the limit is reached, the form is replaced by “You have reached the maximum number of seats for this license.” An extra seat costs € 18,15 excl. VAT: € 15,00 per year. Then apply the new connection to your running server:
docker exec mcp-core npm run refresh-license
Which tools and mode should a seat get?
Give each seat only what that person or process needs. Someone who answers customer mail needs Missive, in read-write if Claude should send replies. A developer who checks data needs Database in read-only. Narrow MCP seats are easier to reason about and cheaper to revoke.
Modes per tool:
- Read-only is the default for every tool except Brain, which defaults to read-write.
- In read-only mode, write tools are not registered at all. For Database the query tool stays, but write statements are rejected.
- Lightspeed eCom has no write tools in any mode.
The full logic is on entitlements vs tool modes.
How do you regenerate or revoke a token?
Both actions sit in the Actions column and ask for confirmation first.
- Regenerate token creates a new token for the same seat. The confirmation tells you the current token stops working once mcp-core picks up the change, at its next license check or right away after
docker exec mcp-core npm run refresh-license, and that you need to update the token wherever the seat is used. - Revoke removes the seat. Other seats on the license keep working.
The running server stores the MCP seats it got in its last license check. Run the refresh command after a regenerate or revoke so the server applies it now and not at the next scheduled check. If you regenerate “Default install”, also update BEARER_TOKEN in .env and the Authorization header in claude-plugin/.mcp.json, then rerun ./mcp-update.sh.
When do changes to MCP seats take effect?
Changes take effect at the next automatic license check, within 72 hours, or right away when you run docker exec mcp-core npm run refresh-license. The Details tab of your license says the same. No restart and no new download are needed: the server builds the tool list for each request, so the next request after the refresh already uses the new tools and modes.
What are stores and sites?
WooCommerce, WordPress and Lightspeed eCom can talk to more than one store or site. Those extra stores are set up under the Tools tab with Add store, and credentials there are shared by every seat on the license. Each row on the Seats tab then gets a picker with the stores to choose from, and a Save selection button. A self-hosted mcp-core only uses the stores ticked on the seat whose SEAT_ID is in .env, normally “Default install”, and every seat on that container reaches those same stores. Ticks on other seats do not limit them. Tick at least one store on “Default install”, or the container gets no stores from the portal. Do not mix them up: a store is a target system, a seat is a client identity.
How do you check what a seat sees?
Connect with that seat’s token and ask Claude to run mcp_status. It lists the license state and the tools and modes of the calling seat. The container log also prints a line for each tool it registers or skips for a seat, with the reason.
Set up MCP seats per person or device and you can scope, rotate and remove access without touching the server. Next, connect Claude to the server with the new token, or read how tokens are checked in MCP authentication. The MCP Self-hosted add-on model explains how seats relate to activations.