Skip to main content
Glama

Adako: Google Ads, Meta Ads & Linkedin Ads MCP

Approve and execute a pending proposal

approve_proposal
DestructiveIdempotent

🔴 DESTRUCTIVE WRITE — pauses, removes or re-budgets live objects; proposal + explicit user confirmation required. Cost: free (not counted against tasks).

Executes a pending proposal exactly once and reads the object back. Only call after the user has explicitly said yes to the specific proposal (quote its summary). Use when: the user's write policy is "inbox" and they approve in chat, or a client deferred a write. If the proposal expired or was already decided, returns an error — do not re-create it silently; tell the user.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
raw_dataNoReturn compact JSON only (no markdown). Use when you will compute on the result.
proposal_idYesId from list_pending_proposals or the proposal_pending error
idempotency_keyNoOptional caller-supplied key; identical keys never execute twice.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (destructiveHint/idempotentHint) by disclosing the confirmation protocol (quote the proposal summary), the cost model ('free, not counted against tasks'), that the object is read back after execution, and the exact error behavior on expired/decided proposals. These are operational traits an agent cannot infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the destructive warning, then states the core action, prerequisites, use case, and error handling. Every sentence carries distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description notes it 'reads the object back', covers the confirmation prerequisite, cost, and failure modes. Nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents proposal_id, idempotency_key, and raw_data. The description's 'exactly once' phrasing hints at the idempotency guarantee, but that is already covered by the idempotency_key schema description, so it adds little param-level meaning. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Executes a pending proposal exactly once and reads the object back'), and clearly differentiates from siblings like list_pending_proposals and reject_proposal. An agent can tell what this does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to call ('Only call after the user has explicitly said yes', 'the user's write policy is "inbox"') and provides a failure rule ('If the proposal expired or was already decided... do not re-create it silently; tell the user'). This is genuine when/when-not guidance with a clear alternative action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.