skill-market

x402 skill catalog on lvlltd.com — search, quote, pay with Base USDC, unlock sealed packs.

Should I use this

Quality & Safety

B
Description quality
89%
Schema completeness
73%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (12)

  • LOWTool 'get_skill_details' description lacks action verbin get_skill_details
  • LOWTool 'get_eval_score' description lacks action verbin get_eval_score
  • LOWTool 'install_skill_payload' description lacks action verbin install_skill_payload
  • LOWTool 'intent_search' description lacks action verbin intent_search
  • LOWTool 'sco_eval' description lacks action verbin sco_eval
  • LOWTool 'sco_canary' description lacks action verbin sco_canary
  • LOWTool 'sco_reputation' description lacks action verbin sco_reputation
  • LOWTool 'list_judges' description lacks action verbin list_judges
  • LOWTool 'get_capability_info' description lacks action verbin get_capability_info
  • LOWTool 'get_pack_meta' description lacks action verbin get_pack_meta

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,977Tokens (tool definitions)
~385 BTypical response size
Significant attention impact (3.11% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "skill-market": {
      "url": "https://lvlltd.com/api/mcp"
    }
  }
}

Remote endpoints

https://lvlltd.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (59)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_skills(q, category, max_price_usd, tag, limit)

Search lvlltd.com x402 skill catalog. Free. Returns price + free_eval URLs.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "max_price_usd": {
      "type": "number"
    },
    "tag": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    }
  }
}
🟢get_skill_details(skill_id)

Public skill details + outline/sample/challenge links. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    }
  },
  "required": [
    "skill_id"
  ]
}
🟢get_payment_challenge(skill_id)

Live x402 402 challenge for a skill. Does not unlock. Pay then purchase_skill.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    }
  },
  "required": [
    "skill_id"
  ]
}
🟢quote_price(skill_id)

Alias of get_payment_challenge — live x402 quote (amount, payTo, asset). Free. Full catalog.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    }
  },
  "required": [
    "skill_id"
  ]
}
🟢list_all_skills(offset, limit, category)

Paginated full catalog listing (all public skills from catalog.json — not a subset). Free.

Input Schema

{
  "type": "object",
  "properties": {
    "offset": {
      "type": "number",
      "description": "default 0"
    },
    "limit": {
      "type": "number",
      "description": "default 50, max 200"
    },
    "category": {
      "type": "string"
    }
  }
}
🟡purchase_skill(skill_id, tx_hash, from, payment_signature, ap2_mandate)

Without tx_hash: 402 + unsigned wallet_next_action (EIP-3009 PAYMENT-SIGNATURE template; no keys). With tx_hash or payment_signature: POST unlock via /api/pay (no payment bypass).

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    },
    "tx_hash": {
      "type": "string"
    },
    "from": {
      "type": "string",
      "description": "Buyer wallet 0x… — fills EIP-3009 authorization.from on unsigned next-action"
    },
    "payment_signature": {
      "type": "string",
      "description": "Optional signed PAYMENT-SIGNATURE JSON after eth_signTypedData_v4"
    },
    "ap2_mandate": {
      "type": "string",
      "description": "Optional AP2 mandate JSON for authorized spend"
    }
  },
  "required": [
    "skill_id"
  ]
}
🟢verify_skill(skill_id, tx_hash)

Alias of verify_unlock — check public /api/proof ledger for confirmed unlocks (never invents volume).

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    },
    "tx_hash": {
      "type": "string"
    }
  }
}
🟡install(skill_id, tx_hash, agents)

Alias of install_skill_payload — after purchase write sealed files + SKILL.md paths. Requires tx_hash.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    },
    "tx_hash": {
      "type": "string"
    },
    "agents": {
      "type": "string"
    }
  },
  "required": [
    "skill_id",
    "tx_hash"
  ]
}
🟢get_commerce_signals(sort, limit, skill_id)

Rank skills by confirmed unlock demand. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "sort": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "skill_id": {
      "type": "string"
    }
  }
}
⚪lookup_agent_identity(address)

ERC-8004 / local identity lookup for a wallet. Additive — not required to buy.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string"
    }
  },
  "required": [
    "address"
  ]
}
🟢quote_skill(skill_id)

Alias of quote_price / get_payment_challenge — live x402 quote. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    }
  },
  "required": [
    "skill_id"
  ]
}
🟢verify_unlock(skill_id, tx_hash)

