Remove Listing
remove_listingMaintainer only: remove one listing with a public reason. Every use is logged publicly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | 1-500 characters measured as UTF-16 code units | |
| listing_id | Yes |
remove_listingMaintainer only: remove one listing with a public reason. Every use is logged publicly.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | 1-500 characters measured as UTF-16 code units | |
| listing_id | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: the action is maintainer-restricted and every use creates a public log entry with the reason. These are material behavioral traits — public accountability and permission gating — not restated by destructiveHint/idempotentHint. No contradiction with annotations (destructiveHint=true aligns with removal).
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?
Two short sentences, each carrying distinct information (authorization gate, public logging requirement). Zero waste, front-loaded with the maintainer restriction.
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?
Given no output schema and only 2 parameters, the description covers the critical operational context — who can call it and the logging side effect. It leaves listing_id semantics implicit, but the main gaps are minor for a mutation tool of this scope.
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 50%, with listing_id undocumented in the schema. The description mentions 'one listing' and 'public reason,' which hints at the two parameters but adds no format or constraint details beyond what the schema already provides for reason. Baseline 3 is appropriate.
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 ('remove one listing') and adds the authorization scope ('Maintainer only') plus the required public justification. This distinguishes it from siblings like withdraw_item or cancel_world_draft, which touch other resources or have different semantics.
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 restricts usage to maintainers, which tells an agent when NOT to use it. It doesn't name a specific alternative for non-maintainers (e.g., flag or withdraw_item), but the authorization gate is a strong usage signal.
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.