Liquid Agent
REMOTE · API.LIQUIDAGENT.AI · SCANNED OCT 4
Money tools for AI agents over x402: USDC bridge to 16 chains, Polymarket data, stocks, USDC gas.
Available components
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. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability86
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- 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. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
- Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (86% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 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. See how to fix → Fail
- An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
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.
remote · api.liquidagent.ai
claude mcp add --transport http ai-liquidagent-api-liquid-agent 'https://api.liquidagent.ai/mcp'
{
"mcpServers": {
"ai-liquidagent-api-liquid-agent": {
"url": "https://api.liquidagent.ai/mcp"
}
}
} {
"servers": {
"ai-liquidagent-api-liquid-agent": {
"type": "http",
"url": "https://api.liquidagent.ai/mcp"
}
}
} [mcp_servers.ai-liquidagent-api-liquid-agent] url = "https://api.liquidagent.ai/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-liquidagent-api-liquid-agent": {
"type": "remote",
"url": "https://api.liquidagent.ai/mcp",
"enabled": true
}
}
} openclaw mcp add ai-liquidagent-api-liquid-agent --url 'https://api.liquidagent.ai/mcp' --transport streamable-http
mcp_servers:
ai-liquidagent-api-liquid-agent:
url: "https://api.liquidagent.ai/mcp" {
"McpServers": {
"ai-liquidagent-api-liquid-agent": {
"Transport": "http",
"Url": "https://api.liquidagent.ai/mcp"
}
}
} assistant mcp add ai-liquidagent-api-liquid-agent -t streamable-http -u 'https://api.liquidagent.ai/mcp'
{
"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.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Oct 26 0
- Tool coverage: 92% → 86% ▼ functional
- Server version: 1.7.0 → 1.8.0 functional
- New tool “shop_info” functional
- New tool “shop_search” functional
- 3 Oct 26 +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.
- 1 Oct 26 +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.
- 30 Sept 26 0
- 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 security
- Tool coverage: 100% → 92% ▼ functional
- Schema quality: pass → fail ▼ functional
- 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” functional
- “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) cosmetic
- 29 Sept 26 74
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Oct 2026 · Probed https://api.liquidagent.ai/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=api.liquidagent.ai | CN=YR2,O=Let's Encrypt,C=US | 6 Aug 2026 | 4 Nov 2026 | RSA 2048 | SHA256-RSA | 6a46b4922fefb7f7626d06760e247aaf654 |
| SANs: api.liquidagent.ai | ||||||
| CN=YR2,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | 4ebd24947e24d394802d84a52fd5b319 |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.liquidagent.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| liquidagent.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains; preload |
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' wss: https:; frame-ancestors 'none'; base-uri 'self'; form-action 'self' |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.liquidagent.ai/mcp | Verified | 200 | |
| http (plaintext) | http://api.liquidagent.ai/mcp | HTTPS enforced | 301 | https://api.liquidagent.ai/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
bridge_prepare_payment Prepare a bridge payment (x402) ~244
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | 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 | yes | 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). |
| Name | Type | Req | Description |
|---|---|---|---|
| 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) |
No examples provided.
bridge_quote Bridge quote (Base to 16 chains, Arc to Base) ~249
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | 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 | yes | 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). |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
bridge_referral_earnings Referral earnings ~64
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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Referrer address. |
| Name | Type | Req | Description |
|---|---|---|---|
| earnings | object | – | Unclaimed earnings per chain |
| note | string | – | Notes |
| payout | string | – | How and when earnings are paid |
| referrer | string | – | Referrer address |
No examples provided.
bridge_routes Bridge routes ~29
Free. Every Liquid Bridge route with its live price for 1 USDC and whether it is open.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| routes | array | – | Each route: from, to, live price for 1 USDC, open or not |
No examples provided.
bridge_status Track a bridge ~59
Free. Circle attestation and mint state for a bridge, by its burn transaction hash (returned by the bridge call).
| Name | Type | Req | Description |
|---|---|---|---|
| burnTx | string | yes | Burn transaction hash from the bridge response. |
| from | string | – | Source chain, if known. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
cctp_status Track any Circle CCTP transfer ~128
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.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | – | Source chain, if known (faster). |
| txHash | string | yes | Burn transaction hash on the source chain. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
gas_sponsor_info Gas sponsor (pay gas in USDC) ~59
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
liquid_guide What Liquid Agent offers ~37
Free. Overview of every Liquid Agent service for agents (bridge, stocks, signals, gas sponsor), prices and where the full docs are.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| discovery | object | – | Machine-readable discovery URLs |
| referral | string | – | How referrals earn |
| services | object | – | Every service with price, tools and docs |
No examples provided.
payment_readiness Can this wallet pay this endpoint? ~167
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).
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
polymarket_prepare Prepare a Polymarket price-to-beat call ($0.004) ~188
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.
| Name | Type | Req | Description |
|---|---|---|---|
| market | string | yes | Which market: <asset>-<timeframe>. |
| start | string | – | Optional unix start of a past window. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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) |
No examples provided.
polymarket_price_to_beat Polymarket price to beat (paid, $0.004) ~187
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.
| Name | Type | Req | Description |
|---|---|---|---|
| free | boolean | – | Use your one free call (per agent) instead of paying. |
| market | string | yes | Which market: <asset>-<timeframe>. |
| start | string | – | Optional unix start of a past window (official outcome). |
No output schema declared.
No examples provided.
shop_info Partner shop: what it sells (free) ~66
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.
| Name | Type | Req | Description |
|---|---|---|---|
| shop | string | – | Which partner shop. |
No output schema declared.
No examples provided.
shop_search Gift and collectible search (paid, $0.001) ~154
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"].
| Name | Type | Req | Description |
|---|---|---|---|
| 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). |
No output schema declared.
No examples provided.
stocks_basket Tokenized stock basket ~46
Free. The on-chain tokenized US stock index on Base (NVDA, META, AAPL, GOOGL): live prices, fees, how to buy from $1.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
stocks_buy Buy tokenized stocks with USDC ~250
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | USDC to invest, 6 decimals, minimum "1000000" ($1). |
| usePermit | boolean | – | true = return an EIP-2612 permit to sign first (no approve transaction). |
| vault | string | yes | Your vault address. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
stocks_buy_quote Stock basket buy quote ~73
Free. Preview buying the tokenized stock basket: shares you would get and the fee for a USDC amount (USDC 6 decimals: "2000000" = $2).
| Name | Type | Req | Description |
|---|---|---|---|
| usdc | string | yes | Amount in USDC-6, e.g. "2000000" for $2. |
| Name | Type | Req | Description |
|---|---|---|---|
| mintFeeUsdc | string | – | Mint fee (6 decimals) |
| netUsdc | string | – | USDC invested after the fee |
| note | string | – | Notes |
| usdcIn | string | – | USDC in (6 decimals) |
No examples provided.
stocks_create_vault Open your own stock vault ~92
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
stocks_portfolio Stock portfolio of an address ~44
Free. Everything an address owns in the tokenized stock basket: each vault, its shares and current USD value.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Wallet address to look up. |
| Name | Type | Req | Description |
|---|---|---|---|
| agent | string | – | Address |
| vaultCount | number | – | Vaults held |
| vaults | array | – | Each vault: address, shares, value in USDC |
No examples provided.
stocks_publish_prepare Prepare a paid portfolio page ($0.01) ~77
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.
| Name | Type | Req | Description |
|---|---|---|---|
| label | string | – | Optional page title. |
| vault | string | yes | Vault to publish. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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) |
No examples provided.
stocks_rebalance Rebalance your vault ~79
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.
| Name | Type | Req | Description |
|---|---|---|---|
| vault | string | yes | Your vault address. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
stocks_sell Sell (redeem) basket shares ~151
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.
| Name | Type | Req | Description |
|---|---|---|---|
| inKind | boolean | – | true = receive the 4 stock tokens instead of USDC. |
| minUsdcOut | string | – | Optional slippage floor in USDC-6. |
| shares | string | yes | Shares to redeem (18 decimals; see stocks_portfolio). |
| vault | string | yes | Vault whose shares you hold. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
stocks_send Send basket shares to anyone ~110
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.
| Name | Type | Req | Description |
|---|---|---|---|
| shares | string | yes | Shares to send (18 decimals). |
| to | string | yes | Recipient address. |
| vault | string | yes | Vault whose shares you hold. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
stocks_set_weights Set your stock allocation ~137
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.
| Name | Type | Req | Description |
|---|---|---|---|
| vault | string | yes | Your vault address. |
| weightsBps | array | yes | 4 weights in basis points summing to 10000, in the basket's constituent order (see stocks_basket). |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
stocks_signals Basket signals (paid, $0.007) ~115
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"].
| Name | Type | Req | Description |
|---|---|---|---|
| vault | string | – | Optional vault to tailor the signal to. |
No output schema declared.
No examples provided.
stocks_signals_prepare Prepare a paid signals call ($0.007) ~85
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.
| Name | Type | Req | Description |
|---|---|---|---|
| vault | string | – | Optional vault to tailor the signal to. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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) |
No examples provided.
stocks_vault Stock vault state ~42
Free. A basket vault's value (NAV), holdings, current vs target weights and whether it needs rebalancing.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Vault address. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
usdc_balances USDC balances on every chain ~88
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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | EVM address. |
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Address |
| chains | array | – | Per chain: USDC and native gas balance |
| hints | array | – | What to do next |
| totalUsdc | string | – | USDC across all chains |
No examples provided.
x402_check x402 debugger ~193
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No examples provided.
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.