Check public /api/proof ledger for confirmed unlocks (never invents volume).

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    },
    "tx_hash": {
      "type": "string"
    }
  }
}
🟢get_security_scan(skill_id)

Published security scan for a skill (real findings or clean-with-honesty). Free.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    }
  },
  "required": [
    "skill_id"
  ]
}
🟢get_eval_score(skill_id)

Public eval suite pass rate if suite exists. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    }
  },
  "required": [
    "skill_id"
  ]
}
⚪install_skill_payload(skill_id, tx_hash, agents)

After purchase: sealed files + SKILL.md install paths. Requires tx_hash (routes through /api/pay).

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    },
    "tx_hash": {
      "type": "string"
    },
    "agents": {
      "type": "string"
    }
  },
  "required": [
    "skill_id",
    "tx_hash"
  ]
}
🟢intent_search(q, limit)

Natural-language goal → ranked skills/stacks (semantic TF-IDF). Free.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    }
  },
  "required": [
    "q"
  ]
}
🟡list_recurring_plans(wallet)

List catalog live / update / bundle-renew / metered plans. One-time unlocks remain separate and perpetual. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "wallet": {
      "type": "string",
      "description": "Optional — include this wallet's subs + meter"
    }
  }
}
🟢check_access(wallet, skill_id)

Resolve skill access: one_time_unlock (perpetual) > catalog_sub > bundle_renew > meter. Never confuses live access with sealed ownership.

Input Schema

{
  "type": "object",
  "properties": {
    "wallet": {
      "type": "string"
    },
    "skill_id": {
      "type": "string"
    }
  },
  "required": [
    "wallet",
    "skill_id"
  ]
}
⚪subscribe_plan(plan_id, wallet, action, tx_hash)

Without tx_hash: 402 challenge for a plan. With tx_hash: start/renew. Cancel: action=cancel (one step). Never revokes one-time unlocks.

Input Schema

{
  "type": "object",
  "properties": {
    "plan_id": {
      "type": "string"
    },
    "wallet": {
      "type": "string"
    },
    "action": {
      "type": "string",
      "description": "start | renew | cancel (default start)"
    },
    "tx_hash": {
      "type": "string"
    }
  },
  "required": [
    "plan_id",
    "wallet"
  ]
}
🟢a2a_discover(force)

A2A bridge: fetch the marketplace Agent Card (/.well-known/agent-card.json). Free. Use before a2a_message_send.

Input Schema

{
  "type": "object",
  "properties": {
    "force": {
      "type": "boolean",
      "description": "ignored; always live fetch"
    }
  }
}
🟡a2a_message_send(text, task_id, context_id, skill_id)

A2A bridge: send message/send to the LVL A2A agent. Supports multi-turn via task_id+context_id. Does not settle payment — use purchase_skill / x402 for money.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "User message text"
    },
    "task_id": {
      "type": "string",
      "description": "Continue multi-turn task (same as prior result.id)"
    },
    "context_id": {
      "type": "string"
    },
    "skill_id": {
      "type": "string",
      "description": "Optional DataPart skill_id for purchase continuation"
    }
  },
  "required": [
    "text"
  ]
}
🟢a2a_tasks_get(task_id, history_length)

A2A bridge: tasks/get — poll stored multi-turn task by id.

Input Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string"
    },
    "history_length": {
      "type": "number"
    }
  },
  "required": [
    "task_id"
  ]
}
🔴a2a_tasks_cancel(task_id)

A2A bridge: tasks/cancel — cancel an in-flight multi-turn task.

Input Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string"
    }
  },
  "required": [
    "task_id"
  ]
}
⚪a2a_bridge_info

A2A↔MCP bridge topology for LVL: when to use A2A vs MCP vs x402. Free.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡meter_budget(wallet, skill_id, spend_cap_usd, action)

Get or set spend cap; or quote metered per-call x402 for a skill. Caps prevent runaway agent spend.

Input Schema

{
  "type": "object",
  "properties": {
    "wallet": {
      "type": "string"
    },
    "skill_id": {
      "type": "string"
    },
    "spend_cap_usd": {
      "type": "number"
    },
    "action": {
      "type": "string",
      "description": "status | set_cap | quote (default status)"
    }
  },
  "required": [
    "wallet"
  ]
}
⚪esp_discover

ESP protocol root (Evaluate → Settle → Prove). Free. Philosophy + endpoints + canary. Prefer before settling any skill.

Input Schema

{
  "type": "object",
  "properties": {}
}
⚪esp_cycle(skill_id)

