Bỏ qua nội dung chính
NHÂN VẬT 2 - NGƯỜI VẬN HÀNH MÁY CHỦ MCP

Kiếm tiền từ máy chủ MCP của bạn trong 10 phút.

Để các agent AI thanh toán cho máy chủ MCP của bạn theo từng cuộc gọi, bằng USDC, với webhook đã ký và nhật ký kiểm toán. Tương thích x402. Middleware có thể thêm vào.

NỖI ĐAU

Bạn đã xây dựng một máy chủ MCP. Hàng ngàn khách hàng đang sử dụng nó miễn phí.

Bạn đã triển khai máy chủ MCP của mình vì các khách hàng Claude Desktop, Cursor và Cline cần khả năng này. Tin tức lan rộng. Bạn hiện đang phục vụ hàng ngàn lần gọi công cụ trả phí mỗi ngày từ các tác nhân AI mà bạn chưa bao giờ gặp. Hóa đơn ra của bạn là có thật. Khóa API của bạn cho dịch vụ cơ bản là có thật. Thời gian bảo trì của bạn là có thật. Doanh thu là bằng không.

Bạn có ba lựa chọn. Giữ nó miễn phí và đốt tiền vào cơ sở hạ tầng. Đặt nó phía sau các khóa API thủ công (và mất 95% lưu lượng tác nhân do sự cản trở của các biểu mẫu đăng ký). Hoặc thêm một lớp thanh toán mà các tác nhân AI thực sự có thể hoàn thành - đó chính xác là điều mà 402 Payment Required + USDC được xây dựng.

Blockchain0x là tùy chọn ba. Máy chủ MCP của bạn chỉ vào API của chúng tôi. Khi một khách hàng AI gọi một công cụ trả phí, phản hồi là 402 với một URL thanh toán được lưu trữ. Khách hàng (hoặc người giám sát của họ) thanh toán bằng USDC. Webhook của bạn kích hoạt. Cuộc gọi tiếp theo từ khách hàng đó thành công. Toàn bộ hình dạng được gọi là x402, và đó là giao thức mà Coinbase đã công bố cho mẫu chính xác này.

MẪU X402

Cách 402 Payment Required trở thành một quy trình thanh toán lập trình.

Mã trạng thái HTTP 402 đã tồn tại kể từ khi đặc tả được viết lần đầu nhưng chưa bao giờ có một triển khai tiêu chuẩn. Giao thức x402 của Coinbase cuối cùng đã cung cấp cho nó một. Hình dạng rất đơn giản: công cụ của bạn trả về một thách thức 402 (một thân JSON có cấu trúc mô tả cách thanh toán); khách hàng thanh toán và thử lại; cuộc gọi thành công. requirePayment từ @blockchain0x/mcp xây dựng thân thách thức đó cho bạn.

THÂN THÁCH THỨC 402 requirePayment XÂY DỰNG, TRẢ VỀ NHƯ MỘT LỖI CÔNG CỤ
{
  "error": "payment_required",
  "amountUsdc": "0.02",
  "payTo": "0xYourMcpAgentAddress",
  "hostedUrl": "https://pay.blockchain0x.com/checkout/docs-search",
  "network": "mainnet",
  "description": "docs search"
}

Bốn trạng thái

  1. Cuộc gọi chưa thanh toán: Khách hàng AI gọi một công cụ trả phí. Bộ xử lý của bạn kiểm tra trạng thái đã trả tiền của bạn, phát hiện người trả tiền chưa được đánh dấu là đã thanh toán, và trả về thân thử thách 402 từ requirePayment như một lỗi công cụ.
  2. Thanh toán: Khách hàng theo dõi hostedUrl đến trang thanh toán được lưu trữ và hoàn tất việc chuyển USDC trên Base (hoặc lập trình thông qua một ví nhận thức x402 hoặc thủ công qua mã QR).
  3. Webhook: Blockchain0x gửi payment.received đến điểm cuối của bạn trong vòng vài giây sau khi xác nhận chuỗi. Bạn xác minh nó với webhooks.verify và ghi lại người trả tiền là đã thanh toán trong kho của riêng bạn.
  4. Thử lại: Khách hàng thử lại cuộc gọi công cụ MCP ban đầu. Bộ xử lý của bạn giờ đây thấy người trả tiền đã được đánh dấu là đã thanh toán, thực hiện công cụ và trả về kết quả thực tế.

Mỗi khoản thanh toán được ghi lại trong bảng điều khiển Blockchain0x của bạn, và mỗi webhook payment.received đều xuất hiện trong các nhật ký của bạn. Bởi vì bạn sở hữu trạng thái đã thanh toán và trình xử lý webhook, phân tích doanh thu theo từng công cụ và từng người trả tiền phát sinh từ dữ liệu mà bạn đã lưu trữ.

