取消我的需求
cancel_need登录;本人需求取消为终态,不可编辑/重开;临时下架用unpublish_need。非本人403 not_your_need;已完成409 need_already_completed;已取消409 need_closed。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| needId | Yes | 需求 id |
cancel_need登录;本人需求取消为终态,不可编辑/重开;临时下架用unpublish_need。非本人403 not_your_need;已完成409 need_already_completed;已取消409 need_closed。
| Name | Required | Description | Default |
|---|---|---|---|
| needId | Yes | 需求 id |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare idempotentHint=true; the description adds the materially important facts: login is required, cancellation is terminal and the need cannot be edited or reopened, and the exact error codes/messages for ownership and state violations. The 409 need_closed on repeat calls is consistent with idempotency (state unchanged) but usefully warns the agent to expect an error response rather than a silent success.
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?
One dense line, front-loaded with the action and its terminality before the alternative and error codes. The semicolon-chained telegraphic style packs a lot in but is slightly clipped, and the '登录' fragment is terse to the point of being cryptic.
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 one-parameter mutation with no output schema, it covers auth, irreversibility, the sibling alternative, and failure modes — essentially everything needed to call it correctly. It does not say what happens to dependent artifacts (matches, conversations) after cancellation, a minor residual gap.
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 100%, so the baseline is 3, but the description adds a real constraint beyond the schema: needId must refer to a need owned by the caller (非本人403), which tells the agent this is not an admin-level cancel. It does not add format details for needId, so it stops short of 5.
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?
States a specific verb and resource ('本人需求取消' — cancel one's own need) and immediately qualifies it as a terminal state, which distinguishes it from sibling mutations like unpublish_need, delete_need, complete_need, and reopen_need. An agent can identify the operation 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the temporary-takedown case to unpublish_need, which is the key sibling ambiguity for a 'cancel a need' tool. It also gives concrete blocking conditions (not owner → 403, already completed → 409, already cancelled → 409) so the agent knows when this call will fail and why.
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.