01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100→100, token cost up 7%, unconfirmed writes 0%→0%.
Category breakdown
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
0.0 / 30
27.7 / 30
19.9 / 20
13.6 / 20
Highest-impact fix
Estimated gain +30 pointsExpose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
6 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
echo |
no_return_description |
Returns the input message exactly as provided, unchanged. Useful for testing server round-trip connectivity. |
get-resource-reference |
params_unexplained |
Returns a resource reference that MCP clients can use to fetch a stored resource. Set 'resourceType' to 'Text' to reference a text resource or 'Blob' to reference a binary resource, and use 'resourceId' to choose which resource to reference. |
toggle-simulated-logging |
name_restates_behavior no_return_description |
Enables or disables the server's simulated logging, which emits log messages at random severity levels to demonstrate MCP logging-notification events. Returns the new state, indicating whether simulated logging is currently enabled. |
toggle-subscriber-updates |
no_return_description |
Enables or disables simulated resource subscription updates, which notify subscribers of resource changes to demonstrate MCP subscription events. Returns the new state, indicating whether simulated updates are currently enabled. |
trigger-long-running-operation |
no_return_description |
Runs a simulated long-running operation that reports progress updates over the given duration and number of steps to demonstrate MCP progress notifications. Returns the operation's result once it completes. |
simulate-research-query |
no_return_description |
Simulates a deep research operation that gathers, analyzes, and synthesizes information on the given topic, demonstrating MCP task-based operations with progress through multiple stages. If 'ambiguous' is true and the client supports elicitation, it sends an elicitation request for clarification instead of proceeding. Returns the final synthesized research results once the task completes. |
Selection evidence
2 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
get-resource-links |
get-resource-reference |
medium | Both return resource-related data with near-identical prefixes; a task like 'get the resource' or 'fetch resource info' is genuinely ambiguous since one returns multiple links and the other a single reference, and the agent would need to infer intent from parameter hints (count vs resourceType/resourceId). |
toggle-simulated-logging |
toggle-subscriber-updates |
medium | Both are parameterless toggles for 'simulated' behavior, so tasks phrased generically like 'toggle the simulation' or 'turn off simulated updates' could map to either; only the shared token 'logging' vs 'subscriber' disambiguates, which a user may not specify. |
Compare the field