Skip to content

PreFlyte — DeFi Financial Intelligence for AI Agents

by preflyte.xyz · remote · no sign-in to list tools · v1.2.2 · published by xyz.preflyte

Evidence-based market data for AI agents deploying capital in DeFi. Empirical, not advertised.

Changes · 6

9 tools: 6 change things and 3 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http preflyte https://mcp.preflyte.xyz/mcp

Findings

Matches of fixed checks, with the text they matched.

1 info
  • The description is 2,247 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...ify_claim(api_key="...", claims='[{"claim_type": "supply_rate", ...}, ...]')"

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

9 tools

Changes things 6Claude Code: ask
  • assess_opportunityAssess the best DeFi opportunity for a given capital amount and strategy.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Assess the best DeFi opportunity for a given capital amount and strategy. This is the "cold start" tool — call it first to understand where your capital is viable before making any moves. One call gives you chain viability, ranked opportunities, gas impact, and an actionable recommendation. Args: api_key: Your PreFlyte API key (required). asset: Token symbol, e.g. "USDC", "WETH". action: "supply" or "borrow". position_size_usd: Capital amount in USD. strategy: One of "yield_farming", "active_trading", "idle_capital". chain: "ethereum", "arbitrum", or "any" (default: "any"). trades_per_day: For active_trading strategy only. Default 10. Returns: JSON with chain viability, ranked opportunities, gas analysis, break-even calculations, and an actionable recommendation.
  • check_entry_viabilityBefore entering a lending position, verify that the market is actually open and has capacity.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Before entering a lending position, verify that the market is actually open and has capacity. Checks market status (active, frozen, borrowing enabled), supply/borrow caps, and available liquidity. Returns a clear viable/not-viable verdict. Args: api_key: Your PreFlyte API key (required). protocol: Protocol name — "aave-v3" or "compound-v3". chain: Chain name — "ethereum" or "arbitrum". asset: Asset symbol — "USDC", "WETH", etc. action: "supply" or "borrow". amount_usd: Intended position size in USD (optional, for context). Returns: Dictionary with viable (true/false), market_status, capacity details, current rate, and confidence level.
  • check_pool_viabilityBefore swapping on Uniswap V3, check if pools have sufficient liquidity for the intended trade size.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Before swapping on Uniswap V3, check if pools have sufficient liquidity for the intended trade size. Finds all matching pools for a token pair, assesses trade impact relative to pool TVL, and recommends the best pool. Args: api_key: Your PreFlyte API key (required). chain: Chain name — "ethereum" or "arbitrum". token_pair: Token pair separated by "/" — e.g. "WETH/USDC", "WBTC/WETH". trade_size_usd: Intended swap size in USD. Returns: Dictionary with per-pool viability (TVL, trade impact, fee cost), a recommendation, and data freshness.
  • estimate_net_positionDetailed financial estimate for a specific lending position — what will I actually earn (or pay) after gas costs?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Detailed financial estimate for a specific lending position — what will I actually earn (or pay) after gas costs? Combines current live rates, gas costs, and historical computed returns to project net yield over a holding period. Args: api_key: Your PreFlyte API key (required). protocol: Protocol name — "aave-v3" or "compound-v3". chain: Chain name — "ethereum" or "arbitrum". asset: Asset symbol — "USDC", "WETH", etc. action: "supply" or "borrow". position_size_usd: Amount in USD. duration_days: Intended holding period in days. Default 30. Returns: Dictionary with position details, current snapshot, cost breakdown, projected return, historical context, and confidence level.
  • gas_timingTell agents whether now is a good or bad time to transact, based on historical gas patterns.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Tell agents whether now is a good or bad time to transact, based on historical gas patterns. Compares current gas to 24-hour and 7-day averages, identifies the cheapest hours of the day, and estimates reference transaction costs. Args: api_key: Your PreFlyte API key (required). chain: Chain name — "ethereum" or "arbitrum". Returns: Dictionary with current gas, 24h/7d context, timing assessment with cheapest hours, and reference transaction costs in USD.
  • verify_claimVerify factual claims about current DeFi market conditions.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Info

      The description is 2,247 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...ify_claim(api_key="...", claims='[{"claim_type": "supply_rate", ...}, ...]')"

      What this check looks for
    Description, as the server wrote it
    Verify factual claims about current DeFi market conditions. Supports two modes: - Single claim: provide claim_type, value, operator (and protocol/chain/asset as needed). Returns one verification result. - Batch mode: provide a JSON-encoded array in 'claims'. Each element has the same fields (claim_type, value, operator, protocol, chain, asset). Returns all results in one response. If 'claims' is provided, single-claim parameters are ignored. Args: api_key: Your PreFlyte API key (required). claim_type: What you're checking. One of: "supply_rate" — current supply APY (%) "borrow_rate" — current borrow APY (%) "price" — current token price (USD) "gas" — current base fee (gwei) "utilization" — current pool utilization (%) value: The numeric value you believe to be true. operator: Comparison operator. One of: "above" — actual must be >= value "below" — actual must be <= value "around" — actual must be within 10% of value protocol: Required for supply_rate, borrow_rate, utilization. Use "aave-v3" or "compound-v3". chain: Chain name — "ethereum" or "arbitrum". Default "ethereum". asset: Required for supply_rate, borrow_rate, price, utilization. Use token symbol like "USDC", "WETH", etc. claims: JSON-encoded array of claim objects for batch verification. Each object contains: claim_type, value, operator, and optionally protocol, chain, asset. When provided, single-claim params are ignored. Returns: Single mode: Dictionary with status (TRUE/FALSE), actual_value, claimed_value, delta, delta_pct, data_timestamp, and summary. Batch mode: Dictionary with 'mode', 'results' array, 'summary' counts, and 'verified_at' timestamp. Examples: Single: verify_claim(api_key="...", claim_type="supply_rate", value=5.0, operator="above", protocol="aave-v3", asset="USDC") Batch: verify_claim(api_key="...", claims='[{"claim_type": "supply_rate", ...}, ...]')
