Skip to main content
Glama

purchase_skill

Purchase a skill. Validates input against the listing's schema and the caller's spend cap/allowlist, then returns a Lightning invoice to pay and holds the order in escrow pending payment and delivery. 'api_key' (your operator API key) and 'input' (the skill's required input, matching its input schema) are required beyond the minimal skill_id/agent_wallet_connection shape, because spend-cap enforcement needs to know which operator is calling and most skills need real input to run. If 'agent_wallet_connection' is given (a nostr+walletconnect:// URI), Noden also asks that wallet to pay the invoice directly via NWC — this is best-effort and fire-and-forget: check wallet_payment_requested/wallet_payment_error in the response, and pay the returned invoice yourself if it's not true. Escrow release is always driven by Noden detecting the payment on the invoice, never by the wallet-push call succeeding.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
inputYesInput matching the skill's input JSON Schema
api_keyYesYour operator API key
skill_idYes
agent_wallet_connectionNoOptional nostr+walletconnect:// URI — if given, Noden asks this wallet to pay the 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?

With no annotations, the description carries full disclosure burden and meets it: it discloses validation against schema and spend cap, returns an invoice, holds escrow, best-effort NWC payment, and the critical caveat that escrow release depends on invoice payment, not wallet-push success. No side effect is hidden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence states the purpose, subsequent sentences parcel out required params, optional wallet flow, and a crucial escrow caveat. Every sentence carries necessary information and the structure is easy to follow despite the length.

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?

The description covers how to invoke and the expected payment/escrow flow, including response fields to check when wallet payment is attempted. Its only gap is that no output schema exists and the full response shape (e.g., order identifier for later check_order_status) is not specified, though an agent can still act on the returned invoice.

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 75% and the description adds meaning beyond it: api_key exists for spend-cap enforcement, input must match the listing's schema, and agent_wallet_connection is an optional NWC URI with specific behavior. skill_id is not individually explained but is obvious from the purchase context.

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?

Opens with the specific action 'Purchase a skill' and then defines the full flow: validation, invoice, escrow. This clearly separates it from siblings get_skill/search_skills/check_order_status/submit_skill, which cover discovery, submission, and status rather than purchasing.

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?

The description gives a clear context for use: whenever an agent wants to pay for and escrow a skill, including the required api_key/input and optional wallet-push behavior. It does not explicitly contrast itself with check_order_status or get_skill, but the purpose is unambiguous enough that an agent can select it correctly.

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.