# Liquid Agent (remote · api.liquidagent.ai)

Money tools for AI agents over x402: USDC bridge to 16 chains, Polymarket data, stocks, USDC gas.

- Trust score: 76/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-04

## Components

- remote · `api.liquidagent.ai`: 76/100 (this document), [markdown](https://verifymcp.io/servers/ai-liquidagent-api-liquid-agent/api.md), [page](https://verifymcp.io/servers/ai-liquidagent-api-liquid-agent/api)

## Channel facts

- Endpoint: `https://api.liquidagent.ai/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.7.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-04.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 86/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3632 tokens (~113/item across 32 items; 28 tools + 4 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 17/100
  - Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (86% of tools); any adoption earns full credit.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "stocks_send" implies "send" and declares readOnlyHint instead, contradicting what its own name says it does.
  - An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Liquid Agent MCP server?

Liquid Agent is a hosted endpoint at https://api.liquidagent.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http ai-liquidagent-api-liquid-agent 'https://api.liquidagent.ai/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "ai-liquidagent-api-liquid-agent": {
      "url": "https://api.liquidagent.ai/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "ai-liquidagent-api-liquid-agent": {
      "type": "http",
      "url": "https://api.liquidagent.ai/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.ai-liquidagent-api-liquid-agent]
url = "https://api.liquidagent.ai/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-liquidagent-api-liquid-agent": {
      "type": "remote",
      "url": "https://api.liquidagent.ai/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-liquidagent-api-liquid-agent --url 'https://api.liquidagent.ai/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  ai-liquidagent-api-liquid-agent:
    url: "https://api.liquidagent.ai/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "ai-liquidagent-api-liquid-agent": {
      "Transport": "http",
      "Url": "https://api.liquidagent.ai/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add ai-liquidagent-api-liquid-agent -t streamable-http -u 'https://api.liquidagent.ai/mcp'
```

### Other

```json
{
  "mcpServers": {
    "ai-liquidagent-api-liquid-agent": {
      "type": "http",
      "url": "https://api.liquidagent.ai/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-04 (score 76, 0)

- [functional regression] Tool coverage: 92% → 86%
- [functional] Server version: 1.7.0 → 1.8.0
- [functional] New tool “shop_info”
- [functional] New tool “shop_search”

### 2026-10-03 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-01 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-30 (score 74, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “bridge_quote” rewrote its description, which is the text the model reads
- [security] Tool “polymarket_prepare” rewrote its description, which is the text the model reads
- [security] Tool “stocks_signals_prepare” rewrote its description, which is the text the model reads
- [functional regression] Tool coverage: 100% → 92%
- [functional regression] Schema quality: pass → fail
- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.6.0 → 1.7.0
- [functional] New tool “polymarket_price_to_beat”
- [functional] New tool “stocks_signals”
- [cosmetic] “bridge_prepare_payment” reworded the description of “from”
- [cosmetic] “bridge_prepare_payment” reworded the description of “to”
- [cosmetic] “bridge_quote” reworded the description of “from”
- [cosmetic] “bridge_quote” reworded the description of “to”
- [cosmetic] Tool “bridge_quote” changed its title: Bridge quote (Base <-> Arc) → Bridge quote (Base to 16 chains, Arc to Base)
- [cosmetic] Tool “polymarket_prepare” changed its title: Prepare a Polymarket price-to-beat call ($0.002) → Prepare a Polymarket price-to-beat call ($0.004)
- [cosmetic] Tool “stocks_signals_prepare” changed its title: Prepare a paid signals call ($0.005) → Prepare a paid signals call ($0.007)

### 2026-09-29 (score 74)

First indexed and scored.

## MCP tools (28)

### `bridge_quote` (~249 tokens)

Bridge quote (Base to 16 chains, Arc to Base)

Free. Exact price to move USDC with the Liquid Bridge (Base to Arc, Arbitrum, OP, Polygon, Avalanche, Unichain, Linea, World Chain, Sonic, Monad, Sei, Ink, HyperEVM, XDC, Plume, Codex; or Arc to Base): what you pay, what you receive (exactly `amount`), the fee breakdown and the ETA. No payment, no wallet needed.

Input parameters:

- `amount` (string, required): USDC to RECEIVE on the destination, e.g. "1" or "25.5". Minimum 1.
- `from` (string): Chain you pay on. Omit to pick the live route to `to` (Base to any listed chain; Arc to Base).
- `ref` (string): Optional referrer address: earns 20% of Liquid's fee. Omit if you have none.
- `to` (string, required): Chain you receive on: arc, arbitrum, optimism, polygon, avalanche, unichain, linea, world, sonic, monad, sei, ink, hyperevm, xdc, plume, codex (from Base) or base (from Arc).

Output parameters:

- `allInCost` (string): Total cost in USDC
- `allInPct` (string): Total cost as a percentage
- `breakdown` (object): Fee breakdown: Circle network fee, Liquid fee, gas
- `etaSeconds` (number): Typical delivery time
- `from` (string): Chain you pay on
- `network` (string): x402 network of the payment (CAIP-2)
- `note` (string): Notes
- `pay` (string): USDC you pay, all fees included
- `payTo` (string): Bridge contract that receives the x402 payment
- `receive` (string): USDC you receive, exactly the requested amount
- `recipient` (string): Who receives: the payer's own address
- `to` (string): Chain you receive on

### `bridge_prepare_payment` (~244 tokens)

Prepare a bridge payment (x402)

Returns the exact x402 payment request for a bridge (network, asset, payTo contract, amount, EIP-712 domain) and the URL to call. Pay it with your own x402 client: sign one EIP-3009 authorization and repeat the GET with the PAYMENT-SIGNATURE header. You receive exactly `amount` at your own address on the destination. This tool does not pay or sign anything.

Input parameters:

- `amount` (string, required): USDC to RECEIVE on the destination, e.g. "1" or "25.5". Minimum 1.
- `from` (string): Chain you pay on. Omit to pick the live route to `to` (Base to any listed chain; Arc to Base).
- `ref` (string): Optional referrer address: earns 20% of Liquid's fee. Omit if you have none.
- `to` (string, required): Chain you receive on: arc, arbitrum, optimism, polygon, avalanche, unichain, linea, world, sonic, monad, sei, ink, hyperevm, xdc, plume, codex (from Base) or base (from Arc).

Output parameters:

- `howToPay` (array): Step-by-step signing instructions
- `method` (string): HTTP method
- `note` (string): Notes
- `quote` (object): The quote behind the price
- `url` (string): URL to call with the PAYMENT-SIGNATURE header
- `x402` (object): The x402 payment request (accepts: scheme, network, asset, payTo, amount, EIP-712 domain)

### `bridge_routes` (~29 tokens)

Bridge routes

Free. Every Liquid Bridge route with its live price for 1 USDC and whether it is open.

Output parameters:

- `routes` (array): Each route: from, to, live price for 1 USDC, open or not

### `bridge_status` (~59 tokens)

Track a bridge

Free. Circle attestation and mint state for a bridge, by its burn transaction hash (returned by the bridge call).

Input parameters:

- `burnTx` (string, required): Burn transaction hash from the bridge response.
- `from` (string): Source chain, if known.

Output parameters:

- `burnTx` (string): Burn transaction hash
- `circleStatus` (string): Circle attestation status
- `delayReason` (string|null): Why it is delayed, if it is
- `feeExecuted` (string): Circle fee actually charged
- `forwardState` (string): Circle Forwarding state
- `from` (string): Source chain
- `mintTx` (string): Mint transaction on the destination, once minted
- `state` (string): waiting | attested | minted | delayed

### `bridge_referral_earnings` (~64 tokens)

Referral earnings

Free. Unclaimed Liquid Bridge referral earnings for an address on each chain, and how they are paid out. Earn by adding ref=<your address> to bridge calls: 20% of Liquid's fee.

Input parameters:

- `address` (string, required): Referrer address.

Output parameters:

- `earnings` (object): Unclaimed earnings per chain
- `note` (string): Notes
- `payout` (string): How and when earnings are paid
- `referrer` (string): Referrer address

### `stocks_basket` (~46 tokens)

Tokenized stock basket

Free. The on-chain tokenized US stock index on Base (NVDA, META, AAPL, GOOGL): live prices, fees, how to buy from $1.

Output parameters:

- `chain` (string): Chain
- `chainId` (number): Chain id
- `constituents` (array): Stocks in the basket with live prices
- `factory` (string): Vault factory address
- `fees` (object): Fees
- `flow` (object): How to buy and exit
- `minDepositUsdc` (string): Minimum deposit (USDC, 6 decimals)
- `protocol` (string): Protocol name
- `tagline` (string): One-line summary
- `totalVaults` (number): Vaults created
- `usdc` (string): USDC address

### `stocks_buy_quote` (~73 tokens)

Stock basket buy quote

Free. Preview buying the tokenized stock basket: shares you would get and the fee for a USDC amount (USDC 6 decimals: "2000000" = $2).

Input parameters:

- `usdc` (string, required): Amount in USDC-6, e.g. "2000000" for $2.

Output parameters:

- `mintFeeUsdc` (string): Mint fee (6 decimals)
- `netUsdc` (string): USDC invested after the fee
- `note` (string): Notes
- `usdcIn` (string): USDC in (6 decimals)

### `stocks_vault` (~42 tokens)

Stock vault state

Free. A basket vault's value (NAV), holdings, current vs target weights and whether it needs rebalancing.

Input parameters:

- `address` (string, required): Vault address.

Output parameters:

- `constituents` (array): Holdings with current weights
- `mintFeeBps` (number): Mint fee
- `nav` (number): NAV in dollars
- `navUsdc` (string): Net asset value (USDC, 6 decimals)
- `owner` (string): Owner
- `rebalanceBandBps` (number): Rebalance band
- `rebalanceNeeded` (boolean): True when weights drifted past the band
- `strategist` (string): Strategist
- `totalSupply` (string): Shares outstanding
- `vault` (string): Vault address
- `weightsBps` (array): Target weights in basis points

### `stocks_portfolio` (~44 tokens)

Stock portfolio of an address

Free. Everything an address owns in the tokenized stock basket: each vault, its shares and current USD value.

Input parameters:

- `address` (string, required): Wallet address to look up.

Output parameters:

- `agent` (string): Address
- `vaultCount` (number): Vaults held
- `vaults` (array): Each vault: address, shares, value in USDC

### `stocks_create_vault` (~92 tokens)

Open your own stock vault

Free. Opens your own vault for the tokenized US stock basket (NVDA, META, AAPL, GOOGL), controlled only by you. Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds. After it confirms, find the vault with stocks_portfolio.

Output parameters:

- `after` (string): What to do after it confirms
- `attribution` (object): ERC-8021 builder attribution suffix info
- `chainId` (number): Chain id (8453 = Base)
- `data` (string): Calldata, sign and broadcast as-is
- `mode` (string): permit: sign typedData first
- `next` (string): What to do next
- `steps` (array): When two transactions are needed (approve, then deposit), sign and send them in order
- `to` (string): Contract to call
- `typedData` (object): EIP-712 permit to sign off-chain (free, no gas)
- `value` (string): Native value, always 0

### `stocks_set_weights` (~137 tokens)

Set your stock allocation

Free. Sets your vault's target allocation across the 4 stocks in basis points (sum 10000), e.g. [4000, 3000, 2000, 1000]. Default is equal weight. Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds.

Input parameters:

- `vault` (string, required): Your vault address.
- `weightsBps` (array, required): 4 weights in basis points summing to 10000, in the basket's constituent order (see stocks_basket).

Output parameters:

- `after` (string): What to do after it confirms
- `attribution` (object): ERC-8021 builder attribution suffix info
- `chainId` (number): Chain id (8453 = Base)
- `data` (string): Calldata, sign and broadcast as-is
- `mode` (string): permit: sign typedData first
- `next` (string): What to do next
- `steps` (array): When two transactions are needed (approve, then deposit), sign and send them in order
- `to` (string): Contract to call
- `typedData` (object): EIP-712 permit to sign off-chain (free, no gas)
- `value` (string): Native value, always 0

### `stocks_buy` (~250 tokens)

Buy tokenized stocks with USDC

Free. Invest USDC into your vault from $1 (USDC 6 decimals: "1000000" = $1). Easiest: set usePermit=true with owner, sign the returned typedData off-chain (free), then call again with permitDeadline + permitSignature to get ONE deposit transaction. Without a permit you get two transactions (approve, then deposit). Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds.

Input parameters:

- `minShares` (string): Optional slippage floor: minimum shares to receive.
- `owner` (string): Your wallet address (required with usePermit).
- `permitDeadline` (integer): Deadline from the permit you signed (second call).
- `permitSignature` (string): Your signature of the permit typedData (second call).
- `usdc` (string, required): USDC to invest, 6 decimals, minimum "1000000" ($1).
- `usePermit` (boolean): true = return an EIP-2612 permit to sign first (no approve transaction).
- `vault` (string, required): Your vault address.

Output parameters:

- `after` (string): What to do after it confirms
- `attribution` (object): ERC-8021 builder attribution suffix info
- `chainId` (number): Chain id (8453 = Base)
- `data` (string): Calldata, sign and broadcast as-is
- `mode` (string): permit: sign typedData first
- `next` (string): What to do next
- `steps` (array): When two transactions are needed (approve, then deposit), sign and send them in order
- `to` (string): Contract to call
- `typedData` (object): EIP-712 permit to sign off-chain (free, no gas)
- `value` (string): Native value, always 0

### `stocks_sell` (~151 tokens)

Sell (redeem) basket shares

Free. Cash out: redeem basket shares to USDC, or take the raw stock tokens in-kind (works any block, no vault needed, anyone holding shares can sell). Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds.

Input parameters:

- `inKind` (boolean): true = receive the 4 stock tokens instead of USDC.
- `minUsdcOut` (string): Optional slippage floor in USDC-6.
- `shares` (string, required): Shares to redeem (18 decimals; see stocks_portfolio).
- `vault` (string, required): Vault whose shares you hold.

Output parameters:

- `after` (string): What to do after it confirms
- `attribution` (object): ERC-8021 builder attribution suffix info
- `chainId` (number): Chain id (8453 = Base)
- `data` (string): Calldata, sign and broadcast as-is
- `mode` (string): permit: sign typedData first
- `next` (string): What to do next
- `steps` (array): When two transactions are needed (approve, then deposit), sign and send them in order
- `to` (string): Contract to call
- `typedData` (object): EIP-712 permit to sign off-chain (free, no gas)
- `value` (string): Native value, always 0

### `stocks_rebalance` (~79 tokens)

Rebalance your vault

Free. Brings your vault back to its target weights (check stocks_vault: rebalanceNeeded). Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds.

Input parameters:

- `vault` (string, required): Your vault address.

Output parameters:

- `after` (string): What to do after it confirms
- `attribution` (object): ERC-8021 builder attribution suffix info
- `chainId` (number): Chain id (8453 = Base)
- `data` (string): Calldata, sign and broadcast as-is
- `mode` (string): permit: sign typedData first
- `next` (string): What to do next
- `steps` (array): When two transactions are needed (approve, then deposit), sign and send them in order
- `to` (string): Contract to call
- `typedData` (object): EIP-712 permit to sign off-chain (free, no gas)
- `value` (string): Native value, always 0

### `stocks_send` (~110 tokens)

Send basket shares to anyone

Free. Transfer your tokenized stock basket shares to any wallet or another agent; they can hold, sell or forward them, no vault needed. Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds.

Input parameters:

- `shares` (string, required): Shares to send (18 decimals).
- `to` (string, required): Recipient address.
- `vault` (string, required): Vault whose shares you hold.

Output parameters:

- `after` (string): What to do after it confirms
- `attribution` (object): ERC-8021 builder attribution suffix info
- `chainId` (number): Chain id (8453 = Base)
- `data` (string): Calldata, sign and broadcast as-is
- `mode` (string): permit: sign typedData first
- `next` (string): What to do next
- `steps` (array): When two transactions are needed (approve, then deposit), sign and send them in order
- `to` (string): Contract to call
- `typedData` (object): EIP-712 permit to sign off-chain (free, no gas)
- `value` (string): Native value, always 0

### `stocks_signals_prepare` (~85 tokens)

Prepare a paid signals call ($0.007)

Returns the x402 payment request for basket signals ($0.007 USDC on Base, Polygon or Arc): rebalancing signal, momentum and suggested weights for NVDA/META/AAPL/GOOGL in one call. Pay it with your own x402 client. This tool does not pay.

Input parameters:

- `vault` (string): Optional vault to tailor the signal to.

Output parameters:

- `alternatives` (array): Other accepted networks
- `body` (object): JSON body to send, for POST
- `howToPay` (array): Step-by-step signing instructions
- `method` (string): HTTP method
- `note` (string): Notes
- `url` (string): URL to call with the PAYMENT-SIGNATURE header
- `x402` (object): The x402 payment request (scheme, network, asset, payTo, amount, EIP-712 domain)

### `polymarket_prepare` (~188 tokens)

Prepare a Polymarket price-to-beat call ($0.004)

Returns the x402 payment request for Polymarket crypto Up/Down data (BTC, ETH, SOL, XRP; 5m and 15m; $0.004 USDC on Base, Polygon or Arc): the OFFICIAL price to beat for the live 5m or 15m window (matched to the cent against Polymarket's results), the live Chainlink price and its distance from the price to beat, seconds left, token ids and market prices. Pass start (unix) for a past window's official outcome. First call free: add ?free=1 to the URL for one live answer at no charge (one per agent). Pay it with your own x402 client. This tool does not pay.

Input parameters:

- `market` (string, required): Which market: <asset>-<timeframe>.
- `start` (string): Optional unix start of a past window.

Output parameters:

- `alternatives` (array): Other accepted networks
- `body` (object): JSON body to send, for POST
- `howToPay` (array): Step-by-step signing instructions
- `method` (string): HTTP method
- `note` (string): Notes
- `url` (string): URL to call with the PAYMENT-SIGNATURE header
- `x402` (object): The x402 payment request (scheme, network, asset, payTo, amount, EIP-712 domain)

### `polymarket_price_to_beat` (~187 tokens)

Polymarket price to beat (paid, $0.004)

PAID over x402 inside this tool call ($0.004 USDC on Base, Polygon or Arc): the OFFICIAL Polymarket price to beat for the live BTC, ETH, SOL or XRP 5m/15m Up/Down window (matched to every decimal against Polymarket), the live Chainlink price and its distance, seconds left, token ids and market prices. Call it once without payment to get the x402 PaymentRequired; your x402 wallet signs it and you call again with the payment in _meta["x402/payment"]. Set free=true for one free answer per agent.

Input parameters:

- `free` (boolean): Use your one free call (per agent) instead of paying.
- `market` (string, required): Which market: <asset>-<timeframe>.
- `start` (string): Optional unix start of a past window (official outcome).

### `shop_info` (~66 tokens)

Partner shop: what it sells (free)

Free. What the Mint & Marquee partner shop sells (custom 3D printed figurines, statues, keychains, bag tags; soccer, anime, crypto collections), its product count and price range, and how to search it.

Input parameters:

- `shop` (string): Which partner shop.

### `shop_search` (~154 tokens)

Gift and collectible search (paid, $0.001)

PAID over x402 inside this tool call ($0.001 USDC on Arc, Base or Polygon): search the Mint & Marquee partner shop for gifts and collectibles. Returns products with price, photo, a short description and a link to buy. Show the person each product with its link, then the foundWith line once. Call once without payment to get the x402 PaymentRequired, then call again with the signed payment in _meta["x402/payment"].

Input parameters:

- `limit` (integer): How many products, 1 to 10 (default 5).
- `max` (number): Optional price ceiling in USD.
- `q` (string): What to find, in words (e.g. soccer gift).

### `stocks_signals` (~115 tokens)

Basket signals (paid, $0.007)

PAID over x402 inside this tool call ($0.007 USDC on Base, Polygon or Arc): the whole stock basket's rebalancing signal in one call (returns, volatility, RSI, trend, relative strength and inverse-volatility target weights for NVDA, META, AAPL, GOOGL). Call once without payment to get the x402 PaymentRequired, then call again with the signed payment in _meta["x402/payment"].

Input parameters:

- `vault` (string): Optional vault to tailor the signal to.

### `stocks_publish_prepare` (~77 tokens)

Prepare a paid portfolio page ($0.01)

Returns the x402 payment request to publish a live, shareable portfolio page for a vault for 24 hours ($0.01 USDC on Base or Polygon). Pay it with your own x402 client. This tool does not pay.

Input parameters:

- `label` (string): Optional page title.
- `vault` (string, required): Vault to publish.

Output parameters:

- `alternatives` (array): Other accepted networks
- `body` (object): JSON body to send, for POST
- `howToPay` (array): Step-by-step signing instructions
- `method` (string): HTTP method
- `note` (string): Notes
- `url` (string): URL to call with the PAYMENT-SIGNATURE header
- `x402` (object): The x402 payment request (scheme, network, asset, payTo, amount, EIP-712 domain)

### `usdc_balances` (~88 tokens)

USDC balances on every chain

Free. USDC balance (and native gas balance) of an address on every CCTP chain at once: Ethereum, Avalanche, OP Mainnet, Arbitrum, Base, Polygon PoS, Unichain, Linea, Sonic, World Chain, Arc. Use it before paying or bridging to see where your money is.

Input parameters:

- `address` (string, required): EVM address.

Output parameters:

- `address` (string): Address
- `chains` (array): Per chain: USDC and native gas balance
- `hints` (array): What to do next
- `totalUsdc` (string): USDC across all chains

### `cctp_status` (~128 tokens)

Track any Circle CCTP transfer

Free. Status of ANY Circle CCTP v2 USDC transfer (not only Liquid's) by its burn transaction hash: attestation, whether it was minted on the destination, and exactly how to finish a stuck one (receiveMessage with the message and attestation). Chains: Ethereum, Avalanche, OP Mainnet, Arbitrum, Base, Polygon PoS, Unichain, Linea, Sonic, World Chain, Arc.

Input parameters:

- `from` (string): Source chain, if known (faster).
- `txHash` (string, required): Burn transaction hash on the source chain.

Output parameters:

- `amountUsdc` (string): Amount burned
- `destinationChain` (string): Destination chain
- `feeExecutedUsdc` (string): Circle fee charged
- `forwarding` (boolean): Uses Circle Forwarding
- `found` (boolean): Circle has a message for it
- `mintRecipient` (string): Who receives
- `mintTx` (string): Mint transaction when forwarded
- `nextStep` (string): What to do now
- `receiveMessage` (object): When attested but not minted: contract, message and attestation to finish it yourself
- `sourceChain` (string): Source chain
- `state` (string): not_found | pending_attestation | attested | minted
- `txHash` (string): Burn transaction

### `x402_check` (~193 tokens)

x402 debugger

Free. Decode any x402 payment request (from a URL, a PAYMENT-REQUIRED header or a 402 body) into plain English with warnings, and optionally verify a signed payment (PAYMENT-SIGNATURE / X-PAYMENT header) the way a facilitator would: recipient, amount, time window, EIP-712 signature against the token's real domain, nonce reuse and balance. Every failed check comes with the fix.

Input parameters:

- `body` (object): JSON body for a POST url.
- `method` (string): HTTP method for url (default GET).
- `payment` (string): Optional signed payment header value to verify.
- `requirement` (string): Instead of url: the PAYMENT-REQUIRED header value (base64) or the 402 JSON body.
- `url` (string): The paid endpoint URL (https). It is called once, without payment, to read its 402.

Output parameters:

- `requirement` (object): Decoded payment request: options in plain English, warnings
- `verification` (object): If a payment was given: each facilitator check, pass/fail, and the fix

### `payment_readiness` (~167 tokens)

Can this wallet pay this endpoint?

Free. One call to know if a wallet can pay an x402 endpoint right now: reads the endpoint's 402, checks the wallet's balance on each accepted network, and if it cannot pay, returns the cheapest fix (e.g. move USDC from the chain where it sits, with the exact bridge_quote arguments).

Input parameters:

- `address` (string, required): The paying wallet.
- `body` (object): JSON body for a POST url.
- `method` (string): HTTP method for url (default GET).
- `requirement` (string): Instead of url: the PAYMENT-REQUIRED header value (base64) or the 402 JSON body.
- `url` (string): The paid endpoint URL (https). It is called once, without payment, to read its 402.

Output parameters:

- `address` (string): Payer
- `fix` (object): Cheapest step to become able to pay
- `note` (string): Notes
- `options` (array): Each payment option with balance and whether it is enough
- `ready` (boolean): Can pay right now

### `gas_sponsor_info` (~59 tokens)

Gas sponsor (pay gas in USDC)

Free. How to send a transaction on Base, Polygon or Solana with a wallet that holds USDC but no ETH/POL/SOL: the x402-paid gas sponsor, its price rule (from $0.03) and lanes.

Output parameters:

- `chains` (array): Supported chains
- `docs` (string): Docs URL
- `enabled` (boolean): Live or not
- `endpoint` (string): Paid endpoint
- `flow` (array): Steps
- `price` (string): Price rule
- `service` (string): Service name
- `what` (string): What it does

### `liquid_guide` (~37 tokens)

What Liquid Agent offers

Free. Overview of every Liquid Agent service for agents (bridge, stocks, signals, gas sponsor), prices and where the full docs are.

Output parameters:

- `discovery` (object): Machine-readable discovery URLs
- `referral` (string): How referrals earn
- `services` (object): Every service with price, tools and docs

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/ai-liquidagent-api-liquid-agent/api#diagnostics

## Score history

- 2026-10-04: 76
- 2026-10-03: 76
- 2026-10-02: 75
- 2026-10-01: 75
- 2026-09-30: 74
- 2026-09-29: 74

## Common questions

### What is the Liquid Agent MCP server?

Liquid Agent is an MCP server listed in the public MCP registry as ai.liquidagent.api/liquid-agent. Money tools for AI agents over x402: USDC bridge to 16 chains, Polymarket data, stocks, USDC gas. This page covers its hosted endpoint (https://api.liquidagent.ai/mcp).

### Is the Liquid Agent MCP server safe to use?

Liquid Agent scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Liquid Agent MCP server expose?

Liquid Agent exposes 28 tools: bridge_quote, bridge_prepare_payment, bridge_routes, bridge_status, bridge_referral_earnings, and 23 more. Their descriptions and schemas cost roughly 3,213 tokens of context every time the server is loaded.

### Does the Liquid Agent MCP server require authentication?

No. We connected to Liquid Agent without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Liquid Agent MCP server still maintained?

Liquid Agent is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.liquidagent.ai/mcp
- Repository: https://github.com/LiquidAgent/liquidagentx402
- Website: https://api.liquidagent.ai/
- Changelog RSS feed: https://verifymcp.io/servers/ai-liquidagent-api-liquid-agent/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-liquidagent-api-liquid-agent/api.json
- HTML version of this page: https://verifymcp.io/servers/ai-liquidagent-api-liquid-agent/api
