跳转到主要内容
角色2 - MCP服务器操作员

在10分钟内货币化您的MCP服务器。

让AI代理按调用为您的MCP服务器付款,以USDC支付,带有签名Webhook和审计日志。兼容x402。即插即用中间件。

痛点

您构建了一个 MCP 服务器。成千上万的客户正在免费使用它。

您发布了 MCP 服务器,因为 Claude Desktop、Cursor 和 Cline 客户端需要此功能。消息传播开来。您现在每天为从未见过的 AI 代理提供成千上万的付费工具调用。您的出站账单是真实的。您为基础服务提供的 API 密钥是真实的。您的维护时间是真实的。收入为零。

您有三个选择。保持免费并在基础设施上烧钱。将其放在手动 API 密钥后面(并因注册表单的摩擦而失去 95% 的代理流量)。或者添加一个 AI 代理可以实际完成的支付层 - 这正是 402 Payment Required + USDC 的目的。

Blockchain0x 是选项三。您的 MCP 服务器指向我们的 API。当 AI 客户调用付费工具时,响应是 402,带有托管支付 URL。客户(或其人类监督者)以 USDC 付款。您的 webhook 被触发。来自该客户的下一个调用成功。整个形状称为 x402,这是 Coinbase 为此确切模式发布的协议。

X402 模式

如何将402 Payment Required转变为程序化结账。

HTTP 状态码 402 自规范首次编写以来就存在,但从未有过标准实现。Coinbase 的 x402 协议终于给了它一个。形状很简单:您的工具返回一个 402 挑战(一个结构化的 JSON 主体,描述如何支付);客户端支付并重试;调用成功。来自 @blockchain0x/mcp 的 requirePayment 为您构建该挑战主体。

402 挑战主体 requirePayment 构建,作为工具错误返回
{
  "error": "payment_required",
  "amountUsdc": "0.02",
  "payTo": "0xYourMcpAgentAddress",
  "hostedUrl": "https://pay.blockchain0x.com/checkout/docs-search",
  "network": "mainnet",
  "description": "docs search"
}

四种状态

  1. 未付款调用: AI 客户调用付费工具。您的处理程序检查您自己的付费状态,发现付款人未被标记为已付款,并返回来自 requirePayment 的 402 挑战主体作为工具错误。
  2. 支付: 客户跟随 hostedUrl 到托管结账并在 Base 上完成 USDC 转账(可以通过支持 x402 的钱包进行编程或通过二维码手动完成)。
  3. Webhook: Blockchain0x 在链确认后几秒钟内向您的端点发送 payment.received。您使用 webhooks.verify 验证它,并在自己的存储中记录付款人已付款。
  4. 重试: 客户重试原始 MCP 工具调用。您的处理程序现在看到付款人被标记为已付款,运行该工具并返回实际结果。

每笔支付都记录在您的 Blockchain0x 仪表板中,每个 payment.received webhook 都会落入您自己的日志中。因为您拥有支付状态和 webhook 处理程序,所以每个工具和每个付款人的收入分析都来自您已经存储的数据。

中间件设置

一个完整的工作示例。

来自 @blockchain0x/mcp 的 requirePayment 构建 402 挑战;来自 @blockchain0x/node 的 webhooks.verify 验证确认。您拥有其中的两个小部分:工具内部的付费状态检查,以及将付款人标记为已付款的 webhook 处理程序。以下是一个完整的 MCP 服务器,公开一个付费工具及其 webhook 端点。

INDEX.TS - MCP服务器与一个付费工具及其Webhook
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 });
});

设置步骤

  1. 1为您的 MCP 服务器创建一个 Blockchain0x 代理钱包,选择包含 API 和 webhook 访问的计划。请注意您将用作 payTo 的钱包地址。
  2. 2安装软件包: npm install @blockchain0x/mcp @blockchain0x/node
  3. 3设置环境变量: BLOCKCHAIN0X_API_KEY(MCP server 会将其作为 Authorization: Bearer 发送)以及 BLOCKCHAIN0X_WEBHOOK_SECRET(dashboard 签名密钥,webhooks.verify 会对此进行校验)。
  4. 4通过检查您自己的付费状态来限制您的付费工具,并在调用者未付款时返回 requirePayment 挑战主体。将免费工具保持开放。
  5. 5在 Blockchain0x 仪表板中配置 webhook 端点(例如 /webhooks/blockchain0x),然后使用 webhooks.verify 验证每次交付,并在 payment.received 上将付款人标记为已付款。
  6. 6部署。 第一个访问您付费工具的 AI 客户端将获得 402,支付后下一个调用成功。您将在 10 秒内在仪表板上看到付款。

您还可以使用 npx @blockchain0x/mcp(stdio)或在 mcp.blockchain0x.com 上托管的可流式传输 HTTP 容器运行 Blockchain0x MCP 服务器。完整的设置,包括 webhook 负载形状,详见 文档

您的支付窗口

您处理程序中最重要的单一决策。

因为您拥有支付状态,您还决定支付的有效时间。客户支付工具后,在一段时间内将其标记为已支付,并在该窗口内允许调用而无需新的支付。将窗口设置得太短,您会在每次调用中惩罚客户;将窗口设置得太长,您会在一次便宜的支付后赠送昂贵的操作。对您的Redis/Postgres密钥设置TTL是实现它的最简单方法。

我们推荐的窗口

工具类型窗口为什么
便宜的查找($0.01-$0.05)60秒吸收自然重试和后续调用而不泄露会话。
中等价格推理($0.10-$1)30秒按调用计费是正确的形式;短暂的缓存处理瞬态错误的重试。
昂贵的长上下文($1-$10)0秒(无缓存)每个调用都是独立的付费事件;不缓存。
订阅式工具24小时每天支付一次,在窗口内无限制调用。每个客户的收入更高,摩擦更低。

