முக்கிய உள்ளடக்கத்திற்கு தவிர்க்கவும்
MCP ஒருங்கிணைப்பு

Blockchain0x MCP மூலம்.

எந்த MCP ஹோஸ்டுக்கு - Claude Desktop, Cursor, VS Code - ஒரு கட்டமைப்பு தொகுதியுடன் எஜெண்ட் பணப்பை கருவிகளை வழங்குங்கள். மற்றும் உங்கள் சொந்த கருவிகளுக்கு கட்டணம் வசூலிக்க விரும்பும் போது, உண்மையான requirePayment x402 கட்டுப்படுத்தியைப் பயன்படுத்துங்கள்.

குறுகிய பதில்

@blockchain0x/mcp சர்வர் ஒரு MCP ஹோஸ்டுக்கு ஐந்து முகவர்-பணம் கருவிகளை வழங்குகிறது: ஒரு பணத்தைப் படிக்கவும், பணங்களைப் பட்டியலிடவும், ஒரு பரிவர்த்தனையைச் சரிபார்க்கவும், USDC கட்டணத்தை அனுப்பவும், மற்றும் x402 பில்லைக் கட்டுப்படுத்தவும். npx @blockchain0x/mcp மூலம் அதை இயக்கவும் (உங்கள் விசை உங்கள் இயந்திரத்தில் இருக்கும்) அல்லது வழங்கப்பட்ட URL க்கு குறிக்கவும். தனியாக, தொகுப்பு requirePayment ஐ ஏற்றுகிறது, எனவே நீங்கள் உங்கள் சொந்த MCP கருவிகளில் x402 402 சவாலுடன் ஒரு விலை வைக்கலாம்.

இரு வேலைகள், ஒரு தொகுப்பு

MCP மூலம் செலவிடவும். MCP மூலம் கட்டணம் செலுத்தவும்.

வேலை ஒன்று: ஒரு எஜெண்ட் தனது ஹோஸ்டில் இருந்து பணப்பையைப் பயன்படுத்த அனுமதிக்கவும். @blockchain0x/mcp சர்வர் @blockchain0x/node SDK இல் ஒரு மென்மையான, மாநிலமற்ற பிரதிநிதி ஆகும். இது Claude Desktop, Cursor, அல்லது VS Code க்கு ஐந்து பணப்பை கருவிகளை வெளிப்படுத்துகிறது, மற்றும் உங்கள் API விசையின் வரம்பு, அனுமதி மற்றும் காலக்கட்ட வரம்புகள் பின்னணி மூலம் எந்த மற்ற API அழைப்பிற்கும் சரியாக அமல்படுத்தப்படுகின்றன. சர்வர் எந்த விசையையும் வைத்திருக்காது மற்றும் எதையும் சேமிக்காது.

வேலை இரண்டு: உங்கள் கருவிகளை அழைக்க எஜெண்ட்களுக்கு கட்டணம் வசூலிக்கவும். MCP கருவி அழைப்பை தடையற்றமாக்கியது, இது உங்கள் சர்வர் வெளியேற்றம், டோக்குகள் மற்றும் மூன்றாம் தரப்பு API செலவுகளை இலவசமாக உண்ணும் வரை சிறந்தது. 402 செலுத்தல் தேவைப்படும் மாதிரி இங்கு சரியாக பொருந்துகிறது. requirePayment ஒரு ஹோஸ்டு செய்யப்படும் checkout URL உடன் ஒரு கட்டமைக்கப்பட்ட x402 சவாலை உருவாக்குகிறது; நீங்கள் ஒரு கருவி செலுத்தப்படாத போது அதை திருப்பி அனுப்புகிறீர்கள் மற்றும் செலுத்தல் ஒத்திசைக்கும்போது அழைப்பை அனுமதிக்கிறீர்கள். x402-ஐ பேசும் கிளையன்ட்கள் தானாகவே செலுத்துகின்றன; மற்றவர்கள் URL ஐ மனிதருக்கு வெளிப்படுத்துகின்றனர்.

சேவையகத்தை இயக்கவும்

இதை இயக்க இரண்டு வழிகள். ஹோஸ்ட் செய்யப்பட்ட ஒன்றுக்கு எந்த நிறுவலும் இல்லை.

