Skip to main content
Glama

Server Details

Leveraged-yield router on Morpho. List strategies, simulate, and build UNSIGNED txs.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 42 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
spiral-stake/mcp
GitHub Stars
0

TDQS

A4.3/5.0

Scored across 10 tools

Disambiguation5/5

Each tool maps to a distinct resource/action: build vs simulate vs read, and leverage vs equity vs strategy/price/position. Close pairs like build_equity_deposit_tx and simulate_equity_deposit are clearly separated by operation type, and descriptions explicitly disambiguate equity exits from build_manage_tx. No tools appear redundant.

Naming Consistency5/5

All tool names are snake_case with verb-prefixed actions: build_*, simulate_*, get_*, list_*. Object naming follows a clear pattern (leverage_tx, equity_deposit_tx, positions, prices, strategy/strategies). The minor asymmetry between build_equity_deposit_tx and simulate_equity_deposit does not create confusion.

Tool Count5/5

10 tools is well-scoped for the leverage domain, covering reads (positions, prices, strategies), simulations, and transaction builders. Each tool serves a distinct purpose with no apparent bloat or thinness.

Completeness4/5

The tool surface covers the core lifecycle: opening leverage, managing/closing positions, equity vault deposit/exit, and reading positions/strategies/prices. Minor gaps include no dedicated simulate for manage/exit actions and no partial equity-vault management, but these are workaroundable with existing build tools.

Available Tools

10 tools
build_equity_deposit_txBuild Equity Vault DepositAInspect

