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.
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.
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.
{
"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
- 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ụ.
- 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).
- 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.
- 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ữ.
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ó.
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
- 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.
- 2Cài đặt các gói:
npm install @blockchain0x/mcp @blockchain0x/node - 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).
- 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.
- 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.
- 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.
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ây | Hấ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ây | Thanh 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.
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ọiTì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.
Í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.
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ọiSuy 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ự.
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ý.
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ọiTạ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.
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.
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.
Doanh thu cao hơn mỗi khách hàng; ít chi phí trên mỗi cuộc gọi.
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.
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.