Skip to main content
Glama

Smartrr MCP by usefulapi

Cancel a customer's subscription

smartrr_cancel_customer_subscription
DestructiveIdempotent

WRITE, DESTRUCTIVE: cancel a customer's subscription in the merchant's store (this is the customer's Smartrr subscription, not your usefulapi plan). It stops all future orders and charges; the reason may trigger Smartrr's configured cancellation emails or actions. It can be undone only with smartrr_resume_subscription. Get reason_id from smartrr_list_cancellation_reasons. PUT /vendor/customer/{customerId}/purchase-state/{subscriptionId}/cancel.

Input Schema

NameRequiredDescriptionDefault
reason_idYesCancellation reason id from smartrr_list_cancellation_reasons.
customer_idYesSmartrr customer id (`custRel.id`).
subscription_idYesSmartrr subscription id (`id`, a UUID).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint and idempotentHint, but the description adds real value beyond them: the concrete effect (stops all future orders and charges), a conditional side effect (the reason may trigger configured cancellation emails or actions), and the only undo path. It does not say what happens if the subscription is already cancelled or what the response contains, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The mutating/destructive signal is front-loaded in the first two words, followed by scope, side effects, recovery, dependency, and endpoint in that order. Every clause carries distinct information with no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter destructive write with no output schema, the description covers scope, side effects, prerequisite lookup, reversibility, and the underlying endpoint — everything an agent needs to invoke it correctly and warn appropriately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented in the schema, including the reason_id source. The description only repeats the reason_id provenance and embeds the other two ids in the endpoint path; it adds no format or constraint detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource ('cancel a customer's subscription in the merchant's store') and explicitly disambiguates the object of the operation from the agent's own plan. An agent can distinguish it from smartrr_pause_subscription or smartrr_resume_subscription without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the prerequisite chain explicitly — 'Get reason_id from smartrr_list_cancellation_reasons' — and names the recovery path (smartrr_resume_subscription). It does not state when to prefer pause_subscription over cancel, which is the most likely sibling confusion, so it misses the top end.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.