Skip to main content
Glama

cart.applyDiscount

Idempotent

Apply a discount or coupon code to a droplinked cart. Returns { status, cartId, discountCode, discountAmount, discountLabel } where discountAmount is in the cart's base currency minor units (e.g. cents). Call this after cart.addLine and before start_checkout / process_payment. Surfaces structured error reasons (CART_NOT_FOUND / INVALID_DISCOUNT_CODE / DISCOUNT_EXPIRED / DISCOUNT_NOT_APPLICABLE / BACKEND_BAD_REQUEST / BACKEND_UNAVAILABLE) so the orchestrating agent can retry with a different code or proceed without a discount.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cartIdYes
discountCodeYes

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses significant behavioral context beyond annotations: exact return fields, unit semantics (minor units), error handling with specific error codes, and invocation order. Annotations only mark idempotency/safety flags; the description enriches the agent's mental model of failures and responses without contradicting any annotations.

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 description is compact yet information-dense: each sentence adds value (purpose+return, unit explanation, invocation order, error taxonomy). It is front-loaded with the core behavior and uses structured notation for error codes, making it easy to parse.

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?

Given the lack of an output schema, the description fully specifies return values and units. It also covers error conditions and execution context, which is essential for an agent to know when and how to invoke the tool. No critical gaps for the tool's complexity.

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 coverage is 0%, so the description carries the full burden for parameter meaning. It clarifies 'discountCode' as a coupon code implicitly, but provides no explicit input format, validation rules, or interaction between parameters. The description focuses on output and errors rather than enriching input semantics.

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?

The description states the exact action ('Apply a discount or coupon code to a droplinked cart') and clearly differentiates from sibling cart tools by focusing on discount application. It also specifies the return object, leaving no ambiguity about the tool's purpose.

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?

Provides explicit sequencing guidance ('Call this after cart.addLine and before start_checkout / process_payment') and hints at alternative actions (retry with a different code or proceed without a discount). It lacks a formal 'when not to use' statement, but alternatives are not present among siblings, making the guidance clear.

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.

TDQS

B3.4/5.0
Disambiguation2/5

Many tools have overlapping purposes, such as find_inventory, search_products, list_shop_products, and get_product all dealing with product discovery/retrieval with subtle differences. Similarly, verify_brand_attestation and get_brand_attestation_status could be confused, as could get_trust_dossier and get_underwriting_signals. The sheer number of verification and lookup tools makes it difficult to pick the right one without careful reading.

Naming Consistency2/5

The cart tools use a dot-separated camelCase convention (cart.addLine, cart.updateLineQuantity), while the rest use snake_case with varied verbs (find_, get_, list_, search_, verify_, request_, quote_, etc.). This mixing of conventions and inconsistent verb choices (e.g., find_inventory vs search_products vs list_shop_products) makes the tool names unpredictable.

Tool Count2/5

With 38 tools, this server is heavily overloaded. The guidance suggests 25+ tools is too many, and this server exceeds that threshold. While the domain spans commerce, trust attestations, and lending, the count is excessive for a coherent single-server toolkit.

Completeness3/5

The tool surface is extremely broad, covering cart management, checkout, product discovery, trust verification, and lending workflows. However, there are notable gaps: no cart retrieval or order history, no revoke/update for attestations, and some key lending tools (quote_credit_terms, report_repayment) are scaffolded but not yet functional, creating dead ends.

Resources