Salta al contenuto principale
PERSONA 2 - OPERATORI DI SERVER MCP

Monetizza il tuo server MCP in 10 minuti.

Lascia che gli agenti AI paghino il tuo server MCP per chiamata, in USDC, con webhook firmati e registri di audit. Compatibile con x402. Middleware drop-in.

IL DOLORE

Hai costruito un server MCP. Migliaia di clienti lo stanno utilizzando gratuitamente.

Hai spedito il tuo server MCP perché i clienti Claude Desktop, Cursor e Cline avevano bisogno della funzionalità. La voce si è sparsa. Ora stai servendo migliaia di invocazioni di strumenti a pagamento al giorno da agenti AI che non hai mai incontrato. La tua bolletta di uscita è reale. La tua chiave API per il servizio sottostante è reale. Il tuo tempo di manutenzione è reale. Il fatturato è zero.

Hai tre opzioni. Mantienilo gratuito e brucia denaro sull'infrastruttura. Mettilo dietro chiavi API manuali (e perdi il 95% del traffico degli agenti a causa dell'attrito dei moduli di registrazione). Oppure aggiungi uno strato di pagamento che gli agenti AI possano effettivamente completare - che è esattamente ciò per cui è stato creato 402 Payment Required + USDC.

Blockchain0x è l'opzione tre. Il tuo server MCP punta alla nostra API. Quando un client AI chiama uno strumento a pagamento, la risposta è 402 con un URL di pagamento ospitato. Il cliente (o il suo supervisore umano) paga in USDC. Il tuo webhook si attiva. La prossima chiamata di quel cliente ha successo. L'intera forma è chiamata x402, ed è il protocollo che Coinbase ha pubblicato per questo esatto modello.

MODELLO X402

Come 402 Payment Required diventa un checkout programmatico.

Il codice di stato HTTP 402 esiste fin da quando la specifica è stata scritta per la prima volta ma non ha mai avuto un'implementazione standard. Il protocollo x402 di Coinbase finalmente ne fornisce uno. La forma è semplice: il tuo strumento restituisce una sfida 402 (un corpo JSON strutturato che descrive come pagare); il cliente paga e riprova; la chiamata ha successo. requirePayment da @blockchain0x/mcp costruisce quel corpo di sfida per te.

IL CORPO DELLA SFIDA 402 requirePayment CREA, RESTITUITO COME ERRORE DELLO STRUMENTO
{
  "error": "payment_required",
  "amountUsdc": "0.02",
  "payTo": "0xYourMcpAgentAddress",
  "hostedUrl": "https://pay.blockchain0x.com/checkout/docs-search",
  "network": "mainnet",
  "description": "docs search"
}

I quattro stati

  1. Chiamata non pagata: Il client AI invoca uno strumento a pagamento. Il tuo gestore controlla il tuo stato di pagamento, scopre che il pagatore non è contrassegnato come pagato e restituisce il corpo della sfida 402 da requirePayment come errore dello strumento.
  2. Pagamento: Il cliente segue l'hostedUrl per il checkout ospitato e completa il trasferimento USDC su Base (sia programmaticamente tramite un wallet consapevole di x402 che manualmente tramite codice QR).
  3. Webhook: Blockchain0x invia payment.received al tuo endpoint entro pochi secondi dalla conferma della catena. Lo verifichi con webhooks.verify e registri il pagatore come pagato nel tuo store.
  4. Ritenta: Il cliente ripete la chiamata originale allo strumento MCP. Il tuo gestore ora vede il pagatore contrassegnato come pagato, esegue lo strumento e restituisce il risultato effettivo.

Ogni pagamento è registrato nel tuo dashboard di Blockchain0x, e ogni webhook payment.received arriva nei tuoi log. Poiché possiedi lo stato di pagamento e il gestore del webhook, le analisi delle entrate per strumento e per pagatore derivano dai dati che già memorizzi.

CONFIGURAZIONE DEL MIDDLEWARE

Un esempio di lavoro completo.

requirePayment da @blockchain0x/mcp costruisce la sfida 402; webhooks.verify da @blockchain0x/node verifica la conferma. Possiedi i due piccoli pezzi in mezzo: il controllo dello stato di pagamento all'interno dello strumento e il gestore del webhook che segna un pagatore come pagato. Di seguito è riportato un server MCP completo che espone uno strumento a pagamento più il suo endpoint webhook.

INDEX.TS - SERVER MCP CON UNO STRUMENTO A PAGAMENTO E IL SUO 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 });
});

