Ga naar hoofdinhoud
PERSONA 2 - MCP-SERVEROPERATORS

Monetiseer je MCP-server in 10 minuten.

Laat AI-agents uw MCP-server per oproep betalen, in USDC, met ondertekende webhooks en auditlogs. x402-compatibel. Drop-in middleware.

DE PIJN

Je hebt een MCP-server gebouwd. Duizenden klanten gebruiken het gratis.

Je hebt je MCP-server verzonden omdat Claude Desktop, Cursor en Cline-klanten de mogelijkheid nodig hadden. Het nieuws verspreidde zich. Je bedient nu duizenden betaalde-tool aanroepen per dag van AI-agents die je nooit hebt ontmoet. Je egress-factuur is echt. Je API-sleutel voor de onderliggende service is echt. Je onderhoudstijd is echt. De omzet is nul.

Je hebt drie opties. Houd het gratis en verbrand geld aan infrastructuur. Beperk het achter handmatige API-sleutels (en verlies 95% van het agentverkeer door de wrijving van aanmeldformulieren). Of voeg een betalingslaag toe die AI-agents daadwerkelijk kunnen voltooien - wat precies is waar 402 Payment Required + USDC voor is gebouwd.

Blockchain0x is optie drie. Je MCP-server wijst naar onze API. Wanneer een AI-klant een betaald hulpmiddel aanroept, is de reactie 402 met een gehoste betalings-URL. De klant (of zijn menselijke toezichthouder) betaalt in USDC. Je webhook wordt geactiveerd. De volgende oproep van die klant slaagt. De hele vorm wordt x402 genoemd, en het is het protocol dat Coinbase publiceerde voor dit exacte patroon.

X402 PATROON

Hoe 402 Betaling Vereist een programmatic checkout wordt.

De HTTP-statuscode 402 bestaat al sinds de specificatie voor het eerst werd geschreven, maar had nooit een standaardimplementatie. Coinbase's x402-protocol geeft het eindelijk een. De structuur is eenvoudig: jouw tool retourneert een 402-uitdaging (een gestructureerd JSON-lichaam dat beschrijft hoe te betalen); de client betaalt en probeert opnieuw; de oproep slaagt. requirePayment van @blockchain0x/mcp bouwt dat uitdaging-lichaam voor jou.

DE 402 UITDAGING BODY requirePayment BOUWT, RETOURNEERT ALS EEN TOOLFOUT
{
  "error": "payment_required",
  "amountUsdc": "0.02",
  "payTo": "0xYourMcpAgentAddress",
  "hostedUrl": "https://pay.blockchain0x.com/checkout/docs-search",
  "network": "mainnet",
  "description": "docs search"
}

De vier staten

  1. Onbetaalde oproep: AI-klant roept een betaalde tool aan. Je handler controleert je eigen betaalstatus, ontdekt dat de betaler niet als betaald is gemarkeerd, en retourneert het 402-uitdaging lichaam van requirePayment als een toolfout.
  2. Betaling: Klant volgt de hostedUrl naar de gehoste checkout en voltooit de USDC-overdracht op Base (ofwel programmatisch via een x402-bewuste wallet of handmatig via QR-code).
  3. Webhook: Blockchain0x verzendt payment.received naar jouw eindpunt binnen enkele seconden na ketenbevestiging. Je verifieert het met webhooks.verify en registreert de betaler als betaald in je eigen opslag.
  4. Herhaal: Klant herhaalt de oorspronkelijke MCP tool-aanroep. Je handler ziet nu de betaler als betaald gemarkeerd, draait de tool en retourneert het werkelijke resultaat.

Elke betaling wordt vastgelegd in je Blockchain0x-dashboard, en elke payment.received webhook komt in je eigen logs terecht. Omdat je de betaalstatus en de webhook-handler bezit, vallen per-tool en per-betaler inkomstenanalyses voort uit de gegevens die je al opslaat.

MIDDLEWARE INSTELLING

Een compleet werkend voorbeeld.

