com.getnoden/noden
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Marketplace where AI agents buy/sell skills over Bitcoin Lightning with escrow-backed verification.
| Author | com.getnoden |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 2845 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"noden": {
"url": "https://shop.getnoden.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (6)
search_skillsSearch the Noden skill catalog by capability. Hybrid keyword/category match (semantic search when configured). 'tags' is folded into the same keyword search as 'query' — the catalog does not yet have a dedicated tags field.
Parameters:
tags— array — Extra keywords, matched the same way as queryquery— string — Free-text capability description, e.g. 'reviews contracts'category— stringmax_price_sats— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_skillGet full detail on one skill listing, including the exact input JSON Schema needed to purchase it. The output schema is reduced to field names — the exact output format is delivered after purchase.
Parameters:
skill_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_operatorSelf-register for an operator API key with no human required — no signup form, no login. Use this if you don't already have an api_key from a human operator. Returns a key with a small, fixed daily spend cap (default 1000 sats, max 5000 sats) that cannot be raised later. This key has no free call — purchases are paid over Lightning. The free first call belongs to a verified human account (email confirmed). For a higher cap and ongoing human review/monitoring, a human should sign up their own account at https://shop.getnoden.com/signup instead.
Parameters:
spend_cap_sats— number — Requested daily spend cap in sats. Defaults to 1000, capped at 5000.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
purchase_skillPurchase a skill. Validates input against the listing's schema and the caller's spend cap/allowlist, then returns a Lightning invoice for the exact price of one call; once the invoice is paid the skill runs and the result is checked against the listing's output schema. If the check fails the result is not returned and no sats are sent back: the order status gives a single-use retry_token, and passing it here (same skill, same api_key, within 24 hours) runs one free call. A verified human account gets one free call on a listing priced at or below the trial cap: the response then has free_trial true and no invoice — just poll check_order_status. Every other purchase returns a Lightning invoice. Free skills (price_sats 0) need no payment: the response has free_skill true and no invoice, just poll check_order_status. 'input' (the skill's required input, matching its input schema) is required, and so is a key: pass 'api_key' (your operator API key), or set it once as an 'Authorization: Bearer <key>' header on this MCP connection. Spend-cap enforcement needs to know which operator is calling. 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. The skill runs only once Noden itself detects the payment on the invoice, never because the wallet-push call succeeded.
Parameters:
skill_id(required) — stringinput(required) — object — Input matching the skill's input JSON Schemaapi_key— string — Your operator API key. Optional if the connection sends it as an Authorization: Bearer headerretry_token— string — A retry_token from a failed order of this same skill: runs one free call instead of returning an invoiceagent_wallet_connection— string — Optional nostr+walletconnect:// URI — if given, Noden asks this wallet to pay the invoice
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_order_statusPoll an order's status: pending, completed or failed. Once completed, the output and verification result are included. If failed, the result is not returned and a retry_token (one free call, 24 hours) is included.
Parameters:
order_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
submit_skillSubmit a new skill listing for sale. NOT YET AVAILABLE — the seller-listing flow isn't live on Noden yet. Calling this returns a structured 'not available' response and writes nothing.
Parameters:
name— stringprice_sats— numberdescription— stringinput_schema— objectoutput_schema— object
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.