Check the next action on an opportunity
yardstick_opportunities_next_actionRead the next action state for an opportunity without mutating it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| opportunity_id | Yes |
yardstick_opportunities_next_actionRead the next action state for an opportunity without mutating it.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| opportunity_id | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims the operation is read-only ('Read... without mutating it'), but the annotations declare readOnlyHint: false, which directly contradicts that claim. While idempotentHint: true and destructiveHint: false somewhat support a safe read, the readOnlyHint conflict is a serious inconsistency.
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?
The description is a single sentence with no filler or redundant restatement of the tool name. It front-loads the core action and adds the key non-mutation qualifier efficiently.
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?
With no output schema and no documentation of what 'next action state' means or what the returned data looks like, the description leaves a meaningful gap. The annotation contradiction also undermines agent confidence in the tool's side effects. A simple read tool needs at least some indication of response shape or domain meaning.
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 description coverage is 0%, so the description must compensate, but it does not explain either parameter. 'opportunity_id' is somewhat self-explanatory from its name, but 'request_id' is entirely unexplained, leaving a required-adjacent parameter ambiguous.
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?
The description uses a specific verb, 'Read', and a specific resource, 'the next action state for an opportunity,' making it immediately clear what the tool operates on. The phrase 'without mutating it' and the focus on 'next action state' distinguish it from broader opportunity read/list tools like yardstick_opportunities_read.
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 implies this tool is for checking the next action state, but it gives no explicit guidance on when to choose it over related tools, no prerequisites, and no mention of what request_id is for. There is no when/when-not guidance or alternative routing.
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.