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
| Tool | Purpose | Returns |
|---|---|---|
yields_get_all | Search and filter available yields | Paginated yield summaries with identity, rewardRate, tvlUsd, status flags, lifecycle periods (cooldown/warmup/lockup), entry limits, and fee-mechanism flags |
yields_get | Full metadata for a specific yield | Single yield with mechanics, required input fields for enter/exit/balance, validator requirement, capacity state, share token, and a top-level risk summary |
yields_get_validators | Validator options for delegation-based yields | Paginated validators with identity, commission, votingPower, status, TVL, and reward rate |
networks_get_all | List all supported networks | Array of network objects (id, name, category, logoURI) |
providers_get_all | List all yield protocols and validator providers | Paginated providers (id, name, description, website, type, tvlUsd), type distinguishes protocol vs validator_provider |
Diligence
Tool | Purpose | Returns |
|---|---|---|
| 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 |
| Historical APY / reward-rate snapshots | Time-series of {timestamp, rewardRate} points over a period (1d–all) with configurable day/week/month interval and pagination |
| 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 |
| 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 |
Execution
| Tool | Purpose | Returns |
|---|---|---|
actions_enter | Build 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_exit | Build 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_manage | Build 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
| Tool | Purpose | Returns |
|---|---|---|
actions_get | Fetch status and transactions for a single action | Action object with current status, all transactions, hashes once broadcasted, and timestamps |
actions_get_all | List past and pending actions for a wallet, with filters | Paginated 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_transaction | Poll the status of a single transaction | Transaction object with status, hash, broadcastedAt, and the raw signed/unsigned payloads |
submit_hash | Register a broadcast hash against an unsigned transaction | Updated 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
| Field | Type | Description |
|---|---|---|
stepIndex | number | Execution order, must be followed sequentially |
id | string | Transaction ID, used to submit the tx hash after broadcast |
type | string | Action type, APPROVAL, SUPPLY, UNSTAKE, CLAIM etc. |
title | string | Human readable label e.g. "SUPPLY Transaction" |
network | string | Target chain e.g. "arbitrum", "solana" |
status | string | Lifecycle state: CREATED → BROADCASTED → CONFIRMED → FAILED |
hash | string | null | Tx hash — null until broadcasted |
unsignedTransaction | object | string | EVM: object with from, to, data, chainId etc. Solana: base64 string. Do not modify. |
gasEstimate | object | { amount: string, gasLimit: string, token: { symbol, network, decimals } } |
Updated 7 days ago