நீங்கள் npx உடன் உள்ளூர் stdio இல் அதை இயக்குங்கள் (உங்கள் விசை உங்கள் இயந்திரத்தில் இருக்கும்), அல்லது எந்த MCP ஹோஸ்டையும் ஹோஸ்டு செய்யப்பட்ட Streamable HTTP URL க்கு குறிக்கவும் மற்றும் விசையை Bearer டோக்கெனாக அனுப்பவும். இரண்டும் ஹோஸ்டின் MCP கட்டமைப்பில் நேரடியாக விழுந்து விடும். உள்ளூர் பாதைக்கு Node 20+.

LOCAL - STDIO (npx)
{
  "mcpServers": {
    "blockchain0x": {
      "command": "npx",
      "args": ["-y", "@blockchain0x/mcp"],
      "env": {
        "BLOCKCHAIN0X_API_KEY": "sk_live_...",
        "BLOCKCHAIN0X_API_BASE_URL": "https://api.blockchain0x.com"
      }
    }
  }
}
HOSTED - STREAMABLE HTTP
{
  "mcpServers": {
    "blockchain0x": {
      "url": "https://mcp.blockchain0x.com/mcp",
      "headers": { "Authorization": "Bearer sk_live_..." }
    }
  }
}

BLOCKCHAIN0X_API_KEY என்பது உங்கள் டாஷ்போர்டில் இருந்து sk_test_ testnet அல்லது sk_live_ mainnet விசை; BLOCKCHAIN0X_API_BASE_URL https://api.blockchain0x.com இல் இயல்பாக உள்ளது. சேவையகம் உங்கள் விசையை பின்னணி நோக்கி அனுப்புகிறது மற்றும் எதையும் சேமிக்கவில்லை, எனவே அந்த விசையின் வரம்பு மற்றும் கட்டுப்பாடுகள் முகவர் என்ன செய்யலாம் என்பதற்கேற்பவே இருக்கின்றன. இது வெளிப்படுத்தும் ஐந்து கருவிகள்: get_wallet, list_wallets, get_transaction, send_payment, மற்றும் settle_payment_request.

உங்கள் சொந்த கருவிகளை விலையிடுங்கள்

உண்மையான requirePayment கட்டுப்படுத்தியுடன் ஒரு கருவியை கட்டுப்படுத்துங்கள்.

@blockchain0x/mcp-இன் requirePayment ஒரு pure function. tool unpaid ஆக இருக்கும்போது இதை call செய்கிறீர்கள், இது ஒரு x402 402 challenge-ஐ mint செய்கிறது (price, உங்கள் wallet, ஒரு hosted checkout URL), மேலும் அந்த body-யை standard MCP error shape-இல் திருப்பிக் கொடுக்கிறீர்கள். இது உங்கள் handler-ஐ wrap செய்யாது, யார் paid என்பதை track செய்யவும் செய்யாது - அந்த பகுதி உங்களுடையது, இதனால் helper சிறியதாகவும் தெளிவாகவும் இருக்கும்.

SERVER.TS
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { requirePayment } from "@blockchain0x/mcp";
import { z } from "zod";

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

server.tool(
  "search_docs",
  "Semantic search across our private docs",
  { query: z.string() },
  async ({ query }, extra) => {
    if (!hasPaid(extra)) {
      // Mint an x402 402 challenge and hand it back to the caller.
      const { body } = requirePayment({
        amountUsdc: "0.10",
        payTo: "0xYourWallet",
        hostedUrl: "https://pay.blockchain0x.com/checkout/abc",
      });
      return { content: [{ type: "text", text: JSON.stringify(body) }], isError: true };
    }
    const results = await runVectorSearch(query);
    return { content: [{ type: "text", text: JSON.stringify(results) }] };
  },
);

