મુખ્ય સામગ્રી પર જાઓ
શીખોમાર્ગદર્શિકાઓતમારા MCP સર્વરને મોનિટાઇઝ કરો
માર્ગદર્શિકા

10 મિનિટમાં તમારા MCP સર્વરને મોનિટાઇઝ કરો.

10 મિનિટ
ટૂંકું જવાબ

@blockchain0x/mcp સ્થાપિત કરો, અને એક પ્રીમિયમ ટૂલમાં requirePayment કોલ કરો જ્યારે કૉલરે ચૂકવણી નથી કરી - તે એક x402 402 પડકાર બનાવે છે જે એક હોસ્ટેડ ચેકઆઉટ URL સાથે છે, જેને તમે પાછું કરો છો. એકવાર payment.received વેબહૂક નિકાસની પુષ્ટિ કરે છે, તમે તમારા પોતાના સ્ટોરમાં કૉલરને ચૂકવેલ તરીકે માર્ક કરો છો અને ટૂલ ચલાવે છે. મફત ટૂલ મફત રહે છે. એક સામાન્ય HTTP સર્વર માટે, પ્રાપ્ત-પક્ષ x402 એડેપ્ટર એ જ કામ કરે છે.

પૂર્વશરતો

તમે શરૂ કરવા પહેલાં.

  • Node અથવા Pythonમાં સત્તાવાર મોડલ સંદર્ભ પ્રોટોકોલ SDK નો ઉપયોગ કરીને કાર્યરત MCP સર્વર. જો તમારી પાસે એક નથી, તો પ્રથમ ઉપરના ટેમ્પલેટ સાથે એક બનાવો.
  • એક Blockchain0x ખાતું અને એક એજન્ટ પ્રોફાઇલ (5-મિનિટની સેટઅપ માટે એજન્ટને ચુકવણીઓ ઉમેરો માર્ગદર્શિકા જુઓ).
  • એક API કી (આ માર્ગદર્શિકા માટે sk_test_ નો ઉપયોગ કરો).
  • કોઈને ચૂકવ્યું છે તે યાદ રાખવા માટે એક નાનું સ્ટોર (ડેટાબેઝ પંક્તિ અથવા રેડિસ કી) - તમારું કોડ આનું માલિક છે, ચુકવણી વેબહુક દ્વારા અપડેટ થાય છે.
  • કયા સાધનો માટે તમે ચાર્જ કરવો છે અને પ્રતિ કોલ કિંમત વિશે સ્પષ્ટ સમજણ. ડિઝાઇન પેટર્ન માટે ચુકવેલ MCP સાધન ગ્લોસરી પ્રવેશ જુઓ.
પગલું 1 માં 4

પેકેજ સ્થાપિત કરો.

@blockchain0x/mcp exports requirePayment, a pure function that mints an x402 402 challenge for a tool. It is npm (TypeScript) only. If you run a plain HTTP server instead of an MCP one, install the receive-side x402 adapter and gate routes with it.

સ્થાપિત કરો
# Gate your own MCP tools with the requirePayment 402 builder:
npm install @blockchain0x/mcp

# Or gate a plain HTTP server with the receive-side x402 adapter + SDK:
npm install @blockchain0x/x402 @blockchain0x/node
પગલું 2 માં 4

requirePayment સાથે એક સાધન ગેટ કરો.

Inside the tool, check your own paid-state for the caller. If they have not paid, call requirePayment and return the resulting 402 body; if they have, run the work. requirePayment is a pure builder - it does not wrap the handler and does not track payment, so the gating policy stays in your code.

MCP ટૂલ (TypeScript)
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { requirePayment } from "@blockchain0x/mcp";
import { z } from "zod";

const server = new McpServer({ name: "premium-data-mcp", version: "1.0.0" });

server.tool(
  "get_quote_realtime",
  "Real-time quote (paid)",
  { ticker: z.string() },
  async ({ ticker }, extra) => {
    if (!hasPaid(extra)) {
      // Pure function: mint an x402 402 challenge and hand the body back.
      const { body } = requirePayment({
        amountUsdc: "0.005",
        payTo: "0xYourWallet",
        hostedUrl: "https://pay.blockchain0x.com/checkout/abc",
      });
      return { content: [{ type: "text", text: JSON.stringify(body) }], isError: true };
    }
    const quote = await fetchLiveQuote(ticker);
    return { content: [{ type: "text", text: JSON.stringify(quote) }] };
  },
);
સાધારણ HTTP સર્વર (પ્રાપ્ત-પક્ષ x402)
import express from "express";
import { createX402Middleware } from "@blockchain0x/x402/server/express";
import { createClient } from "@blockchain0x/node";

const sdk = createClient({ apiKey: process.env.BLOCKCHAIN0X_API_KEY! });
const app = express();