CÀI ĐẶT MIDDLEWARE

Một ví dụ hoàn chỉnh đang hoạt động.

requirePayment từ @blockchain0x/mcp xây dựng thử thách 402; webhooks.verify từ @blockchain0x/node xác minh xác nhận. Bạn sở hữu hai phần nhỏ ở giữa: kiểm tra trạng thái đã thanh toán bên trong công cụ, và bộ xử lý webhook đánh dấu một người thanh toán là đã thanh toán. Dưới đây là một máy chủ MCP hoàn chỉnh mà phơi bày một công cụ trả phí cùng với điểm cuối webhook của nó.

INDEX.TS - MÁY CHỦ MCP VỚI MỘT CÔNG CỤ TRẢ PHÍ VÀ WEBHOOK CỦA NÓ
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 });
});

Các bước thiết lập

  1. 1Tạo ví Blockchain0x cho đại lý cho máy chủ MCP của bạn, trên một kế hoạch bao gồm quyền truy cập API và webhook. Lưu ý địa chỉ ví mà bạn sẽ sử dụng làm payTo.
  2. 2Cài đặt các gói: npm install @blockchain0x/mcp @blockchain0x/node
  3. 3Đặt biến môi trường: BLOCKCHAIN0X_API_KEY (MCP server gửi dưới dạng Authorization: Bearer) và BLOCKCHAIN0X_WEBHOOK_SECRET (secret ký của dashboard mà webhooks.verify đối chiếu).
  4. 4Kiểm soát các công cụ trả phí của bạn bằng cách kiểm tra trạng thái đã trả tiền của bạn và trả về thân thử thách requirePayment khi người gọi chưa thanh toán. Để lại các công cụ miễn phí không bị kiểm soát.
  5. 5Cấu hình điểm cuối webhook trong bảng điều khiển Blockchain0x (ví dụ /webhooks/blockchain0x), sau đó xác minh mọi giao hàng với webhooks.verify và đánh dấu người trả tiền là đã thanh toán trên payment.received.
  6. 6Triển khai. Khách hàng AI đầu tiên sử dụng công cụ trả phí của bạn nhận được một mã 402, thanh toán, và cuộc gọi tiếp theo thành công. Bạn sẽ thấy khoản thanh toán trong bảng điều khiển trong vòng 10 giây.

Bạn cũng có thể chạy chính Blockchain0x MCP server với npx @blockchain0x/mcp (stdio) hoặc container Streamable HTTP được host tại mcp.blockchain0x.com. Toàn bộ thiết lập, bao gồm định dạng payload webhook, nằm trong documentation.

CỬA SỔ ĐÃ THANH TOÁN CỦA BẠN

Quyết định quan trọng nhất trong trình xử lý của bạn.

Bởi vì bạn sở hữu trạng thái đã thanh toán, bạn cũng quyết định thời gian một khoản thanh toán có hiệu lực. Sau khi một khách hàng thanh toán cho một công cụ, hãy giữ cho họ được đánh dấu là đã thanh toán trong một khoảng thời gian, và trong khoảng thời gian đó cho phép các cuộc gọi mà không cần thanh toán mới. Đặt khoảng thời gian quá ngắn và bạn sẽ trừng phạt khách hàng với sự ma sát thanh toán trong mỗi cuộc gọi; đặt nó quá dài và bạn sẽ cho đi các hoạt động tốn kém sau một khoản thanh toán rẻ. Một TTL trên khóa Redis/Postgres của bạn là cách đơn giản nhất để thực hiện điều này.

Các cửa sổ mà chúng tôi khuyên dùng

Loại công cụCửa sổTại sao
Tra cứu rẻ ($0.01-$0.05)60 giâyHấp thụ các lần thử lại tự nhiên và các cuộc gọi theo sau mà không tiết lộ một phiên.
Suy diễn giá trung bình ($0.10-$1)30 giâyThanh toán theo cuộc gọi là hình dạng đúng; bộ nhớ đệm ngắn xử lý việc thử lại trên các lỗi tạm thời.
Chi phí dài hạn ($1-$10)0 giây (không có bộ nhớ đệm)Mỗi cuộc gọi là một sự kiện trả phí riêng; không có bộ nhớ cache.
Công cụ theo kiểu đăng ký24 giờThanh toán một lần mỗi ngày cho các cuộc gọi không giới hạn trong khoảng thời gian. Doanh thu cao hơn cho mỗi khách hàng với ít ma sát hơn.

