{
  "$schema": "https://modelcontextprotocol.io/schema/mcp.json",
  "name": "swapeazi",
  "displayName": "SwapEazi Cross-Chain Stablecoin Router",
  "version": "1.1.0",
  "description": "Route stablecoin swaps across 7 EVM chains plus Tron / USDT-TRC20. Pay-per-call via x402 ($0.02 USDC on Base). The only public router that serves USDT (Tron) ↔ USDC (Base) — the SADC corridor pair generic aggregators (Jumper, Li.Fi consumer) deprioritise.",
  "publisher": {
    "name": "SwapEazi",
    "url": "https://swapeazi.io",
    "email": "hello@swapeazi.io"
  },
  "categories": ["finance", "stablecoin", "cross-chain", "remittance", "agent-payments"],
  "tags": ["stablecoin", "swap", "cross-chain", "tron", "usdt", "usdc", "eurc", "sadc", "africa", "mica", "x402", "agentic"],
  "license": "Commercial — see https://swapeazi.io/legal",
  "homepage": "https://swapeazi.io",
  "documentation": "https://swapeazi.io/developers",
  "openapi": "https://swapeazi.io/api/openapi.json",
  "x402": "https://swapeazi.io/.well-known/x402.json",
  "transport": {
    "type": "http",
    "baseUrl": "https://swapeazi.io"
  },
  "auth": [
    {
      "type": "x402",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "network": "base",
      "amount": "20000",
      "humanReadable": "$0.02 USDC per call",
      "header": "X-PAYMENT",
      "manifest": "https://swapeazi.io/.well-known/x402.json"
    },
    {
      "type": "apiKey",
      "header": "x-swapeazi-key",
      "issuance": "https://swapeazi.io/developers",
      "humanReadable": "Free HMAC key — rate-limited self-serve"
    }
  ],
  "tools": [
    {
      "name": "swapeazi_list_routes",
      "description": "List supported chains, tokens, corridors, and pricing. Use this first to discover what SwapEazi can route. Free.",
      "method": "GET",
      "path": "/api/mpp/routes",
      "auth": "none",
      "inputSchema": { "type": "object", "properties": {} }
    },
    {
      "name": "swapeazi_quote",
      "description": "Get a free quote for a cross-chain stablecoin swap — output, fees, timing, recommended bridge.",
      "method": "POST",
      "path": "/api/x402/quote",
      "auth": "none",
      "inputSchema": {
        "type": "object",
        "required": ["fromChain", "toChain", "fromToken", "toToken", "fromAmount", "fromAddress"],
        "properties": {
          "fromChain":   { "type": "string", "enum": ["ETH","POL","ARB","OPT","BAS","BNB"] },
          "toChain":     { "type": "string", "enum": ["ETH","POL","ARB","OPT","BAS","BNB"] },
          "fromToken":   { "type": "string" },
          "toToken":     { "type": "string" },
          "fromAmount":  { "type": "string" },
          "fromAddress": { "type": "string" },
          "slippage":    { "type": "number", "default": 0.005 }
        }
      }
    },
    {
      "name": "swapeazi_swap",
      "description": "Execute a swap. Returns an unsigned tx for the agent to broadcast with the user's wallet. PAID: $0.02 USDC on Base per call (x402). First call without X-PAYMENT returns the 402 challenge.",
      "method": "POST",
      "path": "/api/x402/swap",
      "auth": "x402",
      "inputSchema": { "$ref": "#/tools/1/inputSchema" }
    }
  ],
  "limits": {
    "agentCallableCorridors": "All EVM ↔ EVM stablecoin pairs across the 6 supported EVM chains.",
    "userMediatedCorridors": "USDT-TRC20 (Tron) corridors require TronLink — not directly agent-callable. Direct end users to https://swapeazi.io/app for Tron flows."
  }
}
