10분 안에 당신의 MCP 서버를 수익화하세요.
AI 에이전트가 귀하의 MCP 서버에 대해 호출당 USDC로 결제하도록 하세요. 서명된 웹후크와 감사 로그가 포함되어 있습니다. x402 호환. 드롭인 미들웨어.
귀하는 MCP 서버를 구축했습니다. 수천 명의 클라이언트가 이를 무료로 사용하고 있습니다.
Claude Desktop, Cursor 및 Cline 클라이언트가 이 기능이 필요했기 때문에 MCP 서버를 배포했습니다. 소문이 퍼졌습니다. 이제 당신은 결제 도구 호출을 위해 하루에 수천 건의 AI 에이전트 요청을 처리하고 있습니다. 당신의 아웃바운드 청구서는 실제입니다. 기본 서비스에 대한 API 키도 실제입니다. 유지 관리 시간도 실제입니다. 수익은 제로입니다.
세 가지 옵션이 있습니다. 무료로 유지하고 인프라에 돈을 소모하세요. 수동 API 키 뒤에 가두세요(가입 양식의 마찰로 인해 에이전트 트래픽의 95%를 잃게 됩니다). 또는 AI 에이전트가 실제로 완료할 수 있는 결제 레이어를 추가하세요 - 이것이 바로 402 Payment Required + USDC가 구축된 목적입니다.
Blockchain0x는 옵션 세입니다. 귀하의 MCP 서버는 우리의 API를 가리킵니다. AI 클라이언트가 유료 도구를 호출할 때, 응답은 호스팅된 결제 URL과 함께 402입니다. 클라이언트(또는 그 인간 감독자)는 USDC로 결제합니다. 귀하의 웹후크가 작동합니다. 해당 클라이언트의 다음 호출이 성공합니다. 전체 형태는 x402라고 하며, Coinbase가 이 정확한 패턴을 위해 발표한 프로토콜입니다.
402 Payment Required가 프로그래밍 가능한 체크아웃이 되는 방법.
HTTP 상태 코드 402는 사양이 처음 작성된 이후로 존재했지만 표준 구현이 없었습니다. Coinbase의 x402 프로토콜이 마침내 이를 제공합니다. 형식은 간단합니다: 도구가 402 챌린지(지불 방법을 설명하는 구조화된 JSON 본문)를 반환합니다; 클라이언트가 지불하고 재시도합니다; 호출이 성공합니다. @blockchain0x/mcp의 requirePayment가 그 챌린지 본문을 생성합니다.
{
"error": "payment_required",
"amountUsdc": "0.02",
"payTo": "0xYourMcpAgentAddress",
"hostedUrl": "https://pay.blockchain0x.com/checkout/docs-search",
"network": "mainnet",
"description": "docs search"
}네 가지 상태
- 미지급 호출: AI 클라이언트가 유료 도구를 호출합니다. 핸들러는 자신의 유료 상태를 확인하고, 지불자가 지불 완료로 표시되지 않은 것을 발견하며, requirePayment에서 402 챌린지 본문을 도구 오류로 반환합니다.
- 결제: 클라이언트는 hostedUrl을 따라 호스팅된 체크아웃으로 이동하고 Base에서 USDC 전송을 완료합니다(프로그램적으로 x402 인식 지갑을 통해 또는 QR 코드를 통해 수동으로).
- 웹훅: Blockchain0x는 체인 확인 후 몇 초 이내에 payment.received를 귀하의 엔드포인트로 전송합니다. 귀하는 webhooks.verify로 이를 확인하고 지불자를 귀하의 저장소에 지불 완료로 기록합니다.
- 재시도: 클라이언트가 원래의 MCP 도구 호출을 재시도합니다. 이제 핸들러는 지불자가 지불 완료로 표시된 것을 보고 도구를 실행하고 실제 결과를 반환합니다.
모든 결제는 귀하의 Blockchain0x 대시보드에 기록되며, 모든 payment.received 웹후크는 귀하의 로그에 기록됩니다. 귀하가 유료 상태와 웹후크 핸들러를 소유하므로, 도구별 및 지불자별 수익 분석은 이미 저장된 데이터에서 발생합니다.
완전한 작동 예제입니다.
requirePayment는 @blockchain0x/mcp에서 402 챌린지를 생성합니다; webhooks.verify는 @blockchain0x/node에서 확인을 검증합니다. 귀하는 그 사이의 두 작은 부분을 소유합니다: 도구 내의 유료 상태 확인과 지불자를 유료로 표시하는 웹훅 핸들러입니다. 아래는 하나의 유료 도구와 그 웹훅 엔드포인트를 노출하는 완전한 MCP 서버입니다.
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 });
});설정 단계
- 1Blockchain0x 에이전트 지갑을 생성하세요 MCP 서버를 위해, API 및 웹훅 접근이 포함된 요금제에서. payTo로 사용할 지갑 주소를 기록하세요.
- 2패키지를 설치하세요:
npm install @blockchain0x/mcp @blockchain0x/node - 3환경 변수를 설정하세요: BLOCKCHAIN0X_API_KEY (MCP 서버가 Authorization: Bearer로 전송)와 BLOCKCHAIN0X_WEBHOOK_SECRET (dashboard의 서명 비밀키로, webhooks.verify가 이를 검증합니다).
- 4유료 도구를 보호하세요 자신의 유료 상태를 확인하고 호출자가 지불하지 않았을 때 requirePayment 챌린지 본문을 반환하세요. 무료 도구는 보호하지 마세요.
- 5웹훅 엔드포인트를 구성하세요 Blockchain0x 대시보드에서 (예: /webhooks/blockchain0x), 그런 다음 webhooks.verify로 모든 배달을 확인하고 payment.received에서 지불자를 지불 완료로 표시하세요.
- 6배포하기. 유료 도구에 처음으로 접근한 AI 클라이언트는 402를 받고, 결제를 한 후 다음 호출이 성공합니다. 10초 이내에 대시보드에서 결제를 확인할 수 있습니다.
귀하는 npx @blockchain0x/mcp (stdio) 또는 mcp.blockchain0x.com의 호스팅된 스트리밍 HTTP 컨테이너를 사용하여 Blockchain0x MCP 서버를 직접 실행할 수 있습니다. 웹훅 페이로드 형식을 포함한 전체 설정은 문서에 있습니다.
핸들러에서 가장 중요한 결정입니다.
유료 상태를 소유하고 있기 때문에 결제가 얼마나 오래 유효한지를 결정할 수 있습니다. 클라이언트가 도구에 대한 결제를 한 후, 일정 시간 동안 결제된 상태로 유지하고, 그 시간 안에서는 새 결제 없이 호출을 허용하십시오. 시간을 너무 짧게 설정하면 모든 호출에서 결제 마찰로 클라이언트를 처벌하게 되고; 너무 길게 설정하면 하나의 저렴한 결제 후 비싼 작업을 무료로 제공하게 됩니다. Redis/Postgres 키에 TTL을 설정하는 것이 이를 구현하는 가장 간단한 방법입니다.
우리가 추천하는 창
| 도구 유형 | 창 | 이유 |
|---|---|---|
| 저렴한 조회($0.01-$0.05) | 60초 | 세션을 제공하지 않고 자연스러운 재시도 및 후속 호출을 흡수합니다. |
| 중간 가격의 추론 ($0.10-$1) | 30초 | 호출당 요금이 적절하며, 짧은 캐시는 일시적인 오류에 대한 재시도를 처리합니다. |
| 비싼 긴 컨텍스트 ($1-$10) | 0초 (캐시 없음) | 각 호출은 자체 유료 이벤트입니다; 캐싱이 없습니다. |
| 구독형 도구 | 24시간 | 하루에 한 번 결제하여 창 내에서 무제한 호출이 가능합니다. 낮은 마찰로 더 높은 수익을 얻을 수 있습니다. |
지불 상태를 (지불자 지갑, 도구) 쌍별로 키하세요. 예제에서 search_docs:0xPayer와 같은 방식으로. 두 개의 다른 클라이언트가 동일한 도구를 사용하면 각각 별도로 결제합니다. 동일한 클라이언트가 두 개의 다른 도구를 사용하면 두 개의 별도 결제가 필요합니다. 원하신다면 더 넓게 범위를 설정할 수 있습니다 (모든 도구에 대해 지불자별로); 지불자별 도구별 세분화가 가격 책정이 공정하게 느껴지도록 합니다.
MCP 서버에 적합한 네 가지 가격 형태.
가격 책정은 귀하의 선택입니다 - 미들웨어에서 도구별 금액을 설정합니다. 아래는 우리가 가장 자주 보는 네 가지 패턴과 그에 맞는 도구 형태입니다.
호출당 마이크로 가격 책정
$0.01 - $0.05 per 호출검색, 조회, 분류, 형식 변환 - 대량으로 저렴한 작업.
고객에게 가장 낮은 마찰; 비용이 사용량과 정확히 일치합니다.
가장 높은 거래 오버헤드; 높은 호출량에서만 작동합니다.
호출당 중간 가격 책정
$0.10 - $1.00 per 호출LLM 추론, 생성, 콘텐츠 제작, 각 호출이 실제 작업을 수행하는 모든 것.
균형 잡힌 - 호출당 명확한 가치, 관리 가능한 거래 수.
호출당 마찰이 더 높습니다; 고객들은 때때로 이 가격대에서 구독을 선호합니다.
호출당 고가 책정
$1 - $10 per 호출긴 컨텍스트 생성, 문서 처리, 다단계 오케스트레이션, 비싼 제3자 API 래핑.
호출당 마진은 의미가 있으며, 실패한 결제는 허용 가능한 손실입니다.
고객들은 이 가격에서 강하게 협상하며, 환불 요청이 있을 것으로 예상됩니다.
구독 창
$5 - $50 per 24시간 (또는 $X per 월)세션에서 많은 호출을 하는 고객들은 호출당 결제 마찰을 참지 않을 것입니다.
고객당 더 높은 수익; 호출당 오버헤드가 적습니다.
발견 가능성이 낮음; 고객은 사전 약정을 해야 합니다. 하이브리드 가격 책정을 위해 호출당 요금과 결합되는 경우가 많습니다.
많은 운영자들이 패턴을 혼합합니다: 호출당 마이크로 가격의 저렴한 도구, 호출당 높은 가격의 비싼 도구, 그리고 중량 사용자를 위한 24시간 구독 창. 동일한 MCP 서버에서 세 가지 모두를 실행하는 것을 막는 것은 없습니다; 각 도구는 requirePayment에서 자체 amountUsdc를 설정하고 핸들러에서 자체 유료 창을 설정합니다.
프로는 거의 모든 MCP 서버에 적합한 플랜입니다.
MCP 서버 운영자는 거의 항상 Pro에서 시작합니다. API 쓰기 액세스와 웹훅이 첫날부터 필요하기 때문입니다: 무료는 읽기 전용이며, 유료 도구는 payment.received 웹훅을 수신하고 이를 검증해야 합니다. 정확한 에이전트당 비용과 거래 수수료 계층이 어디에 있는지 가격 페이지를 참조하세요; 짧은 버전은 실제 유료 볼륨을 처리하는 모든 서버는 Pro가 스스로 비용을 충당하는 지점을 훨씬 넘어선다는 것입니다.
- Free: API와 대시보드를 실험하는 데 유용합니다. 프로덕션 유료 도구에는 적합하지 않습니다 (읽기 전용, webhooks 없음).
- Pro: 운영 중인 MCP 서버의 기본 선택. 전체 API 접근, webhooks, 내보내기 제공.
- Business: compliance를 위한 감사 로그가 필요하거나, 여러 클라이언트를 위한 MCP 서버를 운영하며 agent별 팀 좌석 공유가 필요할 때.