MCP Agents
MCP Agents shows every AI assistant connected to this platform over MCP: who it acts for, which tools it calls, and how many of those calls work. It is also where you choose how the MCP server lists its tools. By the end of this page you will know what each tab shows and what the two settings change.
Open it from Admin Panel → Platform → MCP Agents. Only administrators can open it.
The panel records metadata only: who called which tool, when, from which client, the outcome and how long it took. What was sent and what came back are never stored, so nobody can read them here.
The page has four tabs: Clients, Activity, Usage and Settings.
Clients
| Part | What it shows |
|---|---|
| Overview | Assistants and users active in the last 15 minutes, total calls, distinct users, refused and failed calls, and the error rate. Choose the window with 7d, 30d, 90d or 180d. |
| Users by tier | How many people called as Admin, Paid, Free or Unidentified, counted by the tier they had at the time of each call. |
| Calls per day | Call volume across the window. |
| Clients | One row per AI client, for example Claude Code or ChatGPT, with its users, calls, refusals, failures and when it was last seen. |
A client is active when it made a call in the last 15 minutes. A client that is signed in but not calling shows as idle. Click a client to open its requests.
Activity
Every request, newest first: the time, the user and their tier, the client, the
tool that ran, the outcome (ok, refused or failed), how long it took
and a request id. Filter by outcome, by tier and by window, or search. Click a
row for its details.
The Tool column always names the operation that actually ran, also when the
server lists only three tools (see Settings). A call that reached
write_lab_file through execute_request shows as write_lab_file.
Usage
Monthly totals: distinct users by tier, calls, refusals, failures and clients, each compared with the month before, plus distinct users per day and users per client. Pick a month in the top-right corner.
The current month is live. A past month is sealed the first time it is viewed after it ends, and stays available after the individual requests have expired (180 days). Only counts are kept, never who.
Settings
Server version
The banner shows which MCP server the platform runs, with its build number and features.
| Version | What it means |
|---|---|
| v1 | Every operation is listed as its own tool. No widgets. |
| v2, with widgets | Read tools can return interactive widgets, the three-tool mode is available, and the switches below take effect. |
If the banner says Unknown, the dashboard could not reach the MCP server at that moment. Reload the page.
The two switches
| Switch | On | Off | Default |
|---|---|---|---|
| List only the three tools | Assistants see only get_service_info, get_type_info and execute_request, and reach every other operation through them. | Every tool is listed by name. | Off |
| Show UI widgets | Read tools, such as a lab list or a lab dashboard, may return an interactive widget in clients that can draw one. | No tool returns a widget. | On |
Flip a switch and it is saved at once. The MCP server picks it up within about a minute, without a restart and without disconnecting anyone. Every change is recorded in the audit trail.
Good to know:
- Nothing becomes allowed or forbidden. "List only the three tools" changes how tools are listed, not what an account may do. Plans, modules and permissions apply exactly as before.
- Tools that change something never return a widget. Deploying, writing a file or deleting always returns a plain result, whatever the widgets switch says.
- Clients keep the list they fetched. Most assistants read the tool list when they connect. If one still shows the old list after a minute, reconnect it.
- Widgets need a server that ships them. If the platform's MCP server was started without widgets, the page says so and On has no effect.
How an assistant works with three tools
get_service_infofinds the operation for the task, for example "delete my database" leads todelete_database. Each match says whether it only reads, writes, or is destructive.get_type_inforeturns that operation's arguments.execute_requestruns it. The answer starts with the operation's name, so the user sees what ran without expanding anything:
{"operation": "write_lab_file", "result": {"path": "app/index.html", "written": true}}
A destructive operation runs only once the user has agreed to it, or asked for exactly that action.
Next
- MCP admin tools: the extra tools an administrator's assistant gets
- Connect an AI assistant: how users connect a client