Passaggi di configurazione

  1. 1Crea un wallet agente Blockchain0x per il tuo server MCP, su un piano che include accesso all'API e ai webhook. Prendi nota dell'indirizzo del wallet che utilizzerai come payTo.
  2. 2Installa i pacchetti: npm install @blockchain0x/mcp @blockchain0x/node
  3. 3Imposta le variabili d'ambiente: BLOCKCHAIN0X_API_KEY (il server MCP la invia come Authorization: Bearer) e BLOCKCHAIN0X_WEBHOOK_SECRET (il secret di firma della dashboard rispetto al quale webhooks.verify effettua il controllo).
  4. 4Controlla i tuoi strumenti a pagamento verificando il tuo stato di pagamento e restituendo il corpo della sfida requirePayment quando il chiamante non ha pagato. Lascia gli strumenti gratuiti non protetti.
  5. 5Configura l'endpoint webhook nel dashboard di Blockchain0x (ad esempio /webhooks/blockchain0x), quindi verifica ogni consegna con webhooks.verify e contrassegna il pagatore come pagato su payment.received.
  6. 6Distribuisci. Il primo cliente AI che utilizza il tuo strumento a pagamento riceve un 402, paga e la chiamata successiva ha successo. Vedi il pagamento nel dashboard entro 10 secondi.

Puoi anche eseguire il server Blockchain0x MCP stesso con npx @blockchain0x/mcp (stdio) o il contenitore HTTP ospitato Streamable su mcp.blockchain0x.com. La configurazione completa, comprese le forme del payload del webhook, si trova nella documentazione.

LA TUA FINESTRA PAGATA

La decisione più importante nel tuo gestore.

Poiché possiedi lo stato di pagamento, decidi anche per quanto tempo un pagamento conta. Dopo che un cliente paga per uno strumento, mantienilo contrassegnato come pagato per un certo intervallo di tempo, e all'interno di quell'intervallo lascia passare le chiamate senza un nuovo pagamento. Imposta l'intervallo troppo corto e punisci i clienti con attrito nei pagamenti su ogni chiamata; impostalo troppo lungo e regali operazioni costose dopo un pagamento economico. Un TTL sulla tua chiave Redis/Postgres è il modo più semplice per implementarlo.

Le finestre che raccomandiamo

Tipo di strumentoFinestraPerché
Ricerca economica ($0.01-$0.05)60 secondiAssorbe i tentativi naturali e le chiamate di follow-up senza rivelare una sessione.
Inferenza di prezzo medio ($0.10-$1)30 secondiIl pagamento per chiamata è la forma giusta; la cache breve gestisce il ripristino su errori transitori.
Costoso long-context ($1-$10)0 secondi (nessuna cache)Ogni chiamata è un proprio evento a pagamento; nessuna cache.
Strumenti in stile abbonamento24 orePaga una volta al giorno per chiamate illimitate all'interno della finestra. Maggiore fatturato per cliente con minore frizione.

Chiave il tuo stato pagato per ogni coppia (wallet pagatore, strumento), come fa l'esempio con search_docs:0xPayer. Due client diversi colpiscono lo stesso strumento, ognuno paga separatamente. Lo stesso cliente colpisce due strumenti diversi, due pagamenti separati richiesti. Puoi ampliarlo più ampiamente (per pagatore su tutti gli strumenti) se preferisci; la granularità per pagatore per strumento è ciò che rende il prezzo equo.

MODELLI DI PREZZO

Quattro forme di prezzo che funzionano per i server MCP.

Il prezzo è a tua discrezione - imposti l'importo per strumento nel middleware. Di seguito ci sono i quattro schemi che vediamo più spesso e a quali forme di strumenti si adattano.

Prezzo micro per chiamata

$0.01 - $0.05 per chiamata

Ricerca, lookup, classificazione, conversione di formato - operazioni economiche con alto volume.

PRO

Minima frizione per i clienti; allinea il costo all'uso esattamente.

CONTRO

Massimo costo di transazione; funziona solo con un alto volume di chiamate.

Prezzo medio per chiamata

$0.10 - $1.00 per chiamata

Inferenza LLM, generazione, produzione di contenuti, qualsiasi cosa in cui ogni chiamata svolge un lavoro reale.

PRO

Bilanciato - chiaro valore per chiamata, numero di transazioni gestibile.

CONTRO

Maggiore attrito per chiamata; i clienti a volte preferiscono abbonamenti a questo livello di prezzo.

Prezzo alto per chiamata

$1 - $10 per chiamata

Generazione di contesti lunghi, elaborazione di documenti, orchestrazione multi-step, incapsulamento costoso di API di terze parti.

PRO

Il margine per chiamata è significativo; i pagamenti falliti sono perdite tollerabili.

CONTRO

I clienti negoziano duramente a questo prezzo; aspettati richieste di rimborso.

Finestra di abbonamento

$5 - $50 per finestra di 24h (o $X al mese)

Clienti che effettuano molte chiamate in una sessione e non tollererebbero frizioni nei pagamenti per chiamata.

PRO

Maggiore fatturato per cliente; meno costi per chiamata.

CONTRO

Scarsa visibilità; i clienti devono impegnarsi in anticipo. Spesso combinato con il pagamento per chiamata per una tariffazione ibrida.