Full ESP cycle for a skill: free evaluate endpoints, atomic settle challenge, public prove stats (ledger-only quality). Free to call.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string",
      "description": "Skill or bundle id (default agent-x402-first-buy)"
    }
  }
}
⚪esp_evaluate(skill_id)

ESP Evaluate phase only — free outline/sample/canary links. Never requires payment. Settle only after this.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    }
  },
  "required": [
    "skill_id"
  ]
}
⚪sco_discover

SCO protocol root (Sealed Consensus Oracles). Free. Philosophy, foundation oracles, agent sequence. Prefer before oracle settlement.

Input Schema

{
  "type": "object",
  "properties": {}
}
⚪sco_eval(oracle_id)

SCO free evaluation for an oracle: outline, free samples, ledger-only reputation. Never requires payment.

Input Schema

{
  "type": "object",
  "properties": {
    "oracle_id": {
      "type": "string",
      "description": "oracle-price | oracle-on-chain | oracle-time | oracle-proof-ledger | oracle-critic-consensus | oracle-location | oracle-vehicle"
    }
  },
  "required": [
    "oracle_id"
  ]
}
⚪sco_canary(oracle_id, providers, query)

Parallel multi-provider canary: seal challengeable packs from independent oracle providers.

Input Schema

{
  "type": "object",
  "properties": {
    "oracle_id": {
      "type": "string"
    },
    "providers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "e.g. lvl-foundation-a, lvl-foundation-b"
    },
    "query": {
      "type": "object"
    }
  },
  "required": [
    "oracle_id"
  ]
}
⚪sco_consensus(input_cids)

Critic/consensus oracle: aggregate sealed pack cids into a higher-confidence sealed consensus pack.

Input Schema

{
  "type": "object",
  "properties": {
    "input_cids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Sealed pack cids from sco_canary"
    }
  },
  "required": [
    "input_cids"
  ]
}
⚪sco_challenge(action, target_cid, counter_proof, stake_usd, challenger_id, ...)

File or resolve an economic challenge against a sealed SCO pack. Reputation updates from ledger only.

Input Schema

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "description": "file (default) | resolve"
    },
    "target_cid": {
      "type": "string"
    },
    "counter_proof": {
      "type": "object"
    },
    "stake_usd": {
      "type": "number"
    },
    "challenger_id": {
      "type": "string"
    },
    "challenge_cid": {
      "type": "string"
    },
    "outcome": {
      "type": "string",
      "description": "upheld | rejected | expired (resolve only)"
    },
    "reason": {
      "type": "string"
    }
  }
}
⚪sco_reputation(oracle_id)

Ledger-derived oracle reputation only (accuracy, freshness, challenge_survival, selection_rate, economic_weight). Null when no evidence.

Input Schema

{
  "type": "object",
  "properties": {
    "oracle_id": {
      "type": "string"
    }
  },
  "required": [
    "oracle_id"
  ]
}
🟢list_judges(skill_id, limit)

Recursive evaluator market — judge/verifier/critic ESP skills. Quality from public proof ledger only. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    }
  }
}
🟡post_intent(title, description, success_criteria, bounty_usd, tags, ...)

Post a root problem/intent with success_criteria and optional bounty_usd (P1). Free to post. Settlement still x402; success only via /api/proof.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "success_criteria": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "bounty_usd": {
      "type": "number"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "poster": {
      "type": "string"
    }
  },
  "required": [
    "success_criteria"
  ]
}
🟢get_ready

Truthful readiness probe (/api/ready). ready:true only when payment+catalog rails work.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_proof(skill_id, limit)

Public on-chain unlock ledger (rows are self-funded test transactions, not customer purchases). Never invents volume. Optional skill_id filter.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    }
  }
}
🟢get_fleet

Fleet map: skills, open-market, music, swarm, studio bridges. Free.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_sandbox(skill_id)

Sandbox/execution patterns for purchased packs. Optional skill_id for per-skill resources + packaging maturity.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    }
  }
}
🟢get_networks

Multi-chain + multi-asset + gas rails. Base live; other chains planned. Sponsored canary honesty.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_escrow_meta

Open-market multi-party escrow (NOT skill payTo). LVLEscrow held-fund contract metadata.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_capability_info

Short-lived capability token discovery (P1). Not an API key for purchase.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_pack_meta(skill_id)

Public sealed pack metadata + sealed_pack_hash (no paywall contents).

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    }
  },
  "required": [
    "skill_id"
  ]
}
⚪paid_api_call(skill_id, tx_hash, op)