Only reads 3Claude Code: allow
  • get_market_snapshotGet current market snapshot for a specific lending market.No findings

    Why it is in this group

    • The name "get_market_snapshot" says "get": a word for reading.
    Description, as the server wrote it
    Get current market snapshot for a specific lending market. Returns the latest rates, risk parameters, token price, and gas price. This is the foundation of RealityCheck — giving agents ground truth about current market conditions before they act. Args: api_key: Your PreFlyte API key (required). protocol: Protocol name — "aave-v3" or "compound-v3". chain: Chain name — "ethereum" or "arbitrum". asset: Asset symbol — "USDC", "USDT", "DAI", "WETH", "WBTC", "wstETH". Returns: Dictionary with latest lending rates, risk parameters (if available), current token price, current gas price, data freshness timestamps, and rate_context (7-day averages, standard deviations, anomaly flags).
  • get_rankingGet ranked list of best DeFi lending returns, sorted by net APY.No findings

    Why it is in this group

    • The name "get_ranking" says "get": a word for reading.
    Description, as the server wrote it
    Get ranked list of best DeFi lending returns, sorted by net APY. Args: api_key: Your PreFlyte API key (required). window_days: Return window — 7, 14, 30, or 90 days. Default 7. strategy: "supply" or "borrow". Default "supply". top_n: Number of top results. Default 10, max 30. Returns: Ranked list with position number, net_apy_pct, gross_apy_pct, gas details, and data completeness scores.
  • get_returnsQuery historical DeFi lending returns from the ProfitLens engine.No findings

    Why it is in this group

    • The name "get_returns" says "get": a word for reading.
    Description, as the server wrote it
    Query historical DeFi lending returns from the ProfitLens engine. Returns real, empirically measured after-fee returns — not theoretical APY projections. Data is computed from on-chain index ratios every 30 min. Args: api_key: Your PreFlyte API key (required). chain: Filter by chain — "ethereum" or "arbitrum". Empty = all chains. protocol: Filter by protocol — "aave-v3" or "compound-v3". Empty = all. asset: Filter by asset symbol — "USDC", "WETH", etc. Empty = all. strategy: Filter by strategy — "supply" or "borrow". Empty = both. window_days: Return window — 7, 14, 30, or 90 days. Default 7. limit: Max results to return. Default 20, max 50. Returns: Dictionary with 'results' array and metadata. Each result includes: gross_apy_pct, net_apy_pct, gas_cost_pct, data_completeness_pct, chain, protocol, asset, strategy, and more.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.2.2. Values in angle brackets are yours to fill in.

claude mcp add --transport http preflyte https://mcp.preflyte.xyz/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__preflyte__get_returns",
      "mcp__preflyte__get_ranking",
      "mcp__preflyte__get_market_snapshot"
    ],
    "ask": [
      "mcp__preflyte__verify_claim",
      "mcp__preflyte__assess_opportunity",
      "mcp__preflyte__gas_timing",
      "mcp__preflyte__check_entry_viability",
      "mcp__preflyte__estimate_net_position",
      "mcp__preflyte__check_pool_viability"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as preflyte. Review it before you use it.