முகவர் search_docs unpaid ஐ அழைக்கும் போது, அது 402 உடலைப் பெறுகிறது. x402 ஐ பேசும் கிளையன்ட்கள் அதை தானாகவே செலுத்துகின்றன; Claude Desktop மற்றும் Cursor மனிதனுக்கான செலுத்தல் URL ஐ மேற்பரப்பில் காட்டுகின்றன. பணம் நிலைநிறுத்திய பிறகு, நீங்கள் அந்த அழைப்பாளரை செலுத்தியதாகக் குறிக்கிறீர்கள் (அடுத்த பகுதி) மற்றும் அழைப்பு செல்லும். MCP ஒன்றுக்கு மேலாக ஒரு சாதாரண HTTP சேவையை விரும்புகிறீர்களா? பெறும் பக்கம் x402 அடிப்படையாளர் - Express க்கான createX402Middleware, Fastify க்கான createX402Plugin - கட்டமைப்பு அடிப்படையில் அதே கட்டுப்பாட்டை செய்கிறது.

கட்டணத்தை உறுதிப்படுத்தவும்

வெப்ஹூக் தரையில் விழும்போது அழைப்பாளரை செலுத்தியதாகக் குறிக்கவும்.

ஒரு பணம் நிலைநிறுத்தும் போது, Blockchain0x உங்கள் வெப்கோக் URL க்கு ஒரு கையொப்பமிடப்பட்ட payment.received நிகழ்வை POST செய்கிறது. Node SDK இல் இருந்து webhooks.verify உடன் அதை சரிபார்க்கவும், பின்னர் நீங்கள் ஏற்கனவே இயக்கும் எந்த கடையில் அழைப்பாளரால் செலுத்தப்பட்டது என்பதை பதிவு செய்யவும். கட்டமைக்க வேண்டிய அனுப்பப்பட்ட ரசீது காசோலையை இல்லை - நீங்கள் அந்த துண்டை சொந்தமாகக் கொண்டுள்ளீர்கள், இது எந்த ஆச்சரியமான கட்டமைப்பும் இல்லை.

வெப்கோக்.TS
import express from "express";
import { webhooks } from "@blockchain0x/node";

const app = express();
// Capture the RAW body. The HMAC is over the exact bytes on the wire.
app.use(express.raw({ type: "application/json" }));

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

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

webhooks.verify HMAC-SHA256-ஐ constant time-இல் செய்கிறது மற்றும் ஒரு discriminated union-ஐ return செய்கிறது, ஆகவே try/catch இல்லாமல் result.ok-ஐ வைத்து branch செய்யலாம். parsed copy அல்ல, raw body-ஐ படிக்கவும், ஏனெனில் signature துல்லியமான bytes-ஐ காப்பாற்றுகிறது. வழங்கப்பட்ட events payment.received, payment.sent, wallet.deployed, மற்றும் webhook.test; உங்கள் wallet-க்கு வரும் payment என்பது payment.received. 'this caller paid' என்பதை எங்கு persist செய்வது - database row, Redis key, single process-க்கு in-memory map - என்பது உங்கள் முடிவு.

மூலமும் ஆவணங்களும்

சர்வர் திறந்த மற்றும் நிலைத்தன்மையற்றது. அதைப் படிக்கவும்.

MCP server மற்றும் requirePayment builder என்பது database-உம் volumes-உம் இல்லாமல் Node SDK மீது அமைந்த ஒரு thin pass-through மட்டுமே, எனவே audit செய்ய அதிகம் இல்லை - அதுவே நோக்கம். Native MCP OAuth 2.1 என்பது அடுத்த கட்ட திட்டம்; pasted-key பாதை முதலில் வெளியிடப்படுகிறது, ஏனெனில் அது ஏற்கனவே உள்ள API-key trust model-ஐ மீண்டும் பயன்படுத்துகிறது.

github.com/tosh-labs/blockchain0x-node

முழு tool list, scopes, மற்றும் hosted environment URLs ஆகியவை the docs இல் ஆவணப்படுத்தப்பட்டுள்ளன. உண்மையான key-யை பயன்படுத்துவதற்கு முன் சோதிக்க production உடன் staging மற்றும் dev hosted endpoints உள்ளன.

பொதுவான தவறுகள்

தவிர்க்க வேண்டிய ஐந்து MCP-சிறப்பு சிக்கல்கள்.

இவை உற்பத்தியில் கட்டண MCP சேவையகங்களை இயக்கும் இயக்குநர்களிடமிருந்து வருகின்றன. பெரும்பாலானவை கச்சா கட்டமைப்பு மற்றும் MCP நெறிமுறையின் குறிப்பிட்ட பிழை வடிவத்துடன் தொடர்புடையவை.