Metered x402 API call (nothing over $5). Without tx_hash: 402 quote. With tx_hash: records the paid call. Discovery tools stay free. New billable APIs must go through this tool.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string",
      "description": "Catalog skill to bill (default agent-x402-first-buy, $0.005 exact / 5000 atomic)"
    },
    "tx_hash": {
      "type": "string",
      "description": "Base USDC txHash after 402 settle"
    },
    "op": {
      "type": "string",
      "description": "Optional operator label for the call"
    }
  }
}
⚪receipt_verify(receipt)

Verify a lvl-decision-receipt-v1 integrity hash. Returns match + recomputed hash. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "receipt": {
      "type": "object",
      "description": "Full decision_receipt object"
    }
  },
  "required": [
    "receipt"
  ]
}
⚪receipt_mint(decision_point, verdict, reason_code, reason_message, actor_id, ...)

Mint a DecisionReceipt for an agent-side decision (same schema as access/pay). Free.

Input Schema

{
  "type": "object",
  "properties": {
    "decision_point": {
      "type": "string"
    },
    "verdict": {
      "type": "string",
      "description": "allow | refuse | challenge"
    },
    "reason_code": {
      "type": "string"
    },
    "reason_message": {
      "type": "string"
    },
    "actor_id": {
      "type": "string"
    },
    "inputs": {
      "type": "object"
    },
    "policy_version": {
      "type": "string"
    }
  },
  "required": [
    "decision_point",
    "verdict",
    "reason_code"
  ]
}
⚪memory_remember(key, value, namespace, ttl_sec)

Store a key/value in agent KV memory (namespace optional, TTL default 24h).

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string"
    },
    "value": {},
    "namespace": {
      "type": "string"
    },
    "ttl_sec": {
      "type": "number"
    }
  },
  "required": [
    "key"
  ]
}
⚪memory_recall(key, namespace)

Recall a value from agent KV memory by key (+ optional namespace).

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string"
    },
    "namespace": {
      "type": "string"
    }
  },
  "required": [
    "key"
  ]
}
🟢memory_list(namespace, limit)

List keys in a memory namespace (prefix list when KV supports it).

Input Schema

{
  "type": "object",
  "properties": {
    "namespace": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    }
  }
}
🔴memory_forget(key, namespace)

Delete a key from agent KV memory.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string"
    },
    "namespace": {
      "type": "string"
    }
  },
  "required": [
    "key"
  ]
}
⚪long_running_start(goal, skill_id, actor, ttl_sec)

Start a long-running / background task (KV queue stub). Returns task_id for status/cancel.

Input Schema

{
  "type": "object",
  "properties": {
    "goal": {
      "type": "string"
    },
    "skill_id": {
      "type": "string"
    },
    "actor": {
      "type": "string"
    },
    "ttl_sec": {
      "type": "number"
    }
  },
  "required": [
    "goal"
  ]
}
🟢long_running_status(task_id)

Get status of a long-running task by task_id.

Input Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string"
    }
  },
  "required": [
    "task_id"
  ]
}
🔴long_running_cancel(task_id)

Cancel a long-running task by task_id.

Input Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string"
    }
  },
  "required": [
    "task_id"
  ]
}
⚪event_register(topic, handler_hint, ttl_sec)

Register interest in a topic (stub event bus). Returns event_id.

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string"
    },
    "handler_hint": {
      "type": "string"
    },
    "ttl_sec": {
      "type": "number"
    }
  },
  "required": [
    "topic"
  ]
}
🟢event_list(topic, limit)

List active event registrations for a topic.

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    }
  }
}
⚪event_trigger(topic, payload)

Trigger an event on a topic with optional payload (records + surfaces registrations).

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string"
    },
    "payload": {}
  },
  "required": [
    "topic"
  ]
}
⚪bankr_rails

Bankr x402 Cloud rail for LVL skills (catalog/unlock/canary URLs + payTo). Does not unlock. Canonical settlement remains /api/pay. Free.

Input Schema

{
  "type": "object",
  "properties": {}
}
⚪bankr_quote(skill_id)

Bankr unlock URL + LVL 402 challenge URL for a skill_id. Does not pay or unlock. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "skill_id": {
      "type": "string"
    }
  },
  "required": [
    "skill_id"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded59 tools
verifiedversion not recorded59 tools
verifiedversion not recorded59 tools
verifiedversion not recorded59 tools
verifiedversion not recorded59 tools
verifiedversion not recorded59 tools