Skip to main content
Glama

invite_to_coupon

Add email addresses to a coupon's invite list and, by default, switch the coupon to invite-only so the list is actually enforced. WRITE, human-gated: a real write requires an elicitation-capable client and the human sees every address plus whether the coupon is about to be closed to everyone else; clients without elicitation are refused (dry_run works anywhere). Addresses are lowercased and de-duplicated, malformed ones are reported rather than dropped, and an address already on the list is left exactly as it is -- so re-inviting someone who already redeemed does NOT hand them a second free account, and re-inviting someone who was revoked does NOT un-block them. Set enforce_invite_only:false only to stage a list before gating the code; the result then carries a warning that the coupon is still open. Use dry_run:true first to see exactly who would be added.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeYes
app_idYes
emailsYes
sourceNo
dry_runNo
enforce_invite_onlyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers: it is declared a WRITE that is human-gated, requires an elicitation-capable client (clients without it are refused, though dry_run works anywhere), lowercases/de-duplicates addresses, reports rather than drops malformed ones, leaves existing entries untouched (no second free account, no re-blocking of revoked users), and warns in the result when enforce_invite_only:false.

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?

A single dense paragraph, but it is front-loaded with purpose and the enforcement behavior before drilling into edge cases. Nearly every clause earns its place; it leans long, though the density is justified by the behavioral detail being conveyed.

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

Completeness4/5

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

For a six-parameter write tool with no annotations and no output schema, this is largely complete: it covers safety gating, idempotency, error handling, and a result warning. The only gap is the unexplained 'source' parameter and no explicit statement of the returned payload shape beyond the warning.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It explains dry_run, enforce_invite_only, and emails semantics (lowercasing, de-dup, malformed handling) thoroughly, but the 'source' parameter is never mentioned and code/app_id are only implied, leaving one of six params undocumented.

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 specific verb (add addresses) plus resource (coupon's invite list) and discloses the key side effect (by default switches coupon to invite-only). This distinguishes it cleanly from siblings like revoke_coupon_invite, list_coupon_invites, and create_coupon.

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 clear conditional guidance: set enforce_invite_only:false only to stage a list before gating, and use dry_run:true first. It covers when-not for one parameter but never explicitly routes to a sibling alternative (e.g., revoke_coupon_invite for removal), so it stops short of full alternatives coverage.

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.

Resources