PITFALL 1

requirePayment என்பது ஒரு builder, middleware அல்ல

requirePayment என்பது ஒரு pure function: இதை call செய்தால் { status: 402, body } return செய்கிறது, மற்றும் tool unpaid ஆக இருக்கும்போது அந்த body-யை மீண்டும் வழங்குகிறீர்கள். இது உங்கள் handler-ஐ wrap செய்யாது, யார் paid என்பதையும் track செய்யாது, மேலும் காரணம் அல்லது cache-window options எதையும் எடுக்காது - amountUsdc, payTo, hostedUrl, மற்றும் விருப்பமான network மற்றும் description மட்டுமே. payment state-ஐ track செய்வது உங்கள் வேலை: உங்கள் database-இல் ஒரு row, உங்கள் சொந்த Redis-இல் ஒரு key, பொருத்தமான எதுவாக இருந்தாலும். Blockchain0x challenge builder மற்றும் settlement webhook-ஐ வழங்குகிறது, receipt cache-ஐ அல்ல.

PITFALL 2

stdio உங்கள் key-ஐ உங்கள் machine-லேயே வைத்திருக்கிறது

npx மற்றும் BLOCKCHAIN0X_API_KEY உடன் சேவையகத்தை இயக்கவும், மற்றும் விசை உங்கள் பெட்டியிலிருந்து வெளியே வராது - இது உள்ளூர் படிக்கப்படுகிறது, நெட்வொர்க் தலைப்பாக அனுப்பப்படவில்லை. ஹோஸ்ட் URL எதிர்மறை வர்த்தகம்: பூஜ்ய நிறுவல், ஆனால் நீங்கள் mcp.blockchain0x.com க்கு Bearer டோக்கெனாக விசையை ஒட்டுகிறீர்கள். ஒரு டெவலப்பரின் சொந்த இயந்திரத்திற்காக stdio ஐ தேர்ந்தெடுக்கவும், பகிர்ந்துள்ள மையமாக ஹோஸ்ட் செய்யவும்.

PITFALL 3

டாஷ்போர்ட்-மட்டுமே உள்ள மேற்பரப்புகள் வெளிப்படுத்தப்படவில்லை

சர்வர் @blockchain0x/node இல் ஒரு மெல்லிய, நிலைத்தன்மையற்ற பாஸி ஆக உள்ளது. இது சரியாக ஐந்து கருவிகளை வெளிப்படுத்துகிறது: get_wallet, list_wallets, get_transaction, send_payment, settle_payment_request. அடையாள மாற்றங்கள், API விசை மற்றும் வலைப்பின்னல் CRUD, பணப்பற்றுகள், மற்றும் கட்டணங்கள் API விசை அங்கீகாரத்தின் கீழ் கடுமையாகத் தடிக்கப்பட்டுள்ளன மற்றும் சர்வர் SDK ஐ கடந்தே எதற்கும் செல்லாது. அவற்றுக்கான கருவியை எதிர்பார்க்காதீர்கள் - அவை வடிவமைப்பின் அடிப்படையில் டாஷ்போர்டில் உள்ளன.

PITFALL 4

send_payment idempotent ஆகும், retry செய்யாது

The send_payment tool wraps payments.create: it auto-mints an Idempotency-Key so a retried call collapses to one transfer, and it does not retry on its own. It can also answer 503 until the chain adapter is wired for your network. If the model gets a 503, do not let it hammer the tool - surface the state and move on. amountWei is USDC base units (6 decimals), so 0.01 USDC is the string "10000".

PITFALL 5

requirePayment-இல் உள்ள amountUsdc என்பது 6-decimal string ஆகும்

