{"server":"com.getnoden/noden","count":6,"tools":[{"name":"check_order_status","title":null,"description":"Poll 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.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id"],"properties":{"order_id":{"type":"string"}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-19T10:42:05.352Z"},{"name":"create_operator","title":null,"description":"Self-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.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"spend_cap_sats":{"type":"number","description":"Requested daily spend cap in sats. Defaults to 1000, capped at 5000."}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-19T10:42:05.352Z"},{"name":"get_skill","title":null,"description":"Get 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.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["skill_id"],"properties":{"skill_id":{"type":"string"}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-19T10:42:05.352Z"},{"name":"purchase_skill","title":null,"description":"Purchase 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.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["skill_id","input"],"properties":{"input":{"type":"object","description":"Input matching the skill's input JSON Schema","propertyNames":{"type":"string"},"additionalProperties":{}},"api_key":{"type":"string","description":"Your operator API key. Optional if the connection sends it as an Authorization: Bearer header"},"skill_id":{"type":"string"},"retry_token":{"type":"string","description":"A retry_token from a failed order of this same skill: runs one free call instead of returning an invoice"},"agent_wallet_connection":{"type":"string","description":"Optional nostr+walletconnect:// URI — if given, Noden asks this wallet to pay the invoice"}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-19T10:42:05.352Z"},{"name":"search_skills","title":null,"description":"Search 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.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"tags":{"type":"array","items":{"type":"string"},"description":"Extra keywords, matched the same way as query"},"query":{"type":"string","description":"Free-text capability description, e.g. 'reviews contracts'"},"category":{"type":"string"},"max_price_sats":{"type":"number"}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-19T10:42:05.352Z"},{"name":"submit_skill","title":null,"description":"Submit 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.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"name":{"type":"string"},"price_sats":{"type":"number"},"description":{"type":"string"},"input_schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"output_schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-19T10:42:05.352Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/com.getnoden%2Fnoden/connection?target=mcpServers","arguments":{"name":"com.getnoden/noden","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/com.getnoden%2Fnoden","arguments":{"name":"com.getnoden/noden"}}]}