Skip to main content
Glama

NFC Tap Builder by Tap.Giving

request_invoice

Idempotent

Return the payment handoff for an order this key's organization created: call create_order first, because this tool needs that call's orderRef (the mcp: reference in its result). It returns a real, finalized Stripe hosted invoice and its link, minted under the invoice playbook (send_invoice collection, 7 days to due, first-order coupon when eligible, the free shipping line, finalized with auto_advance=false so Stripe emails nothing). If the customer already has an open or draft invoice, that invoice's link is returned flagged existing. Both test-mode and live-mode keys mint here; the minted invoice shape passed the field-for-field parity check against Stripe test mode on 2026-11-07. This server moves no money itself: it returns a hosted invoice link for a person to pay.

Input Schema

NameRequiredDescriptionDefault
orderRefYesThe order reference create_order returned (it begins with mcp:); the invoice is minted for that order.
idempotencyKeyYesPer invoice request; retries return the same invoice.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare the write/idempotent/non-destructive profile; the description goes well beyond with the invoice playbook (send_invoice collection, 7-day due, coupon eligibility, free shipping line, auto_advance=false so Stripe sends no email). It also discloses test-vs-live key behavior, the existing-invoice case, and that no money moves — exactly the side-effect detail an agent needs before invoking a write tool.

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?

The prerequisite is front-loaded in the first sentence where an agent will see it, and the parenthetical playbook details are compact. The middle sentence is overloaded with parenthetical clauses, but every clause carries operational information rather than filler.

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?

There is no output schema, and the description compensates by stating what comes back — a finalized Stripe hosted invoice link, flagged 'existing' when one already exists — plus the no-email and no-money-movement guarantees. For a two-parameter write tool, nothing an agent needs to call and interpret it is missing.

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 100%, so baseline is 3, but the description adds real meaning by making orderRef's provenance a hard requirement ('call create_order first') rather than just a format note. The idempotencyKey retry semantics are left entirely to the schema.

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 opening clause gives a specific verb and resource ('Return the payment handoff for an order') and immediately scopes it to orders 'this key's organization created.' It also names the sibling dependency (create_order) and the required input, so an agent can distinguish it from create_order, get_quote, and get_recap 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?

Explicit ordering guidance is given: 'call create_order first, because this tool needs that call's orderRef.' It also states the behavior when an order already has an open or draft invoice (link returned flagged existing). It lacks an explicit when-not-to-use statement or a named alternative for that case, which keeps it off a 5.

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