Operator verification report and badges
With operator verification switched on, every platform and MCP server your organisation has connected carries a badge saying who AgentValet could confirm operates it. This page explains each label, the details behind the badge, and the report page. For what is checked and why, see Operator verification.
Enterprise. Badges and the report appear on the Enterprise plan. On other plans the report page shows an Enterprise upgrade note instead.
Where badges appear
- On every platform card under Platforms → Connections.
- In a platform’s detail panel, in the Operator verification section, with the full source list.
- On the last step of Add MCP server and Add API. It starts at Not yet checked and updates by itself when the background check finishes. The platform is already added at that point: the check never holds up adding.
- On approval screens, on mobile and on the desktop approval card. These show the result as it was when the call was held, labelled Operator verification (when requested), plus the minimum level your policy asked for.
- On the Operator verification report.
Badge labels
There is always exactly one badge. Its label is one of:
| Label | Meaning |
|---|---|
| Listed in MCP Registry | Domain verified, and the official MCP Registry lists this server at this address under a namespace bound to the same domain. |
| Domain verified | The endpoint serves valid HTTPS on its domain. That shows which domain operates it, not which company. |
| Unverified | The checks ran and none confirmed who operates the endpoint. Shown in a neutral style: unverified platforms can still be added and used unless your policy says otherwise. |
| Not yet checked | No check has finished yet, or there is no endpoint address on record for this platform (some catalog platforms). Shown with an outline. |
| Check unavailable | The last check could not reach the sources it needs, so it reached no conclusion. Not the same as Unverified. Shown with a dashed outline. |
While a badge is loading it briefly reads Checking….
Chips next to the badge
Two chips can appear beside the badge. Neither one changes the level.
- Approved version (or Tools changed: awaiting approval, Operator changed: awaiting approval, Operator and tools changed: awaiting approval, Approved, identity not yet confirmed): whether the server still matches the version an admin in your organisation approved. The changed states are amber. No chip shows when no version has been approved. Only your organisation sees it. See Approved versions and tool changes.
- Operator identity published (self-declared): the operator publishes a valid signed statement naming itself. It is self-declared, not independently checked. This chip is left off the compact badges on platform cards and in the report table to save room. It shows in the detail panel.
The badge’s details
Click or tap the badge to open its details. You see:
- the label and the endpoint host
- a one-line summary of what the label means
- each source that was checked, its result, when it was checked, and an Evidence link where there is one
- where a valid identity statement was found, the legal name it states, shown as States its legal name as:
- Approved version (your organisation): the approval state, what it means, any changed or new tools, and the approval or withdrawal note with its time
- Last checked time (or Never checked)
- a link, How operators become verified, to Become verified
The sources are listed as Domain (HTTPS on the endpoint’s domain), Official MCP Registry and Operator identity statement (self-declared). Results read Passed, Passed earlier, now expired, No match or Unavailable, usually followed by a short reason, for example No match: Listed, but under a namespace for another domain or Unavailable: Timed out. For non-MCP platforms, the registry result reads Not applicable (not an MCP server).
Press Esc or click outside to close it.
Re-check now
In a platform’s detail panel, Operator verification has a Re-check now button. It runs the checks straight away and refreshes the badge.
- If the endpoint was checked recently you see “Checked recently. Try again in a few minutes.” Checks are limited to one per endpoint host every 10 minutes, and six per registrable domain every 10 minutes.
- An organisation can make 30 manual re-checks per hour.
- If there is no endpoint address on record, you are told so and nothing is checked.
Otherwise, checks run on their own: when a platform is added, on its first use by an agent, and several times a day on a schedule (every 6 hours). A change on the operator’s side, such as a new registry listing, shows up after the next scheduled run, or sooner if you use Re-check now.
Approve a server version or withdraw approval (admins)
When a server’s tools or operator changed since it was approved, the detail panel says what changed. For a tool change, Review changes shows each changed, added or removed tool with a line-by-line diff of its definition, approved against current.
- Click
Approve current version…. - Write why this version is OK to use. A note of at least 10 characters is required.
- Click
Approve this version.
The approval covers exactly what you were shown. If the server changed again while you were reviewing, you see “The server changed while you were reviewing it. Review the latest version and approve again.” and nothing is approved. After an approval, AgentValet re-lists the server’s tools so the newly approved ones are offered to agents straight away.
To take an approval back, click Withdraw approval…, give a reason (also at least 10 characters) and click Withdraw approval. Approvals and withdrawals are kept in an append-only history and written to the audit log (counterparty.pinned, counterparty.unpinned). An approval sits next to the automated checks, never in place of them, and it never raises the level.
The Operator verification report
Open it from the Operator verification button at the top of Platforms → Connections, or go to /counterparties. It lists every platform and MCP server your organisation has connected.
| Column | What it shows |
|---|---|
| Platform | Name, and whether it is an MCP server, an API you added, or a catalog platform |
| Endpoint | The endpoint host, or unknown |
| Level | The badge |
| Domain, Official MCP Registry, Operator identity statement | The result of each source, or not checked |
| Approved version | The approval state, and any changed tools |
| Last checked | When the result was worked out, or never |
| Changes (30 d) | How many times the level changed in the last 30 days |
Below the table, Level changes in the last 30 days lists each rise or drop with the host, the old and new level, and when it happened. When a level drops, admins also get an in-app notification and the audit log gets a counterparty.level_dropped entry. There is no email.
Filter
The Show menu filters the table, with a count for each:
- All
- Unverified
- Not yet checked
- Check unavailable
- Domain verified or better
- Changed since approval
Export CSV
Export CSV downloads the rows currently shown by the filter. The header is:
platform_id,name,type,host,registrable_domain,state,level,badge,domain,mcp_registry,operator_identity_statement,pin_state,changed_tools,identity_sha256,manifest_sha256,last_checked,changes_30dtypeisMCP,APIorPlatform.stateischecked,not_checkedorcheck_unavailable.levelisunverified,domain_verified,registry_listed, or empty.badgeis the label as shown in the app.domain,mcp_registryandoperator_identity_statementhold each source’s result in the same words as the badge’s details, ornot checked.pin_stateismatch,unpinned,identity_pending,manifest_pending,identity_unknown,identity_changed,manifest_changedorboth_changed. The two_pendingstates mean the server was approved before its first check or its first tool listing, and the approval is not bound to an identity or tool definitions yet.changed_toolslists the changed tool names, separated by spaces.identity_sha256andmanifest_sha256are the current fingerprints, as hex, or empty.last_checkedis a UTC timestamp, or empty.
Cells that start with =, +, - or @ are prefixed with a ' so a spreadsheet does not run them as formulas.