Skip to main content
Glama
quackai-org

@quackai/q402-mcp

Official
by quackai-org

q402_yield_deposit

Supply stablecoins to Q402 Yield's lending market to earn APY. Preview the exact deposit for approval; sandbox mode prevents real transfers until enabled.

Instructions

WRITE - MOVES FUNDS. Supplies the Agent Wallet's stablecoin (USDC / USDT) into Q402 Yield's curated lending market for the chosen chain so it starts earning supply APY. Server-managed Agent Wallet path (Mode C): authenticated by the configured live Multichain API key - the server holds the encrypted key, signs the supply, and sponsors gas. CHAINS: 'bnb' supports USDC or USDT; 'base' supports USDC only. The actual lending venue is the chain's curated market and is reported in the markets feed and the receipt. Other chains are not yet available.

REQUIRES CONFIRMATION - like q402_pay, this tool refuses to execute unless confirm: true is set. Call it FIRST without confirm to get a one-line preview of exactly what will happen (amount, token, chain, wallet); show that to the user, get explicit approval, THEN re-call with confirm:true. Never set confirm:true on the user's behalf without that approval.

SANDBOX BY DEFAULT - like q402_pay, no funds move unless a live Multichain key (q402_live_*) is configured AND Q402_ENABLE_REAL_PAYMENTS=1. Without both, confirm:true returns a sandbox preview (no on-chain supply) with a setup hint - confirm:true alone does NOT move real funds.

RETRY SAFETY - on a timeout or an unconfirmed broadcast the tool returns status="uncertain" and echoes back the idempotencyKey it used. The deposit MAY have settled, so do NOT blindly call again - that starts a NEW deposit and can double-supply. To resume the SAME operation, re-call with idempotencyKey set to the echoed value; the server dedupes on it and replays the original result.

Use q402_yield_reserves first to show available markets + APY, and q402_yield_positions afterward to confirm the supplied balance.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainNoChain to supply on. 'bnb' (USDC or USDT) or 'base' (USDC only); the venue is the chain's curated lending market, reported in the receipt.
tokenYesStablecoin to supply. USDC or USDT on bnb; USDC only on base.
amountYesHuman-readable decimal amount to supply, e.g. "100.00".
confirmNoMUST be true to actually supply funds - set only after the user explicitly approved this exact deposit in chat. Omit (or false) to preview without moving funds.
protocolNoOptional deposit venue. 'aave' or 'lista' on bnb; 'morpho' on base. Omit for the chain's default venue. Bound into the consent token so a previewed venue can't be swapped. See q402_yield_reserves for each market's venue + APY.
walletIdNoOptional Agent Wallet address to supply from when the owner holds multiple wallets. Defaults to Q402_AGENT_WALLET_ADDRESS env, then the owner's default wallet on the server.
consentTokenNoTwo-phase consent token. Leave unset on the first call to get a preview + token; re-call with confirm:true AND this token after the user approves. Bound to (chain, token, amount, protocol, wallet) and refused on mismatch.
idempotencyKeyNoOptional durable idempotency key. Omit and the tool generates a FRESH random key per invocation, so every call executes a distinct deposit. Pass your own STABLE key only for opt-in retry-safety - re-calling with the same key replays the first result instead of double-supplying. If a call returns status="uncertain", it echoes the idempotencyKey it used - pass that exact value back here to resume the same deposit rather than start a new one.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the behavioral load. It clearly discloses that the tool 'MOVES FUNDS' and is a write operation, explains the sandbox-by-default behavior requiring both a live key and Q402_ENABLE_REAL_PAYMENTS=1, details the retry-safety semantics around status='uncertain' and idempotencyKey, and mentions server-managed signing and gas sponsorship. This is exemplary transparency for a financial mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Although the description is long, it is tightly structured with clear section headers (REQUIRES CONFIRMATION, SANDBOX BY DEFAULT, RETRY SAFETY) and every sentence delivers critical operational information. The front-loaded purpose statement and step-by-step usage guidance make it efficient despite its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 params, no output schema, no annotations), the description covers all necessary context: authentication, chain-specific constraints, confirmation flow, sandbox mode, retry safety, and sequencing with related tools. It even addresses failure semantics (status='uncertain') and the prevent-double-spend behavior. No significant gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all 8 parameters at 100% coverage, so the baseline is 3. The description adds valuable meaning beyond the schema by explaining the confirm parameter's two-phase semantics ('Call it FIRST without confirm to get a one-line preview... THEN re-call with confirm:true') and by elaborating idempotencyKey's retry behavior (re-calling with the echoed key 'replays the original result'). These additions justify a score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's function: 'Supplies the Agent Wallet's stablecoin (USDC / USDT) into Q402 Yield's curated lending market for the chosen chain so it starts earning supply APY.' This uses a specific verb ('supplies') and resource ('Q402 Yield's curated lending market'), and clearly distinguishes it from siblings like q402_yield_withdraw and q402_yield_reserves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: 'Use q402_yield_reserves first to show available markets + APY, and q402_yield_positions afterward to confirm the supplied balance.' It also explains the two-phase confirmation flow (call without confirm first, then with confirm) and notes chain limitations ('Other chains are not yet available'). This goes beyond mere context to give a complete usage workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/quackai-org/q402-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server