Skip to main content
Glama
CosmosPay

Cosmos Pay MCP Server

Official
by CosmosPay

Create a payment link

create_payment_link

Create a payment request with a link, QR code, and hosted checkout page that lets customers pay on-chain from their own wallet, with funds settling directly to the destination.

Instructions

Create a payment request that a customer pays from their own wallet: a payment link (SEP-7 on Stellar, Solana Pay on Solana, EIP-681 on Monad), its QR code and a hosted checkout page. It moves no money: the payment settles on-chain straight to destination once the customer pays. The network is the API key’s: this server is on test networks (dv_ key: no real funds). Omit amount to let the payer choose it (not on Monad, which needs one). Omit asset_code to charge in the chain’s coin (XLM, SOL, MON). Send the customer checkoutUrl (or paymentUri for a wallet), then use get_payment to see when it is paid.

Input Schema

NameRequiredDescriptionDefault
memoNoNumeric MEMO_ID: the idempotency key on every chain and the on-chain match on Stellar. Generated when omitted; reusing one is refused.
chainNoThe chain the payment settles on. Default: stellar.
amountNoAmount the destination receives, in the asset’s own units, as a decimal string ("25", "10.50"). Omit for an open amount.
messageNoShown to the payer in their wallet (Stellar and Solana), e.g. an order number.
asset_codeNoAsset to charge in, e.g. "USDC". Omit for the chain’s coin.
include_qrNoAlso return the QR code as an image. Default: false.
destinationYesThe account that receives the payment, on the chosen chain: Stellar G..., Solana base58 address, Monad 0x... address.
asset_issuerNoWho issues the asset: the Stellar issuer account, the Solana SPL mint or the Monad ERC-20 contract. Needed for a token unless the API has a preset for it.
checkout_themeNoDesign of the hosted checkout page. Default: classic.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: it discloses that no money moves server-side and settlement is on-chain to `destination`, that the network is determined by the API key and dv_ keys are test networks with no real funds, and that reusing a memo is refused. These are operational facts the annotations (readOnlyHint=false, openWorldHint=true) cannot convey. The memo-based idempotency note sits alongside idempotentHint=false but is a caller-supplied key rather than a contradiction of server-side idempotency.

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-loads the core identity in the first clause and then packs conditional rules efficiently; nearly every sentence carries decision-relevant information. It is dense for a single paragraph, and the chain-standard parenthetical could be trimmed, but there is no 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?

With no output schema, the description compensates by naming the return fields an agent must act on (`checkoutUrl`, `paymentUri`, optional QR) and by describing the full lifecycle through to settlement. For a 9-parameter mutation on an open-world payment rail, that is complete enough to invoke correctly.

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 the baseline is 3, but the description adds cross-parameter meaning the schema does not: the Monad exception to omitting `amount`, and the native-coin default when `asset_code` is omitted. It stops short of explaining `memo`, `checkout_theme` or `include_qr` behavior, which remain schema-only.

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 ('Create a payment request... a payment link') and immediately disambiguates by naming the per-chain standards it produces (SEP-7, Solana Pay, EIP-681) plus the QR code and checkout page artifacts. An agent can tell this apart from the read-side siblings get_payment/list_payments without opening the 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?

Gives explicit conditional guidance: omit `amount` to let the payer choose (except Monad), omit `asset_code` to charge the native coin, then send `checkoutUrl`/`paymentUri` and poll with get_payment. It names the follow-up sibling tool and the condition that selects it, leaving nothing to inference.

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