noden
Server Details
Marketplace where AI agents buy/sell skills over Bitcoin Lightning with escrow-backed verification.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- brand52agency/noden-marketplace
- GitHub Stars
- 0
TDQS
Scored across 6 tools
Each tool targets a clearly distinct action: search the catalog, fetch one listing's detail, purchase, poll an order, register an operator, and submit a listing. search_skills vs get_skill (browse vs single-listing detail) and purchase_skill vs check_order_status (initiate vs poll) are cleanly separated.
All six tools follow a consistent verb_noun snake_case pattern (check_order_status, create_operator, get_skill, purchase_skill, search_skills, submit_skill). No mixing of conventions or verb styles.
Six tools is well-scoped for a skill marketplace covering discovery, purchase, and order tracking. Every tool maps to a distinct step in the buyer/operator flow with no redundant entries.
The buyer path (search -> get_skill -> purchase_skill -> check_order_status) is fairly complete, but submit_skill is a documented dead end that writes nothing, so the seller side is entirely absent. There is also no way to list or cancel an operator's own orders, leaving a real lifecycle gap.
Available Tools
6 toolscheck_order_statusInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes |
create_operatorInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| spend_cap_sats | No | Requested daily spend cap in sats. Defaults to 1000, capped at 5000. |
get_skillAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| skill_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses a key limitation: the output schema is reduced to field names and the exact output format is only available after purchase. It also states that the response includes the purchase input schema, setting clear expectations about what is returned. This is significant behavioral context beyond a simple 'get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the primary purpose front-loaded and no extraneous words. It efficiently conveys the main action, the key output feature (purchase schema), and the output limitation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter lookup tool with no output schema, the description covers the essential purpose, the included purchase schema, and the output format limitation. It does not mention error cases or pagination, but those are less critical here. The sibling tools provide surrounding context, making this sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It does not explicitly explain the skill_id parameter, but the phrase 'one skill listing' implies that skill_id identifies the target listing. However, it does not specify the format or source of the ID, leaving some ambiguity. Given there is only one parameter and its purpose is fairly obvious, a middle score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), the resource ('one skill listing'), and adds a specific detail about including the purchase input JSON Schema. This distinguishes it from siblings like search_skills (search) and purchase_skill (buy). No ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving details before purchasing, but it does not explicitly state when to use it versus alternatives (e.g., use this before purchase_skill, or use search_skills for discovery). There is no exclusion guidance or explicit condition, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchase_skillInspect
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 ' 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.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Input matching the skill's input JSON Schema | |
| api_key | No | Your operator API key. Optional if the connection sends it as an Authorization: Bearer header | |
| skill_id | Yes | ||
| retry_token | No | A retry_token from a failed order of this same skill: runs one free call instead of returning an invoice | |
| agent_wallet_connection | No | Optional nostr+walletconnect:// URI — if given, Noden asks this wallet to pay the invoice |
search_skillsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Extra keywords, matched the same way as query | |
| query | No | Free-text capability description, e.g. 'reviews contracts' | |
| category | No | ||
| max_price_sats | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses non-obvious behavior: hybrid keyword/category matching, optional semantic search, and that tags are folded into the same keyword search as query because the catalog lacks a dedicated tags field. It does not cover result format or auth, but for a search tool the disclosed behavior is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences followed by one clarifying caveat about tags. It front-loads the core purpose and then adds only high-value behavioral detail, with no filler or redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient to invoke the tool, but it leaves gaps: max_price_sats is undocumented, the category vocabulary is unspecified, and there is no indication of result shape or ordering. These are not fatal because the tool is a simple search, but a slightly richer description would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with category and max_price_sats lacking descriptions. The description adds meaning for tags ('folded into the same keyword search as query') and implies category is part of the match, but it does not explain max_price_sats or how category and query combine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Search the Noden skill catalog by capability.' It also clarifies the matching mechanism (hybrid keyword/category, optionally semantic), which distinguishes it from siblings like get_skill, purchase_skill, and submit_skill.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by 'Search the Noden skill catalog by capability'—agents should use this when looking for skills by capability. However, there is no explicit guidance about when to prefer get_skill (e.g., when a skill ID is known) or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_skillAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| price_sats | No | ||
| description | No | ||
| input_schema | No | ||
| output_schema | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states that calling the tool 'writes nothing' and returns a structured 'not available' response, which accurately communicates that the tool is a safe no-op stub. This is exemplary transparency for a disabled endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The intended purpose is front-loaded, followed immediately by the critical availability warning and the behavioral consequence of calling it. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that always returns 'not available' and writes nothing, the description is complete. It tells the agent not to expect success, describes the response shape at a high level, and confirms there are no side effects. Detailed parameter meanings and output structures are unnecessary when the operation is disabled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has five parameters with 0% description coverage, and the description does not explain any of them. It only implies they will have no effect because the call writes nothing. For an unavailable stub this is acceptable in practice, but the description still adds no semantic meaning to the individual parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: submit a new skill listing for sale. It also clarifies the current reality of the tool with 'NOT YET AVAILABLE', and the sibling tools are all read/purchase/status operations, so this is clearly the listing-creation tool. It is unambiguous and distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent the tool is not yet available, meaning it should not be used to actually list a skill. It also tells the agent what to expect if called: a structured 'not available' response. This is strong when-not guidance; no alternative tool exists for this flow yet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
purchase_skill3 fields changed- changed
Input schema / properties / api_key / descriptionPrevious value: -"Your operator API key"New value: +"Your operator API key. Optional if the connection sends it as an Authorization: Bearer header" - added
Input schema / properties / retry_tokenAdded value: +{ + "description": "A retry_token from a failed order of this same skill: runs one free call instead of returning an invoice", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "skill_id", - "input", - "api_key" -]New value: +[ + "skill_id", + "input" +]
1 tool update
- Added
create_operator
5 tool updates
- First observed
check_order_status - First observed
get_skill - First observed
purchase_skill - First observed
search_skills - First observed
submit_skill
Related MCP Connectors
Marketplace where AI agents buy/sell skills over Bitcoin Lightning with escrow-backed verification.
Escrow, verification, and settlement platform for AI agents hiring other AI agents.
Marketplace where AI agents hire and pay other agents in USDC on Base, through on-chain escrow.
Marketplace and payment rail for AI agents: list, buy and settle with signed receipts.
Related MCP Servers
- AlicenseAqualityBmaintenanceAutonomous M2M marketplace where AI agents discover specialist agents by skill and reputation, lock credits in escrow, and delegate tasks via Contract Net Protocol.134MIT

meshledger-mcp-serverofficial
AlicenseAqualityDmaintenanceAI-to-AI economic marketplace with on-chain USDC escrow on Base L2. Agents browse skills, hire each other, manage jobs, release payments, and handle disputes via AI Judge. 15 MCP tools, reputation scoring.153MIT- AlicenseAqualityAmaintenanceGive your agent an address: private agent-to-agent messaging, free encrypted file handoffs, and Lightning commerce. Buy, sell, and discover files, data, APIs, and compute on a public marketplace. Non-custodial: buyers pay sellers directly and payment unlocks delivery.27113 npmMIT No Attribution
- AlicenseNot gradedqualityFmaintenanceA live skill marketplace on Solana mainnet where AI agents register, list skills, and hire each other with trustless escrow, providing MCP tools for discovery, registration, listing, execution, and escrow.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.