Skip to main content
Glama

Create invoice

create_invoice
Idempotent

Use when the user wants to bill someone: creates an invoice with one line item and returns its link, where the client pays by bank transfer, crypto or the seller's own card payment link. For stablecoin payments, crypto_payment gives the wallet and send_exactly: the payer must send that exact amount, not the rounded total. Call send_invoice afterwards to email it. Pass idempotency_key so retries never create duplicates. The seller's plan and limits apply: a request over a limit fails with the reason (and where to upgrade), and one above the approval threshold returns status pending_approval with an approval_id to check with get_approval.

Input Schema

NameRequiredDescriptionDefault
amountYes
currencyNoISO code, e.g. USD, EUR, USDTUSD
due_daysNo
client_nameYes
descriptionYes
client_emailYes
idempotency_keyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly=false, idempotent=true, destructive=false) by disclosing the return value (payment link), accepted payment rails, plan/limit failure behavior, the approval-threshold path with pending_approval and approval_id, and the exact-amount requirement for stablecoin payers. These are non-obvious outcomes an agent cannot infer from structured fields.

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?

Front-loaded with the trigger and core action, then layered detail; nearly every sentence adds actionable information. It drifts into run-on sentences and includes fairly niche crypto-payment mechanics that could be split for readability.

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?

With no output schema, the description usefully covers the return value and the non-happy-path outcomes (limit failure, pending_approval). It is complete on behavior, though thin on the required input parameters given the low schema coverage.

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 only 14%, so the description must carry parameter meaning, but it only explains idempotency_key (retry safety) and partially touches amount (exact vs rounded for crypto). The four required parameters client_email, client_name, due_days, and especially 'description' (the line-item text) get no clarification at all, leaving the ambiguous 'description' field 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 and resource ('creates an invoice with one line item') plus what it returns ('returns its link'), and distinguishes itself from send_invoice and get_approval by describing the handoff. An agent can tell it apart from siblings like create_credit_note or list_invoices without opening a schema.

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

Usage Guidelines5/5

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

Opens with an explicit trigger ('Use when the user wants to bill someone') and names alternatives with their conditions: send_invoice afterwards to email, get_approval to check pending_approval, crypto_payment for stablecoin details. Both when-to-use and follow-up routing are spelled out.

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