Skip to main content
Glama
davidmosiah

Rappi MCP (unofficial)

Apply Rappi coupon

rappi_apply_coupon
Destructive

Apply a coupon code to an active Rappi cart to get discounts without completing checkout. Requires explicit user confirmation before submitting.

Instructions

POST /api/user-order-home/coupons/apply (401 JSON no token). Dual-gated. Does not checkout.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeYes
response_formatNomarkdown
explicit_user_intentNoMust be true after the user explicitly asked for this write.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.8

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already mark this as a destructive, non-idempotent write, so the bar is lower. The description adds genuinely new behavioral context: unauthenticated calls produce a 401 JSON response, the operation requires dual gating (consistent with the explicit_user_intent parameter), and it will not trigger checkout. It does not contradict the annotations, though 'Dual-gated' is cryptic and never explained.

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

Conciseness4/5

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

Twelve words with zero filler; endpoint, auth failure mode, gating, and scope are each packed into a short phrase. The raw endpoint is arguably the least useful token for an agent, but no sentence is wasted.

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

Completeness3/5

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

For a destructive, non-idempotent mutation with no output schema and weak parameter documentation, the description is thin on post-conditions: it does not say what a successful apply returns, whether it replaces an existing coupon, or how the cart total changes. The dual-gate and no-checkout notes partially fill the gap, but the state-change and failure-mode story is left for the agent to guess.

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

Parameters2/5

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

Schema description coverage is only 33% (only explicit_user_intent is documented), and the description mentions none of the three parameters. It does not state that 'code' is the coupon code, explain 'response_format', or elaborate on the gating flag. The agent can infer 'code' from the tool name, but the description fails to compensate for the low schema coverage.

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

Purpose4/5

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

The endpoint path and title identify the action (apply) and resource (coupon), and 'Does not checkout' distinguishes it from checkout/ordering siblings. However, the description never states the purpose in plain language — the agent must infer 'applies a coupon to the current order/cart' from the endpoint. Clear and non-tautological, but terse.

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

Usage Guidelines3/5

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

The description conveys useful constraints: auth is required ('401 JSON no token'), the operation is dual-gated, and it does not perform checkout — which implies it should be called before checkout_preview/place_order. But it never names an alternative tool or states an explicit when-not-to-use condition, so routing between apply_coupon and related tools like list_coupons rests on inference.

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