DeFi Garden
Server Details
Underwritten DeFi yield discovery & goal planning for AI agents on Base & EVM.
- Status
- Healthy
- Uptime
- 91.7% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- alex0xhodler/defi_garden
- GitHub Stars
- 1
TDQS
Scored across 5 tools
find_pools (search) vs get_pool (single UUID lookup) vs get_pool_score (score/forecast by pool_id or symbol) have adjacent purposes, but descriptions clearly delimit inputs and outputs. explain_rails and forever_number are unmistakably distinct utilities.
All names use snake_case, and four of five follow a verb_noun pattern (explain_rails, find_pools, get_pool, get_pool_score). forever_number is a noun phrase that breaks the convention, though it is still readable and memorable.
Five tools is well-scoped for a read-only DeFi pool research server: search, detail lookup, scoring, methodology, and one calculator. Each tool earns its place with no filler.
The surface covers the core research lifecycle: understand the rules, search pools, inspect a pool, score it, and apply a yield calculation. Minor gaps exist (no explicit chain/project enumeration or pool comparison), but agents can work around them via find_pools filters.
Available Tools
5 toolsexplain_railsAInspect
Returns DeFi Garden's active filtering rules (1000% APY sanity cap, $100K TVL floor, anomaly flagging) and the data source, for autonomous agent safety.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does well for a zero-parameter read tool: it discloses the exact rule values (1000% APY, $100K TVL), the anomaly-flagging behavior, and that a data source is included. It stops short of describing the return shape, but the disclosed content is substantive and self-consistent.
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?
A single sentence with the resource front-loaded and the concrete rule values immediately following. No filler, no redundancy, and it ends on the reason the tool exists.
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 no-param, read-only explainer with no output schema, the description gives enough for correct invocation and sets expectations about returned content. It could better note that output is static policy text rather than pool data, but nothing critical is missing.
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 zero parameters, so the baseline of 4 applies; there are no parameter semantics left to explain. The description correctly implies a no-argument, informational call.
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?
Specific verb 'Returns' plus a precisely scoped resource: 'DeFi Garden's active filtering rules', enumerated as the 1000% APY cap, $100K TVL floor, anomaly flagging, and the data source. This is clearly distinct from the sibling tools (find_pools, get_pool, get_pool_score, forever_number), which all fetch pool data rather than explain platform policy.
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 phrase 'for autonomous agent safety' hints at the intended use case, but there is no explicit when-to-use or when-not-to guidance and no alternative named. An agent can infer this is a policy/context lookup, but nothing states it should be called before interpreting pool results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_poolsAInspect
Search DeFi Garden's railed pool list by token symbol, chain, project, and minimum TVL floor. Excludes anomalous rates (>1000% APY) and pools below $100K TVL. Data is a daily snapshot of DefiLlama's pool feed.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Case-insensitive match against pool blockchain, e.g. 'Base', 'Ethereum' | |
| limit | No | Maximum pools to return (default: 20, max: 100) | |
| token | No | Case-insensitive substring match against pool token symbol, e.g. 'USDC' | |
| min_tvl | No | Minimum TVL floor in USD (clamps up to $100,000 minimum) | |
| project | No | Case-insensitive match against protocol name, e.g. 'morpho-blue', 'aave-v3' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does meaningful work: it discloses that anomalous rates (>1000% APY) and sub-$100K pools are filtered out, and that data is a daily DefiLlama snapshot rather than live. It doesn't state the read-only nature explicitly or any pagination behavior, but the filtering and freshness disclosures are substantive.
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?
Two sentences, zero padding, front-loaded with the search scope before the exclusion rules and data provenance. Every clause earns its place.
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 five-parameter, no-required-arg search tool with no annotations and no output schema, the description covers scope, filters, exclusions, and data freshness. The remaining gap is what a result record contains, which matters somewhat given the absent output schema.
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 five parameters including case-insensitive matching, defaults, max, and TVL clamping. The description restates token/chain/project/min-TVL but adds no syntax or format beyond the schema, so the baseline of 3 applies.
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?
States a specific verb ('Search') and resource ('DeFi Garden's railed pool list') with the filterable dimensions enumerated, so the agent knows exactly what the tool returns. It stops short of explicitly contrasting with the singular-pool siblings (get_pool, get_pool_score), which is the only reason it isn't a 5.
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 by enumerating the filter dimensions and stating the two exclusion rules, so it's clear this is the discovery/search entry point. But it never says when to reach for it versus get_pool or get_pool_score, leaving the agent to infer the search-vs-fetch split.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forever_numberAInspect
Computes the lump-sum capital whose yield alone covers a recurring monthly bill forever, using a TVL-weighted blended rate of railed pools (or a caller-supplied APY between 0 and 1000 percent).
| Name | Required | Description | Default |
|---|---|---|---|
| apy | No | Optional annual rate percent, greater than 0 and at most 1000. When omitted, uses the TVL-weighted blended rate of railed pools. | |
| monthly | Yes | Positive USD/month the capital must cover |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the fallback behavior (caller APY omitted -> TVL-weighted blended rate of railed pools) and the valid APY range, but says nothing about the return type, rounding, or error conditions for invalid inputs.
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?
A single dense sentence with the purpose front-loaded and zero filler. It is packed but every clause (rate basis, APY bound) earns its place.
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 two-parameter computation tool with full schema coverage, the definition is nearly complete. The only gap is that no output schema exists and the description does not state what the return value looks like (presumably a dollar amount), though this is a small omission for an arithmetic tool.
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% and both parameters are fully documented in the schema, including the APY bounds and the omitted-parameter fallback. The description largely restates that same information, adding no syntax or semantic detail beyond the schema.
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?
States a specific verb ('computes') and resource ('the lump-sum capital whose yield alone covers a recurring monthly bill forever'), plus the rate basis used. An agent can immediately distinguish this calculation tool from the sibling lookup tools (find_pools, get_pool, get_pool_score).
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?
Usage is only implied through the computation's nature; there is no explicit when-to-use, when-not-to-use, or alternative named. Since no sibling performs a comparable calculation, the omission is minor, but no routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_poolAInspect
Look up a single pool by its DefiLlama pool UUID, returning APY (base/reward breakdown), TVL, and anomaly / below-floor flags. Data is a daily snapshot of DefiLlama's pool feed.
| Name | Required | Description | Default |
|---|---|---|---|
| pool_id | Yes | DefiLlama pool UUID (e.g. 'ba68527f-8ec2-4c55-827a-8f4673ae047c') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that data is a daily snapshot of DefiLlama's feed and enumerates the returned fields including derived flags, but says nothing about not-found/error behavior, auth, or rate limits. 'Look up' implies a safe read, but that is left to inference.
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?
Two tight sentences: the lookup action and return payload are front-loaded, and the snapshot-provenance note is a single qualifying clause. Nothing is redundant or padded.
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 single-parameter read tool with no output schema, the description covers the action, the identifier, and the returned fields, including the freshness caveat that matters for interpreting APY/TVL. Only the not-found/error path is unaddressed, a minor gap for a simple getter.
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 coverage is 100% and the pool_id property already documents the UUID format with a concrete example. The description restates 'DefiLlama pool UUID' without adding format, validation, or fallback detail beyond the schema, so it matches the baseline for fully documented parameters.
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 gives a specific verb ('look up'), a scoped resource ('a single pool'), the identifier type (DefiLlama pool UUID), and even the return contents (APY breakdown, TVL, anomaly/below-floor flags). It implicitly contrasts with the plural find_pools, but never names a sibling explicitly, so differentiation is inferred rather than stated.
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?
Usage is only implied: an agent can infer this is for retrieving one known pool when it already has a UUID, as opposed to searching. There is no explicit when-to-use / when-not-to-use, no mention of prerequisites, and no pointer to alternatives like find_pools or get_pool_score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pool_scoreAInspect
Retrieve the DeFi Score (0-100) with its band name (AAA to HIGH RISK; DeFi Garden's own model output, not a credit rating), each pillar shown as a High / Medium / Low tier, never a number (yield stability, sustainability, capital stickiness, exit liquidity), the experimental 14-day forward yield forecast range (low / central / high), and retail access restrictions. Look up by pool_id, or by exact asset symbol (highest-TVL railed match, with candidates listed). The forecast is experimental.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Optional exact, case-insensitive pool symbol to query if pool_id is unknown (e.g. 'USDC', 'STETH'). Not a substring match. | |
| chain | No | Optional blockchain filter used with asset (e.g. 'Base', 'Ethereum') | |
| pool_id | No | DefiLlama pool UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description does substantial work: it implies read-only retrieval, clarifies that pillars are tiers rather than numbers, flags the forecast as experimental, and explains exact-symbol matching with highest-TVL railed match and candidate listing. It still omits details such as no-match behavior, permissions, or rate limits.
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 main purpose and is not bloated, but the first sentence is long and dense. The final sentence repeats that the forecast is experimental, which was already stated earlier.
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 three-parameter retrieval tool with no output schema and no annotations, the description is fairly complete: it explains the return contents, lookup modes, and the experimental forecast caveat. Edge cases such as missing assets or chain filtering could be clearer, but the core context is present.
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 baseline is 3, but the description adds meaningful semantics beyond the schema by describing exact asset matching, highest-TVL railed selection, and candidate listing. It does not add much for the chain parameter beyond what the schema already says.
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 uses a specific verb and resource, 'Retrieve the DeFi Score,' and enumerates the score, band, pillar tiers, forecast range, and retail restrictions. It is clear what the tool returns, though it does not explicitly contrast itself with sibling tools such as get_pool or find_pools.
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 explains lookup options ('by pool_id, or by exact asset symbol') but does not state when to use this tool versus alternatives like get_pool or find_pools. There are no explicit exclusions, prerequisites, or when-not conditions.
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.
2 tool updates
- Changed
forever_number1 field changed- changed
Input schema / properties / apy / descriptionPrevious value: -"Optional annual rate percent. When omitted, uses live TVL-weighted blended rate."New value: +"Optional annual rate percent, greater than 0 and at most 1000. When omitted, uses the TVL-weighted blended rate of railed pools."
- Changed
get_pool_score2 fields changed- changed
Input schema / properties / asset / descriptionPrevious value: -"Optional asset symbol to query if pool_id is unknown (e.g. 'USDC', 'ETH')"New value: +"Optional exact, case-insensitive pool symbol to query if pool_id is unknown (e.g. 'USDC', 'STETH'). Not a substring match." - changed
Input schema / properties / chain / descriptionPrevious value: -"Optional blockchain filter (e.g. 'Base', 'Ethereum')"New value: +"Optional blockchain filter used with asset (e.g. 'Base', 'Ethereum')"
5 tool updates
- First observed
explain_rails - First observed
find_pools - First observed
forever_number - First observed
get_pool - First observed
get_pool_score
Related MCP Connectors
Discover DeFi yield opportunities and manage Zyfai positions with self-custodial AI agents.
On-chain security and market intelligence for trading agents on Base.
Solana & Base DeFi intelligence for AI agents over x402: decisions, risk, signed receipts.
Non-custodial USDC yield vaults on Base mainnet with 9 MCP tools for AI agent treasury.
Related MCP Servers
- AlicenseAqualityCmaintenanceDeFi execution and agent-to-agent economy tools for AI agents — swaps, yield, transfers, policy enforcement, trust scoring, A2A jobs, and P\&L across Ethereum, Base, Arbitrum, and Polygon.311Apache 2.0
- FlicenseAqualityDmaintenanceEnables AI agents to discover verifiable DeFi yield opportunities, generate algorithmic portfolio plans, and track cryptographic proof receipts, bridging LLMs with blockchain yield protocols.9-
- FlicenseBqualityDmaintenanceEnables AI assistants to discover, evaluate, and execute DeFi yield strategies across EVM and Solana chains through natural conversation, with transactions signed locally.156 npm1-
- AlicenseAqualityBmaintenanceAutonomous zero-net-cost payments on Base Mainnet powered by automated Aave V3 & Morpho yield farming. Non-custodial, 100% capital recovery for AI agents.30MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.