Philidor DeFi Vault Risk Analytics
Search 700+ DeFi vaults, compare risk scores, analyze protocols. No API key needed.
Should I use this
Quality & Safety
Findings (3)
- LOWin list_baskets
- LOWin list_rwa
- LOWin get_oracles
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"defi-vaults": {
"url": "https://mcp.philidor.io/api/mcp"
}
}
}Remote endpoints
https://mcp.philidor.io/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (24)
π’search_vaults(query, chain, protocol, protocolVersion, asset, ...)
Search and filter DeFi vaults by chain, protocol, asset, risk tier, TVL, and more. Returns a paginated list with risk scores and APR.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search by vault name, symbol, asset, protocol, or curator"
},
"chain": {
"type": "string",
"description": "Filter by chain name or slug (e.g. Ethereum, Base, Arbitrum, Solana)"
},
"protocol": {
"type": "string",
"description": "Filter by protocol ID: aave, morpho, spark, compound, yearn, beefy, uniswap, nest, maple, kamino. Aave V4 is protocol=aave plus protocolVersion=v4 (aave-v4 is accepted as an alias)."
},
"protocolVersion": {
"type": "string",
"description": "Filter by protocol generation: v3, v4, v3-lido, v3-horizon, klend, kvault. Required to isolate Aave V4 (protocol=aave, protocolVersion=v4). Vaults list this as protocol_version."
},
"asset": {
"type": "string",
"description": "Filter by asset symbol (e.g. USDC, WETH)"
},
"riskTier": {
"type": "string",
"description": "Filter by risk tier: Prime, Core, or Edge"
},
"minTvl": {
"type": "number",
"description": "Minimum TVL in USD"
},
"depositable": {
"type": "boolean",
"description": "Filter by current ability to accept new deposits. When true, vaults whose depositability is not yet indexed are still included; when false, only vaults whose maxDeposit on-chain is zero (caps reached, paused, or supply queue saturated) are returned."
},
"sortBy": {
"type": "string",
"description": "Sort field: tvl_usd, apr_net, name, last_synced_at"
},
"sortOrder": {
"type": "string",
"description": "Sort order: asc or desc"
},
"limit": {
"type": "number",
"description": "Max results (default 10, max 50)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_vault(id, network, address)
Get detailed information about a specific DeFi vault including risk breakdown, recent events, and historical snapshots. Lookup by ID or by network + address.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Vault ID (e.g. morpho-1-0x...)"
},
"network": {
"type": "string",
"description": "Network slug from the chain registry (e.g. ethereum, base, arbitrum, solana). /v1/chains lists slugs for chains with active vaults."
},
"address": {
"type": "string",
"description": "Vault address in the chain's namespace: 0x-hex on EVM chains, base58 (case-sensitive) on Solana"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_vault_risk_breakdown(network, address)
Get a detailed breakdown of a vault's risk vectors: Asset Composition, Platform and Strategy, Control and Governance, and History scores with sub-metrics.
Input Schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "Network slug from the chain registry (e.g. ethereum, base, arbitrum, solana). /v1/chains lists slugs for chains with active vaults."
},
"address": {
"type": "string",
"description": "Vault address in the chain's namespace: 0x-hex on EVM chains, base58 (case-sensitive) on Solana"
}
},
"required": [
"network",
"address"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_markets(protocol, version, chain, limit, sortBy)
List lending markets: the market a depositor actually picks (Aave/Spark pool, Aave V4 spoke, Compound Comet, Morpho Blue pair, or Kamino K-Lend market). Aave V4 spokes that share a liquidity hub are grouped under a composed parent (aave-v4-1-hub-global-dollar). The API still keys each market on the spoke. NOTE: this is not `get_market_overview`, which returns platform-wide totals across all vaults.
Input Schema
{
"type": "object",
"properties": {
"protocol": {
"type": "string",
"description": "Filter by protocol id: aave, spark, compound, morpho, kamino. Aave V4 is protocol=aave plus version=v4 (aave-v4 is accepted as an alias)."
},
"version": {
"type": "string",
"description": "Filter by protocol version: v3, v4, or klend. Use version=v4 with protocol=aave."
},
"chain": {
"type": [
"number",
"string"
],
"description": "Filter by chain: integer chain id (e.g. 1, 8453) or slug (e.g. ethereum, solana)"
},
"limit": {
"type": "number",
"description": "Results per page (1-100, default 20)"
},
"sortBy": {
"type": "string",
"enum": [
"total_supplied_usd",
"total_borrowed_usd",
"reserve_count",
"name"
],
"description": "Sort field (default total_supplied_usd)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_market(marketId)
Get one lending market with every reserve it contains: supplied, supply APR, borrowed, borrow APR, utilization and risk tier per reserve. Spoke ids look like aave-v4-10-etherfi-cash. Aave V4 hub parents (aave-v4-1-hub-global-dollar) are composed from the spokes that share that hub; /v1/markets does not serve those ids.
Input Schema
{
"type": "object",
"properties": {
"marketId": {
"type": "string",
"description": "Market id from list_markets. Spoke example: aave-v4-10-etherfi-cash. Hub example: aave-v4-1-hub-global-dollar."
}
},
"required": [
"marketId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_market_events(marketId, limit)
Published risk events for ONE lending market: incidents, bad debt, liquidation cascades (e.g. mass liquidations on a Morpho Blue market). Market ids look like morpho-v1-1-pt-reusd-10dec2026-usdc-91-5. Aave V4 hub ids (aave-v4-1-hub-global-dollar) union the spoke feeds. Not platform stats (get_market_overview) and not the market data itself (get_market).
Input Schema
{
"type": "object",
"properties": {
"marketId": {
"type": "string",
"description": "Market id from list_markets. Spoke or composed hub parent (aave-v4-1-hub-global-dollar)."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Max events (default 20)"
}
},
"required": [
"marketId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’check_loop_venue(marketId, collateral, debt)
Underwrite a collateral/debt loop on ONE lending market: score, tier, utilization, borrow APR, deposit status, and recent incidents for both reserves. Does not compute health factor and does not prepare txs. Call this before a protocol MCP preview_action / prepare_action. If you do not have a market id, call list_markets first (Aave V4: protocol=aave, version=v4). Examples: aave-v4-1-main, aave-v4-10-etherfi-cash, aave-v4-1-hub-global-dollar.
Input Schema
{
"type": "object",
"properties": {
"marketId": {
"type": "string",
"description": "Market id from list_markets. Spoke example: aave-v4-1-main. Hub example: aave-v4-1-hub-global-dollar."
},
"collateral": {
"type": "string",
"description": "Collateral asset symbol you will post (e.g. weETH, WETH, cbBTC)."
},
"debt": {
"type": "string",
"description": "Debt asset symbol you will borrow (e.g. USDC, USDT, GHO)."
}
},
"required": [
"marketId",
"collateral",
"debt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_ondo_assets(search, page, limit)
Search the paginated Ondo Global Markets catalog: tokenized securities, portfolios and exact issuer-reported deployments. Includes API-only and CSV-only entries, freshness and identity conflicts. This is not a list of verified risk scores.
Input Schema
{
"type": "object",
"properties": {
"search": {
"type": "string",
"maxLength": 100
},
"page": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991,
"default": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_ondo_asset(symbol)
Get an exact Ondo token: issuer market observations, portfolio constituents, source freshness and chain/address assessment links. Prices are display-only; constituents have no inferred weights or inherited ratings.
Input Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,32}$",
"description": "Exact case-sensitive Ondo token symbol, for example SPYon; obtain it from list_ondo_assets."
}
},
"required": [
"symbol"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_ondo_asset_stream(symbol)
Get latest retained Ondo display prices and minute OHLC. Preserve source/receipt ages, evaluatedAt, conflicts and collector gaps; fresh is a 120-second policy at evaluatedAt, not an execution guarantee. Missing values are not zero. This does not open an issuer subscription or supply history.
Input Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,32}$",
"description": "Exact case-sensitive Ondo token symbol, for example SPYon; obtain it from list_ondo_assets."
}
},
"required": [
"symbol"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_ondo_asset_data(symbol, interval, range)
Get Ondo OHLC, dividends, shares-multiplier history and per-chain token supply. Family availability and source clocks are explicit. Valid windows: 1min/1day, 5min/1day, 15min/1day, 1hour/1month, 4hour/1month, 12hour/3month, or 1day with 3month, 6month, 1year, all. Defaults to 1hour/1month. Underlying dividend yield is a decimal, not token distribution yield. Supply is in token units, not USD.
Input Schema
{
"type": "object",
"properties": {
"symbol": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,32}$",
"description": "Exact case-sensitive Ondo token symbol, for example SPYon; obtain it from list_ondo_assets."
},
"interval": {
"type": "string",
"enum": [
"1min",
"5min",
"15min",
"1hour",
"4hour",
"12hour",
"1day"
],
"default": "1hour"
},
"range": {
"type": "string",
"enum": [
"1day",
"1month",
"3month",
"6month",
"1year",
"all"
],
"default": "1month"
}
},
"required": [
"symbol"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_native_asset_assessment(network, identifier)
Get the current effective score and signed reviewed base score for an exact Aptos, Sui, Noble, Stellar or XRP Ledger token. Preserve identifier case. A missing assessment is not a zero score. Evidence and signatures require the callerβs own entitled Philidor API key. verified is the API assertion, not independent verification against a reviewer trust root.
Input Schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"aptos:1",
"sui:mainnet",
"cosmos:noble-1",
"stellar:pubnet",
"xrpl:0"
]
},
"identifier": {
"type": "string",
"minLength": 1,
"maxLength": 512,
"description": "Complete native token identifier, preserving case"
}
},
"required": [
"network",
"identifier"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_native_asset_financials(network, identifier)
Get public issuer financials for an exact Aptos, Sui, Noble, Stellar or XRP Ledger token. Preserve identifier case. Each metric states its unit, fund/global/deployment scope, source and freshness; null means unavailable, not zero. Fund AUM and NAV do not establish token supply, redemption capacity or reserves. Requery by refreshBy; this tool does not return a risk score or private account data.
Input Schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"aptos:1",
"sui:mainnet",
"cosmos:noble-1",
"stellar:pubnet",
"xrpl:0"
]
},
"identifier": {
"type": "string",
"minLength": 1,
"maxLength": 512,
"description": "Complete native token identifier, preserving case"
}
},
"required": [
"network",
"identifier"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}βͺcompare_vaults(vaults)
Compare 2-3 DeFi vaults side-by-side on TVL, APR, risk score, risk tier, audited status, and more.
Input Schema
{
"type": "object",
"properties": {
"vaults": {
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "Network slug from the chain registry (e.g. ethereum, base, arbitrum, solana). /v1/chains lists slugs for chains with active vaults."
},
"address": {
"type": "string",
"description": "Vault address in the chain's namespace: 0x-hex on EVM chains, base58 (case-sensitive) on Solana"
}
},
"required": [
"network",
"address"
],
"additionalProperties": false
},
"minItems": 2,
"maxItems": 3,
"description": "Array of 2-3 vaults to compare"
}
},
"required": [
"vaults"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’find_safest_vaults(asset, chain, minTvl)
Find the highest risk-scored DeFi vaults, optionally filtered by asset, chain, or minimum TVL. Returns the top 10 audited vaults sorted by Philidor risk score (higher = lower assessed risk; scores are not a safety guarantee).
Input Schema
{
"type": "object",
"properties": {
"asset": {
"type": "string",
"description": "Filter by asset symbol (e.g. USDC, WETH)"
},
"chain": {
"type": "string",
"description": "Filter by chain name or slug (e.g. Ethereum, Base, Arbitrum, Solana)"
},
"minTvl": {
"type": "number",
"description": "Minimum TVL in USD"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_protocol_info(protocolId)
Get detailed information about a DeFi protocol including TVL, vault count, versions, auditors, and security incidents.
Input Schema
{
"type": "object",
"properties": {
"protocolId": {
"type": "string",
"description": "Protocol ID: aave, morpho, spark, compound, yearn, beefy, uniswap, nest, maple, kamino. Aave V4 is listed under aave (aave-v4 is accepted as an alias)."
}
},
"required": [
"protocolId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_curator_info(curatorId)
Get detailed information about a vault curator including their managed vaults, TVL, chain distribution, and performance.
Input Schema
{
"type": "object",
"properties": {
"curatorId": {
"type": "string",
"description": "Curator ID"
}
},
"required": [
"curatorId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_market_overview
Get a high-level overview of the DeFi vault market: total TVL, vault count, risk distribution, and TVL by protocol.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}π’explain_risk_score(score)
Explain what a Philidor risk score means, including the tier (Prime/Core/Edge), how it is calculated, and what the thresholds are.
Input Schema
{
"type": "object",
"properties": {
"score": {
"type": "number",
"minimum": 0,
"maximum": 10,
"description": "Risk score (0-10) to explain"
}
},
"required": [
"score"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_vaults_with_incidents
List all vaults that had a recent critical incident (last 365 days). Critical = severity Critical or incident_severity major. Results are sorted by TVL descending, then by time since event ascending (most recent first).
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}π‘check_policy(positions, limits, constraints, issue, agentId)
State whether the positions you supply conform to the limits and constraints you supply. Calls POST /v1/graph/check and returns the API compliance attestation (attestation de conformitΓ©): compliance (compliant or non_compliant), violations, policy_hash, findings, and snapshotId. When issue is true and the API issues an attestation, the result also includes attestation_id, signerAddress, and the verification URL GET /v1/graph/attestation/{id}/verify. This states conformity with your policy. It does not recommend a vault. The same inputs produce the same result for every wallet. No Philidor policy is preselected. A missing or unknown API field is an error, never compliant. A caller without an eligible plan gets a structured refusal (required plan, x402 price, upgrade link), never an empty result. Philidor does not prepare transactions.
Input Schema
{
"type": "object",
"properties": {
"positions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vaultKey": {
"type": "string",
"pattern": "^\\d+:0x[0-9a-f]{40}$",
"description": "Vault key '{chainId}:{lowercase 0x address}', for example 1:0xabc... with 40 hex digits."
},
"amountUsd": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Position size in USD. Greater than 0."
}
},
"required": [
"vaultKey",
"amountUsd"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 100,
"description": "Positions to check. 1 to 100. This is not a wallet."
},
"limits": {
"type": "object",
"properties": {
"maxSharePerCurator": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
},
"maxSharePerProtocol": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerChain": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerAsset": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerOracle": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerOracleVendor": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerCluster": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerBridge": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerSignerSet": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
}
},
"additionalProperties": false,
"description": "Exposure caps as fractions in (0, 1]. Pass {} to set none. Omit a field to leave that dimension unconstrained. No Philidor cap is preselected."
},
"constraints": {
"type": "object",
"properties": {
"minTier": {
"type": "string",
"enum": [
"Prime",
"Core",
"Edge"
]
},
"allowlist": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d+:0x[0-9a-f]{40}$"
},
"maxItems": 1000
},
"blacklist": {
"type": "array",
"items": {
"$ref": "#/properties/constraints/properties/allowlist/items"
},
"maxItems": 1000
},
"requireDepositStatus": {
"type": "string",
"const": "open"
},
"requireWithdrawStatus": {
"type": "string",
"const": "open"
},
"maxFreshnessSeconds": {
"type": "integer",
"minimum": 0,
"maximum": 31622400
}
},
"additionalProperties": false,
"description": "Optional rules you set: minTier (Prime, Core, or Edge), allowlist and blacklist (max 1000 vault keys each; a key on both lists is not conforming because the blacklist wins), requireDepositStatus and requireWithdrawStatus (open only), maxFreshnessSeconds (integer 0 to 31622400). Omit the object to add none."
},
"issue": {
"type": "boolean",
"description": "When true, ask the API to issue a compliance attestation. Does not prepare a transaction."
},
"agentId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Optional caller reference forwarded to the API. Not a wallet and not a key."
}
},
"required": [
"positions",
"limits"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_baskets
Returns the structured access refusal for the baskets family. Does not return constituents or weights.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_rwa
Returns the structured access refusal for the rwa family. Does not return coverage.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_oracles
Returns the structured access refusal for the oracles family. Does not return freshness.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Recommended Prompts
search_vaultssearch_vaultsget_vaultget_vaultlist_marketsCommunity
Evidence