Philidor MCP Server
Summary: This MCP server provides read-only DeFi vault analytics — searching, comparing, and risk-scoring 700+ vaults across Morpho, Aave, Yearn, Beefy, and others — with no API key required.
Search vaults (
search_vaults) — filter by query, chain, protocol, asset, risk tier, min TVL, and sort by TVL/APR/name; paginated up to 50 resultsInspect a vault (
get_vault) — full details by ID or network + address, including risk breakdown, recent events, and historical snapshotsDecompose risk (
get_vault_risk_breakdown) — sub-metric scores for Asset Composition, Platform Code, and Governance vectorsCompare vaults (
compare_vaults) — side-by-side view of 2–3 vaults on TVL, APR, risk score, tier, and audit statusFind safest vaults (
find_safest_vaults) — top 10 audited vaults by risk score, filterable by asset, chain, or min TVLResearch protocols (
get_protocol_info) — TVL, vault count, versions, auditors, bug bounties, and security incidentsResearch curators (
get_curator_info) — managed vaults, TVL, chain distribution, and performance metricsMarket overview (
get_market_overview) — aggregate TVL, vault count, risk distribution, and TVL by protocolExplain scoring (
explain_risk_score) — interpret a 0–10 score with its tier (Prime/Core/Edge) and thresholds
Note: the README advertises 14 tools, 3 resources, and 4 prompts (including lending-market and loop-venue tools like list_markets, check_loop_venue, and list_vaults_with_incidents), but the supplied schema lists only these 9 vault/protocol research tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Philidor MCP ServerFind the safest USDC vaults on Ethereum with at least $10M TVL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Philidor MCP Server
DeFi vault risk analytics for AI agents
Search 700+ DeFi vaults across Morpho, Aave, Yearn, Beefy, and Spark. Compare risk scores, analyze protocols, run due diligence — all through natural language.
No API key required. No installation needed.
Quick Start • Cursor Plugin • Tools • Example Prompts • Risk Framework • Agent Skill
Why Philidor?
Most DeFi data tools give you raw numbers. Philidor gives your AI agent institutional-grade risk intelligence.
Feature | Philidor | DefiLlama MCP | Generic DeFi APIs |
Vault risk scores (0–10) | :white_check_mark: | :x: | :x: |
Risk vector decomposition | :white_check_mark: | :x: | :x: |
Vault comparison | :white_check_mark: | :x: | :x: |
Curator intelligence | :white_check_mark: | :x: | :x: |
Protocol security history | :white_check_mark: | :x: | Partial |
Due diligence prompts | :white_check_mark: | :x: | :x: |
Portfolio risk assessment | :white_check_mark: | :x: | :x: |
No API key needed | :white_check_mark: | :white_check_mark: | Varies |
Hosted (zero install) | :white_check_mark: | :x: | :x: |
Related MCP server: quiver-risk-brain
Quick Start
Remote Server (Recommended)
Connect directly to the hosted server — zero installation, always up to date:
https://mcp.philidor.io/api/mcpClaude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"philidor": {
"url": "https://mcp.philidor.io/api/mcp"
}
}
}Claude Code
claude mcp add philidor --transport http https://mcp.philidor.io/api/mcpCursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"philidor": {
"url": "https://mcp.philidor.io/api/mcp"
}
}
}Windsurf
Add to your MCP settings:
{
"mcpServers": {
"philidor": {
"serverUrl": "https://mcp.philidor.io/api/mcp"
}
}
}Docker (stdio)
docker run -i --rm ghcr.io/philidor-labs/philidor-mcpLocal (stdio)
git clone https://github.com/Philidor-Labs/philidor-mcp.git
cd philidor-mcp
npm install
npm startTools
14 tools for vault discovery, risk analysis, lending markets, loop venue checks, and protocol research.
search_vaults
Search and filter DeFi vaults by chain, protocol, asset, risk tier, TVL, and more.
Parameter | Type | Description |
| string | Search by vault name, symbol, asset, protocol, or curator |
| string | Filter by chain name or slug (Ethereum, Base, Solana, ...) |
| string | Protocol ID: |
| string | Generation filter ( |
| string | Filter by asset symbol (USDC, WETH, ...) |
| string | Filter by risk tier: Prime, Core, or Edge |
| number | Minimum TVL in USD |
| boolean | Filter by current deposit capacity |
| string | Sort field: tvl_usd, apr_net, name, last_synced_at |
| string | Sort order: asc or desc |
| number | Max results (default 10, max 50) |
get_vault
Get detailed information about a specific vault including risk breakdown, recent events, and historical snapshots. Lookup by id or by network + address.
Parameter | Type | Description |
| string | Vault ID (e.g. |
| string | Network slug (ethereum, base, arbitrum, solana) |
| string | Vault address ( |
get_vault_risk_breakdown
Detailed breakdown of a vault's four risk vectors: Asset Composition, Platform and Strategy, Control and Governance, and History.
Parameter | Type | Description |
| string | Network slug |
| string | Vault address |
list_markets
List lending markets (Aave/Spark pools, Aave V4 spokes, Compound Comet, Morpho Blue pairs, Kamino K-Lend). Aave V4 spokes that share a liquidity hub are grouped under composed hub parents (e.g. aave-v4-1-hub-core).
Parameter | Type | Description |
| string |
|
| string |
|
| number/string | Chain id or slug |
| number | 1–100 (default 20) |
| string |
|
get_market
One market with every reserve (supplied, supply APR, borrowed, borrow APR, utilization, tier). Accepts spoke ids and composed hub ids.
Parameter | Type | Description |
| string | Market id from |
get_market_events
Published risk events for one lending market. Hub ids union spoke feeds.
Parameter | Type | Description |
| string | Market id from |
| number | 1–100 (default 20) |
check_loop_venue
Underwrite a collateral/debt loop on one market: score, tier, utilization, borrow APR, deposit status, and recent incidents for both legs. Does not compute health factor and does not prepare transactions.
Parameter | Type | Description |
| string | Market id from |
| string | Collateral asset symbol |
| string | Debt asset symbol |
compare_vaults
Side-by-side comparison of 2–3 vaults on TVL, APR, risk score, risk tier, and audit status.
Parameter | Type | Description |
| array | Array of 2–3 objects with |
find_safest_vaults
Find the top 10 audited vaults sorted by Philidor risk score (higher = lower assessed risk; not a safety guarantee).
Parameter | Type | Description |
| string | Filter by asset symbol |
| string | Filter by chain name |
| number | Minimum TVL in USD |
get_protocol_info
Protocol details including TVL, vault count, versions, auditors, bug bounties, and security incidents.
Parameter | Type | Description |
| string | Protocol ID ( |
get_curator_info
Curator details including managed vaults, TVL, chain distribution, and performance metrics.
Parameter | Type | Description |
| string | Curator ID |
get_market_overview
High-level DeFi vault market statistics: total TVL, vault count, risk distribution, and TVL by protocol. No parameters required.
explain_risk_score
Explain what a specific risk score means, including the tier, calculation method, and thresholds.
Parameter | Type | Description |
| number | Risk score (0–10) |
list_vaults_with_incidents
List all vaults that had a recent critical incident (last 365 days). Sorted by TVL descending, then by recency. No parameters required.
Resources
URI | Description |
| The Vector Risk Framework v4.1 documentation |
| Supported blockchain networks with vault counts |
| Supported DeFi protocols with TVL data |
Prompts
Prompt | Description |
| Comprehensive due diligence report for a vault |
| Portfolio-level risk analysis across positions |
| Yield comparison with risk-adjusted analysis |
| Loop venue review, then hand off to a protocol MCP |
Example Prompts
Once connected, try asking your AI assistant:
Discovery
"Find the safest USDC vaults with at least $10M TVL"
"What Morpho vaults are available on Base?"
"Show me the DeFi market overview"
Analysis
"Run due diligence on the Steakhouse USDC vault on Ethereum"
"Compare the top 3 USDC vaults by risk score"
"What's the risk breakdown for this vault: ethereum/0x..."
Portfolio
"Assess my portfolio: 50% in Morpho Steakhouse USDC, 30% in Aave USDC, 20% in Yearn USDC"
"Which protocols have had security incidents?"
"What does a risk score of 8.5 mean?"
Risk Scoring
Philidor uses the Vector Risk Framework v4.1 to decompose vault risk into three measurable vectors:
Final Score = 40% Asset + 40% Platform + 20% GovernanceAsset Composition (40%)
Quality of underlying collateral. Blue-chip assets (ETH, USDC) score highest. Factors include oracle reliability, liquidity depth, and peg stability.
Platform Code (40%)
Code maturity measured by:
Lindy Score — time-based safety (>2 years ≈ 9/10)
Audit Density — number and quality of audits
Dependency Risk — multiplicative penalties for risky dependencies
Incident Penalty — caps score after security incidents
Governance (20%)
Exit window for users:
Control | Score |
Immutable contract | 10/10 |
7+ day timelock | 9/10 |
No timelock | 1/10 |
Risk Tiers
Tier | Score | Meaning |
Prime | 8.0–10.0 | Institutional-grade — mature code, multiple audits, safe governance |
Core | 5.0–7.9 | Moderate safety — audited but newer or flexible governance |
Edge | 0.0–4.9 | Higher risk — requires careful due diligence |
Architecture
┌──────────────────┐ ┌─────────────────┐ ┌──────────────┐
│ Claude / Cursor │────▶│ Philidor MCP │────▶│ Philidor API │
│ Windsurf / etc. │◀────│ Server │◀────│ │
└──────────────────┘ └─────────────────┘ └──────┬───────┘
14 tools, 3 resources, │
4 prompts │
┌────▼────┐
│ On-chain │
│ data │
└─────────┘Transport: Streamable HTTP (remote) or stdio (local/Docker)
API: Calls the Philidor Public API — no API key needed
Stateless: Fresh server instance per request, no session state
Data: 700+ vaults across Ethereum, Base, Arbitrum, Polygon, Optimism, and Avalanche
Cursor Marketplace Plugin
This repository packages a Cursor plugin that connects the agent to the hosted Philidor MCP server and loads five workflow skills. The plugin does not embed an API key. Philidor stays read-only: it scores vaults and lending venues, and it does not compute a health factor or prepare a transaction.
The plugin points at the hosted server, which is ahead of the stdio server in this repo:
https://mcp.philidor.io/api/mcpTransport is Streamable HTTP. A live initialize plus tools/list against that URL returns 14 tools, 3 resources (philidor://methodology, philidor://supported-chains, philidor://supported-protocols), and 4 prompts (vault_due_diligence, portfolio_risk_assessment, defi_yield_comparison, review_loop_venue). src/server.ts registers the same 14 tools.
Piece | Path |
Manifest |
|
Marketplace index |
|
MCP connector |
|
Logo |
|
Skills |
|
Product page: philidor.io/mcp. Docs: MCP server, quickstart, tools, resources, prompts.
Install
After the plugin is listed, open Customize in Cursor, find Philidor, and choose Install (project or user scope). That loads the skills and the hosted MCP server together.
Until then, connect the same server without the plugin by adding this to .cursor/mcp.json:
{
"mcpServers": {
"philidor": {
"url": "https://mcp.philidor.io/api/mcp"
}
}
}To try the plugin from a local checkout, copy this repo to ~/.cursor/plugins/local/philidor (the folder must contain .cursor-plugin/plugin.json), then run Developer: Reload Window and confirm the skills and MCP server under Customize. Local plugin imports have to be allowed. A marketplace plugin with the same name takes precedence over the local copy.
Example prompts
"Run due diligence on the Gauntlet USDC vault on Ethereum."
"Which Prime USDC vaults on Ethereum still accept deposits, and how do their scores compare to APR?"
"Check looping weETH against USDC on Aave V4 Ethereum Main before I borrow."
"List the largest Aave V4 markets by supplied value and any recent events on the one I pick."
"Which vaults had a critical incident in the last year?"
"I need basket constituents and the oracle freshness feed. Is that on the free MCP or the API?"
Skills tell the agent to copy vault ids, network slugs, addresses, and market ids from tool results, and not to invent risk numbers. Loop checks call check_loop_venue, then stop. Health factor and unsigned transactions belong to the protocol MCP (Aave is https://mcp.aave.com). Baskets, oracle vectors, enriched assets, the event stream, and Risk Graph look-through are outside the free MCP. The philidor-api-handoff skill sends those questions to API Access and Plans and pricing without quoting a price.
Submission checklist
Do not submit from this fork until a reviewer accepts the pull request. Listing is a manual review at cursor.com/marketplace/publish. The repository must be public. Cursor reviews the open-source tree and each later update.
.cursor-plugin/plugin.jsonparses and matches the plugin schema (namephilidor, lowercase kebab-case)descriptionstates that the plugin is read-only vault and market risk analyticsmcp.jsonis the only MCP connector and has no auth headerEach skill directory has a
SKILL.mdwhosenamematches the folder and whosedescriptionsays when to use itassets/logo.svgis committed andlogois the relative pathassets/logo.svgManifest paths are relative and exist (
skills/...,./mcp.json). No.., no absolute pathsNo
${VAR}placeholders, sovariablesstays unsetREADME (this section) documents install and example prompts
Live check:
initializeandtools/listagainsthttps://mcp.philidor.io/api/mcpstill succeedTried locally from
~/.cursor/plugins/local/philidor(Customize shows 5 skills and the Philidor MCP server)Submit the public GitHub URL at cursor.com/marketplace/publish. This repo is a single plugin indexed by
.cursor-plugin/marketplace.jsonwithsource"."
Agent Skill
Install the Philidor MCP skill into your coding agent via skills.sh:
npx skills add philidor-labs/philidor-mcpThis gives your agent full knowledge of all tools, resources, prompts, recommended workflows, and best practices for DeFi vault analysis.
Also Available
Interface | Description | Link |
CLI | Terminal-based vault intelligence — scriptable, pipeable, agent-sandboxed | |
OpenClaw Skill | Skill definition for the OpenClaw agent platform |
Supported Protocols
Morpho, Aave (v3/v4), Spark, Compound, Yearn, Beefy, Uniswap, Nest, Maple, Kamino — with more being added regularly.
See the full list at app.philidor.io.
Development
git clone https://github.com/Philidor-Labs/philidor-mcp.git
cd philidor-mcp
npm install
npm startThe server connects to the public Philidor API by default. To use a custom endpoint:
PHILIDOR_API_URL=http://localhost:3003 npm startLinks
Philidor MCP landing — hosted server overview
MCP docs — tools, resources, and prompts
Philidor Analytics — explore vaults and risk scores
Philidor CLI — terminal-based vault intelligence
API Documentation — OpenAPI/Swagger docs
Risk Methodology — how scores are calculated
Smithery — MCP server registry
Twitter — updates and announcements
License
Available Tools
9 toolscompare_vaultsAInspect
Compare 2-3 DeFi vaults side-by-side on TVL, APR, risk score, risk tier, audited status, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| vaults | Yes | Array of 2-3 vaults to compare |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose whether this is a read-only operation, if it requires authentication, rate limits, or what happens with invalid inputs. The phrase 'and more' is vague about additional metrics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys purpose and key comparison metrics. No wasted words, and the structure is front-loaded with the core action ('compare 2-3 DeFi vaults').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a comparison tool with no annotations and no output schema, the description adequately covers what metrics are compared but lacks details about return format, error handling, or behavioral constraints. The schema provides good parameter coverage, but overall completeness is moderate given the missing behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the 'vaults' parameter structure. The description adds no parameter-specific information beyond implying 2-3 vaults, which is already in the schema's minItems/maxItems. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('compare') and resources ('2-3 DeFi vaults'), listing the exact comparison metrics (TVL, APR, risk score, etc.). It distinguishes from siblings like 'get_vault' (single vault) or 'find_safest_vaults' (different objective).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for side-by-side comparison of specific metrics, but doesn't explicitly state when to use this tool versus alternatives like 'search_vaults' for broader discovery or 'get_vault_risk_breakdown' for detailed risk analysis. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_risk_scoreAInspect
Explain what a Philidor risk score means, including the tier (Prime/Core/Edge), how it is calculated, and what the thresholds are.
| Name | Required | Description | Default |
|---|---|---|---|
| score | Yes | Risk score (0-10) to explain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It transparently states the tool provides an explanation including tier, calculation, and thresholds, with no hidden side effects. It could be more explicit about being read-only, but the behavior is clearly non-mutating and straightforward.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's purpose and the key aspects it covers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter schema and absence of an output schema, the description is largely complete. It details what the explanation will include, though it does not specify the return format (e.g., text or object), which could be inferred from the tool's nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single parameter 'score' with a clear description ('Risk score (0-10) to explain'). The description does not add extra meaning beyond what the schema provides, which justifies the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: explaining what a Philidor risk score means, covering the tier, calculation, and thresholds. This is a specific verb+resource combination that distinguishes it from sibling tools like get_vault_risk_breakdown, which likely focuses on a specific vault's breakdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an agent needs to understand the risk score system rather than retrieve data about specific vaults. It clearly indicates the context but does not explicitly mention when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_safest_vaultsAInspect
Find the safest (highest risk-scored) DeFi vaults, optionally filtered by asset, chain, or minimum TVL. Returns top 10 audited, high-confidence vaults sorted by risk score.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Filter by asset symbol (e.g. USDC, WETH) | |
| chain | No | Filter by chain name (e.g. Ethereum, Base) | |
| minTvl | No | Minimum TVL in USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: the tool returns a limited set ('top 10'), includes quality criteria ('audited, high-confidence'), and sorts by 'risk score'. However, it does not cover aspects like rate limits, authentication needs, error handling, or whether the operation is read-only or has side effects, leaving gaps for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and efficiently lists optional filters and output details in a single, well-structured sentence. Every element (e.g., 'top 10', 'audited', 'sorted by risk score') serves a clear purpose without redundancy, making it concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description partially compensates by specifying the return format ('top 10 audited, high-confidence vaults sorted by risk score'). However, it lacks details on output structure, error cases, or behavioral constraints like pagination or rate limits. For a tool with 3 parameters and no structured support, it is adequate but has clear gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (asset, chain, minTvl) with descriptions. The description adds minimal value by mentioning these filters as optional but does not provide additional semantics, syntax, or format details beyond what the schema provides. Baseline 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Find'), resource ('safest DeFi vaults'), and scope ('highest risk-scored'), distinguishing it from siblings like 'search_vaults' or 'get_vault' by emphasizing risk-based filtering and ranking. It explicitly mentions the output criteria ('top 10 audited, high-confidence vaults sorted by risk score'), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage by specifying optional filters (asset, chain, minTvl) and the focus on risk-scored vaults, but it does not explicitly state when to use this tool versus alternatives like 'search_vaults' or 'compare_vaults'. It implies usage for finding high-risk-scored vaults but lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_curator_infoAInspect
Get detailed information about a vault curator including their managed vaults, TVL, chain distribution, and performance.
| Name | Required | Description | Default |
|---|---|---|---|
| curatorId | Yes | Curator ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose the informational content (managed vaults, TVL, etc.), which is helpful, but it does not explicitly state that this is a read-only operation, potential error scenarios, or any rate or permission requirements. The behavior is mostly implicit for a 'get' tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action ('Get detailed information') and efficiently lists the key data categories. Every word adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and no output schema, the description adequately covers the main purpose and data categories. It could be more complete by mentioning the return format or error handling, but given the low complexity and high schema coverage, it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the parameter 'curatorId' described as 'Curator ID'. The tool description adds no further semantic detail beyond the schema about how to obtain or format the ID. Baseline 3 is appropriate since the schema already covers the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed information about a vault curator, and lists specific content areas (managed vaults, TVL, chain distribution, performance). This distinguishes it from sibling tools like get_vault or get_protocol_info, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when curator-level information is needed, but it does not explicitly state when to use this tool versus alternatives like get_vault or get_protocol_info. No exclusions or alternative guidance is provided, so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_overviewAInspect
Get a high-level overview of the DeFi vault market: total TVL, vault count, risk distribution, and TVL by protocol.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It lists the output metrics, which clarifies what the tool returns, but it does not disclose other behavioral aspects like data freshness, whether it's a read-only operation, or any potential aggregation logic. For a simple overview tool, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that leads with the action 'Get' and immediately specifies the object and scope. It lists the key metrics without any filler, making it concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a zero-parameter tool with no annotations and no output schema, the description covers the essential return values (TVL, vault count, risk distribution, TVL by protocol). It could explicitly state the response format (e.g., 'returns a JSON object with...'), but the metric list effectively conveys the response content. For this complexity level, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema coverage is trivially 100%. The description does not need to explain parameter usage, and the baseline for 0-param tools is 4. No additional semantics are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a high-level market overview with specific metrics (total TVL, vault count, risk distribution, TVL by protocol). This distinguishes it from sibling tools like get_vault and get_protocol_info, which target individual entities. The verb 'Get' and resource 'DeFi vault market' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this tool when a market-level snapshot is needed, not for specific vault or protocol details. However, it does not explicitly name alternatives or state when not to use it, such as 'for specific vaults use get_vault'. The implication is strong but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_protocol_infoBInspect
Get detailed information about a DeFi protocol including TVL, vault count, versions, auditors, and security incidents.
| Name | Required | Description | Default |
|---|---|---|---|
| protocolId | Yes | Protocol ID (e.g. morpho, aave-v3, yearn-v3, beefy) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it indicates this is a read operation ('Get'), it does not specify whether it requires authentication, has rate limits, returns structured or raw data, or handles errors. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose and lists key details without unnecessary words. Every element (action, resource, examples of information) earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and output details but lacks behavioral context (e.g., authentication, error handling) and usage guidelines. For a simple read tool, this is minimally viable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'protocolId' documented in the schema. The description does not add any additional meaning or examples beyond what the schema provides (e.g., it does not clarify the format of protocol IDs or list all possible values). Baseline score of 3 is appropriate as the schema handles the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get detailed information') and the resource ('a DeFi protocol'), with specific examples of the information returned (TVL, vault count, versions, auditors, security incidents). It distinguishes itself from sibling tools like 'get_vault' or 'get_market_overview' by focusing on protocol-level details rather than vaults or markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_vault' or 'get_market_overview'. It does not mention prerequisites, such as needing a protocol ID, or exclusions, such as not being suitable for comparing multiple protocols. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vaultAInspect
Get detailed information about a specific DeFi vault including risk breakdown, recent events, and historical snapshots. Lookup by ID or by network + address.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Vault ID (e.g. morpho-ethereum-0x...) | |
| network | No | Network slug (e.g. ethereum, base, arbitrum) | |
| address | No | Vault contract address (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation by using 'Get' and 'Lookup', which is appropriate, but lacks details on permissions, rate limits, error handling, or response format. It adds some context about the data scope (risk, events, snapshots), but more behavioral traits would improve transparency for this unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by a concise second sentence on lookup methods. Both sentences earn their place by adding distinct value—no wasted words or redundancy. It is appropriately sized for a tool with three parameters and no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no annotations, no output schema), the description is partially complete. It covers the purpose and lookup methods well, but lacks details on behavioral aspects like response structure, error cases, or prerequisites. Without annotations or output schema, more context would help the agent use this tool effectively, though it's not critically inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (id, network, address) with descriptions. The description adds marginal value by clarifying that these are alternative lookup methods ('by ID or by network + address'), but does not provide additional syntax, format, or usage details beyond what the schema specifies. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get detailed information') and resource ('specific DeFi vault'), specifying the type of information returned ('risk breakdown, recent events, and historical snapshots'). It distinguishes from siblings like 'get_vault_risk_breakdown' by offering broader details beyond just risk, and from 'search_vaults' by focusing on a single vault lookup rather than multiple results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: to retrieve comprehensive data on a single vault, using either an ID or network+address combination. However, it does not explicitly state when not to use it (e.g., vs. 'search_vaults' for multiple vaults or 'get_vault_risk_breakdown' for risk-only info), nor does it name alternatives, leaving some ambiguity in sibling tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vault_risk_breakdownCInspect
Get a detailed breakdown of a vault's risk vectors: Asset Composition, Platform Code, and Governance scores with sub-metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network slug (e.g. ethereum, base, arbitrum) | |
| address | Yes | Vault contract address (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns a 'detailed breakdown' with three score types, but doesn't specify output format (e.g., structured data, text summary), potential errors (e.g., invalid address handling), rate limits, or authentication needs. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Get a detailed breakdown') and lists key components. There's no wasted text, and it directly communicates the tool's function. However, it could be slightly more structured (e.g., bullet points for clarity) but remains highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (risk analysis with multiple score types), no annotations, and no output schema, the description is minimally adequate. It covers what the tool does but lacks details on output format, error handling, or integration with siblings. Without annotations or output schema, more context on behavioral aspects would improve completeness for safe agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('network', 'address') fully documented in the schema. The description adds no additional parameter semantics beyond what the schema provides (e.g., no examples of valid network slugs beyond 'ethereum', no clarification on address format). Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get a detailed breakdown') and resources ('vault's risk vectors'), listing the three main components (Asset Composition, Platform Code, Governance scores). It distinguishes itself from siblings like 'get_vault' or 'explain_risk_score' by focusing on risk breakdown rather than general vault data or score explanations. However, it doesn't explicitly contrast with all siblings (e.g., 'compare_vaults' also involves risk analysis).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a specific vault address), exclusions (e.g., not for comparing multiple vaults), or direct comparisons to sibling tools like 'explain_risk_score' (for detailed score explanations) or 'compare_vaults' (for multi-vault analysis). Usage is implied only through the tool name and description context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_vaultsAInspect
Search and filter DeFi vaults by chain, protocol, asset, risk tier, TVL, and more. Returns a paginated list with risk scores and APR.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search by vault name, symbol, asset, protocol, or curator | |
| chain | No | Filter by chain name (e.g. Ethereum, Base, Arbitrum) | |
| protocol | No | Filter by protocol ID (e.g. morpho, aave-v3, yearn-v3) | |
| asset | No | Filter by asset symbol (e.g. USDC, WETH) | |
| riskTier | No | Filter by risk tier: Prime, Core, or Edge | |
| minTvl | No | Minimum TVL in USD | |
| sortBy | No | Sort field: tvl_usd, apr_net, name, last_synced_at | |
| sortOrder | No | Sort order: asc or desc | |
| limit | No | Max results (default 10, max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully adds that the tool returns a 'paginated list with risk scores and APR', which goes beyond the input schema. However, it does not cover important aspects like rate limits, authentication needs, error conditions, or whether the search is real-time or cached, leaving gaps for a tool with 9 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and efficiently structured in a single sentence, clearly stating the action, filterable attributes, and return format. Every word earns its place without redundancy, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, no annotations, no output schema), the description is moderately complete. It covers the core purpose and return format but lacks details on behavioral traits (e.g., rate limits, auth), error handling, and output structure beyond 'paginated list with risk scores and APR'. For a search tool with rich filtering, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds marginal value by listing some filter criteria ('chain, protocol, asset, risk tier, TVL') and mentioning 'and more', but does not provide additional syntax, format details, or constraints beyond what the schema specifies. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('search and filter') and resources ('DeFi vaults'), listing multiple filter criteria. It distinguishes itself from siblings like 'get_vault' (single vault) and 'find_safest_vaults' (specific risk focus) by emphasizing comprehensive search capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through the listed filter criteria (e.g., 'by chain, protocol, asset, risk tier'), suggesting when to use it for multi-criteria searches. However, it lacks explicit guidance on when to choose this tool over alternatives like 'find_safest_vaults' or 'get_market_overview', and does not mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.0.0- First observed
compare_vaults - First observed
explain_risk_score - First observed
find_safest_vaults - First observed
get_curator_info - First observed
get_market_overview - First observed
get_protocol_info - First observed
get_vault - First observed
get_vault_risk_breakdown - First observed
search_vaults
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose targeting specific resources and actions in the DeFi vault domain, with no overlap that could cause confusion. For example, 'get_vault' retrieves detailed vault information, while 'get_vault_risk_breakdown' focuses specifically on risk metrics, and 'search_vaults' handles filtering and listing.
All tool names follow a consistent verb_noun pattern using snake_case, such as 'compare_vaults', 'explain_risk_score', and 'get_vault_risk_breakdown'. This predictable naming convention makes the tool set easy to navigate and understand.
With 9 tools, the server is well-scoped for analyzing DeFi vaults, covering key aspects like risk assessment, market overview, and vault details. Each tool serves a unique function without redundancy, making the count appropriate for the domain.
The tool set provides comprehensive coverage for DeFi vault analysis, including CRUD-like operations (e.g., get, search, compare), risk explanation, market insights, and curator/protocol details. There are no obvious gaps that would hinder an agent from performing essential tasks in this domain.
Maintenance
Related MCP Connectors
DeFi safety layer for AI agents: wallet safety, token risk, tx decode/simulate. 20 tools.
Solana & Base DeFi intelligence for AI agents over x402: decisions, risk, signed receipts.
Crypto yield data for AI agents: lending, savings, staking, borrowing & stablecoin rates. 18 tools.
RiskDataApi — Solana token risk scoring for AI agents. Safety score, insider clusters, honeypot.
Related MCP Servers
- AlicenseAqualityDmaintenanceReal-time DeFi analytics MCP server for AI agents. Provides token risk analysis, yield scanning, and wallet exposure checking across Base, Ethereum, and Arbitrum.314 npm1MIT
- AlicenseNot gradedqualityBmaintenanceThe verifiable risk engine for autonomous agents: deterministic, self-verifying financial calculations that an agent can delegate and prove. It covers liquidation and funding, position sizing and risk of ruin, options Greeks and margin, LP divergence, treasury concentration and depeg, execution quality checks, plus intelligence on options, DeFi, prediction markets, and transaction safety analysis.1 npm2MIT
- FlicenseBqualityCmaintenanceEnables AI agents to perform token security audits, honeypot detection, liquidity analysis, and risk scoring to avoid crypto scams.1-
- FlicenseNot gradedqualityBmaintenanceEnables read-only research on live Hyperliquid vaults through search, ranking, comparison, risk explanation, HLP metrics, and alert tools with timestamped evidence and caveats.-