requirePayment validates amountUsdc as a USDC decimal with at most six fractional digits, so "0.10" is fine and "0.1234567" throws. payTo and hostedUrl are required; network defaults to mainnet. Keep the hostedUrl pointing at a real checkout you control (the pattern is https://pay.blockchain0x.com/checkout/<id>). A malformed amount fails fast rather than minting a broken challenge.

அடிக்கடி கேட்கப்படும்

மூன்று MCP-சிறப்பு கேள்விகள்.

இதுவே Claude Desktop, Cursor மற்றும் VS Code உடன் பெட்டியில் வேலை செய்கிறதா?

ஆம். அவை தரநிலையிலான MCP ஹோஸ்டுகள். blockchain0x சேவையகத்தை ஹோஸ்டின் MCP கட்டமைப்புக்கு சேர்க்கவும் - stdio தொகுதி (npx + உங்கள் விசை env இல்) அல்லது ஹோஸ்டு தொகுதி (mcp.blockchain0x.com URL + ஒரு பேயர் விசை) - மற்றும் ஐந்து வாலெட் கருவிகள் முகவரிக்கு தோன்றுகின்றன. அங்கு இருந்து, முகவர் ஒரு வாலெட்டை வாசிக்க, ஒரு பரிவர்த்தனையைச் சரிபார்க்க, USDC பணத்தை அனுப்ப, அல்லது x402 பில்லிங்கை நிலைநிறுத்தலாம், உங்கள் API விசை ஏற்கனவே அமல்படுத்தும் எல்லை, அனுமதி மற்றும் வரம்புகளுக்குள்.

சேவையகம் இணைக்கப்பட்ட பிறகு முகவர் உண்மையில் என்ன செய்ய முடியும்?

ஐந்து கருவிகளை ஒத்த ஐந்து விஷயங்கள்: get_wallet மற்றும் list_wallets பணப்பை மெட்டாடேட்டாவைப் படிக்கின்றன, get_transaction ஒரு பரிமாற்றத்தின் நிலை மற்றும் ஹாஷைப் polling செய்கிறது, send_payment ஒரு வெளியே செல்லும் USDC செலுத்தலை உருவாக்குகிறது, மற்றும் settle_payment_request ஒரு x402 விலைப்பட்டியலை on-chain ஆதாரத்துடன் ஒத்திசைக்கிறது. இது முழு மேற்பரப்பு. சர்வர் ஒரு மாநிலமற்ற பிரதிநிதி: இது எந்த விசையையும் வைத்திருக்காது, எதையும் சேமிக்காது, மற்றும் டாஷ்போர்ட்டில் மட்டுமே செயல்பாடுகளை அடைய முடியாது, எனவே ஒரு எஜெண்ட் விசைகளை மாற்ற முடியாது, அடையாளத்தை மாற்ற முடியாது, அல்லது இதன் மூலம் பணம் எடுத்துக்கொள்ள முடியாது.

எப்படி நான் எஜெண்ட்களுக்கு என் சொந்த MCP கருவிகளை அழைக்க கட்டணம் வசூலிக்க வேண்டும்?

உண்மையான requirePayment உதவியாளர் @blockchain0x/mcp மூலம் ஏற்றுமதி செய்யப்பட்டுள்ளது. அழைப்பாளர் பணம் செலுத்தவில்லை என்றால், உங்கள் கருவியின் உள்ளே requirePayment({ amountUsdc, payTo, hostedUrl }) ஐ அழைக்கவும், மற்றும் பெறப்பட்ட 402 உடலை திருப்பவும் - இது @blockchain0x/x402 உடன் கம்பி-ஒத்திகையாக உள்ளது. யார் பணம் செலுத்தியுள்ளனர் என்பதை நீங்கள் கண்காணிக்கிறீர்கள் (payment.received மீது ஒரு webhook மற்றும் உங்கள் சொந்த கடை), மற்றும் அவர்கள் பணம் செலுத்திய பிறகு அழைப்பை அனுமதிக்கிறீர்கள். MCP ஒன்றுக்கு பதிலாக ஒரு சாதாரண HTTP சேவையகத்திற்காக, பெறும் பக்கம் x402 அடிப்படையாளர் (createX402Middleware for Express, createX402Plugin for Fastify) கட்டமைப்பு அடிப்படையில் ஒரே வேலை செய்கிறது.

உங்கள் எஜெண்டிற்கு MCP மூலம் ஒரு பணப்பையை வழங்குங்கள்.

பணப்பை கருவிகளை இணைக்க ஒரு ஒரே கட்டமைப்பு தொகுப்பு. உங்கள் சொந்தத்தைச் செலுத்த விரும்பும் போது உண்மையான requirePayment கட்டுப்படுத்தி. தொடங்குவதற்கு இலவசம்.