Tool Reference

The 16 MCP tools explained, purpose, example prompts, and the transaction format returned.

Always call yields_get before any action. The yield schema is self-documenting, it defines exactly what inputs are required for that specific yield and chain.

Tools

Discovery

ToolPurposeReturns
yields_get_allSearch and filter available yieldsPaginated yield summaries with identity, rewardRate, tvlUsd, status flags, lifecycle periods (cooldown/warmup/lockup), entry limits, and fee-mechanism flags
yields_getFull metadata for a specific yieldSingle yield with mechanics, required input fields for enter/exit/balance, validator requirement, capacity state, share token, and a top-level risk summary
yields_get_validatorsValidator options for delegation-based yieldsPaginated validators with identity, commission, votingPower, status, TVL, and reward rate
networks_get_allList all supported networksArray of network objects (id, name, category, logoURI)
providers_get_allList all yield protocols and validator providersPaginated providers (id, name, description, website, type, tvlUsd), type distinguishes protocol vs validator_provider

Diligence

Tool

Purpose

Returns

yields_get_risk

Get aggregate risk rating for a yield

Risk-provider object with letter grade, numeric score, short description, and source URL plus updatedAt. Coverage strongest for vault-type yields

yields_get_reward_rate_history

Historical APY / reward-rate snapshots

Time-series of {timestamp, rewardRate} points over a period (1d–all) with configurable day/week/month interval and pagination

yields_get_tvl_history

Historical TVL snapshots

Time-series of {timestamp, tvl, tvlRaw} points. Same period and interval controls as reward-rate history. Coverage strongest for vault-type yields

yields_get_balances

Active positions, pending actions, and claimable rewards for a wallet

Per-yield balances with amount, position type, share-token info, and pendingActions[] carrying the passthrough
value needed by actions_exit / actions_manage

Execution

ToolPurposeReturns
actions_enterBuild unsigned deposit/stake transaction(s)Action object containing one or more ordered, unsigned transactions (stepIndex order) with raw unsignedTransaction, gas estimate, and per-step status
actions_exitBuild unsigned withdrawal/unstake transaction(s)Same action-object shape as actions_enter, ordered txs to redeem, withdraw, or undelegate. Requires passthrough for some yields and validatorAddress for delegation-based yields
actions_manageBuild unsigned txs for claim, restake, vote, unlock, migrate, etc.Same action-object shape. The exact type (e.g. CLAIM_REWARDS, RESTAKE_REWARDS etc) depends on the yield mechanics and current position state

Tracking

ToolPurposeReturns
actions_getFetch status and transactions for a single actionAction object with current status, all transactions, hashes once broadcasted, and timestamps
actions_get_allList past and pending actions for a wallet, with filtersPaginated actions for an address. Filterable by network, intent (enter/exit/manage), type, yieldId, and one or more statuses[] (e.g. all pending = ["CREATED","PROCESSING"])
get_transactionPoll the status of a single transactionTransaction object with status, hash, broadcastedAt, and the raw signed/unsigned payloads
submit_hashRegister a broadcast hash against an unsigned transactionUpdated transaction object with hash and broadcastedAt populated; advances internal status from CREATED to BROADCASTED so subsequent polling and action-status updates work

Risk Scoring

Provides an at-a-glance assessment of protocol safety for a given yield. The response includes a letter grade, a numeric score (where lower means safer), and a link to the rating provider's site for the full breakdown.

Risk ratings are sourced from a third-party provider and currently have the strongest coverage for vault-type yields. The exact field names and schema may evolve as the underlying provider changes.


Transaction Format

Transaction-generating tools (actions_enter, actions_exit, actions_manage) return an intent execution object:

{
  "id": "string",
  "intent": "enter | exit | manage",
  "type": "STAKE | UNSTAKE | SUPPLY | ...",
  "yieldId": "string",
  "address": "string",
  "amount": "string",
  "amountUsd": "string",
  "executionPattern": "synchronous | asynchronous | batch",
  "status": "CREATED | PROCESSING | COMPLETED | FAILED",
  "createdAt": "ISO timestamp",
  "transactions": [
    {
      "stepIndex": 0,
      "id": "string",
      "type": "APPROVAL | SUPPLY | UNSTAKE | CLAIM | ...",
      "title": "string",
      "network": "string",
      "status": "CREATED | BROADCASTED | CONFIRMED | FAILED",
      "hash": "string | null",
      "unsignedTransaction": "object (EVM) | string base64 (Solana) | chain-dependent",
      "gasEstimate": {
        "amount": "string",
        "gasLimit": "string",
        "token": {
          "symbol": "string",
          "network": "string",
          "decimals": "number"
        }
      }
    }
  ]
}

Transaction Fields

FieldTypeDescription
stepIndexnumberExecution order, must be followed sequentially
idstringTransaction ID, used to submit the tx hash after broadcast
typestringAction type, APPROVAL, SUPPLY, UNSTAKE, CLAIM etc.
titlestringHuman readable label e.g. "SUPPLY Transaction"
networkstringTarget chain e.g. "arbitrum", "solana"
statusstringLifecycle state: CREATEDBROADCASTEDCONFIRMEDFAILED
hashstring | nullTx hash — null until broadcasted
unsignedTransactionobject | stringEVM: object with from, to, data, chainId etc. Solana: base64 string. Do not modify.
gasEstimateobject{ amount: string, gasLimit: string, token: { symbol, network, decimals } }


What’s Next