মুখ্য সামগ্ৰীৰ পৰা এৰাই চাওক
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 এটা গঠনমূলক x402 চেলেঞ্জ মিণ্ট কৰে যাৰ সৈতে এটা হোস্ট কৰা চেকআউট URL থাকে; যেতিয়া এটা টুল পেমেন্ট নকৰে তেতিয়া আপুনি ইয়াক উভতি দিয়ে আৰু পেমেন্ট সমাধান হ'লে কলটো মাৰিবলৈ অনুমতি দিয়ে। যিসকল ক্লায়েন্ট x402 কথা কয় সিহঁতে স্বয়ংক্ৰিয়ভাৱে পেমেন্ট কৰে; বাকীসকল মানুহলৈ URL প্ৰদৰ্শন কৰে।

ছাৰ্ভাৰ চলাও

ই চলাবৰ বাবে দুটা উপায়। হোস্ট কৰা এজনৰ বাবে কোনো স্থাপন নাই।

স্থানীয়ভাৱে stdioৰ জৰিয়তে npxৰ সৈতে চলাও (আপোনাৰ কীৰ আপোনাৰ মেচিনত থাকে), অথবা যিকোনো 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_ টেষ্টনেট বা sk_live_ মেইননেট কী; BLOCKCHAIN0X_API_BASE_URLৰ ডিফল্ট হৈছে https://api.blockchain0x.com। ছাৰ্ভাৰে আপোনাৰ কীটো ব্যাকএণ্ডলৈ আগবঢ়ায় আৰু কিছু সংৰক্ষণ নকৰে, সেয়ে সেই কীটোৰ ওপৰত পৰিসৰ আৰু সীমাসমূহ ঠিক যি এজেন্টে কৰিব পাৰে। ইয়াৰ পৰা উন্মোচন কৰা পাঁচটা টুল: get_wallet, list_wallets, get_transaction, send_payment, আৰু settle_payment_request।

আপোনাৰ নিজৰ টুলসমূহৰ মূল্য নিৰ্ধাৰণ কৰক

বাস্তৱ requirePayment নিৰ্মাতাৰ সৈতে এটা টুল গেট কৰক।

requirePayment হৈছে @blockchain0x/mcpৰ পৰা এটা বিশুদ্ধ ফাংশন। আপুনি ইয়াক তেতিয়া কল কৰে যেতিয়া এটা টুল অব্যৱহৃত থাকে, ই এটা x402 402 চেলেঞ্জ (মূল্য, আপোনাৰ ৱালেট, এখন হোস্ট কৰা চেকআউট URL) সৃষ্টি কৰে, আৰু আপুনি সেই শৰীৰটো মানক MCP ত্ৰুটিৰ আকাৰত উলিয়ায়। ই আপোনাৰ হেণ্ডলাৰটো মুড়ি নকৰে আৰু কাক পেমেন্ট কৰিছে সেয়া পৰ্যবেক্ষণ নকৰে - সেই অংশটো আপোনাৰ, যিয়ে সহায়কটোক সৰু আৰু সৎ ৰাখে।

ছাৰ্ভাৰ.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 এডাপ্টাৰ - createX402Middleware for Express, createX402Plugin for Fastify - ফ্ৰেমৱৰ্ক স্তৰত একে গেটিং কৰে।

পেমেন্ট নিশ্চিত কৰক

যেতিয়া ৱেবহুকটো আহে, কলাৰক পইচা কৰা বুলি চিহ্নিত কৰক।

যেতিয়া এটা পেমেন্ট স্থিৰ হয়, Blockchain0x আপোনাৰ ৱেবহুক URLলৈ এটা স্বাক্ষৰিত payment.received ঘটনা POST কৰে। ইয়াক Node SDKৰ পৰা webhooks.verifyৰ সৈতে পৰীক্ষা কৰক, তাৰ পাছত যিকোনো ষ্টোৰত কলকাৰীক পেমেন্ট কৰা বুলি ৰেকৰ্ড কৰক যি আপুনি ইতিমধ্যে চলাইছে। কনফিগাৰ কৰিবলৈ কোনো প্ৰেৰণ কৰা ৰিচিট কেচ নাই - আপুনি সেই অংশৰ মালিক, যাৰ অৰ্থ হৈছে কোনো আচৰিত অবকাঠামো নাই।

