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.
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.
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.
{
"error": "payment_required",
"amountUsdc": "0.02",
"payTo": "0xYourMcpAgentAddress",
"hostedUrl": "https://pay.blockchain0x.com/checkout/docs-search",
"network": "mainnet",
"description": "docs search"
}I quattro stati
- 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.
- 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).
- 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.
- 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.
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.
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
- 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.
- 2Installa i pacchetti:
npm install @blockchain0x/mcp @blockchain0x/node - 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).
- 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.
- 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.
- 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 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 strumento | Finestra | Perché |
|---|---|---|
| Ricerca economica ($0.01-$0.05) | 60 secondi | Assorbe i tentativi naturali e le chiamate di follow-up senza rivelare una sessione. |
| Inferenza di prezzo medio ($0.10-$1) | 30 secondi | Il 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 abbonamento | 24 ore | Paga 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.
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 chiamataRicerca, lookup, classificazione, conversione di formato - operazioni economiche con alto volume.
Minima frizione per i clienti; allinea il costo all'uso esattamente.
Massimo costo di transazione; funziona solo con un alto volume di chiamate.
Prezzo medio per chiamata
$0.10 - $1.00 per chiamataInferenza LLM, generazione, produzione di contenuti, qualsiasi cosa in cui ogni chiamata svolge un lavoro reale.
Bilanciato - chiaro valore per chiamata, numero di transazioni gestibile.
Maggiore attrito per chiamata; i clienti a volte preferiscono abbonamenti a questo livello di prezzo.
Prezzo alto per chiamata
$1 - $10 per chiamataGenerazione di contesti lunghi, elaborazione di documenti, orchestrazione multi-step, incapsulamento costoso di API di terze parti.
Il margine per chiamata è significativo; i pagamenti falliti sono perdite tollerabili.
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.
Maggiore fatturato per cliente; meno costi per chiamata.
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.
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.