{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "category": "secrets",
    "endpoint": "https://mcp.philidor.io/api/mcp",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/philidor-defi-vaults.json",
    "kind": "mcp",
    "listed": "indexed",
    "liveUrl": "https://www.anchorterminal.com/api/v1/live/philidor-defi-vaults.json",
    "markdownUrl": "https://www.anchorterminal.com/tools/philidor-defi-vaults.md",
    "mcpTools": {
      "check": {
        "checker": "anchor-check/1.0",
        "totalTokens": 2703,
        "counts": {
          "error": 0,
          "note": 1,
          "warn": 14
        },
        "findings": [
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "check_loop_venue",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"check\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "compare_vaults",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "explain_risk_score",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"explain\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "find_safest_vaults",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"find\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_curator_info",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_market",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_market_events",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_market_overview",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_protocol_info",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_vault",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "get_vault_risk_breakdown",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "list_markets",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"list\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "list_vaults_with_incidents",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"list\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "search_vaults",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"search\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC24",
            "severity": "note",
            "message": "14 of 14 tools have no outputSchema",
            "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
          }
        ]
      },
      "checkedAt": "2026-10-04T22:25:23Z",
      "count": 14,
      "schemaTokens": 2703,
      "status": "ok",
      "tools": [
        {
          "name": "search_vaults",
          "description": "Search and filter DeFi vaults by chain, protocol, asset, risk tier, TVL, and more. Returns a paginated list with risk scores and APR.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "asset": {
                "description": "Filter by asset symbol (e.g. USDC, WETH)",
                "type": "string"
              },
              "chain": {
                "description": "Filter by chain name or slug (e.g. Ethereum, Base, Arbitrum, Solana)",
                "type": "string"
              },
              "depositable": {
                "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.",
                "type": "boolean"
              },
              "limit": {
                "description": "Max results (default 10, max 50)",
                "type": "number"
              },
              "minTvl": {
                "description": "Minimum TVL in USD",
                "type": "number"
              },
              "protocol": {
                "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).",
                "type": "string"
              },
              "protocolVersion": {
                "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.",
                "type": "string"
              },
              "query": {
                "description": "Search by vault name, symbol, asset, protocol, or curator",
                "type": "string"
              },
              "riskTier": {
                "description": "Filter by risk tier: Prime, Core, or Edge",
                "type": "string"
              },
              "sortBy": {
                "description": "Sort field: tvl_usd, apr_net, name, last_synced_at",
                "type": "string"
              },
              "sortOrder": {
                "description": "Sort order: asc or desc",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        {
          "name": "get_vault",
          "description": "Get detailed information about a specific DeFi vault including risk breakdown, recent events, and historical snapshots. Lookup by ID or by network + address.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "address": {
                "description": "Vault address in the chain's namespace: 0x-hex on EVM chains, base58 (case-sensitive) on Solana",
                "type": "string"
              },
              "id": {
                "description": "Vault ID (e.g. morpho-1-0x...)",
                "type": "string"
              },
              "network": {
                "description": "Network slug from the chain registry (e.g. ethereum, base, arbitrum, solana). /v1/chains lists slugs for chains with active vaults.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        {
          "name": "get_vault_risk_breakdown",
          "description": "Get a detailed breakdown of a vault's risk vectors: Asset Composition, Platform and Strategy, Control and Governance, and History scores with sub-metrics.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "address": {
                "description": "Vault address in the chain's namespace: 0x-hex on EVM chains, base58 (case-sensitive) on Solana",
                "type": "string"
              },
              "network": {
                "description": "Network slug from the chain registry (e.g. ethereum, base, arbitrum, solana). /v1/chains lists slugs for chains with active vaults.",
                "type": "string"
              }
            },
            "required": [
              "network",
              "address"
            ],
            "type": "object"
          }
        },
        {
          "name": "list_markets",
          "description": "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.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "chain": {
                "description": "Filter by chain: integer chain id (e.g. 1, 8453) or slug (e.g. ethereum, solana)",
                "type": [
                  "number",
                  "string"
                ]
              },
              "limit": {
                "description": "Results per page (1-100, default 20)",
                "type": "number"
              },
              "protocol": {
                "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).",
                "type": "string"
              },
              "sortBy": {
                "description": "Sort field (default total_supplied_usd)",
                "enum": [
                  "total_supplied_usd",
                  "total_borrowed_usd",
                  "reserve_count",
                  "name"
                ],
                "type": "string"
              },
              "version": {
                "description": "Filter by protocol version: v3, v4, or klend. Use version=v4 with protocol=aave.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        {
          "name": "get_market",
          "description": "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.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "marketId": {
                "description": "Market id from list_markets. Spoke example: aave-v4-10-etherfi-cash. Hub example: aave-v4-1-hub-global-dollar.",
                "type": "string"
              }
            },
            "required": [
              "marketId"
            ],
            "type": "object"
          }
        },
        {
          "name": "get_market_events",
          "description": "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).",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "limit": {
                "description": "Max events (default 20)",
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              },
              "marketId": {
                "description": "Market id from list_markets. Spoke or composed hub parent (aave-v4-1-hub-global-dollar).",
                "type": "string"
              }
            },
            "required": [
              "marketId"
            ],
            "type": "object"
          }
        },
        {
          "name": "check_loop_venue",
          "description": "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.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "collateral": {
                "description": "Collateral asset symbol you will post (e.g. weETH, WETH, cbBTC).",
                "type": "string"
              },
              "debt": {
                "description": "Debt asset symbol you will borrow (e.g. USDC, USDT, GHO).",
                "type": "string"
              },
              "marketId": {
                "description": "Market id from list_markets. Spoke example: aave-v4-1-main. Hub example: aave-v4-1-hub-global-dollar.",
                "type": "string"
              }
            },
            "required": [
              "marketId",
              "collateral",
              "debt"
            ],
            "type": "object"
          }
        },
        {
          "name": "compare_vaults",
          "description": "Compare 2-3 DeFi vaults side-by-side on TVL, APR, risk score, risk tier, audited status, and more.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "vaults": {
                "description": "Array of 2-3 vaults to compare",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "Vault address in the chain's namespace: 0x-hex on EVM chains, base58 (case-sensitive) on Solana",
                      "type": "string"
                    },
                    "network": {
                      "description": "Network slug from the chain registry (e.g. ethereum, base, arbitrum, solana). /v1/chains lists slugs for chains with active vaults.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "network",
                    "address"
                  ],
                  "type": "object"
                },
                "maxItems": 3,
                "minItems": 2,
                "type": "array"
              }
            },
            "required": [
              "vaults"
            ],
            "type": "object"
          }
        },
        {
          "name": "find_safest_vaults",
          "description": "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).",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "asset": {
                "description": "Filter by asset symbol (e.g. USDC, WETH)",
                "type": "string"
              },
              "chain": {
                "description": "Filter by chain name or slug (e.g. Ethereum, Base, Arbitrum, Solana)",
                "type": "string"
              },
              "minTvl": {
                "description": "Minimum TVL in USD",
                "type": "number"
              }
            },
            "type": "object"
          }
        },
        {
          "name": "get_protocol_info",
          "description": "Get detailed information about a DeFi protocol including TVL, vault count, versions, auditors, and security incidents.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "protocolId": {
                "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).",
                "type": "string"
              }
            },
            "required": [
              "protocolId"
            ],
            "type": "object"
          }
        },
        {
          "name": "get_curator_info",
          "description": "Get detailed information about a vault curator including their managed vaults, TVL, chain distribution, and performance.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "curatorId": {
                "description": "Curator ID",
                "type": "string"
              }
            },
            "required": [
              "curatorId"
            ],
            "type": "object"
          }
        },
        {
          "name": "get_market_overview",
          "description": "Get a high-level overview of the DeFi vault market: total TVL, vault count, risk distribution, and TVL by protocol.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {},
            "type": "object"
          }
        },
        {
          "name": "explain_risk_score",
          "description": "Explain what a Philidor risk score means, including the tier (Prime/Core/Edge), how it is calculated, and what the thresholds are.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "score": {
                "description": "Risk score (0-10) to explain",
                "maximum": 10,
                "minimum": 0,
                "type": "number"
              }
            },
            "required": [
              "score"
            ],
            "type": "object"
          }
        },
        {
          "name": "list_vaults_with_incidents",
          "description": "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).",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {},
            "type": "object"
          }
        }
      ]
    },
    "name": "Philidor DeFi Vault Risk Analytics",
    "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
    "packages": null,
    "pageJsonUrl": "https://www.anchorterminal.com/tools/philidor-defi-vaults.json",
    "popularity": {
      "githubStars": 5
    },
    "registryName": "io.philidor/defi-vaults",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://mcp.philidor.io/api/mcp"
      }
    ],
    "repository": "https://github.com/Philidor-Labs/philidor-mcp",
    "reviewed": false,
    "slug": "philidor-defi-vaults",
    "source": "the official MCP registry",
    "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.philidor/defi-vaults",
    "summary": "Search 700+ DeFi vaults, compare risk scores, analyze protocols. No API key needed.",
    "updatedAt": "2026-02-27T13:41:19Z",
    "url": "https://www.anchorterminal.com/tools/philidor-defi-vaults",
    "vendor": "philidor.io",
    "vendorUrl": "https://philidor.io",
    "version": "1.0.0",
    "websiteUrl": "",
    "where": "hosted",
    "why": [
      "vendor"
    ]
  }
}
