mark_opportunity
Mark a board card posted (give reply_url, the link to your own reply, so Shipyard watches for replies to it), dismissed, or live again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| reply_url | No | ||
| opportunity_id | Yes |
Mark a board card posted (give reply_url, the link to your own reply, so Shipyard watches for replies to it), dismissed, or live again.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| reply_url | No | ||
| opportunity_id | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only say readOnlyHint=false and openWorldHint=false, so the real value here is the disclosed side effect: supplying reply_url makes Shipyard watch for replies to that link. That is genuine behavioral context an agent could not get from the schema. It stops short of saying whether the watcher persists, whether reply_url is mandatory for posted, or whether transitions are reversible.
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?
A single sentence with the action front-loaded and no filler. The nested parenthetical is slightly convoluted to parse but every clause adds information the agent needs.
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?
For a three-parameter mutation with no output schema and thin annotations, the description covers the main risk (reply_url triggering reply watching) but leaves open what the call returns, whether reply_url is required for posted, and what happens on an invalid or already-transitioned opportunity_id.
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 carries the burden, and it only partially compensates. It explains reply_url's purpose and the meaning of the three status values, but opportunity_id is given no format, source, or constraint despite being required.
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?
Specific verb 'mark' plus the three target states (posted, dismissed, live) make the operation unambiguous, and no sibling tool performs a state transition on an opportunity. It never uses the term 'opportunity' from its own name, saying 'board card' instead, so an agent must infer the mapping, but the intent is otherwise clear.
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 parenthetical tells the agent what to pass when marking posted, which is usable guidance for that one path. It gives no condition for choosing dismissed versus live, no statement that this is the only tool for changing card state, and no prerequisites (e.g. a card must exist first).
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.