Skip to main content
Glama

Private payments over MPP

gloam_mpp_how_to
Read-onlyIdempotent

How to pay or charge privately over MPP (the Machine Payments Protocol, HTTP 402) with the gloam method from @gloamtrade/mppx-gloam, with code. A charge settles as a private transfer in a Gloam vault: the chain sees no amount, asset, payer or payee.

Input Schema

NameRequiredDescriptionDefault
roleNo"charge" to get paid for an API or tool, "pay" for an agent or app paying one, "both" for both.both
networkNoGloam network: "robinhood-mainnet" (Robinhood Chain mainnet: USDG and GLOAM), "tempo-mainnet" (Tempo mainnet: USDC.e, pathUSD, USDT0, OUSD), "base-mainnet" (Base mainnet: USDC, EURC, USDT, ETH), "ethereum-mainnet" (Ethereum mainnet: USDC, USDT, USDG, PYUSD, EURC, ETH), or a testnet: "tempo" (Tempo Moderato), "robinhood" (Robinhood Chain testnet), "base" (Base Sepolia) or "ethereum" (Ethereum Sepolia).tempo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / network / description
      Previous value: -"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet: USDC.e, pathUSD, USDT0, OUSD), or a testnet: \"tempo\" (Tempo Moderato), \"robinhood\" (Robinhood Chain testnet), \"base\" (Base Sepolia) or \"ethereum\" (Ethereum Sepolia)."New value: +"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet: USDC.e, pathUSD, USDT0, OUSD), \"base-mainnet\" (Base mainnet: USDC, EURC, USDT, ETH), \"ethereum-mainnet\" (Ethereum mainnet: USDC, USDT, USDG, PYUSD, EURC, ETH), or a testnet: \"tempo\" (Tempo Moderato), \"robinhood\" (Robinhood Chain testnet), \"base\" (Base Sepolia) or \"ethereum\" (Ethereum Sepolia)."
    • changedInput schema / properties / network / enum
      Previous value: -[
      -  "tempo",
      -  "robinhood",
      -  "base",
      -  "ethereum",
      -  "robinhood-mainnet",
      -  "tempo-mainnet"
      -]New value: +[
      +  "tempo",
      +  "robinhood",
      +  "base",
      +  "ethereum",
      +  "robinhood-mainnet",
      +  "tempo-mainnet",
      +  "base-mainnet",
      +  "ethereum-mainnet"
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / network / description
      Previous value: -"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet: USDC.e, pathUSD, USDT0, OUSD), or a testnet: \"tempo\" (Tempo Moderato), \"robinhood\" (Robinhood Chain testnet) or \"base\" (Base Sepolia)."New value: +"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet: USDC.e, pathUSD, USDT0, OUSD), or a testnet: \"tempo\" (Tempo Moderato), \"robinhood\" (Robinhood Chain testnet), \"base\" (Base Sepolia) or \"ethereum\" (Ethereum Sepolia)."
    • changedInput schema / properties / network / enum
      Previous value: -[
      -  "tempo",
      -  "robinhood",
      -  "base",
      -  "robinhood-mainnet",
      -  "tempo-mainnet"
      -]New value: +[
      +  "tempo",
      +  "robinhood",
      +  "base",
      +  "ethereum",
      +  "robinhood-mainnet",
      +  "tempo-mainnet"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / network / description
      Previous value: -"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet, real money: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet, real money: USDC.e, pathUSD, USDT0, OUSD), or a testnet with play money: \"tempo\" (Tempo Moderato), \"robinhood\" (Robinhood Chain testnet) or \"base\" (Base Sepolia)."New value: +"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet: USDC.e, pathUSD, USDT0, OUSD), or a testnet: \"tempo\" (Tempo Moderato), \"robinhood\" (Robinhood Chain testnet) or \"base\" (Base Sepolia)."
  4. Changed2 schema fields changed
    • changedInput schema / properties / network / description
      Previous value: -"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet, real money: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet, real money: USDC.e, pathUSD, USDT0, OUSD), or a testnet with play money: \"tempo\" (Tempo Moderato) or \"robinhood\" (Robinhood Chain testnet)."New value: +"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet, real money: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet, real money: USDC.e, pathUSD, USDT0, OUSD), or a testnet with play money: \"tempo\" (Tempo Moderato), \"robinhood\" (Robinhood Chain testnet) or \"base\" (Base Sepolia)."
    • changedInput schema / properties / network / enum
      Previous value: -[
      -  "tempo",
      -  "robinhood",
      -  "robinhood-mainnet",
      -  "tempo-mainnet"
      -]New value: +[
      +  "tempo",
      +  "robinhood",
      +  "base",
      +  "robinhood-mainnet",
      +  "tempo-mainnet"
      +]
  5. Changed2 schema fields changed
    • changedInput schema / properties / network / description
      Previous value: -"Gloam network: \"tempo\" (Tempo Moderato testnet, private stablecoin payments) or \"robinhood\" (Robinhood Chain testnet)."New value: +"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet, real money: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet, real money: USDC.e, pathUSD, USDT0, OUSD), or a testnet with play money: \"tempo\" (Tempo Moderato) or \"robinhood\" (Robinhood Chain testnet)."
    • changedInput schema / properties / network / enum
      Previous value: -[
      -  "tempo",
      -  "robinhood"
      -]New value: +[
      +  "tempo",
      +  "robinhood",
      +  "robinhood-mainnet",
      +  "tempo-mainnet"
      +]
  6. Changed2 schema fields changed
    • changedInput schema / properties / network / description
      Previous value: -"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet, real money: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet, real money: USDC.e, pathUSD, USDT0, OUSD), or a testnet with play money: \"tempo\" (Tempo Moderato) or \"robinhood\" (Robinhood Chain testnet)."New value: +"Gloam network: \"tempo\" (Tempo Moderato testnet, private stablecoin payments) or \"robinhood\" (Robinhood Chain testnet)."
    • changedInput schema / properties / network / enum
      Previous value: -[
      -  "tempo",
      -  "robinhood",
      -  "robinhood-mainnet",
      -  "tempo-mainnet"
      -]New value: +[
      +  "tempo",
      +  "robinhood"
      +]
  7. Changed2 schema fields changed
    • changedInput schema / properties / network / description
      Previous value: -"Gloam network: \"tempo\" (Tempo Moderato testnet, private stablecoin payments) or \"robinhood\" (Robinhood Chain testnet)."New value: +"Gloam network: \"robinhood-mainnet\" (Robinhood Chain mainnet, real money: USDG and GLOAM), \"tempo-mainnet\" (Tempo mainnet, real money: USDC.e, pathUSD, USDT0, OUSD), or a testnet with play money: \"tempo\" (Tempo Moderato) or \"robinhood\" (Robinhood Chain testnet)."
    • changedInput schema / properties / network / enum
      Previous value: -[
      -  "tempo",
      -  "robinhood"
      -]New value: +[
      +  "tempo",
      +  "robinhood",
      +  "robinhood-mainnet",
      +  "tempo-mainnet"
      +]
  8. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already establish readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real domain behavior — that a charge settles as a private vault transfer invisible to the chain — plus the fact that code samples are included. It stops short of saying what form the response takes (prose guide, snippets, examples) or how role/network change the content, which is the key behavioral question for a reference 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?

Two compact sentences, the topic and protocol are front-loaded, and the privacy property follows as useful supporting detail. No filler, though the parenthetical protocol expansion could be tightened.

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 fully documented enums, no output schema, and annotations covering safety, the description supplies the domain framing an agent needs to call this correctly. The remaining gap is what a caller receives (guide text vs. runnable code) and how role/network scope the answer, which matters for a documentation-retrieval tool.

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

Parameters3/5

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

Schema description coverage is 100% and both enum parameters (role, network) are thoroughly documented in the schema, including network names, assets, mainnet vs testnet. The description adds nothing about how role or network affect the returned guidance, so it sits at the baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the concrete subject (paying or charging privately over MPP/HTTP 402 using @gloamtrade/mppx-gloam) and signals it returns a how-to 'with code'. It is clearly the documentation/reference tool among siblings like gloam_create_payment_request and gloam_connect_full_agent. What is slightly weak is that it reads more like a topic title than a verb stating it returns guidance — an agent has to infer 'this fetches instructions'.

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

Usage Guidelines3/5

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

Usage is only implied: the tool is framed as the 'how to' for MPP private payments, so an agent can infer it should be consulted before implementing pay/charge flows. There is no explicit 'use this when…' phrasing, no exclusion or alternative (e.g. versus gloam_connect_full_agent or gloam_create_payment_request), and no prerequisite statement.

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.