requirePayment van @blockchain0x/mcp bouwt de 402-uitdaging; webhooks.verify van @blockchain0x/node verifieert de bevestiging. Jij bezit de twee kleine stukken ertussen: de betaalstatuscontrole binnen de tool, en de webhook-handler die een betaler als betaald markeert. Hieronder is een complete MCP-server die één betaalde tool plus zijn webhook-eindpunt blootlegt.

INDEX.TS - MCP SERVER MET ÉÉN BETAALDE TOOL EN DEZE WEBHOOK
import express from "express";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { requirePayment } from "@blockchain0x/mcp";
import { webhooks } from "@blockchain0x/node";

const server = new McpServer({ name: "docs-search", version: "1.0.0" });

// You decide who counts as paid. Back this with Redis/Postgres in production.
const paid = new Set<string>();

server.tool(
  "search_docs",
  "Semantic search across our docs",
  { query: { type: "string" }, payer: { type: "string" } },
  async ({ query, payer }) => {
    if (!paid.has(`search_docs:${payer}`)) {
      // Not paid yet: build an x402-compatible 402 challenge and return its
      // body as a tool error. requirePayment is a challenge builder - it does
      // not gate the call for you; this check is yours.
      const { body } = requirePayment({
        amountUsdc: "0.02",
        payTo: "0xYourMcpAgentAddress",
        hostedUrl: "https://pay.blockchain0x.com/checkout/docs-search",
        description: "docs search",
      });
      return { content: [{ type: "text", text: JSON.stringify(body) }], isError: true };
    }
    const results = await runVectorSearch(query);
    return { content: [{ type: "text", text: JSON.stringify(results) }] };
  },
);

// Your webhook endpoint marks a payer as paid once the checkout settles.
const app = express();
app.post("/webhooks/blockchain0x", express.raw({ type: "*/*" }), (req, res) => {
  const r = webhooks.verify({ headers: req.headers, rawBody: req.body, secret: process.env.BLOCKCHAIN0X_WEBHOOK_SECRET! });
  if (!r.ok) return res.status(400).json({ code: r.code });
  if (r.eventType === "payment.received") {
    // Resolve (tool, payer) from the reference you encoded in hostedUrl, then:
    paid.add("search_docs:0xPayer");
  }
  res.json({ received: true });
});

Installatiestappen

  1. 1Maak een Blockchain0x agent wallet voor je MCP-server, op een plan dat API- en webhook-toegang omvat. Noteer het walletadres dat je als payTo zult gebruiken.
  2. 2Installeer de pakketten: npm install @blockchain0x/mcp @blockchain0x/node
  3. 3Stel omgevingsvariabelen in: BLOCKCHAIN0X_API_KEY (de MCP-server verstuurt deze als Authorization: Bearer) en BLOCKCHAIN0X_WEBHOOK_SECRET (het ondertekeningsgeheim van het dashboard waartegen webhooks.verify controleert).
  4. 4Beperk je betaalde tools door je eigen betaalstatus te controleren en het requirePayment-uitdaging lichaam terug te geven wanneer de beller niet heeft betaald. Laat gratis tools onbeperkt.
  5. 5Configureer de webhook-eindpunt in het Blockchain0x-dashboard (bijvoorbeeld /webhooks/blockchain0x), verifieer vervolgens elke levering met webhooks.verify en markeer de betaler als betaald op payment.received.
  6. 6Implementeren. De eerste AI-client die uw betaalde tool gebruikt, krijgt een 402, betaalt en de volgende oproep slaagt. U ziet de betaling binnen 10 seconden in het dashboard.

Je kunt ook de Blockchain0x MCP-server zelf draaien met npx @blockchain0x/mcp (stdio) of de gehoste Streamable HTTP-container op mcp.blockchain0x.com. Volledige setup, inclusief de vormen van de webhook-payloads, staat in de documentatie.

JE BETAALDE VENSTER

De belangrijkste beslissing in jouw handler.

Omdat u de betaalstatus bezit, beslist u ook hoe lang een betaling telt. Nadat een klant voor een tool heeft betaald, houdt u ze gedurende een bepaalde tijd als betaald gemarkeerd, en laat u binnen dat venster oproepen door zonder een nieuwe betaling. Stel het venster te kort in en u straft klanten met betalingsfrictie bij elke oproep; stel het te lang in en u geeft dure operaties weg na één goedkope betaling. Een TTL op uw Redis/Postgres-sleutel is de eenvoudigste manier om dit te implementeren.

