Skip to main content
Glama

lend_deposit

Destructive

Deposit assets to earn yield on Kamino or Marginfi (non-custodial).

Returns an UNSIGNED base64 tx to sign + broadcast, plus supply APY. amount is in base units of token. protocol: kamino | marginfi -- pin one to keep exact prior behaviour. Marginfi needs marginfi_account (create via the sidecar). Past the daily free tier an x402 payment_header is required. The deposited token is authenticity-verified first; set allow_unverified=true to supply an unverified token at own risk.

venue_hint / auto-route: pass protocol="auto" (or "") -- optionally with venue_hint as an advisory alias, same naming as jupiter_swap/trade_equity -- to route through the SAME primary+fallback health-failover the internal earn/lending trade bridge already applies: an empty rate snapshot on the primary protocol fails over to the configured fallback. Extends this tool instead of adding a separate earn_quote/trade_earn surface, so lend_deposit is now the one first-class MCP path for both a pinned protocol and an auto-routed deposit. A router-resolved call also carries the smart-contract counterparty-risk disclosure in the response (disclosures), matching the internal bridge.

Workflow: EXECUTE step (yield leg) -- supply idle stables/tokens after comparing get_lending_rates; monitor with get_health_factor. See get_trading_workflow.

idempotency_key (optional): a client-generated UUID. Retrying with the same key + same args replays the original result instead of re-depositing. Reuse the SAME key across the build call and its signed_transaction completion call -- the two legs dedupe independently, so this never raises IDEMPOTENCY_CONFLICT; a NEW key means a genuinely new deposit.

signed_transaction / verify (two-phase execution): re-call this tool with the SIGNED base64 tx and Crank broadcasts it, then awaits on-chain confirmation and re-reads BOTH the deposited token's balance and the obligation's health -- the response carries a real verification block ({confirmed, slot, post_state, expected_vs_actual}). Gate follow-on borrowing on verification.confirmed, never on tx_signature alone. verify=false skips only the confirmation wait. When the build leg auto-routed (protocol="auto"), pass back the SAME resolved protocol the build response reported -- re-resolving from "auto"/ venue_hint again on the completion leg could pick a different venue if health changed between calls.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tokenYes
amountYes
marketNo
verifyNo
protocolYes
caller_idNo
venue_hintNo
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo
marginfi_accountNo
signed_transactionNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.6/5.0
Behavior5/5

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

The description is exceptionally transparent about behavior: it returns an UNSIGNED tx, requires x402 payment_header past the free, will fail over venue on empty rate snapshots, has truthiness checks via allow_unveriefied, and clears two-phase execution with Crank broadcast and verification block. It also describes idempotency replay semantics and says the transaction is uncustodial. These go well beyond the sparse annotations: readOnlyHint=false, destructructiveHint=true, idempotentHint=false.

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 long, but it is detailed enough to support a high-complexity 14-parameter tool. It front-loads the purpose and uses labeled inline concepts like protocol, auto-route, and two-phase execution. Some sentences are more architect/chronicle than agent-instructive, especially the extended 'instead of a separate earn_quote...' rationale, so it is not maximally concise.

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?

Given the tool's complexity, the description covers return values, workflow, prevate perlink, fee gates, verification semantics, counterpart risk disclosures, and venue failouver behavior. The output schema can sussumeance the return structure and this description explains everything an agent needs to call lend_deposit correctly, including how to complete the two-leg two-phase flow.

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 description coverage is 0%, so the descrption carries the load. It does meaningfully explain protocol, amount, venue_hint, marginfi_account, allow_unerified, idempotency_key, signed_transaction, verify, payment_headeer, and wallet addess is implied. However it leaves market, caller_id, and pay_in_crank undiscussed, so it compensates for the schema gap but not completely.

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 first sentence is explicit: 'Deposit assets to earn yield on Kamino or Marginfi (non-custodial).' It names the verb, resource, and venue clearly, and it is easy to distinguish from siblings like lend_borrow or lend_repay even though those are not explicitly excluded. The rest of the description reinforces scope by contrasting with auto-routing vs pinning one venue.

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 gives workflow guidance: supply after comparing get_lending_rates, monitor with get_health_factor, and see get_trading_workflow. It also explains placement for pinned protocol vs auto-route and when to use signed_transaction. It does not explicitly say 'do not use lend_borrow or lend_repay here,' but the context already directs when this tool is the appropriate funder route.

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.

TDQS

B3.2/5.0
Disambiguation2/5

Multiple tools overlap significantly: close_perp_position vs perp_close, get_leaderboard vs get_score_leaderboard vs get_strategy_leaderboard, get_venue_status vs get_all_venues_status, send_token_social vs bulk_send_social, and get_crank_score vs get_score. Several read-only tools have nearly identical purposes, and the descriptions do not always clarify boundaries.

Naming Consistency4/5

Most tools follow a consistent verb_noun snake_case pattern (get_balances, create_strategy, set_alert, list_webhooks). However, there are deviations like 'lst_swap', 'jupiter_swap', 'flash_loan', 'sr_backtest', and the use of both 'get_' and 'list_' for reads, plus category prefixes like 'perp_' and 'strategy_' that vary in order. Overall still readable and predictable.

Tool Count1/5

177 tools is an extreme count for any server, far exceeding the 25+ threshold for 'too many'. Even a full DeFi platform does not need this many separate operations; the surface is overwhelming and clearly not well-scoped.

Completeness3/5

The domain (Solana DeFi trading) is covered extensively across swaps, perps, lending, staking, strategies, signals, and support. However, there are notable gaps: no lend_withdraw, no direct way to close a lending position, no spot order cancellation (though aggregator-based swaps may not need it), and a general lack of tiered account management. The huge number of tools makes it hard to identify missing lifecycle steps.

Resources