Khóa trạng thái đã thanh toán của bạn theo cặp (ví người trả, công cụ), giống như ví dụ với search_docs:0xPayer. Hai khách hàng khác nhau truy cập cùng một công cụ, mỗi người thanh toán riêng. Cùng một khách hàng truy cập hai công cụ khác nhau, hai khoản thanh toán riêng biệt được yêu cầu. Bạn có thể mở rộng phạm vi rộng hơn (theo người trả trên tất cả các công cụ) nếu bạn muốn; độ chi tiết theo người trả theo công cụ là điều khiến việc định giá cảm thấy công bằng.

MẪU GIÁ

Bốn hình thức giá phù hợp với các máy chủ MCP.

Giá cả là do bạn quyết định - bạn đặt số tiền cho mỗi công cụ trong middleware. Dưới đây là bốn mẫu mà chúng tôi thấy thường xuyên nhất và hình dạng công cụ mà chúng phù hợp.

Giá vi mô theo cuộc gọi

$0.01 - $0.05 mỗi cuộc gọi

Tìm kiếm, tra cứu, phân loại, chuyển đổi định dạng - các hoạt động rẻ với khối lượng lớn.

ƯU ĐIỂM

Ít ma sát nhất cho khách hàng; chi phí phù hợp chính xác với mức sử dụng.

NHƯỢC ĐIỂM

Chi phí giao dịch cao nhất; chỉ hoạt động ở khối lượng cuộc gọi cao.

Giá trung bình theo cuộc gọi

$0.10 - $1.00 mỗi cuộc gọi

Suy diễn LLM, tạo ra, sản xuất nội dung, bất kỳ điều gì mà mỗi cuộc gọi thực hiện công việc thực sự.

ƯU ĐIỂM

Cân bằng - giá trị rõ ràng mỗi lần gọi, số lượng giao dịch có thể quản lý.

NHƯỢC ĐIỂM

Ma sát cao hơn mỗi cuộc gọi; khách hàng đôi khi thích đăng ký ở mức giá này.

Giá cao theo cuộc gọi

$1 - $10 mỗi cuộc gọi

Tạo ngữ cảnh dài, xử lý tài liệu, phối hợp nhiều bước, bao bọc API bên thứ ba tốn kém.

ƯU ĐIỂM

Biên lợi nhuận trên mỗi cuộc gọi là có ý nghĩa; các khoản thanh toán thất bại là những tổn thất có thể chấp nhận được.

NHƯỢC ĐIỂM

Khách hàng thương lượng mạnh mẽ ở mức giá này; mong đợi các yêu cầu hoàn tiền.

Cửa sổ đăng ký

$5 - $50 mỗi khoảng thời gian 24h (hoặc $X mỗi tháng)

Khách hàng thực hiện nhiều cuộc gọi trong một phiên và không chấp nhận sự cản trở thanh toán theo cuộc gọi.

ƯU ĐIỂM

Doanh thu cao hơn mỗi khách hàng; ít chi phí trên mỗi cuộc gọi.

NHƯỢC ĐIỂM

Khả năng phát hiện thấp hơn; khách hàng phải cam kết trước. Thường kết hợp với giá theo cuộc gọi cho định giá hỗn hợp.

Nhiều nhà điều hành kết hợp các mô hình: công cụ rẻ với giá vi mô theo cuộc gọi, công cụ đắt với giá cao theo cuộc gọi, cộng với một khoảng thời gian đăng ký 24 giờ cho người dùng nặng. Không có gì ngăn bạn chạy cả ba trên cùng một máy chủ MCP; mỗi công cụ đặt số lượng amountUsdc riêng trong requirePayment và khoảng thời gian thanh toán riêng trong trình xử lý của bạn.

KẾ HOẠCH NÀO PHÙ HỢP

Pro là kế hoạch đúng cho hầu hết mọi máy chủ MCP.

Các nhà điều hành máy chủ MCP gần như luôn bắt đầu với Pro vì quyền truy cập ghi API và webhook là yêu cầu từ ngày đầu tiên: Miễn phí chỉ đọc, và một công cụ trả phí cần nhận webhook payment.received và xác minh chúng. Xem trang giá để biết chi phí chính xác theo tác nhân và nơi các bậc phí giao dịch nằm; phiên bản ngắn gọn là bất kỳ máy chủ nào thực hiện khối lượng thanh toán thực sự đều vượt qua điểm mà Pro tự trả.

  • Free: hữu ích để thử nghiệm API và dashboard. Không phù hợp cho các công cụ trả phí chạy production (chỉ đọc, không có webhook).
  • Pro: mặc định cho các MCP server đang chạy thực tế. Toàn bộ quyền truy cập API, webhooks, xuất dữ liệu.
  • Business: khi bạn cần audit log cho tuân thủ, hoặc khi bạn vận hành MCP servers cho nhiều khách hàng và muốn chia sẻ team-seat theo từng agent.