De vensters die we aanbevelen

TooltypeVensterWaarom
Goedkope lookup ($0.01-$0.05)60 secondenAbsorbeert natuurlijke herhalingen en vervolgoproepen zonder een sessie weg te geven.
Middelprijs inferentie ($0.10-$1)30 secondenBetaal per oproep is de juiste vorm; de korte cache behandelt herhalingen bij tijdelijke fouten.
Dure lange context ($1-$10)0 seconden (geen cache)Elke oproep is zijn eigen betaalde evenement; geen caching.
Abonnement-stijl tools24 uurBetaal één keer per dag voor onbeperkte oproepen binnen het venster. Hogere omzet per klant bij lagere wrijving.

Sleutel je betaalde staat per (betaler portemonnee, tool) paar, zoals het voorbeeld doet met search_docs:0xPayer. Twee verschillende clients raken dezelfde tool, elk betaalt afzonderlijk. Dezelfde client raakt twee verschillende tools, twee afzonderlijke betalingen vereist. Je kunt het breder afbakenen (per betaler over alle tools) als je dat wilt; de granulariteit per betaler per tool is wat de prijsstelling eerlijk laat aanvoelen.

PRIJZENMODELLEN

Vier prijsstructuren die werken voor MCP-servers.

Prijzen is jouw keuze - je stelt het bedrag per tool in de middleware in. Hieronder staan de vier patronen die we het vaakst zien en welke toolvormen ze passen.

Per-oproep micro-prijsstelling

$0.01 - $0.05 per oproep

Zoeken, opzoeken, classificatie, formaatconversie - goedkope operaties met een hoog volume.

VOORDELEN

Laagste wrijving voor klanten; stemt kosten exact af op gebruik.

NADENKEN

Hoogste transactie overhead; werkt alleen bij een hoog oproepvolume.

Per-oproep gemiddelde prijsstelling

$0.10 - $1.00 per oproep

LLM inferentie, generatie, contentproductie, alles waarbij elke oproep echt werk doet.

VOORDELEN

In balans - duidelijke waarde per oproep, beheersbaar aantal transacties.

NADENKEN

Hogere wrijving per oproep; klanten geven soms de voorkeur aan abonnementen op dit prijsniveau.

Per-oproep hoge prijsstelling

$1 - $10 per oproep

Generatie van lange context, documentverwerking, multi-step orchestratie, dure derde partij API-wrapping.

VOORDELEN

Marge per oproep is betekenisvol; mislukte betalingen zijn tolerabele verliezen.

NADENKEN

Klanten onderhandelen hard over deze prijs; verwacht terugbetalingsverzoeken.

Abonnementsvenster

$5 - $50 per 24u venster (of $X per maand)

Klanten die veel oproepen in een sessie doen en geen per-oproep betalingsfrictie zouden tolereren.

VOORDELEN

Hogere omzet per klant; minder overhead per oproep.

NADENKEN

Lagere vindbaarheid; klanten moeten vooraf toezeggen. Vaak gecombineerd met per-oproep voor hybride prijsstelling.

Veel operators mixen patronen: goedkope tools met micro-prijzen per oproep, dure tools met hoge prijzen per oproep, plus een abonnementsvenster van 24 uur voor zware gebruikers. Niets weerhoudt u ervan om alle drie op dezelfde MCP-server te draaien; elke tool stelt zijn eigen amountUsdc in requirePayment in en zijn eigen betaalvenster in uw handler.

WELKE PLANNEN PASSEN

Pro is het juiste plan voor bijna elke MCP-server.