// Not an MCP server? Gate a plain HTTP route the same way. The middleware
// answers unpaid requests with a 402 and lets paid ones through.
// Configure the price and recipient per the x402 docs.
app.use("/quote", createX402Middleware({ sdk }));

402 બોડી requirePayment એક ચૂકવેલ કૉલર પરત કરે છે:

// requirePayment returns { status: 402, body }. The body an unpaid caller sees:
{
  "error": "payment_required",
  "amountUsdc": "0.005",
  "payTo": "0xYourWallet",
  "hostedUrl": "https://pay.blockchain0x.com/checkout/abc",
  "network": "mainnet"
}
પગલું 3 માં 4

ચુકવણીની પુષ્ટિ કરો, પછી યાદ રાખો કે કોણ ચૂકવ્યું.

When a caller pays the checkout, Blockchain0x POSTs a signed payment.received event to your webhook. Verify it with webhooks.verify from @blockchain0x/node, then write the paid state to a store you control - a database row, a Redis key, your call. That store is what the tool checks in Step 2. There is no shipped receipt cache; you own where paid-state lives and how long it lasts.

Webhook હેન્ડલર (TypeScript)
import express from "express";
import { webhooks } from "@blockchain0x/node";

const app = express();
app.use(express.raw({ type: "application/json" }));

app.post("/webhooks/payment", (req, res) => {
  const result = webhooks.verify({
    headers: req.headers,
    rawBody: req.body, // RAW bytes
    secret: process.env.BLOCKCHAIN0X_WEBHOOK_SECRET!,
  });
  if (!result.ok) return res.status(400).json({ code: result.code });

  if (result.eventType === "payment.received") {
    // Remember the payer however you like - a DB row, a Redis key, your call.
    markPaid(result.eventId);
  }
  res.status(200).send("ok");
});

એક ચુકવણી કેટલો સમય સુધી ઍક્સેસ આપે છે તે તમારું નિર્ણય છે - એક જ કૉલ, એક સત્ર, એક કલાક. ટૂલને તમે કેવી રીતે મૂલ્ય આપતા છો તે મુજબ ચૂકવેલ-રાજ્ય કી પર એક સમાપ્તિ સેટ કરો. એટલું લાંબું કે સામાન્ય સત્ર એક ચુકવણી પુનઃઉપયોગ કરે છે, એટલું ટૂંકું કે દુષ્પ્રયોગ મર્યાદિત છે.

પગલું 4 માં 4

તૈનાત કરો અને ચકાસો.

સર્વર મોકલો. મફત ટૂલ્સને હજુ પણ તરત જ તેમના પરિણામો પરત કરવાની જરૂર છે; ગેટેડ ટૂલ્સને તાજા ક્લાયન્ટમાંથી પ્રથમ કૉલ પર 402 બોડી પરત કરવાની જરૂર છે, પછી તે કૉલર ચૂકવેલ તરીકે ચિહ્નિત થયા પછી ચલાવો. જીવંત જવા પહેલાં બેઝ સેપોલિયા સામે sk_test_ કી પર બંને માર્ગોને ચકાસો.

પ્રથમ દિવસે જોવાની બે સંકેતો: પાછા ફરેલા 402ની સંખ્યા (તમારા ટોપ-ઓફ-ફનલ) અને 402 પછી સફળ ટૂલ રનની સંખ્યા (તમારો રૂપાંતર). જો રૂપાંતર અપેક્ષિત કરતાં ઘણું ઓછું છે, તો ભાવ કદાચ ખોટો છે. તમારા પેઇડ-સ્ટેટ સ્ટોરની હિટ રેટ પણ જુઓ - જો તે શૂન્યની નજીક છે, તો તમારી ઍક્સેસ વિન્ડો ખૂબ જ ટૂંકી છે અને ચૂકવણી કરનાર કોલર્સને ફરીથી ચૂકવણી કરવા માટે કહેવામાં આવી રહ્યું છે.

સામાન્ય ખોટા પગલાં

પાંચ વસ્તુઓ જે પ્રથમ વખત MCP મોનિટાઇઝર્સને કટે છે.

અકસ્માતે મફત સાધનોને ગેટ કરવું

દરેક ટૂલને 'જસ્ટ ઇન કેસ' ગેટ કરવા માટે આકર્ષક છે. ન કરો. ચૂકવેલ MCP સર્વરોની સમગ્ર કિંમત એ છે કે મફત ટૂલ્સ ચૂકવેલ ટૂલ્સ સાથે એક જ સર્વર પર અસ્તિત્વમાં છે, જેથી ક્લાયન્ટ મફત શોધ અને મેટાડેટા ટૂલ્સનો ઉપયોગ કરી શકે છે. વાસ્તવમાં પ્રીમિયમ સંસાધનોનો ઉપયોગ કરતી ટૂલ્સ માટે જ 402 બનાવો; બાકીની વસ્તુઓને સાદા પરિણામ તરીકે છોડી દો.

