Guide
Ricetta: server MCP a pagamento
Fai pagare ogni chiamata ai tool di un server MCP, con i crediti. Una persona compra un pacchetto una volta; ogni chiamata prima scala e poi lavora.
Gli agenti non devono pagare da soli. Una persona compra un pacchetto di crediti nel browser, poi ogni chiamata a un tool controlla il saldo, scala crediti con una chiave di idempotenza e lavora. Quando i crediti finiscono, il tool risponde con un link di ricarica che l’agente mostra alla persona. Niente x402, niente wallet nell’agente, niente addebiti automatici.
paid-mcp-tools del plugin Perly Pay realizza questa ricetta nel tuo progetto. L’esempio eseguibile è examples/paid-mcp-server (MIT) nel repository del plugin.Come funziona
- 1
Un pacchetto di crediti
Come nei crediti API. Dai un prezzo a ogni tool e scrivilo nella sua descrizione.
- 2
Chi chiama
Un server ospitato associa la chiave API di ogni abbonato all’
external_iddi un cliente.PERLY_PAY_SECRET_KEYè solo sul tuo server. - 3
Prima scala, poi lavora
credits.consumecon il nome del tool comeactione una nuova chiave che il tuo server genera a ogni chiamata; poi il lavoro. - 4
Non basta?
Restituisci un risultato del tool con
isError: truee il link di ricarica, non un errore di protocollo: i client lo mostrano. - 5
Aiuti gratuiti
I tool
balanceetop_up, così l’agente può spiegare cosa succede.
Esegui l’esempio
- 1
Installa
npm installinexamples/paid-mcp-server(Node 20.12+). - 2
Chiave
Copia
.env.examplein.enve metti una chiave di test (sk_test_…) inPERLY_PAY_SECRET_KEY. - 3
Prepara
npm run setupcrea il prodotto e il prezzo con la tua chiave e stampa i loro id per.env. - 4
Avvia
npm start(onpm run dev), come dice il suo README. - 5
Paga senza wallet
Aggiungilo a Claude Code (
claude mcp add paid-tools -- npx tsx "$PWD/src/server.ts") ed eseguiword_stats: la risposta è la pagina di ricarica. Scegli un pacchetto, premi Simulate payment ed eseguilo di nuovo.
Errori comuni
PERLY_PAY_SECRET_KEYin una configurazione MCP che altri copiano. Ospita tu il server o fallo chiamare il tuo backend.- Scalare dopo il lavoro: uno scalo fallito significa allora lavoro gratis.
- Prendere la chiave dello scalo dall’id JSON-RPC: lo sceglie il client, e lo stesso id restituisce il primo scalo, quindi il tool lavora di nuovo gratis.