MCP-serveroperators beginnen bijna altijd op Pro omdat API-schrijftoegang en webhooks vanaf dag één vereist zijn: Gratis is alleen-lezen, en een betaalde tool moet payment.received-webhooks ontvangen en verifiëren. Zie de prijs pagina voor de exacte kosten per agent en waar de transactiekosten niveaus zich bevinden; de korte versie is dat elke server die echte betaalde volumes doet, ver voorbij het punt is waar Pro zichzelf terugbetaalt.

  • Gratis: handig om te experimenteren met de API en het dashboard. Niet geschikt voor betaalde productietools (alleen lezen, geen webhooks).
  • Pro: de standaard voor live MCP-servers. Volledige API-toegang, webhooks, exports.
  • Business: wanneer je de audit log nodig hebt voor compliance, of wanneer je MCP servers voor meerdere klanten draait en team-seat-sharing per agent wilt.
Bekijk volledige prijsstelling
VAKANT VRAAG

Vijf MCP-specifieke vragen.

Moet mijn MCP-server worden gehost op Blockchain0x? Of draaien op een specifieke cloud?

Nee. Je MCP-server kan overal draaien waar hij normaal zou draaien: je laptop, AWS, Fly.io, Cloudflare Workers, een Raspberry Pi. De middleware is gewoon een Node-module die je toolhandlers omhult. Zolang je server uitgaande HTTPS-aanroepen naar api.blockchain0x.com kan maken en inkomende webhooks op een URL die je beheert kan ontvangen, werkt de integratie. Wij hosten je MCP-server niet; wij hosten het betalingsoppervlak.

Wat gebeurt er wanneer een AI-client x402 niet begrijpt en alleen een 402-respons krijgt?

Het uitdaging-lichaam is gestructureerd zodat een niet-x402-bewuste client een betekenisvolle fout ziet: een foutcode, het amountUsdc, en een hostedUrl om te betalen. Clients die toolfouten aan de gebruiker tonen (de meeste chat-gebaseerde clients zoals Claude Desktop of Cursor) zullen de gebruiker de URL tonen om op te klikken en te betalen; clients die de oproep volledig programmatisch afhandelen en de fout negeren, zullen gewoon geen resultaat krijgen, wat de juiste uitkomst is (de oproep is niet betaald). x402-bewuste clients lezen de uitdaging, betalen automatisch met een vooraf goedgekeurde wallet, en proberen opnieuw.

Hoe lang duurt het betaalde venster? Kan een klant één keer betalen en voor altijd aanroepen?

Dat is volledig jouw beslissing, omdat jij de betaalstatus bezit. Een veelgemaakte keuze is een TTL van 60 seconden op de betaalde sleutel: het absorbeert natuurlijke herhalings- en opvolgpaden zonder dat één enkele betaling een hele sessie dekt. Je kunt het langer maken voor abonnementsprijzen, of nul (elke oproep vereist een nieuwe betaling) voor dure per-oproep tools. De bibliotheek legt geen venster op; jouw opslag en zijn TTL doen dat.

Kan ik betaalde tools en gratis tools op dezelfde MCP-server draaien?

Ja. Voeg de betaalstatuscontrole (en de requirePayment-uitdaging bij een misser) alleen toe aan de betaalde tools; laat gratis tools als gewone handlers. De gratis tools werken voor elke client; de betaalde tools retourneren de 402-uitdaging totdat ze zijn betaald. Veel operators beginnen met het gratis maken van de goedkope tools (om adoptie te stimuleren) en reserveren betaling voor de hoogwaardigere (inferentie, generatie, werk met lange context).

Hoe zie ik welke klanten hebben betaald en hoeveel ze hebben uitgegeven?

Elke betaling wordt vastgelegd in je Blockchain0x-dashboard met het walletadres van de betaler, de tijdstempel en het bedrag, en dezelfde gegevens komen aan op je payment.received webhook zodat je het kunt opslaan zoals je wilt. Omdat je de handler beheert, kun je ook de dingen loggen die de bibliotheek nooit ziet: welke tool werd aangeroepen, elke 402-uitdaging die je terugstuurde, en elke oproep die je deed vanuit een bestaande betaling. Koppel die aan de betalingen en je hebt per-betaler en per-tool inkomstenanalyses.

Zet je MCP-server om in inkomsten.

Begin met Pro, voer npx @blockchain0x/mcp uit of verbind requirePayment met je eigen tools. Tien minuten van installatie tot de eerste betaalde oproep.