Xem giá đầy đủ
CÂU HỎI THƯỜNG GẶP

Năm câu hỏi cụ thể về MCP.

Máy chủ MCP của tôi có cần được lưu trữ trên Blockchain0x không? Hay chạy trên một đám mây cụ thể?

Không. Máy chủ MCP của bạn có thể chạy ở bất kỳ đâu mà nó thường chạy: máy tính xách tay của bạn, AWS, Fly.io, Cloudflare Workers, Raspberry Pi. Middleware chỉ là một mô-đun Node bao bọc các trình xử lý công cụ của bạn. Miễn là máy chủ của bạn có thể thực hiện các cuộc gọi HTTPS ra ngoài đến api.blockchain0x.com và nhận các webhook đến tại một URL bạn kiểm soát, tích hợp hoạt động. Chúng tôi không lưu trữ máy chủ MCP của bạn; chúng tôi lưu trữ bề mặt thanh toán.

Điều gì xảy ra khi một khách hàng AI không hiểu x402 và chỉ nhận được phản hồi 402?

Nội dung thử thách được cấu trúc để một khách hàng không nhận thức được x402 thấy một lỗi có ý nghĩa: mã lỗi, amountUsdc và một hostedUrl để thanh toán. Các khách hàng hiển thị lỗi công cụ cho người dùng (hầu hết các khách hàng dựa trên trò chuyện như Claude Desktop hoặc Cursor) sẽ hiển thị cho người dùng URL để nhấp vào và thanh toán; các khách hàng xử lý cuộc gọi hoàn toàn theo chương trình và bỏ qua lỗi sẽ đơn giản không nhận được kết quả, đó là kết quả đúng (cuộc gọi không được thanh toán). Các khách hàng nhận thức được x402 đọc thử thách, thanh toán tự động bằng cách sử dụng ví đã được ủy quyền trước và thử lại.

Cửa sổ thanh toán kéo dài bao lâu? Một khách hàng có thể thanh toán một lần và gọi mãi mãi không?

Đó hoàn toàn là quyết định của bạn, vì bạn sở hữu trạng thái đã thanh toán. Một lựa chọn phổ biến là TTL 60 giây trên khóa đã thanh toán: nó hấp thụ các mẫu thử lại và theo dõi tự nhiên mà không để một khoản thanh toán duy nhất bao phủ toàn bộ phiên. Bạn có thể làm cho nó dài hơn cho giá cả theo kiểu đăng ký, hoặc bằng không (mỗi cuộc gọi yêu cầu một khoản thanh toán mới) cho các công cụ đắt tiền theo cuộc gọi. Thư viện không áp đặt một khoảng thời gian; cửa hàng của bạn và TTL của nó thì có.

Tôi có thể chạy công cụ trả phí và công cụ miễn phí trên cùng một máy chủ MCP không?

Có. Chỉ thêm kiểm tra paid-state (và thử thách requirePayment khi không đạt) vào các tool trả phí; để các tool miễn phí là handler bình thường. Tool miễn phí hoạt động với mọi client; tool trả phí sẽ trả về thử thách 402 cho đến khi thanh toán. Nhiều người vận hành bắt đầu bằng cách cho các tool rẻ miễn phí (để thúc đẩy chấp nhận) và giữ thanh toán cho các tool giá trị cao (inference, generation, long-context work).

Làm thế nào để tôi xem những khách hàng nào đã thanh toán và họ đã chi bao nhiêu?

Mỗi khoản thanh toán được ghi lại trong bảng điều khiển Blockchain0x của bạn với địa chỉ ví của người trả tiền, dấu thời gian và số tiền, và cùng dữ liệu đó đến trên webhook payment.received của bạn để bạn có thể lưu trữ theo cách bạn muốn. Bởi vì bạn kiểm soát trình xử lý, bạn cũng có thể ghi lại những điều mà thư viện không bao giờ thấy: công cụ nào đã được gọi, mỗi thách thức 402 bạn đã trả lại và mỗi cuộc gọi bạn đã phục vụ từ một khoản thanh toán hiện có. Kết hợp những điều đó với các khoản thanh toán và bạn có phân tích doanh thu theo từng người trả tiền và từng công cụ.

Biến máy chủ MCP của bạn thành doanh thu.

Bắt đầu với Pro, chạy npx @blockchain0x/mcp hoặc kết nối requirePayment vào các công cụ của bạn. Mười phút từ khi cài đặt đến cuộc gọi thanh toán đầu tiên.