# Plume Vaults

Plume Vaults are Nest yield vaults backed by tokenized real-world assets. The Plume Vaults MCP server reads vaults, positions, and docs, and prepares unsigned deposit, withdrawal, and claim calls. Wallet MCP signs them.

**Chains:** varies by vault. `list_vaults` returns each vault's deposit and withdrawal assets by `chainId`. Use only routes on chains listed in the send_calls mapping below, the chains Wallet MCP signs on.

## Onboarding gate

STOP until Wallet MCP detection and onboarding are complete. Then check the Plume Vaults tools (`list_vaults`, `prepare_deposit`) are callable. If they are not, help the user add the connector:

- Claude: Customize → Connectors → Add custom connector, name `plume-vaults`, URL `https://mcp.plume.org`.
- ChatGPT: Settings → Connectors → Create, name `plume-vaults`, MCP Server URL `https://mcp.plume.org`, Authentication `None`.

## Read tools

- `list_vaults`: vaults open for deposits, with APY as a fraction (0.08 = 8%), TVL, redemption schedule, and deposit and withdrawal assets.
- `get_vault`: one vault's strategy, yield source, risks, and redemption policy.
- `get_positions`: the wallet's vault shares on every chain, with USD value and PnL.
- `get_claimable`: shares from settled standard withdrawals, ready to claim.
- `search_docs`, `read_doc`, `list_docs`: answers about how vaults, fees, redemptions, and compliance work.

Take the wallet address from `get_wallets`. Amounts are decimal token units (`"100"`).

## Prepare tools

Quote first with `quote_deposit` or `quote_withdrawal`, and confirm the vault, chain, amount, estimate, fee, and redemption timing with the user, including any `redemption.notice` the vault requires them to accept. For deposits, link the terms in the server instructions. Then call the matching prepare tool immediately before submitting:

- `prepare_deposit`: approve and deposit.
- `prepare_withdrawal`: `mode: "standard"` queues a redemption that settles after the vault's redemption period; `mode: "instant"` settles now when liquidity allows.
- `prepare_claim`: claims settled standard withdrawals.

Each returns a summary with `chainId`, `steps`, `calls`, and `complianceExpiresAt`. When set, `complianceExpiresAt` is the earliest expiry of any single-use compliance proof in the bundle, including deposits and withdrawals. Prepare again if the proof may expire before all calls execute, allowing time for wallet approval and earlier calls to confirm. It is `null` when no call reports an expiry.

## send_calls mapping

Map the prepare response to `send_calls` as `{ chain, calls }`: `chain` is the Wallet MCP name for `chainId` (8453 → `base`, 1 → `ethereum`, 42161 → `arbitrum`, 10 → `optimism`, 137 → `polygon`, 56 → `bsc`, 43114 → `avalanche`), and `calls` is passed unchanged. The calls are ordered approve-then-action, so the batch executes atomically in one approval. Share the `approvalUrl`, then poll `get_request_status` until confirmed before reporting success.