根据(付款人钱包,工具)对为您的付费状态设置密钥,就像示例中使用search_docs:0xPayer一样。两个不同的客户端访问同一工具,每个客户端单独支付。同一客户端访问两个不同的工具,需要两个单独的支付。如果您愿意,您可以更广泛地设置范围(每个付款人跨所有工具);每个付款人每个工具的粒度使定价感觉公平。

定价模式

适用于MCP服务器的四种定价形态。

定价由您决定 - 您在中间件中设置每个工具的金额。以下是我们最常见的四种模式以及它们适合的工具形状。

按调用微定价

$0.01 - $0.05 每次调用

搜索、查找、分类、格式转换 - 低成本高容量的操作。

优点

对客户来说摩擦最低;成本与使用完全一致。

缺点

最高的交易开销;仅在高调用量时有效。

按调用中定价

$0.10 - $1.00 每次调用

LLM推理、生成、内容制作,任何每次调用都进行实际工作的内容。

优点

平衡 - 每次调用的明确价值,可管理的交易数量。

缺点

每次调用的摩擦更高;客户有时更喜欢这个价格点的订阅。

按调用高定价

$1 - $10 每次调用

长上下文生成、文档处理、多步骤编排、昂贵的第三方API封装。

优点

每次调用的利润是有意义的;失败的支付是可以接受的损失。

缺点

客户在这个价格上谈判很艰难;预计会有退款请求。

订阅窗口

$5 - $50 每24小时窗口(或每月 $X)

在一个会话中进行多次调用且不容忍每次调用付款摩擦的客户。

优点

每位客户的收入更高;每次调用的开销更少。

缺点

可发现性较低;客户必须提前承诺。通常与按调用组合以实现混合定价。

许多运营商混合了模式:按调用微定价的廉价工具,按调用高定价的昂贵工具,以及为重度用户提供的24小时订阅窗口。没有什么能阻止你在同一个MCP服务器上运行这三者;每个工具在requirePayment中设置自己的amountUsdc,并在你的处理程序中设置自己的付费窗口。

适合的计划

专业版是几乎所有MCP服务器的正确计划。

MCP服务器操作员几乎总是从Pro开始,因为从第一天起就需要API写入访问和Webhook:免费是只读的,付费工具需要接收payment.received Webhook并验证它们。请查看定价页面以获取每个代理的确切成本和交易费用级别;简而言之,任何进行真实付费交易的服务器都远远超过了Pro自我盈利的点。

  • Free:适合试用 API 和 dashboard。不适合生产环境的付费工具(只读,无 webhooks)。
  • Pro:实时 MCP servers 的默认选择。完整 API 访问、webhooks、导出功能。
  • Business:当你需要用于合规的审计日志,或当你为多个客户运行 MCP servers 并希望按 agent 共享团队席位时。
查看完整定价
常见问题

五个 MCP 特定问题。

我的MCP服务器需要托管在Blockchain0x上吗?还是在特定的云上运行?

不。您的 MCP 服务器可以在任何正常运行的地方运行:您的笔记本电脑、AWS、Fly.io、Cloudflare Workers、树莓派。中间件只是一个 Node 模块,用于包装您的工具处理程序。只要您的服务器可以向 api.blockchain0x.com 发出出站 HTTPS 调用并在您控制的 URL 上接收入站 webhook,集成就可以正常工作。我们不托管您的 MCP 服务器;我们托管支付表面。

当AI客户端不理解x402并仅收到402响应时,会发生什么?

挑战主体的结构使得非 x402 感知的客户端能够看到有意义的错误:错误代码、amountUsdc 和一个托管的 URL 进行支付。向用户显示工具错误的客户端(大多数基于聊天的客户端,如 Claude Desktop 或 Cursor)将向用户显示要单击并支付的 URL;完全以编程方式处理调用并忽略错误的客户端将根本不会得到结果,这是正确的结果(调用未支付)。x402 感知的客户端读取挑战,使用预授权的钱包自动支付并重试。

付费窗口持续多久?客户可以一次支付并永远调用吗?

这完全是您的决定,因为您拥有付费状态。一个常见的选择是在付费密钥上设置 60 秒的 TTL:它吸收自然重试和后续模式,而不让单个支付覆盖整个会话。您可以将其延长以适应订阅式定价,或将其设置为零(每次调用都需要新的支付)以适应昂贵的按次计费工具。库不会强加窗口;您的商店及其 TTL 会。

我可以在同一 MCP 服务器上运行付费工具和免费工具吗?

是的。仅将已付状态检查(以及缺失时的 requirePayment 挑战)添加到付费工具;将免费工具保留为普通处理程序。免费工具适用于任何客户端;付费工具在未付款之前返回 402 挑战。许多运营商首先将便宜的工具设为免费(以推动采用),并将付款保留给高价值工具(推理、生成、长上下文工作)。

我如何查看哪些客户已付款以及他们花费了多少?

每笔支付都在您的 Blockchain0x 仪表板中记录,包含付款人的钱包地址、时间戳和金额,并且相同的数据会到达您的 payment.received webhook,以便您可以随意存储它。因为您控制处理程序,您还可以记录库从未看到的内容:调用了哪个工具、您返回的每个 402 挑战,以及您从现有支付中提供的每个调用。将这些与支付结合,您就拥有每个付款人和每个工具的收入分析。

将您的MCP服务器转变为收入。

从 Pro 开始,运行 npx @blockchain0x/mcp 或将 requirePayment 接入您自己的工具。从安装到第一次付费调用只需十分钟。