取消本人未付款订单
cancel_payment_order【需登录】预览本人未付订单;确认后同参+previewHash、preview=false关闭原单并回源核验。取消非退款;支付/关单并发可能已付,以返回状态判断成功。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| outTradeNo | Yes | ||
| previewHash | No |
cancel_payment_order【需登录】预览本人未付订单;确认后同参+previewHash、preview=false关闭原单并回源核验。取消非退款;支付/关单并发可能已付,以返回状态判断成功。
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| outTradeNo | Yes | ||
| previewHash | No |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: cancellation is explicitly not a refund (取消非退款), a payment/close race may already have paid (支付/关单并发可能已付), success must be judged from the returned status, and it closes the original order. This covers what gets destroyed, the auth requirement, and the success criterion, which the destructive/idempotent hints alone do not.
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?
Single dense sentence with semicolon-separated clauses; every clause carries real information and the login requirement is front-loaded. It is compact rather than bloated, though the run-on structure and reliance on domain shorthand reduce scannability slightly.
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 destructive, two-phase mutation with no output schema and 0% parameter documentation, it covers the workflow, auth needs, concurrency caveat and success criterion, and defers return-value interpretation to the returned status. Only the identifier parameter and edge-case failure handling are left unaddressed.
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 carry the load, and it does: it explains preview as a mode flag (default preview) and previewHash as the value returned by preview that unlocks confirmation with preview=false. outTradeNo is left implicit, and no format/length hints are given, so it is not a full 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+resource: cancelling one's own unpaid payment order by closing the original order (关闭原单). The two-step preview/confirm nature is made explicit. However, it never names or contrasts with the obvious sibling resume_payment_order, so an agent must infer the distinction itself.
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?
Gives clear context: login required, first call preview, then re-invoke with the same params plus previewHash and preview=false to actually close. No explicit when-not or alternative-tool routing (e.g., vs resume_payment_order) is provided, so it stops short of a 5.
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.