WEBHOOK.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 নিৰন্তৰ সময়ত কৰে আৰু এটা বাচনি কৰা ইউনিয়ন উলিয়ায়, সেয়ে আপুনি result.ok ত কোনো চেষ্টা/ধৰা নকৰাকৈ শাখা কৰে। কাঁচা শৰীৰ পঢ়ক, এটা বিশ্লেষিত কপি নহয়, কাৰণ চিহ্নটোৱে সঠিক বাইটসমূহ আৱৰি ৰাখে। পঠোৱা ঘটনাসমূহ হৈছে payment.received, payment.sent, wallet.deployed, আৰু webhook.test; আপোনাৰ ৱালেটলৈ এখন পেমেন্ট হৈছে payment.received। 'এই কলাৰ পেমেন্ট কৰিছে' সেয়া আপুনি ক'ত স্থায়ী কৰে - এটা ডেটাবেছ ৰো, এটা Redis চাবি, এটা একক প্ৰক্ৰিয়াৰ বাবে মেমৰী মানচিত্র - সেয়া আপোনাৰ কল।

সূত্ৰ আৰু ডক্স

ছাৰ্ভাৰটো খোলা আৰু ষ্টেটলেছ। ইয়াক পঢ়ক।

MCP ছাৰ্ভাৰ আৰু requirePayment নিৰ্মাতাৰ Node SDKৰ ওপৰত এটা চিকন পাস-থ্ৰু, কোনো ডেটাবেছ আৰু কোনো ভলিউম নাথাকাকৈ, সেয়া অডিট কৰিবলৈ বিশেষকৈ কিছু নাই - যি হৈছে উদ্দেশ্য। নেটিভ MCP OAuth 2.1 হৈছে এটা পৰিকল্পিত অনুসৰণ; পেষ্ট কৰা চাবি পথ প্ৰথমে পঠিয়ায় কাৰণ ই বিদ্যমান API-চাবি বিশ্বাস মডেল পুনৰ ব্যৱহাৰ কৰে।

github.com/tosh-labs/blockchain0x-node

সম্পূৰ্ণ টুল তালিকা, স্কোপসমূহ, আৰু আবাসিত পৰিবেশ URLসমূহ ডক্সসমূহত নথিভুক্ত কৰা হৈছে। পৰীক্ষা কৰাৰ বাবে staging আৰু dev আবাসিত এণ্ডপইণ্টসমূহ উৎপাদনৰ সৈতে একেলগে থাকে যাৰ আগতে আপুনি ইয়াৰ ওপৰত এটা বাস্তৱ চাবি নিৰ্দেশ কৰে।

সাধাৰণ বিপদ

পাঁচটা MCP-নির্দিষ্ট ফাঁদ যিবোৰ এৰাব লাগে।

এইবোৰ উৎপাদনত পেইড MCP ছাৰ্ভাৰ চলোৱা অপাৰেটৰসকলৰ পৰা আহে। অধিকাংশ কেচ আৰ্হি আৰু MCP প্ৰটোকলৰ নিৰ্দিষ্ট ত্ৰুটিৰ আকাৰৰ সৈতে সম্পর্কিত।

PITFALL 1

requirePayment হৈছে এটা নিৰ্মাতা, মিডলৱেৰ নহয়

requirePayment হৈছে এটা বিশুদ্ধ ফাংশন: আপুনি ইয়াক কল কৰে, ই { status: 402, body } উলিয়ায়, আৰু আপুনি টুল অব্যৱহৃত থাকোতে সেই শৰীৰটো উলিয়ায়। ই আপোনাৰ হেণ্ডলাৰটো মুড়ি নকৰে, ই কাক পেমেন্ট কৰিছে সেয়া পৰ্যবেক্ষণ নকৰে, আৰু ইয়াত কোনো কাৰণ বা কেচ-উইণ্ডো বিকল্প নাই - মাত্ৰ amountUsdc, payTo, hostedUrl, আৰু এটা ঐচ্ছিক নেটৱৰ্ক আৰু বৰ্ণনা। পেমেন্টৰ অৱস্থা পৰ্যবেক্ষণ কৰা আপোনাৰ কাম: আপোনাৰ ডেটাবেছত এটা ৰো, আপোনাৰ নিজৰ Redis ত এটা চাবি, যি কিছু উপযুক্ত। Blockchain0x চেলেঞ্জ নিৰ্মাতা আৰু স্থিৰতা webhook প্ৰেৰণ কৰে, ৰিচিপ্ট কেচ নহয়।

PITFALL 2

stdio আপোনাৰ চাবি আপোনাৰ মেচিনত ৰাখে

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 আৰু পুনৰ চেষ্টা নকৰে

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-দশমিক ষ্ট্ৰিং

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.

সাধাৰণতে সোধা হয়

