API Reference
Complete reference for all 16 Bundie MCP tools - inputs, outputs, and usage.
Read Tools
yields.check
Browse current DeFi yield opportunities across EVM chains with APY and risk data.
| Param | Type | Required | Description |
|---|---|---|---|
token | string | No | Filter by token symbol (e.g., USDC, USDT) |
minApy | number | No | Minimum APY (decimal, e.g., 0.05 for 5%) |
chain | string | No | Filter by chain name (e.g., base, arbitrum, scroll) |
sortBy | "apy" | "name" | No | Sort field (default: apy) |
limit | number | No | Max results (default: 10) |
yields.risk_scores
Get detailed risk scores and risk component breakdown for all yield protocols. Shows security, liquidity, maturity, and centralization scores.
| Param | Type | Required | Description |
|---|---|---|---|
token | string | No | Filter by token symbol (e.g., USDC) |
chain | string | No | Filter by chain name (e.g., base, arbitrum) |
minRisk | number | No | Minimum overall risk score (0-100, higher = safer) |
sortBy | "risk" | "apy" | No | Sort by risk score or APY (default: risk) |
limit | number | No | Max results (default: 10) |
portfolio.view
Check current positions, allocation breakdown, and weighted APY for a wallet.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Ethereum address (0x...) |
chainId | number | No | Chain ID (default: 534352 Scroll) |
wallet.balance
Check the token balance of a wallet on a specific chain.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Wallet address to check (0x...) |
asset | string | No | Token symbol (USDC, USDT) or address (0x...) (default: USDC) |
chainId | number | No | Chain ID to query (default: 534352 Scroll) |
bridge.status
Check the status of a Relay Protocol bridge request. Returns current status, estimated completion time, and transaction hashes.
| Param | Type | Required | Description |
|---|---|---|---|
requestId | string | Yes | Bridge request ID returned by bridge.to_scroll |
yields.buy
Generate a payment link to buy crypto (USDC/USDT) with a credit card or bank transfer. The user clicks the link, completes payment, and receives crypto in their wallet. Funds arrive on Base and can then be bridged to Scroll for Bundie yield.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Wallet address to receive the crypto (0x...) |
fiatAmount | number | No | Amount in fiat currency (default: 100) |
fiatCurrency | string | No | Fiat currency code (USD, EUR, GBP, etc.) (default: USD) |
cryptoCurrency | string | No | Crypto to buy — USDC or USDT (default: USDC) |
network | string | No | Network to receive on: base, ethereum, polygon, arbitrum (default: base) |
Write Tools
vault.deposit
Deposit assets into your Bundie vault. The vault holds funds that can then be allocated to yield strategies.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Your wallet address |
asset | string | Yes | Token symbol (USDC, USDT) or address (0x...) |
amount | string | Yes | Human-readable amount (e.g., "100.5") |
chainId | number | No | Chain ID (default: 534352) |
vault.withdraw
Withdraw assets from your Bundie vault back to your wallet or a specified address.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Your wallet address |
asset | string | Yes | Token symbol or address |
amount | string | Yes | Human-readable amount |
recipientAddress | string | No | Withdraw to different address |
chainId | number | No | Chain ID (default: 534352) |
strategy.deposit
Deposit into a specific cross-chain yield strategy by protocol ID. Use yields.check first to find protocol IDs.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Your wallet address |
protocolId | string | Yes | Protocol UUID from yields.check |
amount | string | Yes | Human-readable amount |
asset | string | No | Token symbol (default: USDC) |
chainId | number | No | Chain ID (default: 534352) |
strategy.withdraw
Withdraw from a specific strategy position. Use portfolio.view to see your position indices.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Your wallet address |
positionIndex | number | Yes | Position index from portfolio.view |
amount | string | Yes | Human-readable amount |
asset | string | No | Token symbol (default: USDC) |
destinationChain | number | Yes | Chain ID to receive funds |
chainId | number | No | Source chain ID (default: 534352) |
bridge.to_scroll
Bridge USDC or USDT from any supported chain to Scroll (534352) via Relay Protocol. Returns a requestId that can be tracked with bridge.status.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Wallet address initiating the bridge (0x...) |
amount | string | Yes | Human-readable amount (e.g., "100.5") |
asset | string | No | Token to bridge — USDC or USDT (default: USDC) |
sourceChain | string | No | Source chain name or ID: ethereum, optimism, arbitrum, base, polygon, mode, linea, tempo (default: base) |
AI Tools
wallet.analyze
Full AI wallet analysis - risk profile, on-chain behavior, DeFi positions, idle assets.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Wallet to analyze |
Note: Takes 1-3 minutes for new wallets. Results cached for 30 days.
wallet.recommend
AI-recommended diversified yield bundle. Analyzes the wallet first (if not cached), then runs a multi-perspective analysis to select optimal strategies.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Wallet to recommend for |
tokens | string[] | No | Filter by tokens (e.g., ["USDC"]) |
chains | number[] | No | Filter by chain IDs |
minRiskScore | number | No | Min risk score (0-100, higher = safer) |
maxRiskScore | number | No | Max risk score |
bundleSize | number | No | Strategies per bundle (1-10, default: 3) |
excludeUSX | boolean | No | Exclude USX token |
portfolio.rebalance
Compare current positions against optimal allocation with optional auto-execute.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Your wallet address |
chainId | number | No | Chain ID (default: 534352) |
autoExecute | boolean | No | Execute rebalance automatically (default: false) |
wallet.migrate
Find yield migration opportunities - compare external DeFi positions against Bundie.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Wallet to check |
Note: Requires a prior wallet analysis. Run wallet.analyze first.
State Tool
portfolio.preferences
Set yield selection rules for the session. Applied to all subsequent recommendations and rebalance checks.
| Param | Type | Required | Description |
|---|---|---|---|
walletAddress | string | Yes | Wallet address |
maxAllocationPerProtocol | number | No | Max % in any single protocol |
auditedOnly | boolean | No | Only audited protocols |
minRiskScore | number | No | Min risk score (0-100) |
maxRiskScore | number | No | Max risk score |
excludeChains | number[] | No | Chain IDs to exclude |
excludeProtocols | string[] | No | Protocol names to exclude |
preferredTokens | string[] | No | Preferred token symbols |
Natural Language Mapping
| User says | Preference set |
|---|---|
| "only audited protocols" | auditedOnly: true |
| "max 30% in one place" | maxAllocationPerProtocol: 30 |
| "nothing below B+ risk" | minRiskScore: 75 |
| "only USDC" | preferredTokens: ["USDC"] |
| "no Arbitrum" | excludeChains: [42161] |
Connection Setup
Hosted (recommended)
{
"mcpServers": {
"bundie": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.bundie.fi/evm"]
}
}
}Self-Hosted
{
"mcpServers": {
"bundie": {
"command": "npx",
"args": ["-y", "@bundie/evm-mcp"],
"env": {
"BACKEND_URL": "https://backend.bundie.fi",
"BACKEND_API_KEY": "your-key",
"ANALYZER_URL": "https://ai.bundie.fi",
"ANALYZER_API_KEY": "your-key"
}
}
}
}Contact info@bundie.fi for self-hosted API keys.