Build the UNSIGNED call batch to deposit into a stock + yield equity vault, for the given wallet to sign. Non-custodial. Returns calls[] (approve USDG → router, authorize the router on Morpho, the one-call equityEntry, revoke) to submit as ONE atomic batch (EIP-5792 wallet_sendCalls / Safe), plus the same preview as simulate_equity_deposit. meta.signingUrl is a one-click link for a human to sign in the app. Swap calldata is time-sensitive (meta.expiresAt).

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesDeposit amount in human units of the vault's deposit token (USDG), e.g. '10000'.
chainIdNoChain to target. Supported: 1, 4663. Default: 1.
slippageNoSwap slippage ratio. Default 0.01 (the app's setting for vaults), capped at 0.01.
strategyIdYesThe vault's id from list_strategies (starts with 'equity-').
stockLtvPctNoStock-leg LTV percent to borrow at (e.g. '50'). Default: the vault's targetLtvPct. Capped at 88% of the stock market's liquidation LTV (55 on a 62.5% market) — a higher value is refused, not clamped.
userAddressYesThe wallet that will sign and send; the stock leg and yield loop are opened for it.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false. The description adds significant behavioral context beyond that: it says the batch is unsigned, non-custodial, atomic (EIP-5792/Safe), time-sensitive (meta.expiresAt), and includes a signingUrl for human signing. This enriches the agent's understanding of side effects and constraints without contradicting the annotations.

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

Conciseness4/5

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

The description is information-dense but not bloated. It leads with the primary purpose, then enumerates the return payload specifics (calls list, preview, signingUrl, expiresAt) and a warning about time-sensitivity. Each sentence contributes to either selection or invocation, though the exact call sequence could be seen as slightly verbose for someone just wanting to know what it does.

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?

With no output schema, the description carries the burden of explaining return values. It covers the main output (calls[] with the explicit sequence), the preview equivalence, the signingUrl, and the expiresAt time-sensitivity. It doesn't detail error conditions or prerequisites, but for a transaction-builder tool this is sufficient for an agent to invoke it correctly.

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?

Input schema coverage is 100% with documented parameter descriptions. The description adds minimal parameter-specific detail; it references strategyId indirectly via 'equity vault' and 'time-sensitive (meta.expiresAt)' relates to the output, not parameters. Since schema already covers parameters fully, the description does not need to duplicate, and a baseline of 3 is appropriate.

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

Purpose5/5

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

States a specific verb ('Build') and resource ('UNSIGNED call batch to deposit into a stock + yield equity vault') and clearly differentiates from siblings like build_equity_exit_tx and build_leverage_tx by explicitly scoping to deposit. It also names the output type (calls[]) and the signing context, leaving no ambiguity about what this tool accomplishes.

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?

Implicitly communicates when to use: it says 'for the given wallet to sign' and mentions the preview is the same as simulate_equity_deposit, suggesting the simulation tool is for preview-only. It doesn't explicitly name alternatives or state 'use X instead of Y', but the context is clear enough for an agent to infer the deposit construction use case versus other build tools.

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

build_equity_exit_txBuild Equity Vault ExitAInspect

Build the UNSIGNED call batch to fully unwind an OPEN equity vault (from get_positions.equityPositions): close each of its yield loops, then one self-funded router call repays the stock debt, withdraws the stock, swaps it to USDG and returns the proceeds. Submit as ONE atomic batch. Non-custodial; the vault's yield loop cannot be closed alone through build_manage_tx. Only the vault's own loop(s) are closed: those get_positions attributes unambiguously, or exactly the ones you pass in yieldPositionIds. Always read meta.closedYieldPositionIds.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdNoChain to target. Supported: 1, 4663. Default: 1.
slippageNoSwap slippage ratio. Default 0.01, capped at 0.01.
strategyIdYesThe vault's id ('equity-0x…').
userAddressYesWallet that owns the vault and will sign.
yieldPositionIdsNoThe yield loop id(s) to close with the stock leg (from get_positions). Optional when the vault's yieldLoopMatch is tagged/basis/mixed; REQUIRED when it is 'ambiguous'. Nothing outside this list is closed.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only give readOnlyHint=false and destructiveHint=false, so the description adds substantial behavioral context: the batch is unsigned, non-custodial, must be submitted atomically, and only the vault's own loops are closed. It also discloses the internal router actions and the meta field requirement, far exceeding annotation coverage.

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

Conciseness5/5

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

Three dense sentences with no fluff. The primary action is front-loaded, the alternative is named, and critical constraints (atomic, non-custodial, meta field) are packed in efficiently. Every clause earns its place.

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 complex builder tool with no output schema, it explains the core process, the atomic submission requirement, and hints at the response via meta.closedYieldPositionIds. It doesn't fully describe the return structure or error cases, but gives enough for an agent to call and handle the result correctly in most scenarios.

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 coverage is 100%, and the schema already documents each parameter, including the optional/required rule for yieldPositionIds and 'Nothing outside this list is closed.' The description mainly restates these details without adding new parameter-level meaning, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description states a specific action ('Build the UNSIGNED call batch to fully unwind an OPEN equity vault') and the exact mechanism (close yield loops, router call, repay, withdraw, swap). It differentiates from build_manage_tx by noting the yield loop cannot be closed alone through that sibling.

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

Usage Guidelines5/5

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

Provides clear context: use for full unwind of an open equity vault, and explicitly excludes build_manage_tx as an alternative for closing the loop. Also explains the optional/required behavior of yieldPositionIds and instructs to always read meta.closedYieldPositionIds.

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

build_leverage_txBuild Leverage TransactionAInspect

Build the UNSIGNED transaction to open a leveraged position, for the given wallet to sign. Non-custodial: this server never signs, sends, or holds keys. The canonical output is the executable { approvals[], tx{to,data,value} } — sign and broadcast it directly (approvals first), plus the same position preview as simulate_leverage. meta.signingUrl is an optional one-click link for a human to sign in their own wallet. The embedded swap calldata is time-sensitive (see meta.expiresAt) — rebuild if stale.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount of payToken in human units (e.g. '10000' for 10,000 USDC).
chainIdNoChain to target. Supported: 1, 4663. Default: 1.
leverageNoTarget leverage, e.g. 3. Provide this OR desiredLtv.
payTokenYesAddress of the token you pay in. May be the collateral (opened directly) or any other token (zapped: swapped to collateral first). Native ETH = the zero address 0x0000…0000.
slippageNoSwap slippage as a ratio (0.005 = 0.5%). Default 0.005, capped at 0.01.
desiredLtvNoTarget LTV percent, e.g. '66.67'. Provide this OR leverage.
strategyIdYesMorpho market id of the strategy (from list_strategies / get_strategy).
userAddressYesThe wallet address that will sign and send. Approvals and onBehalfOf are built for it.

TDQS

A4.2/5.0
Behavior4/5

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

Discloses that the transaction is unsigned and non-custodial, and that the server never signs or holds keys. Warns about time-sensitive calldata and need to rebuild if stale. Adds value beyond annotations (readOnlyHint false, destructiveHint false) by clarifying output safety.

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

Conciseness5/5

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

Three well-structured sentences, front-loaded with core purpose. Each sentence adds distinct value: purpose, output format and non-custodial nature, time sensitivity. No wasted words.

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?

Covers output format, signing steps, optional URL, and expiry. References simulate_leverage for preview. Lacks error conditions or failure modes, but sufficient for a transactions builder with no output schema.

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?

Input schema has 100% coverage with detailed parameter descriptions. Tool description does not add new parameter-level information beyond schema, but provides important context about output format. Baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states it builds an unsigned transaction to open a leveraged position. Distinguishes from sibling tools like simulate_leverage (preview only) and build_manage_tx (manage existing positions). Emphasizes non-custodial nature.

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?

Explicitly describes when to use (to open a leveraged position) and what to do with output (sign and broadcast). Mentions optional signing link and expiry. Implicitly distinguishes from simulate_leverage, which is for preview only.

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

build_manage_txBuild Manage TransactionAInspect

Build the UNSIGNED transaction to adjust or close an OPEN position, for the given wallet to sign. Non-custodial (never signs/holds keys). Canonical output is the executable { approvals[], tx{to,data,value} } (sign/broadcast directly); meta.signingUrl is an optional link for a human to sign in their own wallet. Actions: 'close' (unwind fully), 'increase_leverage' (borrow to a higher LTV), 'add_collateral' (top up — pay in collateral or any token), 'remove_collateral' (withdraw), 'repay' (pay down debt; set full=true to clear it), 'borrow' (draw more loan token). Get the position id from get_positions. Swap calldata (close/increase/zap paths) is time-sensitive — see meta.expiresAt.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOn-chain position index, from get_positions (its `id`).
fullNorepay only: clear the entire remaining debt.
actionYesWhat to do to the position.
amountNoHuman-units amount. Required for add_collateral/remove_collateral/repay/borrow.
chainIdNoChain to target. Supported: 1, 4663. Default: 1.
leverageNoincrease_leverage: target leverage. Provide this OR desiredLtv.
payTokenNoToken to pay in (add_collateral/repay). Collateral/loan = direct; any other = zapped. ETH = zero address.
slippageNoSwap slippage ratio (0.005 = 0.5%). Default 0.005, capped at 0.01.
desiredLtvNoincrease_leverage: target LTV percent (e.g. '80'). Provide this OR leverage.
userAddressYesWallet that owns the position and will sign.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations provide readOnlyHint=false and destructiveHint=false. The description adds that the tool is non-custodial and never signs/holds keys, and mentions the output structure and optional signing URL. It also notes time-sensitivity via meta.expiresAt, providing useful behavioral context beyond annotations.

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 description is thorough but somewhat lengthy. It is well-structured with important information front-loaded, but contains more detail than necessary, reducing conciseness.

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

Completeness3/5

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

Given 10 parameters, no output schema, and complex actions, the description covers actions, parameters, and prerequisites. However, it lacks a detailed explanation of the output format (besides mentioning canonical output), leaving some ambiguity for an agent.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description adds meaning by explaining each action's purpose, the role of amount for certain actions, details about payToken (zapping behavior), and slippage meaning. This adds value beyond the schema descriptions.

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

Purpose5/5

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

The description clearly states that the tool builds unsigned transactions to adjust or close open positions. It lists specific actions (close, increase_leverage, etc.) and distinguishes itself from sibling tools like build_leverage_tx by focusing on managing existing positions.

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?

The description provides clear context on when to use each action and directs users to get the position id from get_positions. However, it does not explicitly compare with sibling tools or state when not to use this tool.

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

get_positionsGet PositionsA
Read-only
Inspect

Read a wallet's open/closed Spiral leverage positions from chain state (read-only). For each: collateral/loan, leveraged collateral, net equity, debt, current LTV vs liquidation LTV (with headroom), current leverage, net USD value, and current leveraged APY. No cost-basis / realized P&L (those need off-chain history). Newest first. equityPositions lists the wallet's open equity vaults (stock leg + the yield loop(s) it funds); those loops are excluded from positions.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdNoChain to target. Supported: 1, 4663. Default: 1.
userAddressYesWallet address to read positions for.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations provide readOnlyHint=true, and the description reaffirms and expands on this by detailing exactly what is returned (collateral/loan, LTV, APY, etc.), what is excluded (cost-basis/P&L), ordering (newest first), and the relationship to equityPositions. This adds substantial behavioral context beyond the annotation.

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

Conciseness5/5

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

The description is efficiently structured: it leads with the verb and resource, lists the key return fields, notes exclusions, states ordering, and clarifies related terms. Each sentence earns its place with no redundancy, and the length is justified given the number of details conveyed.

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

Completeness5/5

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

Despite lacking an output schema, the description fully enumerates the returned data fields, ordering, exclusions, and the distinction between positions and equityPositions. For a read-only tool with only two simple parameters, this is a complete and self-sufficient description that leaves no critical ambiguity.

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%, and both parameters have clear descriptions (chainId with supported values and default, userAddress for the wallet). The tool description does not add any additional meaning to the parameters beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Read') and resource ('wallet's open/closed Spiral leverage positions'), and distinguishes itself from transaction-building siblings. It clearly differentiates between 'positions' and 'equityPositions', making the tool's scope unambiguous.

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?

The description implies when to use the tool (to read position data) and explicitly states when not to use it (when cost-basis or realized P&L is needed, as those require off-chain history). It clarifies that equityPositions is separated from positions, guiding proper interpretation. It does not name alternative sibling tools explicitly, but the context makes the usage clear.

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

get_pricesGet PricesA
Read-only
Inspect

Current USD prices of every loan and collateral token the chain's strategies use (token address -> USD), including equity-vault stocks. Loan tokens are priced from CoinGecko; collateral from the market oracle × its loan token's price — the same figures the strategies' priceUsd fields carry.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdNoChain to target. Supported: 1, 4663. Default: 1.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, and the description adds the crucial behavioral detail of how prices are derived (CoinGecko for loan tokens, market oracle × loan token price for collateral), and that these match the strategies' priceUsd fields. This goes beyond the annotation's safety hint.

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

Conciseness5/5

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

The description is brief and packs essential information into two sentences, front-loading the purpose and then explaining the pricing sources. No filler or redundant phrasing.

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

Completeness5/5

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

For a simple read-only tool with one parameter and an optional chainId, the description is complete. It explains the output content, data sources, and alignment with strategy prices, so the agent has all necessary context to call it correctly.

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?

The single parameter chainId is fully described in the schema with the supported values and default. The description does not add extra semantics beyond what the schema provides, but the schema coverage is 100%, so this is acceptable.

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

