x402dispatcher
x402dispatcher
Локальный агрегатор x402 Bazaar для AI-агентов: обнаружение платных API из Coinbase x402 Bazaar, обёртывание их как инструментов Model Context Protocol (MCP), оплата микроплатежей из казначейского кошелька CDP и возврат данных вышестоящего API агенту.
Этот репозиторий сейчас на V4.
Зачем это существует
AI-агенты хорошо умеют рассуждать и использовать инструменты, но плохо умеют платить за API. Протокол x402 превращает HTTP 402 Payment Required в программируемый канал микроплатежей в стейблкоинах (обычно USDC).
x402dispatcher находится посередине как агрегатор, удобный для одиночных операторов:
Идея | Что это значит |
Обнаружение | Запрос к публичному каталогу Coinbase x402 Bazaar |
Интеграция MCP | Предоставление обнаруженных API как MCP-инструментов для Cursor / агентов |
Отправка | Подписание и оплата из казначейского кошелька через |
Монетизация | Применение микро-наценки к стоимости вышестоящего API и удержание спреда |
Средства перемещаются кошелёк → мерчант. Платформа не хранит средства покупателя.
Related MCP server: JMT x402 MCP Server
Дорожная карта
Версия | Статус | Цель |
V1 | Готово | Вручную обернуть один платный поток (демо MBTA + оплата $0.01 USDC в тестнете) |
V2 | Готово | Автоматическое обнаружение API Bazaar на Base Sepolia и обёртывание многих из них как MCP-инструментов с реальной оплатой x402 |
V3 | Готово | Умный арбитраж: поиск, сравнение цен, выбор самого дешёвого API для задачи (с отказоустойчивостью) |
V4 | Текущий | Отслеживание успешности/задержек; уровни маршрутизации economy и verified |
V5 | Планируется | Облачный хостинг, публичные реестры, |
Что делает V4
Поверх маршрутизации V3, V4 записывает успешность и задержку каждого платного вызова в data/api-stats.json, а затем предлагает два уровня:
Уровень | Поведение |
| Сначала самый дешёвый (поведение V3) |
| Только API с достаточной историей успешных вызовов; ранжирование по надёжности/задержке/цене |
Пороги (env): VERIFIED_MIN_SAMPLES (по умолчанию 2), VERIFIED_MIN_SUCCESS_RATE (по умолчанию 0.8).
Новые инструменты: get_api_stats, list_verified_apis. quote_route / route_and_call принимают необязательный tier.
Что делает V3
Поверх обнаружения и оплаты V2, V3 добавляет маршрутизатор:
quote_route— поиск в Bazaar по задаче на естественном языке, ранжирование кандидатов по общей цене (вышестоящий API + наценка), возврат плана без оплатыroute_and_call— то же ранжирование, оплата и вызов самого дешёвого; при сбое попробовать следующий по цене (доmax_attempts)
Все расходы остаются ограниченными MAX_PRICE_USD.
Что делает V2
При запуске MCP-сервер:
Загружает учётные данные из
.envОпределяет казначейский кошелёк плательщика CDP Treasury
Ищет / перечисляет HTTP-ресурсы Coinbase Bazaar на Base Sepolia (
eip155:84532) с ценой не вышеMAX_PRICE_USDРегистрирует каждое совпадение как MCP-инструмент
Также регистрирует вспомогательные инструменты:
search_bazaar,list_discovered_apis,call_x402_apiСохраняет демо-инструмент V1
get_mbta_predictions
Когда агент вызывает обнаруженный инструмент (или call_x402_api):
Применять
MAX_PRICE_USDк цене вышестоящего API + наценкеОплатить реальную конечную точку x402 с помощью
CdpX402Client+wrapFetchWithPaymentиз@x402/fetchСобирать спред наценки (перевод USDC Treasury → Merchant, когда это возможно)
Вернуть
{ payment, data }агенту
V1 get_mbta_predictions по-прежнему демонстрирует фиксированный перевод $0.01 USDC на Base Sepolia, а затем получает бесплатные публичные данные прогнозов MBTA.
Архитектура
Agent / Cursor
│ MCP (stdio)
▼
x402dispatcher MCP server (src/index.ts)
│
├─ Discovery → listX402DiscoveryResources / searchX402Resources (@coinbase/cdp-sdk)
├─ Payment → CdpX402Client + wrapFetchWithPayment (@coinbase/cdp-sdk/x402, @x402/fetch)
├─ Routing → economy (price) / verified (stats score) with failover
├─ Stats → data/api-stats.json success + latency history
├─ Guardrails → MAX_PRICE_USD (+ SDK spend controls)
└─ Markup → MARKUP_BPS applied; optional USDC transfer to Merchant account
│
▼
Upstream x402 HTTP API (Bazaar listing)Ключевые пакеты
@coinbase/cdp-sdk— кошельки, обнаружение Bazaar,CdpX402Client@x402/fetch/@x402/core/@x402/evm— цикл оплаты HTTP 402@modelcontextprotocol/sdk— MCP-сервер и инструментыdotenv,zod,viem
Требования
Node.js 19+ (требование CDP SDK; рекомендуется 22 LTS)
Учётные данные Coinbase Developer Platform:
CDP_API_KEY_IDCDP_API_KEY_SECRETCDP_WALLET_SECRET(Wallet Secret из CDP Portal → Non-custodial Wallet → Security — не приватный ключ MetaMask)
Base Sepolia USDC (+ немного ETH для газа) на адресе Treasury
Настройка
git clone https://github.com/jegamboafuentes/x402dispatcher.git
cd x402dispatcher
npm install
cp .env.example .env
# edit .env with your CDP credentialsПеременные окружения
Переменная | Обязательно | Описание |
| Да | ID ключа API CDP |
| Да | Секрет ключа API CDP |
| Да | Секрет кошелька CDP (base64 P-256 ключ из Portal) |
| Рекомендуется | Жёсткий предел перед любыми автоматическими расходами (например, |
| Необязательно | Наценка в базисных пунктах (по умолчанию |
| Необязательно | Максимум инструментов Bazaar для регистрации при запуске (по умолчанию |
| Необязательно | Минимум вызовов с успешной историей для Verified (по умолчанию |
| Необязательно | Минимальный уровень успеха 0–1 для Verified (по умолчанию |
| Необязательно | Только если вы импортируете конкретный EOA в CDP (не используется по умолчанию в пути плательщика V2+) |
Никогда не коммитьте .env. Отслеживается только .env.example.
Пополнение казначейства
npx tsx -e "import 'dotenv/config'; import { CdpX402Client } from '@coinbase/cdp-sdk/x402'; const c = new CdpX402Client({ environment: 'development', walletConfig: { type: 'eoa', accountName: 'Treasury' } }); console.log(await c.getAddresses());"Отправьте Base Sepolia USDC (и немного ETH) на напечатанный evmAddress.
Запуск
MCP-сервер (stdio)
npm startКонфигурация Cursor MCP
Файл проекта: .cursor/mcp.json (уже включён). Cursor должен запустить:
{
"mcpServers": {
"x402dispatcher": {
"command": "npx",
"args": ["tsx", "src/index.ts"],
"cwd": "${workspaceFolder}"
}
}
}Перезагрузите MCP в Cursor после клонирования/установки. Если ${workspaceFolder} не раскрывается в вашей сборке Cursor, установите cwd на абсолютный путь этого репозитория и при необходимости укажите command на ваш бинарник Node 22.
MCP-инструменты
Основные
Инструмент | Назначение |
| Ранжирование подходящих API; |
| Оплата/вызов лучшего соответствия для уровня; отказоустойчивость; запись статистики |
| V4 — локальная история успешности/задержек |
| V4 — API, которые в настоящее время соответствуют Verified |
| Семантический/текстовый поиск API Bazaar на Base Sepolia с ценой ниже |
| Список API, которые в настоящее время кэшированы/зарегистрированы |
| Оплата + вызов по |
| Демо V1: оплата $0.01 USDC + живые прогнозы MBTA |
Динамические инструменты
При запуске x402dispatcher также регистрирует один MCP-инструмент для каждого обнаруженного ресурса Bazaar (имена вида x402_<host>_<path>_<n>). Каждый принимает необязательные query / body и оплачивает URL вышестоящего API.
Тестирование
V4 end-to-end (рекомендуется)
Заполняет два economy-вызова погоды, продвигает победителя в Verified, затем котирует/маршрутизирует с tier=verified:
npm run test:v4Ожидайте: V4 SMOKE TEST PASSED
Более ранние версии
npm run test:v3
npm run test:v2Ручные проверки в Cursor
Перезагрузите MCP-сервер
x402dispatcherПопросите погоду с economy-маршрутизацией пару раз (накапливает статистику)
Спросите: «Перечисли проверенные API» / «Получи статистику API»
Спросите: «Используй verified-уровень, чтобы получить погоду для Бостона»
Подтвердите, что
chosen.verifiedравно true иdata/api-stats.jsonувеличился
Проверка ограничений
Установите MAX_PRICE_USD ниже общей суммы листинга и убедитесь, что quote/route отказывают или возвращают ноль кандидатов.
Структура проекта
x402dispatcher/
├── src/
│ ├── index.ts # MCP server, tool registration
│ ├── discovery.ts # Bazaar list/search → DiscoveredApi
│ ├── payment.ts # CdpX402Client, markup, MBTA settle
│ ├── routing.ts # quote + economy/verified route + failover
│ ├── stats.ts # V4 local success/latency store
│ └── config.ts # MAX_PRICE_USD, MARKUP_BPS, verified thresholds
├── scripts/
│ ├── v4-smoke-test.ts
│ ├── v3-smoke-test.ts
│ ├── v2-smoke-test.ts
│ ├── mcp-test.ts
│ └── smoke-test.ts
├── data/ # local api-stats.json (gitignored)
├── .cursor/
│ ├── mcp.json
│ └── rules/ # security + x402-stack agent rules
├── AGENTS.md # product / roadmap context for agents
├── .env.example
└── package.jsonЗамечания по безопасности
Учётные данные кошелька загружаются только из
.env— никогда не хардкодьте секреты.Каждый автоматический расход ограничен
MAX_PRICE_USDперед подписанием.V2 также настраивает контроль расходов CDP x402 (
maxAmountPerPayment+ список разрешённых сетей Base Sepolia).Относитесь к Bazaar как к каталогу, а не к одобрению. Сначала предпочитайте небольшие суммы в тестнете.
CDP_WALLET_SECRETдолжен быть секретом кошелька Portal (длинный base64), а не hex-ключом MetaMask.
Ссылки на стек
Лицензия
ISC
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceMCP server bringing 100+ x402-paid APIs to AI agents (Claude, Cursor, MCP-aware clients). Auto-discovers tools from CDP Bazaar; handles USDC micropayments on Base.100601MIT
- AlicenseBqualityCmaintenanceExposes 25 paid API endpoints as MCP tools for AI agents, with payments in USDC on Base mainnet via the x402 protocol, enabling tasks like web search, company intelligence, and crypto research.2568MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to discover, query, and pay for HTTP endpoints and MCP tools using Stellar USDC/SEP-41 stablecoins through a federated P2P bazaar catalog and x402 payment facilitator.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to discover, call, and pay for existing HTTP APIs over MCP with x402 paywalls, non-custodial settlement, and no code changes to the backend.3449Apache 2.0
Related MCP Connectors
Agent x402 Paywall MCP — Coinbase HTTP 402 protocol + on-chain settlement. Agents pay per-call
Agent Commerce Protocol MCP — bridges Stripe ACP + Google AP2 + Coinbase x402 for agent payments
Metered MCP tools: free discovery over MCP; per-call execution settled in USDC via x402 v2.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jegamboafuentes/x402dispatcher'
If you have feedback or need assistance with the MCP directory API, please join our Discord server