Like listing
like_listingLikes the listing; DELETE undoes it. Calling again does not add up: the counter counts people.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the listing to like. | |
| guest_token | Yes |
like_listingLikes the listing; DELETE undoes it. Calling again does not add up: the counter counts people.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the listing to like. | |
| guest_token | Yes |
Changes observed during successful MCP inspections.
Input schema / properties / id / descriptionAdded value: +"ID of the listing to like."Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds genuine context beyond the annotations: DELETE reverses the like, and repeat calls do not stack because the counter counts distinct people rather than calls. This is useful behavioral disclosure. There is mild tension with idempotentHint=false, since the description implies repeat calls are effectively a no-op on the counter, but this reads as nuance about what is counted rather than a direct contradiction.
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 tight clauses with the primary action front-loaded and no padding. The second clause ('the counter counts people') is slightly cryptic in its brevity but earns its place by conveying distinct counting semantics.
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 2-param action tool with no output schema, the description covers purpose, the inverse operation, and repeat-call behavior. It omits auth/permission needs and any explanation of guest_token, leaving the required-token requirement undocumented.
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 only 50% (id is documented, guest_token is not). The description explains nothing about either parameter and never mentions guest_token, so it fails to compensate for the documentation gap. It adds no meaning beyond the schema.
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 ('Likes the listing'), which is unambiguous and cannot be confused with the read-oriented siblings like get_listing or listing_status. It does not explicitly name a sibling or an unlike counterpart, so it falls just short of full differentiation, but the purpose is 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?
'DELETE undoes it' and 'Calling again does not add up' imply when the operation is meaningful and what its inverse is, giving real usage context. However, no alternative tool or explicit when-to-use/when-not condition is named, so guidance remains implied rather than explicit.
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.