Purpose5/5

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

The description clearly states it returns current USD prices for all loan and collateral tokens, mapping token address to USD, and mentions equity-vault stocks. It distinguishes itself from siblings by focusing on pricing data, unlike transaction builders and strategy listings.

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?

The description implies when to use it (to retrieve current prices) and notes the inclusion of equity-vault stocks, but does not explicitly state when not to use it or name alternative tools. Since it's a data retrieval tool standing apart from transaction builders, the context is clear enough.

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

get_strategyGet StrategyA
Read-only
Inspect

Get one eligible strategy's full raw facts by its Morpho market id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMorpho market id (0x followed by 64 hex chars).
chainIdNoChain to target. Supported: 1, 4663. Default: 1.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, and the description adds the context that it returns 'full raw facts' and applies to 'eligible' strategies. This adds value beyond the annotations, though it could mention auth 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.

Conciseness5/5

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

The description is a single, front-loaded sentence that immediately communicates the tool's function with no unnecessary words.

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

Completeness3/5

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

Given no output schema, the description hints at 'full raw facts' but is vague about return structure. It omits clarification of 'eligible' and optionality of chainId. Adequate but not complete.

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 coverage is 100%, so id and chainId are already documented. The description reiterates the purpose of the 'id' parameter but does not add new semantic details beyond the schema.

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

Purpose5/5

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

The description clearly states the verb (get), resource (strategy), and input (Morpho market id). It distinguishes from sibling tools like list_strategies (which lists many) and get_positions (which gets user positions).

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

Usage Guidelines3/5

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

The description implies usage for retrieving details of a single strategy by its ID, but it does not explicitly contrast with alternatives like list_strategies or get_prices. No when-not-to-use guidance is provided.

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

list_strategiesList StrategiesA
Read-only
Inspect

