Skip to main content
Glama

FinTech Hodl Base DeFi risk intel

search_opportunities

Search and filter every tracked Base yield opportunity: id, protocol, market, type, quoted APY, TVL and a risk band (low, moderate, high, very_high). Useful for finding candidates and their ids. Scores, sustainable APY, expected returns, slippage and position sizing are in the paid card (/api/v1/opportunity/:id) and screeners (/api/v1/yields). Free, at most 60 calls an hour per client. Free; at most 60 calls an hour per client.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "search_opportunities"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNoSearch words over protocol, market and asset names (letters, digits, spaces, dots, dashes, underscores; at most 60).
typeNoOpportunity type.
assetNoToken symbol the opportunity holds.
limitNoAt most this many results (default 20).
min_apyNoLowest quoted APY to include, in percent.
risk_maxNoHighest risk to include (0-100, lower is lower modelled risk). On this free route it is rounded up to the edge of its risk band: 25 (low), 50 (moderate), 75 (high) or 100 (very_high).
managementNoPassive (hold), active (needs rebalancing) or any (default).
stable_onlyNoOnly opportunities whose principal is a stablecoin.
include_directNoAlso list plain token holdings.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • removedInput schema / properties / capital
      Removed value: -{
      -  "description": "Capital in USD for the expected-return figures (default 10000).",
      -  "examples": [
      -    10000
      -  ],
      -  "maximum": 1000000000,
      -  "minimum": 1,
      -  "type": "number"
      -}
    • removedInput schema / properties / duration
      Removed value: -{
      -  "description": "Holding period in days for the expected-return figures (default 365).",
      -  "examples": [
      -    365
      -  ],
      -  "maximum": 1825,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • changedInput schema / properties / min_apy / description
      Previous value: -"Lowest APY to include, in percent."New value: +"Lowest quoted APY to include, in percent."
    • changedInput schema / properties / risk_max / description
      Previous value: -"Highest total risk score to include (0-100, lower is lower modelled risk)."New value: +"Highest risk to include (0-100, lower is lower modelled risk). On this free route it is rounded up to the edge of its risk band: 25 (low), 50 (moderate), 75 (high) or 100 (very_high)."
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load and does a fair job: it discloses the free tier, the 60-calls-per-hour-per-client rate limit, and — importantly — which metrics are NOT returned here (scores, sustainable APY, expected returns, slippage, position sizing). It does not cover result ordering, pagination, or what an empty result looks like, but the free-tier and rate-limit disclosure is real behavioral value an agent cannot get from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The body is front-loaded and efficient, but the final sentence is duplicated verbatim in substance ('Free, at most 60 calls an hour per client. Free; at most 60 calls an hour per client.'), which is pure waste. The endpoint paths are also dense inline noise compared with citing tool names.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter, zero-required search tool with no output schema, the description covers what fields come back, that results are free-tier rate limited, and where to go for the richer metrics it deliberately omits. The remaining gaps — ordering, default page size, whether results are paginated — are minor and partly covered by the schema's limit parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 nine parameters including the risk_max band-rounding rule. The description adds nothing parameter-specific beyond restating the risk band values, which the schema also covers, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Search and filter every tracked Base yield opportunity') and enumerates the returned fields (id, protocol, market, type, quoted APY, TVL, risk band), so the agent knows exactly what this returns. It differentiates itself from deeper-metric tools, but does so by naming API paths ('/api/v1/opportunity/:id', '/api/v1/yields') rather than the sibling tool names, leaving the agent to map paths to tools like get_opportunity_card.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the use case ('Useful for finding candidates and their ids') and clearly excludes deeper analysis, which lives in the paid card and screeners. What it lacks is an explicit 'call this instead of X when Y' statement using tool names, so routing depends on the agent translating endpoints into sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources