SnapEX Pay

공식

AI 에이전트를 위한 암호화폐 결제: 셀프 서비스 계정, 인보이스, 수취, 지급, 환전.

SnapEX Pay MCP(으)로 무엇을 할 수 있나요?

  • 가맹점 계정 개설 — 에이전트가 create_account를 호출해 캡차나 이메일 없이 api_key, 캐비닛 login/password, mcp_personal_url을 받도록 하세요.
  • 인보이스 생성 및 추적 — create_invoice를 사용해 결제자용 pay_url을 받은 다음, paid 상태가 될 때까지 get_invoice를 폴링하세요. 테스트 모드는 실제 자금 없이 실행됩니다.
  • 안전한 암호화폐 지급 — preview_payout으로 견적을 받은 다음, preview_id와 idempotency_key를 사용해 create_payout을 호출하면 재시도해도 중복 지급되지 않습니다.
  • 카탈로그 및 수수료 확인 — 키가 필요하기 전에 list_assets, get_fiat_rates, get_fees, list_static_address_networks를 조회하세요.
  • 보유 자산 전환 — preview_conversion으로 견적을 받고 create_conversion으로 실행해 다른 자산을 USDT 잔액으로 교환하세요.

호스팅형 MCP 서버

npx add-mcp 'https://pay.snapex.pro/mcp'

Claude Code, Codex, Cursor 등에 설치됩니다

문서

SnapEX Pay MCP server

Glama score MCP Badge Listed on mcpservers.org AllMCPs Verified

MCP server for crypto payments: an AI agent opens its own merchant account and accepts, sends and exchanges crypto.

SnapEX Pay MCP server lets an AI agent work with crypto payments without a person in the loop. The agent connects to https://pay.snapex.pro/mcp, opens a SnapEX Pay merchant account by itself (no captcha, no email) and gets an API key. Then it can create invoices with hosted payment pages, receive crypto on permanent deposit addresses, keep a USDT balance, send payouts in many coins and networks, and manage webhooks. Test mode runs the whole flow without real money. Payouts always start with a free preview and use an idempotency key, so a retry never pays twice. Remote server (Streamable HTTP) or local package: npx -y snapex-pay-mcp.

How an agent uses it

  1. Connect without a key. The catalogue tools (list_assets, get_fiat_rates, get_fees, list_static_address_networks) work at once.
  2. Call create_account. It returns api_key (shown once), a cabinet login/password for a person, and mcp_personal_url. The new key is used right away: on the remote server for the rest of the MCP session, in the stdio package for the process (and it is saved to ~/.config/snapex-pay/credentials.json for the next runs).
  3. Receive: create_invoice → give pay_url to the payer → get_invoice until paid. environment: "test" runs the whole flow without real money (a test invoice turns paid ~10 s after a coin is selected; the balance does not change).
  4. Send: preview_payout (free quote) → create_payout with the preview_id and your own idempotency_key (irreversible; a retry with the same key never pays twice).
  5. The balance is kept in USDT: to get another coin, pay out in that coin. preview_conversion → create_conversion converts other assets an older account still holds.

Every error answer says what to do next (what_to_do), e.g. unauthorized → call create_account; rate_limited → wait retry_after_seconds.

Connect

Claude Code

claude mcp add --transport http snapex-pay https://pay.snapex.pro/mcp
# with an existing key:
claude mcp add --transport http snapex-pay https://pay.snapex.pro/mcp --header "Authorization: Bearer smk_…"

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "snapex-pay": { "url": "https://pay.snapex.pro/mcp" }
  }
}

Add "headers": { "Authorization": "Bearer smk_…" } to keep one account across sessions.

VS Code — .vscode/mcp.json

{
  "servers": {
    "snapex-pay": { "type": "http", "url": "https://pay.snapex.pro/mcp" }
  }
}

Windsurf — ~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "snapex-pay": { "serverUrl": "https://pay.snapex.pro/mcp" }
  }
}

Cline — cline_mcp_settings.json

{
  "mcpServers": {
    "snapex-pay": { "type": "streamableHttp", "url": "https://pay.snapex.pro/mcp" }
  }
}

Step-by-step for AI installers: llms-install.md.

Gemini CLI

As an extension (this repository has gemini-extension.json):

gemini extensions install https://github.com/snapexpay/snapex-pay-mcp

or in ~/.gemini/settings.json:

{
  "mcpServers": {
    "snapex-pay": { "httpUrl": "https://pay.snapex.pro/mcp" }
  }
}

Claude Desktop — claude_desktop_config.json

Remote server through mcp-remote:

{
  "mcpServers": {
    "snapex-pay": { "command": "npx", "args": ["-y", "mcp-remote", "https://pay.snapex.pro/mcp"] }
  }
}

or the local package:

{
  "mcpServers": {
    "snapex-pay": {
      "command": "npx",
      "args": ["-y", "snapex-pay-mcp"],
      "env": { "SNAPEX_API_KEY": "smk_…" }
    }
  }
}

(SNAPEX_API_KEY is optional: without it the agent calls create_account and the key is saved for the next runs.)

claude.ai and ChatGPT connectors

Add a custom connector with the URL https://pay.snapex.pro/mcp and no authentication. These clients cannot send headers, so after create_account take mcp_personal_url from its answer (also returned by get_account) and use it as the connector URL — every new chat then works with the same account. That URL contains a credential: treat it as a password.

OpenAI Responses API

{
  "type": "mcp",
  "server_label": "snapex_pay",
  "server_url": "https://pay.snapex.pro/mcp",
  "headers": { "Authorization": "Bearer smk_…" },
  "require_approval": { "always": { "tool_names": ["create_payout", "create_conversion"] } }
}

Other clients and catalogs

The repository carries the manifests the catalogs read: server.json (official MCP Registry), glama.json (Glama), gemini-extension.json + GEMINI.md (Gemini CLI), lhm.plugin.json (LobeHub), .cursor-plugin/plugin.json + mcp.json (Cursor Marketplace), plugin.json (Agent Plugins / Kiro), llms-install.md (Cline).

Docker

docker build -t snapex-pay-mcp .
docker run -i --rm -e SNAPEX_API_KEY=smk_… snapex-pay-mcp

Tools

Account

ToolWhat it does
create_accountOpen a SnapEX Pay account (no captcha)
get_accountShow the current account and key

Catalogue (no key needed)

ToolWhat it does
list_assetsList coins and networks
get_fiat_ratesFiat exchange rates
get_feesCurrent route fee quotes
list_static_address_networksNetworks for permanent addresses

Balance

ToolWhat it does
get_balancesAccount balance
list_transactionsBalance history

Receive

ToolWhat it does
create_invoiceCreate an invoice (receive crypto)
get_invoiceInvoice status
list_invoicesList invoices
get_invoice_payment_methodsCoins an invoice can be paid with
select_invoice_payment_methodPick a coin for an invoice
preview_paymentQuote a direct payment
create_paymentCreate a direct payment
get_paymentPayment status
list_paymentsList payments
create_static_addressPermanent deposit address
list_static_addressesList permanent addresses
list_static_address_depositsDeposits to a permanent address

Send (payouts)

ToolWhat it does
preview_payoutQuote a payout (send crypto)
create_payoutSend a payout (irreversible) ⚠️ irreversible
get_payoutPayout status
list_payoutsList payouts

Exchange

ToolWhat it does
preview_conversionQuote a conversion (exchange)
create_conversionExecute a conversion ⚠️ irreversible
get_conversionConversion status
list_conversionsList conversions

Webhooks

ToolWhat it does
list_webhooksList webhook endpoints
create_webhookAdd a webhook endpoint
update_webhookChange a webhook endpoint
rotate_webhook_secretNew webhook secret ⚠️ irreversible

Resources: snapex://docs/quickstart, snapex://docs/webhooks. Prompts: accept_crypto_payment, send_crypto_payout.

Environment (stdio package)

VariableDefaultMeaning
SNAPEX_API_KEY—Merchant API key smk_…. Optional: create_account makes one.
SNAPEX_BASE_URLhttps://pay.snapex.proAPI base URL.
SNAPEX_CREDENTIALS_FILE~/.config/snapex-pay/credentials.jsonWhere a key from create_account is saved (mode 600).
SNAPEX_NO_SAVE—1 — do not save credentials to disk.

Safety

  • An agent moves only its own account's money; a new account starts at zero.
  • The key and the generated password are shown once. A person can open the cabinet with the login and password and revoke or rotate keys there.
  • Payouts are two-step (quote, then send) and need an idempotency_key; create_payout, create_conversion and rotate_webhook_secret are marked destructiveHint, so clients can ask before running them.
  • Limits: a few new accounts per IP per hour; about 120 API calls a minute per key; payouts 5 a minute and 30 an hour.
  • Rules for what can be sold: https://pay.snapex.pro/rules.

Development

The tool list is generated from the SnapEX Pay server (app/Mcp/McpToolCatalog.php):

php artisan mcp:export-tools      # writes src/tools.json, syncs the version of the manifests and LobeHub's tools
npm ci && npm test                # build + offline smoke test with the official MCP SDK client
SNAPEX_E2E_BASE_URL=http://127.0.0.1:8765 node test/smoke.mjs   # full flow against a local (never production) server

Support

Chat: https://pay.snapex.pro/#chat · Privacy: https://pay.snapex.pro/privacy · Terms: https://pay.snapex.pro/terms

License

MIT