Show the stored approval for one MCP server
status_mcp_serverRead a server's stored WARDEN approval, compare it with supplied tools/list payload and launch identity, and return hashes, revision, and field-level changes for approval or revocation review.
Instructions
Read the approval WARDEN has stored for one server id and compare it with the tools/list payload and launch identity you pass in. Returns the stored approval (or null), its revision, the hashes of what you passed, whether they differ, what changed field by field (words added and removed in descriptions, schema values before and after, changes made only of numbers marked), and whether this process may change approvals at all.
When to use: before an operator decides to approve or revoke a server, to see what changed since the last approval; show the operator reviewText. It is the only source of the values approve_mcp_server and revoke_mcp_server ask for (currentToolsHash, currentIdentityHash, previousRevision).
When NOT to use: deciding whether a server is safe to expose (vet_mcp_server runs every gate; this tool runs none). It does not scan descriptions and never blocks.
Behaviour: read-only. Reads one file from the local state directory (WARDEN_STATE_DIR, default ~/.local/state/warden/pins); writes nothing, no network, never starts the target server. Works whether or not WARDEN_ALLOW_PIN_CHANGES is set.
Returns structured JSON matching outputSchema. Example: status_mcp_server({ server: { id: "demo@0", name: "demo", transport: "stdio", command: "npx" }, tools: [{ name: "add", description: "Add two integers.", inputSchema: { type: "object" } }] }).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tools | Yes | The server's current tools/list payload, unmodified. Its hash is compared with the stored approval and returned as currentToolsHash. | |
| server | Yes | Identity of the MCP server being vetted — the host's McpServerRef, not a live connection. WARDEN never launches this command or fetches this URL. | |
| server_info | No | Optional: the serverInfo object from the server's initialize result, unmodified ({ name, version }). Shown next to the review as the version the server reports, and stored with an approval; it is the server's own word, so it is never hashed or trusted. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| origin | No | Where a change came from: the versions the server reported and whether the launch command pins one. | |
| changed | Yes | true when an approval is stored and the tools or the launch identity differ from it. | |
| changes | No | What changed since the stored approval, field by field; null when nothing is stored. | |
| previous | Yes | The stored approval, or null when this server was never approved or was revoked. | |
| serverId | Yes | The server id that was looked up. | |
| reviewText | No | The same changes as plain lines for a person: where they came from (reported version, launch command), [-removed-] and {+added+} inside text, before → after for values, and which tools gain text about the user's approval or tool choice. | |
| currentTools | Yes | The tool definitions that were hashed, echoed for the operator's review. | |
| currentToolsHash | Yes | Hash of the tools you passed; pass it as reviewed_tools_hash to approve exactly these definitions. | |
| mutationsEnabled | Yes | false means approve_mcp_server and revoke_mcp_server will refuse in this process. | |
| previousRevision | Yes | sha256 of the stored approval; pass it as previous_pin_revision. null when nothing is stored. | |
| currentIdentityHash | Yes | Hash of the launch identity (transport, command, args, url, name); pass it as reviewed_identity_hash. |