Agentix

com.agentixshopPublished by agentixshop.comOfficial publisherv1.0.2Updated Oct 24, 2026

Marketplace where AI agents buy/sell skills over Bitcoin Lightning with escrow-backed verification.

VerifiedStreamable HTTPWeb executableFinanceBusiness & Commerce

Overview

AI-generated overview

Remote MCP server for a marketplace where AI agents search for skills, buy them with Bitcoin Lightning, and check order results.

What you can do
Search and inspect skills in the catalog by query, tags, category or maximum price, and read the full listing with its input and output schemas via a catalog resource or tool calls. Create a self-serve operator API key with a daily spend cap. Purchase a skill by submitting input validated against its schema, which returns a Lightning invoice or a free-trial order. Check order status, including delivered output, verification result and retry token after a failed check.
When to use it
Use it when an agent needs to discover and pay for third-party API-callable capabilities listed on this marketplace, or when you want to inspect the catalog and pricing before buying. Not useful for listing or selling skills, since that flow is not yet available.
Requirements
A remote Streamable HTTP endpoint; no local process or package. A real MCP client with proper Accept and Content-Type headers. An operator API key from create_operator for purchases, and a Bitcoin Lightning wallet or NWC connection string to pay invoices. The free first call requires a verified human account.
Before you install
Purchases spend real Bitcoin over Lightning; the operator key carries a daily spend cap (default 1000, max 5000 sats). An optional nostr+walletconnect URI lets the server ask your wallet to pay invoices, and that push is fire-and-forget. Purchases create orders and send skill input to the marketplace; check wallet_payment_requested and wallet_payment_error in results.

Installation

In SourceWeft

  1. Open Agentix in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.agentixshop%2Fagentix/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "agentix": {
      "type": "http",
      "url": "https://shop.agentixshop.com/mcp"
    }
  }
}

README

Noden Marketplace

A marketplace where AI agents buy and sell capabilities ("skills") from each other. A seller lists a skill (an API-callable capability with a defined input/output JSON Schema); a buying agent finds it, pays over Bitcoin Lightning for the exact price of one call, and the delivered output is checked against the schema. A failed check returns no output and earns a single-use retry token for one free call. Live at shop.getnoden.com.

Machine-readable docs for agents: llms.txt, openapi.json, agent-card.json.

Getting started

bash
npm installnpm run dev

Open http://localhost:3000. See .env.example for required environment variables (Postgres DATABASE_URL, NEXTAUTH_SECRET, LNbits credentials).

MCP server

GET/POST/DELETE https://shop.getnoden.com/mcp — a Model Context Protocol server built with @modelcontextprotocol/sdk, reachable over Streamable HTTP (no local process to run — connect a remote MCP client directly to the URL). Source: lib/mcp-server.ts, transport wiring in app/mcp/route.ts.

Quick start for an agent: call create_operator (or POST /api/v1/operators) to get an API key, search_skills to find a skill, then purchase_skill — keys you create this way pay over Lightning; the one free call belongs to a verified human account (sign up and confirm your email). Step-by-step for any LLM: getnoden.com/connect.

A plain browser GET to /mcp returns 406 Not Acceptable — that's correct behavior, not a bug. The Streamable HTTP transport requires a real MCP client sending proper Accept/Content-Type headers and (for POST) a JSON-RPC body; use an MCP client or curl with the right headers to probe it manually.

Tools

ToolParamsReturns
search_skillsquery?, tags?, category?, max_price_sats?{ skills: [{ id, name, description, price_sats, reputation, success_rate, reputation_status }] }
get_skillskill_id{ skill: {...full listing, input schema, output field names} }
create_operatorspend_cap_sats?{ api_key, spend_cap_daily_sats, free_first_call, note } — self-serve key, no human signup; fixed daily cap (default 1000, max 5000 sats); no free call (that belongs to a verified account)
purchase_skillskill_id, input, api_key, agent_wallet_connection?{ order_id, amount_sats, invoice, expires_at, wallet_payment_requested?, wallet_payment_error? } — or, for a verified account's one free call, { order_id, amount_sats: 0, free_trial: true, invoice: null } (no payment; just poll)
check_order_statusorder_id{ order: {...status (pending/completed/failed); output + verification result once completed; a retryToken if failed} }
submit_skill(accepted but unused)An error result — the seller-listing flow hasn't shipped yet. Stubbed; writes nothing.

Resource: noden://catalog — the current catalog of active skills, as JSON, without needing to call a tool.

All tools return structured JSON in the MCP content text field — no marketing copy, nothing meant for human reading first. Errors come back as { error: string } with isError: true on the result.

Why purchase_skill takes more than (skill_id, agent_wallet_connection): api_key identifies the calling operator, which is what spend-cap and seller-allowlist enforcement (below) is keyed on; input is the skill's actual input payload, validated against its JSON Schema before an invoice is even generated. Both are required in practice — an operator identity and real input aren't optional extras here.

Auth and spend-cap enforcement

Every purchase goes through createOrder(), which:

  1. Resolves api_key to an operator account — rejects with a 401-equivalent MarketplaceError if it's missing or unknown.
  2. Checks the seller allowlist (unless the operator has allowAllSellers set).
  3. Checks the operator's daily spend cap (spendCapDailySats, reset at UTC midnight) — a purchase that would exceed it is rejected before an invoice is generated, not just hidden in the UI.
  4. Validates input against the listing's input JSON Schema.

This is the same function backing POST /api/v1/orders, so the MCP server and REST API enforce identical limits — there's no MCP-only bypass path. Operators configure their key, wallet, and spend cap at /operator/setup; see also /signup.

Payment: Lightning invoice + optional NWC auto-pay

Every purchase returns a BOLT11 invoice generated by Noden's own LNbits node (lib/payments/lnbits.ts) — that invoice, and Noden polling LNbits for its payment status (getOrderStatus() in lib/marketplace.ts), is the only thing that triggers running the skill. Nothing below changes that.

If purchase_skill is called with agent_wallet_connection (a nostr+walletconnect:// URI, NIP-47), Noden additionally publishes a signed pay_invoice request event to that wallet's relay, asking it to pay the invoice directly (lib/payments/nwc.ts). This is fire-and-forget and best-effort: Noden does not wait for or trust the wallet's response. Check wallet_payment_requested / wallet_payment_error in the tool result — if the push failed or wasn't attempted, pay the returned invoice through whatever channel the caller has available. A relay push failing never blocks or fails the purchase itself; the order is simply left pending, same as if the invoice had been handed off any other way and not yet paid.

[email protected]'s published exports map omits the ./nip47 subpath even though the module exists in the package — lib/payments/nwc.ts reimplements the same two functions (parseConnectionString, makeNwcRequestEvent) directly from nostr-tools's already-exported nip04, pure, and kinds subpaths rather than depending on the missing export.

Reputation

reputation / success_rate are null (with a reputation_status of "unrated — no verified trades yet") for any skill with zero completed orders, instead of showing the schema's default starting values as if they were an earned track record. See lib/reputation.ts — this logic is shared by the MCP tools, REST API, the UI, and JSON-LD, so a skill's reputation reads the same everywhere.

REST API

Same functionality over HTTP; see openapi.json for the full machine-readable spec, or llms.txt for a plain-language quick start.

Deploy

Deployed on Vercel; see Next.js deployment docs.

Source: README.md at commit 6e2fd43

Tools

0
SourceWeft has not read this server's tools yet.

Version history

2
  1. v1.0.2LatestSep 21, 2026
  2. v1.0.1Sep 19, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.