mcp-registry/io.philidor/defi-vaults · v1.0.0
As of 2026-10-26 19:28 UTC, the Philidor Defi Vaults MCP server is up with a Glimind reliability score of 98/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 5 minutes.
Search 700+ DeFi vaults, compare risk scores, analyze protocols. No API key needed.
Point your MCP client at this streamable-http endpoint: https://mcp.philidor.io/api/mcp
7 parameter(s) across 4 tool(s) have no description.
Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
18 of 24 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 4 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fio.philidor%2Fdefi-vaults/fixes
{
"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": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"marketId",
"collateral",
"debt"
],
"properties": {
"debt": {
"type": "string",
"description": "Debt asset symbol you will borrow (e.g. USDC, USDT, GHO)."
},
"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)."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "check_policy",
"description": "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 do",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"positions",
"limits"
],
"properties": {
"issue": {
"type": "boolean",
"description": "When true, ask the API to issue a compliance attestation. Does not prepare a transaction."
},
"limits": {
"type": "object",
"properties": {
"maxSharePerAsset": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerChain": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerBridge": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerOracle": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerCluster": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerCurator": {
"type": "number",
"maximum": 1,
"exclusiveMinimum": 0
},
"maxSharePerProtocol": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerSignerSet": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
},
"maxSharePerOracleVendor": {
"$ref": "#/properties/limits/properties/maxSharePerCurator"
}
},
"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.",
"additionalProperties": false
},
"agentId": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Optional caller reference forwarded to the API. Not a wallet and not a key."
},
"positions": {
"type": "array",
"items": {
"type": "object",
"required": [
"vaultKey",
"amountUsd"
],
"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",
"description": "Position size in USD. Greater than 0.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1,
"description": "Positions to check. 1 to 100. This is not a wallet."
},
"constraints": {
"type": "object",
"properties": {
"minTier": {
"enum": [
"Prime",
"Core",
"Edge"
],
"type": "string"
},
"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
},
"maxFreshnessSeconds": {
"type": "integer",
"maximum": 31622400,
"minimum": 0
},
"requireDepositStatus": {
"type": "string",
"const": "open"
},
"requireWithdrawStatus": {
"type": "string",
"const": "open"
}
},
"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.",
"additionalProperties": false
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "compare_vaults",
"description": "Compare 2-3 DeFi vaults side-by-side on TVL, APR, risk score, risk tier, audited status, and more.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"vaults"
],
"properties": {
"vaults": {
"type": "array",
"items": {
"type": "object",
"required": [
"network",
"address"
],
"properties": {
"address": {
"type": "string",
"description": "Vault address in the chain's namespace: 0x-hex on EVM chains, base58 (case-sensitive) on Solana"
},
"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."
}
},
"additionalProperties": false
},
"maxItems": 3,
"minItems": 2,
"description": "Array of 2-3 vaults to compare"
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.philidor/defi-vaults"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.philidor/defi-vaults"}) over MCP.
check_policy ~921 tokenssearch_vaults ~484 tokenslist_markets ~347 tokenscheck_loop_venue ~284 tokensget_ondo_asset_data ~271 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.philidor%2Fdefi-vaults?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.philidor%2Fdefi-vaults?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.philidor%2Fdefi-vaults.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.philidor%2Fdefi-vaults.svg :target: https://glimind.com/server/mcp-registry%2Fio.philidor%2Fdefi-vaults?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:0993e796dedc2602…, first seen 2026-10-25, included at leaf 65113 of 75,023. Version history · verify what your client received.
Compare: most reliable finance servers · most reliable security servers · most reliable data servers · most reliable retrieval servers · most reliable other servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-26 19:28 UTC, the Philidor Defi Vaults MCP server is up with a Glimind reliability score of 98/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 5 minutes.
Philidor Defi Vaults MCP server advertises 24 tools, including check_loop_venue, check_policy, compare_vaults, explain_risk_score, find_safest_vaults.
Point your MCP client at this streamable-http endpoint: https://mcp.philidor.io/api/mcp
Glimind scanned all 24 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.