এটা এমসিপি-নির্দিষ্ট তিনিটা প্ৰশ্ন।

এইটো Claude Desktop, Cursor, আৰু VS Codeৰ সৈতে বাকচৰ পৰা কাম কৰে নেকি?

হয়। সিহঁত হৈছে মানক MCP হোস্ট। হোস্টৰ MCP কনফিগাৰেশ্যনত blockchain0x ছাৰ্ভাৰটো যোগ কৰক - stdio ব্লক (npx + আপোনাৰ কী env ত) বা হোস্টেড ব্লক (mcp.blockchain0x.com URL + এক বেয়াৰ কী) - আৰু পাঁচটা ৱালেট টুল এজেণ্টৰ বাবে প্ৰদৰ্শিত হয়। সেখানৰ পৰা এজেণ্টে এটা ৱালেট পঢ়িব পাৰে, এটা লেনদেন পৰীক্ষা কৰিব পাৰে, USDC পেমেন্ট প্ৰেৰণ কৰিব পাৰে, অথবা x402 চেকৰ চূড়ান্ত কৰিব পাৰে, সকলো আপোনাৰ API কী ইতিমধ্যে প্ৰয়োগ কৰা পৰিসৰ, অনুমতি, আৰু সীমাৰ ভিতৰত।

এজেণ্টে একবাৰ ছাৰ্ভাৰ সংযোগিত হ'লে কি কৰিব পাৰে?

পাঁচটা বস্তু, পাঁচটা টুলৰ সৈতে মিলে: get_wallet আৰু list_wallets ৱালেট মেটাডাটা পঢ়ে, get_transaction এখন লেনদেনৰ স্থিতি আৰু হেছৰ তথ্য আহৰণ কৰে, send_payment এখন আউটবাউণ্ড USDC পেমেন্ট কৰে, আৰু settle_payment_request এখন x402 ইনভয়চক অন-চেইন প্ৰমাণৰ সৈতে সমাধান কৰে। সেয়া সমগ্ৰ পৃষ্ঠ। ছাৰ্ভাৰ হৈছে এটা ষ্টেটলেছ প্ৰক্সি: ই কোনো চাবি ৰাখে, কিছু সঞ্চয় নকৰে, আৰু ডেছব'ৰ্ড-মাত্ৰ কাৰ্যসমূহত নাপায়, সেয়ে এখন এজেন্টে চাবিসমূহ ঘূৰাব নোৱাৰে, পৰিচয় সলনি কৰিব নোৱাৰে, বা ইয়াৰ জৰিয়তে উলিওৱা কৰিব নোৱাৰে।

মই কেনেকৈ এজেণ্টক মোৰ নিজৰ MCP টুলসমূহৰ বাবে চাৰ্জ কৰিব পাৰো?

বাস্তৱ requirePayment সহায়ক ব্যৱহাৰ কৰক যি @blockchain0x/mcp দ্বাৰা ৰপ্তানী কৰা হৈছে। কলাৰটোৱে পেমেন্ট নকৰা সময়ত আপোনাৰ টুলৰ ভিতৰত requirePayment({ amountUsdc, payTo, hostedUrl }) কল কৰক, আৰু ফলস্বরূপ 402 শৰীৰটো উলিয়াওক - ই @blockchain0x/x402ৰ সৈতে ৱায়াৰ-সামঞ্জস্য। আপুনি কাক পেমেন্ট কৰিছে সেয়া অনুসৰণ কৰে (payment.received ত এটা ৱেবহুক আৰু আপোনাৰ নিজৰ ষ্ট'ৰ), আৰু তেওঁলোকে পেমেন্ট কৰিলে আপোনাৰ কলটো পাৰ কৰিবলৈ দিয়ক। এটা সাধাৰণ HTTP ছাৰ্ভাৰৰ বাবে MCPৰ সলনি, গ্ৰহণ-পক্ষৰ x402 এডাপ্টাৰ (Expressৰ বাবে createX402Middleware, Fastifyৰ বাবে createX402Plugin) ফ্ৰেমৱৰ্ক স্তৰত একে কাম কৰে।

আপোনাৰ এজেণ্টক MCPৰ জৰিয়তে এটা ৱালেট দিয়ক।

এখন কনফিগ ব্লক ৱালেট টুলসমূহ সংযোগ কৰিবলৈ। যেতিয়া আপুনি নিজৰ বাবে পইচা ল’বলৈ চাৰ্জ কৰিব বিচাৰে তেতিয়া বাস্তৱ requirePayment নিৰ্মাতা। আৰম্ভ কৰিবলৈ বিনামূলীয়া।