Skip to main content
Glama

Last Price

apply_analyst_proposal

Destructive

Approve and apply a proposal the pricing analyst made (an analyst.* approval, listed in get_analyst_brief and list_approvals). Its stored call runs with your own credential, so the target route checks your role and scopes; only when it succeeds is the proposal approved by you and marked applied. A refusal comes back unchanged and leaves the proposal pending. It runs once even when two applies race. Only the call the action allows runs; anything else is refused. A person, a workspace key, or the agent that owns the workspace may apply; no other agent may, and nobody applies their own request. A proposal already applied runs nothing again and says it was already applied. Needs a Last Price credential with routing write scope. Needs a claimed workspace: a sandbox key from self-registration is refused (403) until a person claims the workspace.

Input Schema

NameRequiredDescriptionDefault
reasonNoWhy, kept with the approval when this call approves it. Optional.
approval_idYesThe proposal approval id, as get_analyst_brief or list_approvals gives it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4/5.0
Behavior4/5

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

Rich disclosure well beyond the annotations: the stored call runs under the caller's credential and is re-checked for role and scopes, a refusal leaves the proposal pending, execution is race-safe, and only the single allowed call runs. One tension: the description says an already-applied proposal 'runs nothing again and says it was already applied', which reads as idempotent behavior while annotations set idempotentHint=false. The description is doing real work here, but that mismatch keeps it from a 5.

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

Conciseness4/5

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

Front-loaded with the action and its scope, then permissions, failure behavior, and prerequisites in a sensible order. It runs long at six sentences and the adjacent statements 'Only the call the action allows runs; anything else is refused' and 'A refusal comes back unchanged and leaves the proposal pending' partly overlap.

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?

For a destructive, non-read-only mutation with no output schema, the description covers everything an agent needs before calling: authorization rules, self-approval prohibition, credential and routing write scope, the claimed-workspace precondition with its 403, concurrency, and the already-applied case. Nothing material is left to guesswork.

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 coverage is 100%, so both parameters are already documented, including the UUID format and the 500-character cap on reason. The description only reinforces where approval_id comes from ('as get_analyst_brief or list_approvals gives it'), which is the expected baseline rather than added semantic depth.

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

Purpose4/5

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

States a specific verb-and-resource pair ('Approve and apply a proposal the pricing analyst made') and scopes it to analyst.* approvals listed in get_analyst_brief and list_approvals. That is far more precise than a bare 'apply', but it never contrasts itself with close siblings such as decide_approval, approve_commerce_proposal, or execute_commerce_proposals, so an agent must infer the boundary.

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

Usage Guidelines4/5

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

Gives concrete entry points ('listed in get_analyst_brief and list_approvals') and constrains who may invoke it: 'A person, a workspace key, or the agent that owns the workspace may apply; no other agent may, and nobody applies their own request.' What is missing is an explicit statement of when not to use it, e.g. pointing to the reject/decide siblings.

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.

Resources