Перейти к основному содержимому
ПЕРСОНА 2 - ОПЕРАТОРЫ СЕРВЕРОВ MCP

Монетизируйте свой сервер MCP за 10 минут.

Позвольте AI-агентам оплачивать ваш сервер MCP за вызов в USDC с подписанными вебхуками и журналами аудита. Совместимо с x402. Промежуточное ПО для внедрения.

БОЛЬ

Вы создали MCP-сервер. Тысячи клиентов используют его бесплатно.

Вы выпустили свой MCP-сервер, потому что клиентам Claude Desktop, Cursor и Cline нужна была эта возможность. Слухи распространились. Теперь вы обслуживаете тысячи вызовов платных инструментов в день от AI-агентов, которых вы никогда не встречали. Ваш счет за исходящий трафик реальный. Ваш API-ключ для основного сервиса реальный. Ваше время на обслуживание реальное. Доход ноль.

У вас есть три варианта. Оставить это бесплатным и тратить деньги на инфраструктуру. Закрыть его за ручными API-ключами (и потерять 95% трафика агентов из-за трения форм регистрации). Или добавить платежный слой, который AI-агенты могут действительно завершить - именно для этого и создан 402 Payment Required + USDC.

Blockchain0x - это третий вариант. Ваш сервер MCP указывает на наш API. Когда AI-клиент вызывает платный инструмент, ответ - 402 с хостинг-URL для оплаты. Клиент (или его человеческий куратор) платит в USDC. Ваш вебхук срабатывает. Следующий вызов от этого клиента проходит успешно. Вся форма называется x402, и это протокол, который Coinbase опубликовал для этого точного шаблона.

ШАБЛОН X402

Как 402 Payment Required становится программным оформлением заказа.

HTTP-код состояния 402 существует с тех пор, как спецификация была впервые написана, но никогда не имел стандартной реализации. Протокол x402 от Coinbase наконец дает ему такую реализацию. Форма проста: ваш инструмент возвращает вызов 402 (структурированное тело JSON, описывающее, как платить); клиент платит и повторяет попытку; вызов успешен. requirePayment из @blockchain0x/mcp создает это тело вызова для вас.

ТЕЛО ВЫЗОВА 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-клиент вызывает платный инструмент. Ваш обработчик проверяет ваше собственное состояние оплаты, находит, что плательщик не отмечен как оплаченный, и возвращает тело вызова 402 от requirePayment как ошибку инструмента.
  2. Оплата: Клиент переходит по hostedUrl к хостинговому чеку и завершает перевод USDC на Base (либо программно через кошелек, поддерживающий x402, либо вручную через QR-код).
  3. Вебхук: Blockchain0x отправляет payment.received на вашу конечную точку в течение нескольких секунд после подтверждения цепочки. Вы проверяете это с помощью webhooks.verify и записываете плательщика как оплаченного в своем собственном хранилище.
  4. Повторная попытка: Клиент повторяет исходный вызов инструмента MCP. Ваш обработчик теперь видит, что плательщик отмечен как оплаченный, выполняет инструмент и возвращает фактический результат.

Каждый платеж записывается в вашей панели управления Blockchain0x, и каждый webhook payment.received попадает в ваши собственные логи. Поскольку вы владеете состоянием оплаты и обработчиком webhook, аналитика доходов по инструментам и плательщикам вытекает из данных, которые вы уже храните.

НАСТРОЙКА МИДДЛВЕРА

Полный рабочий пример.

requirePayment от @blockchain0x/mcp создает вызов 402; webhooks.verify от @blockchain0x/node проверяет подтверждение. У вас есть два небольших элемента между ними: проверка состояния оплаты внутри инструмента и обработчик вебхуков, который помечает плательщика как оплаченного. Ниже представлен полный сервер MCP, который открывает один платный инструмент и его конечную точку вебхука.

INDEX.TS - 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 });
});

Шаги настройки

  1. 1Создайте кошелек агента Blockchain0x для вашего сервера MCP, на плане, который включает доступ к API и вебхукам. Запишите адрес кошелька, который вы будете использовать как 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 (например, /webhooks/blockchain0x), затем проверяйте каждую доставку с помощью webhooks.verify и отмечайте плательщика как оплаченного на payment.received.
  6. 6Развернуть. Первый AI-клиент, который обращается к вашему платному инструменту, получает 402, платит, и следующий вызов проходит успешно. Вы увидите платеж на панели управления в течение 10 секунд.

Вы также можете запустить сервер Blockchain0x MCP с помощью npx @blockchain0x/mcp (stdio) или хостинг-контейнера Streamable HTTP на mcp.blockchain0x.com. Полная настройка, включая формы полезной нагрузки вебхука, находится в документации.

ВАШ ОПЛАЧЕННЫЙ ОКНО

Единственное самое важное решение в вашем обработчике.

