# x402 Universal Payer

MCP-сервер, который сам платит по протоколу x402 за платные API: агент получает ответ и квитанцию расчёта, а расход ограничен лимитами.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 249
- Автор: nirholas
- Лицензия: Apache-2.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/nirholas/three.ws/tree/HEAD/mcp-bridge
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/mcp/x402-universal-payer

## Что делает

Сервер подключается к агенту и берёт на себя оплату. Вы даёте агенту URL, тот отвечает `402 Payment Required`, дальше мост подписывает платёж, повторяет запрос и возвращает ответ вместе с разбором расчёта. Поддержаны EVM exact, EVM batch-settlement и Solana exact.

Внутри четыре инструмента. `call_paid_endpoint` — универсальный: бьёт по любому URL и платит, если пришёл 402. `list_bazaar_tools` и `refresh_bazaar` бесплатные: первый отдаёт кэш найденных сервисов, второй перезапрашивает Bazaar и перерегистрирует инструменты без перезапуска. Плюс по инструменту на каждый ресурс из Bazaar, до `MCP_BRIDGE_DISCOVER_LIMIT`. Инструменты с ценой выше лимита на вызов отсеиваются ещё при обнаружении.

Сервер держит приватные ключи и тратит настоящие USDC. Нужен отдельный кошелёк с малым балансом: `MCP_BRIDGE_EVM_PRIVATE_KEY` или `MCP_BRIDGE_SVM_PRIVATE_KEY`, хотя бы один. Лимит на вызов задаёт `MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC`, потолок за сессию — `MCP_BRIDGE_MAX_TOTAL_ATOMIC`; после его достижения платежи прекращаются до перезапуска. Есть список разрешённых получателей и хостов, а исходящие URL проходят проверку на приватные и loopback-адреса. Повторный платный вызов — это новый платёж.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `MCP_BRIDGE_EVM_PRIVATE_KEY`, `MCP_BRIDGE_SVM_PRIVATE_KEY`, `MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC`, `MCP_BRIDGE_MAX_TOTAL_ATOMIC`, `MCP_BRIDGE_ALLOWED_PAYTO`, `MCP_BRIDGE_ALLOWED_HOSTS`, `MCP_BRIDGE_ALLOW_HTTP`, `MCP_BRIDGE_DISCOVER_LIMIT`, `MCP_BRIDGE_BAZAAR_URL`, `MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env MCP_BRIDGE_EVM_PRIVATE_KEY=<MCP_BRIDGE_EVM_PRIVATE_KEY> --env MCP_BRIDGE_SVM_PRIVATE_KEY=<MCP_BRIDGE_SVM_PRIVATE_KEY> --env MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC=<MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC> --env MCP_BRIDGE_MAX_TOTAL_ATOMIC=<MCP_BRIDGE_MAX_TOTAL_ATOMIC> --env MCP_BRIDGE_ALLOWED_PAYTO=<MCP_BRIDGE_ALLOWED_PAYTO> --transport stdio mcp-bridge -- npx -y @three-ws/mcp-bridge
```
Вместо <…> подставьте свои значения. Ещё 8 переменных окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add mcp-bridge --env MCP_BRIDGE_EVM_PRIVATE_KEY=<MCP_BRIDGE_EVM_PRIVATE_KEY> --env MCP_BRIDGE_SVM_PRIVATE_KEY=<MCP_BRIDGE_SVM_PRIVATE_KEY> --env MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC=<MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC> --env MCP_BRIDGE_MAX_TOTAL_ATOMIC=<MCP_BRIDGE_MAX_TOTAL_ATOMIC> --env MCP_BRIDGE_ALLOWED_PAYTO=<MCP_BRIDGE_ALLOWED_PAYTO> -- npx -y @three-ws/mcp-bridge
```
Вместо <…> подставьте свои значения. Ещё 8 переменных окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-bridge": {
            "command": "npx",
            "args": [
                "-y",
                "@three-ws/mcp-bridge"
            ],
            "env": {
                "MCP_BRIDGE_EVM_PRIVATE_KEY": "<MCP_BRIDGE_EVM_PRIVATE_KEY>",
                "MCP_BRIDGE_SVM_PRIVATE_KEY": "<MCP_BRIDGE_SVM_PRIVATE_KEY>",
                "MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC": "<MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC>",
                "MCP_BRIDGE_MAX_TOTAL_ATOMIC": "<MCP_BRIDGE_MAX_TOTAL_ATOMIC>",
                "MCP_BRIDGE_ALLOWED_PAYTO": "<MCP_BRIDGE_ALLOWED_PAYTO>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 8 переменных окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-bridge": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@three-ws/mcp-bridge"
            ],
            "env": {
                "MCP_BRIDGE_EVM_PRIVATE_KEY": "<MCP_BRIDGE_EVM_PRIVATE_KEY>",
                "MCP_BRIDGE_SVM_PRIVATE_KEY": "<MCP_BRIDGE_SVM_PRIVATE_KEY>",
                "MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC": "<MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC>",
                "MCP_BRIDGE_MAX_TOTAL_ATOMIC": "<MCP_BRIDGE_MAX_TOTAL_ATOMIC>",
                "MCP_BRIDGE_ALLOWED_PAYTO": "<MCP_BRIDGE_ALLOWED_PAYTO>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 8 переменных окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e MCP_BRIDGE_EVM_PRIVATE_KEY=<MCP_BRIDGE_EVM_PRIVATE_KEY> -e MCP_BRIDGE_SVM_PRIVATE_KEY=<MCP_BRIDGE_SVM_PRIVATE_KEY> -e MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC=<MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC> -e MCP_BRIDGE_MAX_TOTAL_ATOMIC=<MCP_BRIDGE_MAX_TOTAL_ATOMIC> -e MCP_BRIDGE_ALLOWED_PAYTO=<MCP_BRIDGE_ALLOWED_PAYTO> mcp-bridge npx -y @three-ws/mcp-bridge
```
Вместо <…> подставьте свои значения. Ещё 8 переменных окружения — в README сервера

## Когда брать
- оплатить платный API прямо из агента, без ручного выставления счёта
- получить ответ и квитанцию расчёта по x402-эндпоинту
- ограничить траты агента лимитом на вызов и потолком за сессию
- подключить сервисы из x402 Bazaar как готовые инструменты
- запретить платежи на незнакомые адреса и хосты

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