List eligible Spiral strategies on a chain with raw risk facts (collateral/borrow APY, leverage ladder, oracle type, exit liquidity, LTVs, curator). Mainnet (1): correlated yield loops on stables, ETH, BTC and Pendle PTs. Robinhood Chain (4663): stable loops on USDG, directional perps (spiralHints.profile 'leveraged_perp' — APYs are financing carry only) and stock + yield equity vaults (profile 'equity_yield_vault', ids start with 'equity-'). Optionally filter by collateral category.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdNoChain to target. Supported: 1, 4663. Default: 1.
categoryNoFilter by collateral category: 'stable', 'ETH', 'BTC', 'stable-PT', 'stocks' (equity vaults), 'Other' (perps).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the tool is known to be non-destructive. The description adds valuable behavioral context: it notes that for perps on Robinhood Chain, APYs are 'financing carry only', and that equity vault IDs start with 'equity-'. These are nuances beyond the schema. No contradiction with annotations.

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

Conciseness4/5

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

The description is moderately long but efficiently packed. It front-loads the main purpose, then organizes chain-specific details with clear structure (Mainnet vs Robinhood Chain). Every sentence provides useful information; there is no filler. It could be slightly shorter by merging the category explanation, but it remains well-structured.

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?

Given the tool has two optional parameters and no output schema, the description covers the essential context: what the list contains (risk facts list), chain differences, and special cases. It does not mention pagination, sorting, or limits, but for a listing tool this is acceptable. The absence of an output schema is mitigated by listing the risk fact fields.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description enriches both parameters: chainId is explained with supported values and a default, and category is expanded with examples ('stocks' as equity vaults, 'Other' as perps) and the note that filtering is optional. This adds meaning beyond the schema definitions.

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

Purpose5/5

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

The description clearly states 'List eligible Spiral strategies on a chain with raw risk facts', which is a specific verb and resource. It distinguishes itself from siblings like get_strategy (which likely retrieves a single strategy) and build_* tools (which construct transactions) by focusing on listing with risk metrics. The chain-specific details (Mainnet vs Robinhood Chain) further clarify scope.

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?

The description implies when to use this tool: when you need a list of strategies with risk facts, as opposed to building transactions or retrieving a single strategy. It provides context on chain-specific differences and the optional category filter, but does not explicitly name alternatives or state exclusions. This is clear enough for an agent to infer usage, though not as explicit as naming siblings.

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

simulate_equity_depositSimulate Equity Vault DepositA
Read-only
Inspect

