approval_plan_deny
Discard a prepared or quota-waiting mixed approval, preserving completed receipts; no Google changes.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| approval_ref | Yes | ||
| connection_context | No | ||
| expected_plan_digest | Yes |
Discard a prepared or quota-waiting mixed approval, preserving completed receipts; no Google changes.
| Name | Required | Description | Default |
|---|---|---|---|
| approval_ref | Yes | ||
| connection_context | No | ||
| expected_plan_digest | Yes |
Changes observed during successful MCP inspections.
Input schema / properties / connection_contextAdded value: +{
+ "pattern": "^mctx_v1_[0-9a-f]{64}$",
+ "type": "string"
+}Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (destructiveHint=true). Explicitly states what is preserved ('preserving completed receipts') and that there are 'no Google changes', which are non-obvious and important behavioral guarantees that the structured fields do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action and immediately followed by the two key behavioral guarantees. Zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Behavioral context is strong for a denial operation, but the 0% parameter coverage and absence of output schema mean the agent gets no guidance on approval_ref format or what expected_plan_digest is for. Complete enough to attempt the call, not to call it correctly under all conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there are no parameter descriptions anywhere. The description mentions 'prepared or quota-waiting' but does not explain approval_ref, expected_plan_digest (e.g., concurrency guard, stale plan detection), or connection_context. With three undocumented parameters, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Discard a prepared or quota-waiting mixed approval'. The qualifier 'mixed approval' and scope 'prepared or quota-waiting' distinguishes it from siblings like approval_plan_confirm (which proceeds) and approval_plan_get (reads). Not a perfect 5 because 'mixed approval' is an undefined term for external readers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description scopes the action to 'prepared or quota-waiting' approvals, implicitly excluding already-confirmed ones. However, it does not explicitly name approval_plan_confirm as the alternative or state when to deny vs confirm, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.