{
  "name": "Motiv MCP Fleet",
  "slug": "motiv-mcp-fleet",
  "description": "Production-grade utilities, crypto price data, DeFi analytics, and on-chain security tools for AI agents building Web3 workflows on Base L2.",
  "toolCount": 33,
  "tools": [
    {
      "name": "token_count",
      "description": "Estimate token count for text before sending to an LLM. Returns { tokens, words, chars }.",
      "price": 0.001
    },
    {
      "name": "hash",
      "description": "Hash input data with SHA-256 (default), MD5, or SHA-512. params.algorithm optional.",
      "price": 0.001
    },
    {
      "name": "regex_extract",
      "description": "Apply a regex pattern to text and return all matches as JSON. params.pattern required.",
      "price": 0.002
    },
    {
      "name": "format_conversion",
      "description": "Convert data between formats. params.from / params.to: csv | json",
      "price": 0.003
    },
    {
      "name": "diff",
      "description": "Compute structural diff between two JSON objects or line diff between two texts. params.target required.",
      "price": 0.005
    },
    {
      "name": "crypto_price",
      "description": "Get current price for one or more coins via CoinGecko. prompt: comma-separated coin ids. params.currency: vs_currency (default: usd).",
      "price": 0.01
    },
    {
      "name": "currency_conversion",
      "description": "Convert between fiat currencies via Frankfurter API. params.from, params.to, params.amount required.",
      "price": 0.01
    },
    {
      "name": "url_fetch",
      "description": "Fetch the text content of a URL (capped at 16 KB). prompt: URL.",
      "price": 0.02
    },
    {
      "name": "ip_geolocation",
      "description": "Resolve an IP address to country, region, city, and ISP. prompt: IP address.",
      "price": 0.01
    },
    {
      "name": "dns_lookup",
      "description": "Resolve DNS records for a hostname. prompt: hostname. params.type: A | AAAA | MX | TXT | CNAME (default: A).",
      "price": 0.005
    },
    {
      "name": "weather",
      "description": "Current weather for a city name or lat,lon coordinates. params.units: celsius | fahrenheit. Powered by Open-Meteo.",
      "price": 0.01
    },
    {
      "name": "timezone",
      "description": "Current date/time and UTC offset for an IANA timezone (e.g. Europe/London) or 'ip' for caller detection.",
      "price": 0.005
    },
    {
      "name": "country_info",
      "description": "Country data by name or ISO 3166-1 alpha-2 code. Returns capital, population, currencies, languages, flag.",
      "price": 0.005
    },
    {
      "name": "wikipedia_summary",
      "description": "Wikipedia article summary by title. params.lang: language code (default: en).",
      "price": 0.015
    },
    {
      "name": "grammar_check",
      "description": "Check text for grammar and spelling errors via LanguageTool. params.language: BCP47 code (default: en-US).",
      "price": 0.03
    },
    {
      "name": "qr_code",
      "description": "Generate a QR code image URL for any text or URL. params.size: WxH in pixels (default: 200x200).",
      "price": 0.01
    },
    {
      "name": "output_validate",
      "description": "Validate JSON output against a JSON Schema definition. params.schema required. Returns { valid, errors[] }.",
      "price": 0.01
    },
    {
      "name": "result_checksum",
      "description": "Compute a deterministic checksum of any text or JSON. JSON is key-sorted before hashing. params.algorithm: sha256 | sha512 | sha384 (default: sha256). params.normalize: boolean (default: true).",
      "price": 0.002
    },
    {
      "name": "diff_audit",
      "description": "Compare before/after JSON states and audit changes against expected change descriptors. params.after (JSON string) required. params.expected: array of { path, op } descriptors optional.",
      "price": 0.015
    },
    {
      "name": "escrow_sign",
      "description": "Sign an EIP-712 work attestation for on-chain escrow release. params.taskId, params.clientAgent (address), params.verdict (approved|rejected) required. Requires BOT_PRIVATE_KEY env var.",
      "price": 0.05
    },
    {
      "name": "gas_prediction",
      "description": "Predict next-block gas price on Base L2 with confidence interval. Analyzes recent block fee history via eth_feeHistory. prompt = empty string or JSON {blocks?:number} to control lookback window (default 20). Returns baseFee, priorityFee percentiles, and suggested maxFee.",
      "price": 0.02
    },
    {
      "name": "whale_tracker",
      "description": "Detect large ERC-20 token transfers above a USD threshold in recent blocks. prompt = JSON {token: '0x...', thresholdUsd?: number, blocks?: number}. Default threshold $50,000, default lookback 100 blocks. Returns list of transfers with from/to/amount/usdValue.",
      "price": 0.08
    },
    {
      "name": "dex_liquidity_depth",
      "description": "Real-time liquidity depth for a token pair across Uniswap V3 and Aerodrome on Base. prompt = JSON {tokenA: '0x...', tokenB: '0x...'}. Returns pool addresses, current price, TVL estimate, and pool-count per DEX.",
      "price": 0.12
    },
    {
      "name": "arb_opportunity",
      "description": "Detect cross-DEX price divergence between Uniswap V3 and Aerodrome for a token pair on Base. prompt = JSON {tokenA: '0x...', tokenB: '0x...', amountIn?: number}. Returns best-bid/ask across pools and estimated profit in USD.",
      "price": 0.15
    },
    {
      "name": "mev_risk_score",
      "description": "Estimate sandwich attack probability for a swap given pool liquidity and trade size. prompt = JSON {tokenIn: '0x...', tokenOut: '0x...', amountUsd: number}. Returns risk score 0-100, price impact %, and recommended slippage tolerance.",
      "price": 0.1
    },
    {
      "name": "token_audit",
      "description": "Full ERC-20 token safety audit via GoPlus Security API. Detects honeypots, hidden mint functions, blacklists, dangerous tax rates, and ownership risks. prompt = token address (0x...). Optional: params.chainId (default: 8453).",
      "price": 0.2
    },
    {
      "name": "contract_scan",
      "description": "Scan a contract address for dangerous patterns: proxy architecture, dangerous owner privileges, open-source verification status, and bytecode-level risk signals. prompt = contract address (0x...). Optional: params.chainId (default: 8453). Requires ETHERSCAN_API_KEY env for source verification.",
      "price": 0.25
    },
    {
      "name": "liquidity_check",
      "description": "Verify LP lock status and rug-pull risk for a token. Checks LP holder concentration, known locker contracts, and DeFiLlama TVL data. prompt = token address (0x...). Optional: params.chainId (default: 8453).",
      "price": 0.18
    },
    {
      "name": "simulation_check",
      "description": "Simulate a transaction and detect unexpected state changes. Requires TENDERLY_API_KEY + TENDERLY_PROJECT env vars. prompt = JSON with {from, to, data, value?}. Returns simulated success/failure, gas used, and state diffs.",
      "price": 0.3
    },
    {
      "name": "yield_scan",
      "description": "Scan current supply APY across Aave v3, Moonwell, and Compound v3 on Base. prompt = JSON array of asset symbols to scan, e.g. [\"USDC\",\"WETH\"] — or empty string for all. Optional: params.chainId (default: 8453).",
      "price": 0.15
    },
    {
      "name": "risk_monitor",
      "description": "Monitor Aave v3 account health on Base. Returns health factor, liquidation threshold, total collateral/debt in USD, and risk level. prompt = wallet address (0x...). Optional: params.chainId (default: 8453).",
      "price": 0.12
    },
    {
      "name": "allocate_strategy",
      "description": "Generate a risk-adjusted yield allocation strategy using live APY data and LLM reasoning. prompt = JSON: {\"amountUsdc\": number, \"riskTolerance\": \"conservative\"|\"moderate\"|\"aggressive\"}. Requires OPENROUTER_API_KEY.",
      "price": 0.4
    },
    {
      "name": "rebalance_tx",
      "description": "Build unsigned transaction calldata for depositing into DeFi protocols on Base. Returns approve + supply tx objects ready for wallet submission. prompt = JSON: {\"wallet\": \"0x...\", \"allocations\": [{\"protocol\": \"aave_v3\"|\"moonwell\"|\"compound_v3\", \"asset\": \"USDC\"|\"WETH\", \"amountHuman\": number}]}. Does NOT submit transactions.",
      "price": 0.25
    }
  ],
  "mcpUrl": "https://motiv-mcp-fleet.mcp.xpay.sh/mcp",
  "portal": "https://motiv-mcp-fleet.on.xpay.sh",
  "llmsTxt": "https://motiv-mcp-fleet.mcp.xpay.sh/llms.txt",
  "status": "active",
  "isPlatform": false
}