Preview depositing USDG into a stock + yield equity vault — deterministic, read-only, no wallet. You end up 1x long the stock (held as your own Morpho collateral), with stockLtvPct of its value borrowed as USDG and flash-looped into the vault's yield strategy. Returns the stock received, the borrow, the stock liquidation price and headroom, the yield leg's size/leverage/APY, the net APY at that LTV, fees and price impact per leg.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesDeposit amount in human units of the vault's deposit token (USDG), e.g. '10000'.
chainIdNoChain to target. Supported: 1, 4663. Default: 1.
slippageNoSwap slippage ratio. Default 0.01 (the app's setting for vaults), capped at 0.01.
strategyIdYesThe vault's id from list_strategies (starts with 'equity-').
stockLtvPctNoStock-leg LTV percent to borrow at (e.g. '50'). Default: the vault's targetLtvPct. Capped at 88% of the stock market's liquidation LTV (55 on a 62.5% market) — a higher value is refused, not clamped.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds 'deterministic, read-only, no wallet' and explains the resulting position mechanics, including the 1x long and flash-looped yield leg. It also enumerates the returned metrics, giving a full picture of what the tool computes. No contradiction with annotations.

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

Conciseness5/5

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

Two well-structured sentences: the first states the action and constraints, and the second enumerates the computed results. Every sentence earns its place with no filler or redundancy.

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

Completeness5/5

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

For a read-only simulation with no output schema, the description compensates by explicitly listing the outputs: stock received, borrow, liquidation price/headroom, yield leg size/leverage/APY, net APY, fees, and price impact. Combined with the fully documented input schema, the tool is complete for an agent to invoke and interpret.

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 baseline is 3; the schema already documents all five parameters. The description adds minor context by referencing stockLtvPct in the mechanics, but does not materially add meaning beyond the schema.

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

Purpose5/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: 'Preview depositing USDG into a stock + yield equity vault'. It also immediately distinguishes the tool from transaction builders by saying 'deterministic, read-only, no wallet'.

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?

The description clearly frames this as a preview/simulation tool and notes that no wallet is required, which tells the agent when to use it before a build_equity_deposit_tx call. It does not explicitly name alternatives or state exclusions, but the usage context is unambiguous.

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

simulate_leverageSimulate LeverageA
Read-only
Inspect

Preview opening a leveraged position — deterministic, read-only, no wallet needed. Returns the resulting leverage, effective LTV, leveraged collateral, expected leveraged APY, price impact, the auto-selected execution path, flash-loan size, and (if the flash loan exceeds direct market liquidity) the public-allocator reallocation fee. Numbers move with market prices.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount of payToken in human units (e.g. '10000' for 10,000 USDC).
chainIdNoChain to target. Supported: 1, 4663. Default: 1.
leverageNoTarget leverage, e.g. 3. Provide this OR desiredLtv.
payTokenYesAddress of the token you pay in. May be the collateral (opened directly) or any other token (zapped: swapped to collateral first). Native ETH = the zero address 0x0000…0000.
slippageNoSwap slippage as a ratio (0.005 = 0.5%). Default 0.005, capped at 0.01.
desiredLtvNoTarget LTV percent, e.g. '66.67'. Provide this OR leverage.
strategyIdYesMorpho market id of the strategy (from list_strategies / get_strategy).

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds significant detail: deterministic, read-only, no wallet needed, and lists the outputs including edge cases (public-allocator reallocation fee). This provides excellent behavioral insight.

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

Conciseness4/5

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

The description is a single dense paragraph that covers purpose and output list efficiently. However, it could be more structured (e.g., bullet points) for easier scanning, but it is not overly verbose.

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

Completeness3/5

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

The description adequately explains return values but misses important contextual details like the mutual exclusivity of leverage and desiredLtv, and the default chainId. For a tool with 7 parameters and no output schema, some gaps remain.

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 coverage is 100%, and the description does not add new parameter-specific insights beyond the schema. It lists outputs but not parameter details, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Preview opening a leveraged position' and emphasizes it is deterministic and read-only. It distinguishes from sibling 'build_leverage_tx' by noting no wallet needed, indicating a simulation versus actual execution.

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?

The description implies usage for previewing and notes it is read-only with no wallet needed. However, it does not explicitly state when to avoid this tool (e.g., when you want to execute) or mention alternatives like build_leverage_tx.

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.

  1. 1 tool update
    • Changedbuild_equity_exit_tx1 field changed
      • addedInput schema / properties / yieldPositionIds
        Added value: +{
        +  "description": "The yield loop id(s) to close with the stock leg (from get_positions). Optional when the vault's yieldLoopMatch is tagged/basis/mixed; REQUIRED when it is 'ambiguous'. Nothing outside this list is closed.",
        +  "items": {
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "type": "array"
        +}
  2. 4 tool updates
    • Addedbuild_equity_deposit_tx
    • Addedbuild_equity_exit_tx
    • Changedlist_strategies1 field changed
      • changedInput schema / properties / category / description
        Previous value: -"Filter by collateral category, e.g. 'stable', 'ETH', 'BTC', 'stable-PT'."New value: +"Filter by collateral category: 'stable', 'ETH', 'BTC', 'stable-PT', 'stocks' (equity vaults), 'Other' (perps)."
    • Addedsimulate_equity_deposit
  3. 7 tool updates
    • First observedbuild_leverage_tx
    • First observedbuild_manage_tx
    • First observedget_positions
    • First observedget_prices
    • First observedget_strategy
    • First observedlist_strategies
    • First observedsimulate_leverage

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to monitor stablecoin yields, balances, and rewards across Aave, Morpho, and Euler on multiple EVM chains, and to deposit, withdraw, or rebalance positions via user-signed transactions.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides read-only access to Sandcastle leveraged liquidity positions, live Uniswap V3 and Morpho market data, owner position health, and payoff simulations on Robinhood Chain.
    4
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Self-custodial crypto portfolio and DeFi MCP server. Read balances and positions (Aave, Compound, Morpho, Uniswap V3, Lido, EigenLayer) across Ethereum, Arbitrum, Polygon, and Base, and prepare transactions for approval on a Ledger via WalletConnect.
    100
    378 npm
    4
    Business Source 1.1
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.