Server definition
- Hash
- sha256:fe2ed3d79faa16b7e5ed5acfbff09e5244a27eb839848efcad2f005c66145325
- What it is
- What a remote MCP server returned when asked what it offers: 19 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Second step of the USDC-gas path. Pass back the draft from prepare_transaction unchanged. For usdc_path, add permit_signature (EIP-712 signature of the returned permit). For either path, add authorization_signature (EIP-7702) if prepare asked for one. Returns the final user operation plus its EIP-712 typed data and hash for you to sign. Nothing is sent.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"authorization_signature": {
"description": "Only on first use on the chain: the EIP-7702 authorisation signature, as 65-byte hex or {r, s, yParity}."
},
"draft": {
"description": "usdc_path.draft from prepare_transaction, unchanged.",
"type": "object"
},
"permit_signature": {
"description": "usdc_path only: 65-byte hex signature of usdc_path.sign.permit (typed data or its digest).",
"type": "string"
}
},
"required": [
"draft"
],
"type": "object"
},
"name": "build_user_operation",
"outputSchema": null
},
{
"description": "Project compound returns for a USDC deposit into any ACCRUE vault or model portfolio over a given holding period. Uses live APY data and applies the ACCRUE platform fee, which is charged on PRINCIPAL (0.25%/yr standalone, 0.50%/yr managed falling to 0.25% above $1M) and never on yield. Returns gross yield, platform fee, net yield and final balance. Because the fee is on principal, net yield can be negative over a short horizon — net_is_negative flags that. Use this when the user asks \"how much would I earn\" or \"what would my $X grow to\".",
"inputSchema": {
"additionalProperties": false,
"properties": {
"amount_usdc": {
"description": "USDC deposit amount in dollars",
"minimum": 0.01,
"type": "number"
},
"months": {
"description": "Holding period in months",
"minimum": 0.1,
"type": "number"
},
"target_id": {
"description": "Optional vault ID or portfolio ID. If omitted, projects across all vaults and portfolios.",
"type": "string"
}
},
"required": [
"amount_usdc",
"months"
],
"type": "object"
},
"name": "calculate_yield",
"outputSchema": null
},
{
"description": "Compare two or more ACCRUE vaults side by side. Returns each vault's live APYs, TVL, chain, and risk tier, plus a comparison summary highlighting the highest yield, highest TVL, and whether the vaults share a risk tier. Use this for \"compare X and Y\" or \"is Aave or Compound better right now\" type questions.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"vault_ids": {
"description": "Array of 2–6 vault IDs or names to compare.",
"items": {
"type": "string"
},
"maxItems": 6,
"minItems": 2,
"type": "array"
}
},
"required": [
"vault_ids"
],
"type": "object"
},
"name": "compare_vaults",
"outputSchema": null
},
{
"description": "Get high-level facts about the ACCRUE platform: fee structure, custody model, supported chains, wallets, KYC requirements, withdrawal terms, and AI agent integration status. Use this when the user asks \"what is ACCRUE\", \"how does ACCRUE work\", \"what are the fees\", or anything about the platform itself rather than a specific vault.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_platform_info",
"outputSchema": null
},
{
"description": "Get full details on a single model portfolio: its underlying vault allocations, the live APY of each underlying vault, and the blended portfolio APY. Use this when the user asks about a specific portfolio like \"what is in Core on Ethereum\" or \"how does Foundation on Base work\".",
"inputSchema": {
"additionalProperties": false,
"properties": {
"portfolio": {
"description": "Portfolio ID or name. Examples: \"foundation-eth\", \"Core Portfolio\", \"growth-eth\", \"Foundation Portfolio Base\".",
"type": "string"
}
},
"required": [
"portfolio"
],
"type": "object"
},
"name": "get_portfolio_details",
"outputSchema": null
},
{
"description": "List the current SYX components with their live weights, APYs, and total value locked. SYX is composed of 8 onchain USDC supply markets: Aave v3 (Ethereum, Base, Arbitrum), Compound v3 (Ethereum), and Morpho v2 Prime USDC vaults from Steakhouse Financial and Gauntlet (Ethereum, Base). Use this when the user asks what is inside SYX, or wants to see the per-component breakdown.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_syx_components",
"outputSchema": null
},
{
"description": "Get historical SYX index readings. Use this when the user asks how SYX has moved over time, wants a chart of recent readings, or wants to compare current SYX to its recent trend. Returns time-series data points.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_syx_history",
"outputSchema": null
},
{
"description": "Get the full SYX methodology — how the index is constructed, which onchain components are included, how weights are calculated, the measurement windows, and the exclusion rules. Use this when the user asks \"how is SYX calculated\" or \"what does SYX measure\" or \"what protocols does SYX include\".",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_syx_methodology",
"outputSchema": null
},
{
"description": "Get the current Stablecoin Yield Index (SYX) value and rolling averages (7-day, 30-day, 90-day). SYX is a TVL-weighted benchmark for conservative USDC yield, calculated directly from canonical onchain contracts on Ethereum, Base, and Arbitrum — not aggregated from third-party APIs. Use this when the user asks \"what is the current stablecoin yield\" or \"what is SYX right now\" or any benchmark/reference-rate question about USDC yield.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_syx_value",
"outputSchema": null
},
{
"description": "Status of a submitted operation: pending, success or reverted, the transaction hash and explorer link, and what the account paid for the network fee (the exact USDC Circle charged).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"chain": {
"enum": [
"base",
"ethereum"
],
"type": "string"
},
"user_op_hash": {
"description": "user_op_hash from submit_user_operation.",
"type": "string"
}
},
"required": [
"chain",
"user_op_hash"
],
"type": "object"
},
"name": "get_transaction_status",
"outputSchema": null
},
{
"description": "Get full details on a single ACCRUE yield vault by ID or name. Returns the live spot APY, 7-day realized APY, 30-day realized APY, TVL, chain, risk tier, underlying protocol, and metadata. Use this when the user asks about a specific vault like \"tell me about Steakhouse Prime on Ethereum\" or \"how is the Aave Base vault doing\".",
"inputSchema": {
"additionalProperties": false,
"properties": {
"vault": {
"description": "Vault ID, name, or partial name. Examples: \"aave-eth\", \"Aave USDC Supply (Base)\", \"Gauntlet Frontier\", \"morpho-steakhouse-prime-eth\".",
"type": "string"
}
},
"required": [
"vault"
],
"type": "object"
},
"name": "get_vault_details",
"outputSchema": null
},
{
"description": "List all model portfolios on ACCRUE, organised per chain. Each portfolio is a pre-built blend of underlying vaults sized to a risk profile. Returns each portfolio with its live blended APY computed from underlying vault yields. Use this when the user asks \"what portfolios are available\" or wants a one-click diversified option.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"chain": {
"description": "Filter to a specific chain",
"enum": [
"Ethereum",
"Base"
],
"type": "string"
},
"risk_tier": {
"description": "Filter to a risk tier",
"enum": [
"Conservative",
"Balanced",
"Aggressive"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_model_portfolios",
"outputSchema": null
},
{
"description": "List the ACCRUE vault and model-portfolio CONTRACTS an agent can deposit into on one chain, read live from the ACCRUE Registry (registry.approvedVaults()). Returns address, on-chain symbol and name, whether it is a portfolio, the minimum deposit, and — if you pass your account — whether you are allowlisted and your current share balance. Vault addresses differ between chains and three of them name DIFFERENT markets on Ethereum and Base: always use the address returned for the chain you transact on. During guarded testing, deposits require the account to be allowlisted.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"account": {
"description": "Optional 0x address; adds allowlist status and share balance.",
"type": "string"
},
"chain": {
"description": "Chain to list.",
"enum": [
"base",
"ethereum"
],
"type": "string"
}
},
"required": [
"chain"
],
"type": "object"
},
"name": "list_vault_contracts",
"outputSchema": null
},
{
"description": "List all stablecoin yield vaults available on ACCRUE with their current live APYs, risk tiers, chains, and underlying protocols. Returns spot, 7-day realized, and 30-day realized APYs for each vault. Use this when the user asks \"what vaults are available\", \"what strategies does ACCRUE offer\", or wants to browse options.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_vaults",
"outputSchema": null
},
{
"description": "Prepare a deposit into or withdrawal from an ACCRUE vault for the calling agent's own wallet. Nothing is signed or sent. Returns (1) eth_path: ordinary unsigned transactions to send in order from the account, paying gas in ETH — ALWAYS returned; and (2) usdc_path: when available, the account can instead pay gas in USDC and hold no ETH at all — sign the returned USDC permit (and, on first use on the chain, the EIP-7702 authorisation, which keeps your address), then call build_user_operation. Prefer usdc_path when the account holds no ETH; eth_path always works. The USDC path shows a gas ceiling: the most the operation can cost; the actual charge is lower. Every precondition is checked first (allowlist, minimum deposit, balance, withdrawable liquidity), so a failure is reported before you sign anything. Amounts are in USDC, e.g. \"25\" or \"12.5\"; for a full withdrawal use amount \"all\".",
"inputSchema": {
"additionalProperties": false,
"properties": {
"account": {
"description": "The agent's own 0x address. Positions are permanently tied to the address that deposits.",
"type": "string"
},
"action": {
"enum": [
"deposit",
"withdraw"
],
"type": "string"
},
"amount": {
"description": "USDC amount (\"25\", \"12.5\"), or \"all\" to withdraw the whole withdrawable position.",
"type": "string"
},
"chain": {
"description": "Chain of the vault. Gas can be paid in ETH or USDC on both.",
"enum": [
"base",
"ethereum"
],
"type": "string"
},
"gas": {
"description": "auto (default): return every route available — USDC, USDC and ETH. eth: ETH path only.",
"enum": [
"auto",
"eth"
],
"type": "string"
},
"vault": {
"description": "Vault address or on-chain symbol (e.g. acrAAVE) on this chain, from list_vault_contracts. To withdraw from a retired ACCRUE vault (no longer listed, but always withdrawable), pass its address.",
"type": "string"
}
},
"required": [
"chain",
"action",
"vault",
"amount",
"account"
],
"type": "object"
},
"name": "prepare_transaction",
"outputSchema": null
},
{
"description": "Recommend a vault or model portfolio for a user based on their risk profile and chain preference. Uses live APY data to choose the best current option. Returns a recommendation with reasoning. Use this when the user describes what they want (\"I want safe yield on Base\", \"maximise returns on Ethereum\") rather than asking about a specific vault. Always reminds users this is informational, not financial advice.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"chain": {
"description": "Preferred chain (optional)",
"enum": [
"Ethereum",
"Base"
],
"type": "string"
},
"goal": {
"description": "User's primary goal",
"enum": [
"max_yield",
"capital_preservation",
"diversification",
"simplicity"
],
"type": "string"
},
"risk_profile": {
"description": "User's risk tolerance",
"enum": [
"conservative",
"balanced",
"aggressive"
],
"type": "string"
}
},
"required": [
"risk_profile"
],
"type": "object"
},
"name": "recommend_strategy",
"outputSchema": null
},
{
"description": "Natural-language search across all ACCRUE vaults and portfolios. Use this for vague queries like \"find me high-yield options\", \"show me lending strategies on Base\", or \"what aggressive options are there\". Returns matching vaults and portfolios with live data.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"query": {
"description": "Free-form search query",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search",
"outputSchema": null
},
{
"description": "Filter ACCRUE vaults by chain, risk tier, protocol, and/or minimum APY. Returns the matching vaults with live APY data. Use this when the user wants to narrow down by criteria like \"Base vaults only\", \"highest yield on Arbitrum\", or \"show me conservative options above 4%\".",
"inputSchema": {
"additionalProperties": false,
"properties": {
"chain": {
"description": "Filter to a specific chain",
"enum": [
"Ethereum",
"Base"
],
"type": "string"
},
"min_apy_pct": {
"description": "Minimum effective APY in percent (e.g. 4 for 4%).",
"type": "number"
},
"protocol": {
"description": "Filter by protocol substring, e.g. \"Aave\", \"Compound\", \"Morpho\", \"Steakhouse\", \"Gauntlet\"",
"type": "string"
},
"risk_tier": {
"description": "Filter to a risk tier",
"enum": [
"Conservative",
"Balanced",
"Aggressive"
],
"type": "string"
}
},
"type": "object"
},
"name": "search_vaults",
"outputSchema": null
},
{
"description": "Final step of the USDC-gas path. Pass user_operation from build_user_operation and your signature over its typed data (or hash). ACCRUE checks that the operation is an ACCRUE deposit or withdrawal for this account, paid through Circle's paymaster in USDC, and that you signed it — then relays it to the bundler. Returns user_op_hash; follow up with get_transaction_status. ACCRUE cannot alter a signed operation.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"chain": {
"enum": [
"base",
"ethereum"
],
"type": "string"
},
"signature": {
"description": "65-byte hex signature over sign.user_operation.",
"type": "string"
},
"user_operation": {
"description": "user_operation from build_user_operation, unchanged.",
"type": "object"
}
},
"required": [
"chain",
"user_operation",
"signature"
],
"type": "object"
},
"name": "submit_user_operation",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:fe2ed3d79faa16b7e5ed5acfbff09e5244a27eb839848efcad2f005c66145325 | sha256sum