Поскольку вы владеете состоянием оплаты, вы также решаете, как долго платеж считается действительным. После того, как клиент оплачивает инструмент, оставьте его помеченным как оплаченный на некоторое время, и в течение этого времени позволяйте вызовам проходить без нового платежа. Установите окно слишком коротким, и вы наказываете клиентов трением при оплате за каждый вызов; установите его слишком длинным, и вы отдаете дорогие операции после одной дешевой оплаты. TTL на вашем ключе Redis/Postgres - это самый простой способ реализовать это.

Окна, которые мы рекомендуем

Тип инструментаОкноПочему
Дешевый поиск ($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; каждый инструмент устанавливает свою собственную amountUsdc в requirePayment и свое собственное оплачиваемое окно в вашем обработчике.

КАКОЙ ПЛАН ПОДХОДИТ

Профессиональный - это правильный план для почти каждого сервера MCP.

Операторы серверов MCP почти всегда начинают с Pro, потому что доступ к записи API и вебхуки требуются с первого дня: Free доступен только для чтения, а платный инструмент должен получать вебхуки payment.received и проверять их. См. страницу с ценами для точной стоимости на агента и для определения уровней транзакционных сборов; краткая версия такова, что любой сервер, обрабатывающий реальные платные объемы, уже давно перешел точку, где Pro окупает себя.

  • Free: полезно для экспериментов с API и dashboard. Не подходит для production платных инструментов (только чтение, без webhooks).
  • Pro: по умолчанию для рабочих MCP servers. Полный доступ к API, webhooks, экспортам.
  • Business: когда вам нужен журнал аудита для compliance, или когда вы запускаете MCP-серверы для нескольких клиентов и хотите совместные командные места на уровне агента.
Смотрите полную цену
ЧАСТО ЗАДАВАЕМЫЕ

Пять вопросов, специфичных для MCP.

Должен ли мой сервер MCP быть размещен на Blockchain0x? Или работать в конкретном облаке?

Нет. Ваш сервер MCP может работать где угодно, где он обычно работает: на вашем ноутбуке, AWS, Fly.io, Cloudflare Workers, Raspberry Pi. Промежуточное ПО - это просто модуль Node, который оборачивает ваши обработчики инструментов. Пока ваш сервер может выполнять исходящие HTTPS-вызовы к api.blockchain0x.com и получать входящие вебхуки по URL, который вы контролируете, интеграция работает. Мы не храним ваш сервер MCP; мы храним платежную поверхность.

Что произойдет, когда AI-клиент не понимает x402 и просто получает ответ 402?

Тело вызова структурировано так, чтобы клиент, не осведомленный о x402, видел значимую ошибку: код ошибки, amountUsdc и hostedUrl для оплаты. Клиенты, которые показывают ошибки инструментов пользователю (большинство чат-ориентированных клиентов, таких как Claude Desktop или Cursor), покажут пользователю URL для нажатия и оплаты; клиенты, которые обрабатывают вызов полностью программно и игнорируют ошибку, просто не получат результата, что является правильным исходом (вызов не был оплачен). Клиенты, осведомленные о x402, читают вызов, автоматически оплачивают с помощью предварительно авторизованного кошелька и повторяют попытку.

Как долго длится оплачиваемое окно? Может ли клиент заплатить один раз и вызывать навсегда?

Это полностью ваше решение, потому что вы владеете оплачиваемым состоянием. Общим выбором является 60-секундный TTL для оплаченного ключа: он поглощает естественные повторные попытки и последовательные действия, не позволяя одному платежу покрыть всю сессию. Вы можете сделать его длиннее для подписочных цен, или ноль (каждый вызов требует нового платежа) для дорогих инструментов за вызов. Библиотека не накладывает окно; это делает ваш магазин и его TTL.

Могу ли я использовать платные и бесплатные инструменты на одном сервере MCP?

Да. Добавьте проверку состояния оплаты (и задачу requirePayment при неудаче) только к платным инструментам; оставьте бесплатные инструменты в качестве обычных обработчиков. Бесплатные инструменты работают для любого клиента; платные инструменты возвращают задачу 402 до оплаты. Многие операторы начинают с того, что делают дешевые инструменты бесплатными (чтобы стимулировать принятие) и резервируют оплату для высокоценных (инференция, генерация, работа с длинным контекстом).

Как мне увидеть, какие клиенты оплатили и сколько они потратили?

Каждый платеж записывается в вашей панели управления Blockchain0x с адресом кошелька плательщика, временной меткой и суммой, и те же данные приходят на ваш webhook payment.received, так что вы можете хранить их так, как вам нравится. Поскольку вы контролируете обработчик, вы также можете записывать вещи, которые библиотека никогда не видит: какой инструмент был вызван, каждый вызов 402, который вы вернули, и каждый вызов, который вы обслужили из существующего платежа. Объедините их с платежами, и у вас есть аналитика доходов по каждому плательщику и инструменту.

Преобразуйте ваш сервер MCP в доход.

Начните с Pro, запустите npx @blockchain0x/mcp или подключите requirePayment к своим инструментам. Десять минут от установки до первого оплаченного вызова.