MCP Server

PreFlyte — DeFi Financial Intelligence for AI Agents

xyz.preflyte/preflyte

What this MCP does

Provides evidence-based DeFi lending, liquidity, gas, return, and market viability analysis for Ethereum and Arbitrum.

assess_opportunity
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.
Input schema
{'type': 'object', 'title': 'assess_opportunityArguments', 'required': ['api_key', 'asset', 'action', 'position_size_usd', 'strategy'], 'properties': {'asset': {'type': 'string', 'title': 'Asset'}, 'chain': {'type': 'string', 'title': 'Chain', 'default': 'any'}, 'action': {'type': 'string', 'title': 'Action'}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'strategy': {'type': 'string', 'title': 'Strategy'}, 'trades_per_day': {'type': 'integer', 'title': 'Trades Per Day', 'default': 10}, 'position_size_usd': {'type': 'number', 'title': 'Position Size Usd'}}}
check_entry_viability
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.
Input schema
{'type': 'object', 'title': 'check_entry_viabilityArguments', 'required': ['api_key', 'protocol', 'chain', 'asset', 'action'], 'properties': {'asset': {'type': 'string', 'title': 'Asset'}, 'chain': {'type': 'string', 'title': 'Chain'}, 'action': {'type': 'string', 'title': 'Action'}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'protocol': {'type': 'string', 'title': 'Protocol'}, 'amount_usd': {'type': 'number', 'title': 'Amount Usd', 'default': 0}}}
check_pool_viability
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.
Input schema
{'type': 'object', 'title': 'check_pool_viabilityArguments', 'required': ['api_key', 'chain', 'token_pair', 'trade_size_usd'], 'properties': {'chain': {'type': 'string', 'title': 'Chain'}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'token_pair': {'type': 'string', 'title': 'Token Pair'}, 'trade_size_usd': {'type': 'number', 'title': 'Trade Size Usd'}}}
estimate_net_position
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.
Input schema
{'type': 'object', 'title': 'estimate_net_positionArguments', 'required': ['api_key', 'protocol', 'chain', 'asset', 'action', 'position_size_usd'], 'properties': {'asset': {'type': 'string', 'title': 'Asset'}, 'chain': {'type': 'string', 'title': 'Chain'}, 'action': {'type': 'string', 'title': 'Action'}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'protocol': {'type': 'string', 'title': 'Protocol'}, 'duration_days': {'type': 'integer', 'title': 'Duration Days', 'default': 30}, 'position_size_usd': {'type': 'number', 'title': 'Position Size Usd'}}}
gas_timing
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.
Input schema
{'type': 'object', 'title': 'gas_timingArguments', 'required': ['api_key', 'chain'], 'properties': {'chain': {'type': 'string', 'title': 'Chain'}, 'api_key': {'type': 'string', 'title': 'Api Key'}}}
get_market_snapshot
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).
Input schema
{'type': 'object', 'title': 'get_market_snapshotArguments', 'required': ['api_key', 'protocol', 'chain', 'asset'], 'properties': {'asset': {'type': 'string', 'title': 'Asset'}, 'chain': {'type': 'string', 'title': 'Chain'}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'protocol': {'type': 'string', 'title': 'Protocol'}}}
get_ranking
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.
Input schema
{'type': 'object', 'title': 'get_rankingArguments', 'required': ['api_key'], 'properties': {'top_n': {'type': 'integer', 'title': 'Top N', 'default': 10}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'strategy': {'type': 'string', 'title': 'Strategy', 'default': 'supply'}, 'window_days': {'type': 'integer', 'title': 'Window Days', 'default': 7}}}
get_returns
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.
Input schema
{'type': 'object', 'title': 'get_returnsArguments', 'required': ['api_key'], 'properties': {'asset': {'type': 'string', 'title': 'Asset', 'default': ''}, 'chain': {'type': 'string', 'title': 'Chain', 'default': ''}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 20}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'protocol': {'type': 'string', 'title': 'Protocol', 'default': ''}, 'strategy': {'type': 'string', 'title': 'Strategy', 'default': ''}, 'window_days': {'type': 'integer', 'title': 'Window Days', 'default': 7}}}
verify_claim
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", ...}, ...]')
Input schema
{'type': 'object', 'title': 'verify_claimArguments', 'required': ['api_key'], 'properties': {'asset': {'type': 'string', 'title': 'Asset', 'default': ''}, 'chain': {'type': 'string', 'title': 'Chain', 'default': 'ethereum'}, 'value': {'type': 'number', 'title': 'Value', 'default': 0}, 'claims': {'type': 'string', 'title': 'Claims', 'default': ''}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'operator': {'type': 'string', 'title': 'Operator', 'default': 'above'}, 'protocol': {'type': 'string', 'title': 'Protocol', 'default': ''}, 'claim_type': {'type': 'string', 'title': 'Claim Type', 'default': ''}}}
Added
check_pool_viability
Sept. 17, 2026, 12:55 p.m.
Added
estimate_net_position
Sept. 17, 2026, 12:55 p.m.
Added
check_entry_viability
Sept. 17, 2026, 12:55 p.m.
Added
gas_timing
Sept. 17, 2026, 12:55 p.m.
Added
assess_opportunity
Sept. 17, 2026, 12:55 p.m.
Added
verify_claim
Sept. 17, 2026, 12:55 p.m.
Added
get_market_snapshot
Sept. 17, 2026, 12:55 p.m.
Added
get_ranking
Sept. 17, 2026, 12:55 p.m.
Added
get_returns
Sept. 17, 2026, 12:55 p.m.