requirePayment એક બિલ્ડર છે, માધ્યમ નથી

requirePayment એક શુદ્ધ ફંક્શન છે: તમે તેને ત્યારે કોલ કરો છો જ્યારે ટૂલ ચૂકવેલ નથી, તે { status: 402, body } પાછું આપે છે, અને તમે શરીરને પાછું આપો છો. તે તમારા હેન્ડલરને લપેટતું નથી અને તે કોણે ચૂકવ્યું તે ટ્રેક કરતું નથી. તે amountUsdc, payTo, hostedUrl, અને વૈકલ્પિક નેટવર્ક અને વર્ણન લે છે - બીજું કંઈ નહીં. એક કોલર ચૂકવ્યું છે કે કેમ તે ચકાસણી છે જે તમે તમારી પોતાની દુકાન સામે ચલાવો છો.

કોઈ મોકલવામાં આવેલ રસીદ કેશ નથી

Blockchain0x 402 બિલ્ડર અને સેટલમેન્ટ વેબહૂક મોકલે છે, રસીદ-સ્ટોર સહાયક નથી. તમે નક્કી કરો છો કે 'આ કોલર ચૂકવ્યું' ક્યાં રહે છે - એક ડેટાબેઝ પંક્તિ, એક Redis કી, એક એકલ પ્રક્રિયા માટે મેમરીમાં નકશો - અને તમે તેને ફેરવો છો જ્યારે payment.received વેબહૂક આવે છે. તે નીતિને (ચુકવણી કેટલા સમય સુધી ઍક્સેસ આપે છે) સંપૂર્ણપણે તમારા હાથમાં રાખે છે.

ગ્રાહક પાસે છે તે રસીદ પર વિશ્વાસ કરવો

કોલર ને આ દાવો કરવા ના દો કે તે ચૂકવણી કરી છે. સત્યનો સ્ત્રોત payment.received વેબહૂક છે, જે webhooks.verify (અથવા દસ્તાવેજિત HMAC) સાથે તમારા વેબહૂક સિક્રેટ સામે ચકાસવામાં આવે છે. ચકાસાયેલ ઇવેન્ટ પછી જ પેયર ને ચૂકવણી કરેલ તરીકે ચિહ્નિત કરો, અને ટૂલને સર્વર-પક્ષની સ્થિતિ પર ગેટ કરો - ક્યારેય ક્લાયન્ટ દ્વારા મોકલવામાં આવેલા કંઈક પર નહીં.

ચુકવેલ સાધનની વિલંબ પર કોઈ મેટ્રિક્સ નથી

ગ્રાહક અને સાધન અમલ વચ્ચે ચુકવણીના પગલાને મૂકી દેવું પ્રથમ કૉલ પર ચૂકવણી કરવા અને સેટલ કરવા માટે કૉલરને લેતી સમય ઉમેરે છે, પછી તમે તેમને ચૂકવેલા તરીકે ચિહ્નિત કર્યા પછી નજીક-શૂન્ય. બંને શાખાઓને સાધન કરો જેથી કરીને તમે ગ્રાહકની ફરિયાદ વખતે 'સાધન ધીમી છે' અને 'ચુકવણી ધીમી છે' વચ્ચે ભેદ કરી શકો. મેટ્રિક વિના તમે બોટલને ખોટી રીતે નિદાન કરી શકો છો.

આગળના પગલાં

જ્યારે ચૂકવેલ ટ્રાફિક વહે છે.

મોનિટાઇઝેશન સાથે, સૌથી ઉપયોગી અનુસરણો વિશ્વસનીય વેબહુક હેન્ડલિંગ (તેથી તમે ચુકવણી ઇવેન્ટને ચૂકી ન જાઓ), ખર્ચ નિયંત્રણ (તેથી તમે બનાવેલા MCP સર્વર જે અન્ય એજન્ટોને પણ ચૂકવે છે તે મર્યાદિત રહે છે), અને એક ટેસ્ટનેટ-પ્રથમ પ્રવાહ (તેથી તમે વાસ્તવિક પૈસા બર્ન કર્યા વિના કિંમતોમાં ફેરફાર કરી શકો છો) છે.

પૂર્ણ API સંદર્ભ docs.blockchain0x.com પર છે. સંબંધિત ઉત્પાદન સપાટી: MCP એકીકરણ.

છેલ્લી સમીક્ષા: 2026-05-15. CC BY 4.0 હેઠળ પ્રકાશિત.

પ્રતિ સાધન કૉલ ચાર્જ કરો.

402 પરત કરો, તમારી કિંમત સેટ કરો, USDC સ્વીકારો. શરૂ કરવા માટે મફત.