Molti operatori mescolano i modelli: strumenti economici con micro-prezzi per chiamata, strumenti costosi con alti prezzi per chiamata, più una finestra di abbonamento di 24 ore per utenti intensivi. Niente ti impedisce di eseguire tutti e tre sullo stesso server MCP; ogni strumento imposta il proprio amountUsdc in requirePayment e la propria finestra di pagamento nel tuo gestore.

QUAL È IL PIANO ADATTO

Pro è il piano giusto per quasi tutti i server MCP.

Gli operatori del server MCP iniziano quasi sempre con Pro perché l'accesso in scrittura all'API e i webhook sono richiesti fin dal primo giorno: Free è di sola lettura, e uno strumento a pagamento deve ricevere webhook payment.received e verificarli. Consulta la pagina dei prezzi per il costo esatto per agente e dove si trovano i livelli delle commissioni di transazione; la versione breve è che qualsiasi server che gestisce un volume reale a pagamento è ben oltre il punto in cui Pro si ripaga da solo.

  • Free: utile per sperimentare con l'API e la dashboard. Non adatto a strumenti a pagamento in produzione (sola lettura, nessun webhook).
  • Pro: predefinito per server MCP live. Accesso completo alle API, webhook, export.
  • Business: quando hai bisogno dell'audit log per conformità, o quando esegui server MCP per più clienti e vuoi la condivisione delle postazioni team per agente.
Vedi i prezzi completi
DOMANDE FREQUENTI

Cinque domande specifiche di MCP.

Il mio server MCP deve essere ospitato su Blockchain0x? O deve funzionare su un cloud specifico?

No. Il tuo server MCP può funzionare ovunque normalmente: il tuo laptop, AWS, Fly.io, Cloudflare Workers, un Raspberry Pi. Il middleware è solo un modulo Node che avvolge i tuoi gestori di strumenti. Finché il tuo server può effettuare chiamate HTTPS in uscita a api.blockchain0x.com e ricevere webhook in entrata a un URL che controlli, l'integrazione funziona. Non ospitiamo il tuo server MCP; ospitiamo la superficie di pagamento.

Cosa succede quando un client AI non comprende x402 e riceve solo una risposta 402?

Il corpo della sfida è strutturato in modo che un client non consapevole di x402 veda un errore significativo: un codice di errore, l'amountUsdc e un hostedUrl per effettuare il pagamento. I client che mostrano errori degli strumenti all'utente (la maggior parte dei client basati su chat come Claude Desktop o Cursor) mostreranno all'utente l'URL su cui cliccare e pagare; i client che gestiscono la chiamata completamente in modo programmatico e ignorano l'errore semplicemente non otterranno un risultato, che è l'esito corretto (la chiamata non è stata pagata). I client consapevoli di x402 leggono la sfida, pagano automaticamente utilizzando un wallet pre-autorizzato e riprovano.

Quanto dura la finestra pagata? Un cliente può pagare una volta e chiamare per sempre?

Questa è interamente una tua decisione, perché possiedi lo stato pagato. Una scelta comune è un TTL di 60 secondi sulla chiave pagata: assorbe i modelli naturali di ripetizione e follow-up senza consentire a un singolo pagamento di coprire un'intera sessione. Puoi renderlo più lungo per prezzi in stile abbonamento, o zero (ogni chiamata richiede un pagamento fresco) per strumenti costosi per chiamata. La libreria non impone una finestra; il tuo negozio e il suo TTL lo fanno.

Posso eseguire strumenti a pagamento e strumenti gratuiti sullo stesso server MCP?

Sì. Aggiungi il controllo dello stato pagato (e la sfida requirePayment in caso di errore) solo agli strumenti a pagamento; lascia gli strumenti gratuiti come gestori semplici. Gli strumenti gratuiti funzionano per qualsiasi cliente; gli strumenti a pagamento restituiscono la sfida 402 fino a quando non sono pagati. Molti operatori iniziano rendendo gratuiti gli strumenti economici (per favorire l'adozione) e riservando il pagamento per quelli di alto valore (inference, generazione, lavoro a lungo contesto).

Come posso vedere quali clienti hanno pagato e quanto hanno speso?

Ogni pagamento è registrato nel tuo dashboard di Blockchain0x con l'indirizzo del portafoglio del pagatore, il timestamp e l'importo, e gli stessi dati arrivano sul tuo webhook payment.received in modo da poterli memorizzare come preferisci. Poiché controlli il gestore, puoi anche registrare le cose che la libreria non vede mai: quale strumento è stato chiamato, ogni sfida 402 che hai restituito e ogni chiamata che hai servito da un pagamento esistente. Unisci questi dati ai pagamenti e avrai analisi delle entrate per pagatore e per strumento.

Trasforma il tuo server MCP in entrate.

Inizia con Pro, esegui npx @blockchain0x/mcp o collega requirePayment nei tuoi strumenti. Dieci minuti dall'installazione alla prima chiamata pagata.