Cleave for Agents: token swaps, cross-chain swaps and gas top-ups
Server Details
Swap, bridge and get gas on 6 EVM chains. Each plan states its outcome before you sign. No API key.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct stage: token lookup, gas top-up, swap planning, and status tracking. The only overlap is that cleave_plan_swap also handles native-gas top-ups, but the description explicitly disambiguates it (plan_swap when the wallet already holds some gas, get_gas when it has none), so misselection risk is low.
All tools use a uniform cleave_ prefix followed by a verb_noun pattern (find_token, get_gas, plan_swap, track_swap). The convention is predictable and consistent across the entire set.
Four tools is a tight, well-scoped surface for a swap/bridge/gas service, with each tool clearly earning its place. It is slightly thin—no dedicated balance or quote tool—but nothing is redundant.
The core lifecycle is covered: discover token, plan swap, obtain gas, and track execution with refund states. Minor gaps exist around checking wallet balances or listing history, but agents can work around these using the existing tools.
Available Tools
4 toolscleave_find_tokenFind a token's contract addressARead-onlyIdempotentInspect
Finds a token by symbol or contract address on Ethereum, Arbitrum, Base, BNB Chain, Polygon or Optimism and returns its address, decimals and whether it is on Cleave's token list, with a flag when it resembles a listed token. A symbol shared by several listed tokens returns every candidate by address instead of picking one. An unlisted token is found only by its address and comes back flagged, without a name or symbol. It fits before cleave_plan_swap when the user names a token by symbol and the address is unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A symbol or a contract address | |
| chainId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real behavioral detail: ambiguous symbols return every candidate by address rather than guessing, and unlisted tokens come back flagged with no name or symbol. It does not discuss pagination or result size, but for a two-parameter lookup the disclosed behavior is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence carries information — scope, return fields, ambiguity handling, unlisted-token behavior, and sibling placement — with no filler. The first sentence is long and packs the chain list and return shape together, which slightly hurts scannability but not correctness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description takes on the burden and does: it names the returned fields and the edge-case shapes for ambiguous symbols and unlisted tokens. Combined with the read-only annotations, an agent has everything needed to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 50% schema coverage, but the description compensates: it spells out that `query` accepts either a symbol or a contract address, and its prose chain list (Ethereum, Arbitrum, Base, BNB Chain, Polygon, Optimism) supplies the meaning for the undescribed `chainId` enum. It also clarifies resolution behavior per input type, which the schema does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (finds) and resource (token by symbol or contract address), enumerates the supported chains, and lists exactly what is returned (address, decimals, list status, similarity flag). An agent can distinguish this from the planning/tracking siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger: use it before cleave_plan_swap when the user names a token by symbol and the address is unknown, which directly routes the agent relative to a sibling. It stops short of stating when not to use it (e.g. when the address is already known, where plan_swap could be called directly).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cleave_get_gasGet native gas with USDCAIdempotentInspect
Gets native gas (ETH, BNB or POL) on Ethereum, Arbitrum, Base, BNB Chain, Polygon or Optimism for a wallet that holds USDC on Ethereum, Arbitrum, Base, Optimism or Polygon but has no gas to send transactions. Called with the paying chain, the receiving chain, the recipient and a USDC amount, it returns an offer: the fee, the minimum native amount, the deadline, the order and one USDC authorization for the wallet to sign; signing costs no gas. Called again with the offer and the signature, it passes the signed order to Cleave's relayer, which executes it through a contract made for that one order, and returns a requestId for cleave_track_swap. On one chain the recipient gets at least the minimum or nothing moves; from another chain it gets the native coin at the minimum, else USDC on arrival if the arrival swap fails. An order not executed by its deadline is refunded to the refund address, or, if paid from another chain and not filled, refunded hours later. When the wallet already holds some gas, cleave_plan_swap plans a swap to the native coin.
| Name | Required | Description | Default |
|---|---|---|---|
| offer | No | ||
| amount | No | A decimal amount in token units | |
| wallet | No | ||
| chainId | No | ||
| refundTo | No | ||
| recipient | No | ||
| signature | No | ||
| payChainId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: signing costs no gas, execution goes through Cleave's relayer via a per-order contract, refund semantics for expired or unfilled cross-chain orders, and the minimum-amount guarantee with USDC fallback on arrival. This is exactly the context an agent needs for a non-read-only, open-world operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and nearly every clause carries real information, but the long run-on sentences ('On one chain the recipient gets at least the minimum or nothing moves; from another chain...') make the settlement semantics harder to parse than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-mode, eight-parameter, annotation-light mutation tool with no output schema, the description covers both call shapes, the returned offer fields and requestId, gas/signing costs, and failure/refund paths. Only the exact required-parameter split per mode remains implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 13% schema coverage, the description carries most of the burden; it valuably disambiguates payChainId (paying chain) from chainId (receiving chain) and sketches which arguments belong to the quote call versus the signature call. But it never explains wallet vs recipient vs refundTo distinctly, and with zero required parameters it leaves the per-mode required subset ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: obtaining native gas for a wallet that holds USDC but lacks gas, naming the exact supported chains. It also explicitly contrasts itself with cleave_plan_swap for the case where gas already exists, so an agent can pick it apart from siblings without reading schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context for when to use it (USDC held, no gas) and an explicit alternative routing rule: 'When the wallet already holds some gas, cleave_plan_swap plans a swap to the native coin.' It also names cleave_track_swap as the follow-up. It doesn't address when-not cases such as unsupported chain combinations or no USDC at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cleave_plan_swapPlan a swap, bridge or gas top-upARead-onlyIdempotentInspect
Plans a token swap on one chain, a cross-chain swap or bridge, or a native-gas top-up on Ethereum, Arbitrum, Base, BNB Chain, Polygon or Optimism, and returns unsigned transactions for the given wallet to sign. It fits when the user wants to exchange tokens, move them between these chains, or get ETH, BNB or POL for gas. It sends nothing and moves no funds. The answer leads with blocking notices and warnings, then gives the route's outcome kind (exact or at least a minimum; with a swap on arrival, the token, else a named fallback; where a transfer can go unfilled, a refund of the bridged token on the source chain hours later), every third-party cost except network gas, the expected time, validUntil and the calls in signing order. A blocking notice returns no calls; a warning, or a recipient other than the wallet, sets requiresConfirmation, and the connection's settings can turn either into a refusal. Calls sent after validUntil are stale: they can revert or, on some routes, end in a refund hours later. Amounts are decimal strings in token units; tokens are listed symbols or contract addresses; the recipient defaults to the wallet. Limits set in the connection (a pinned wallet, a per-plan USD cap, listed tokens only) bound every argument. For an ambiguous symbol, cleave_find_token lists the candidates; after sending, cleave_track_swap reports progress. A wallet with no gas can get it with cleave_get_gas.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | A decimal amount in token units | |
| wallet | Yes | ||
| buyToken | Yes | A listed symbol or a contract address | |
| recipient | No | ||
| sellToken | Yes | A listed symbol or a contract address | |
| toChainId | No | ||
| fromChainId | Yes | ||
| maxSlippageBps | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, the description discloses that nothing is sent or moved, that a blocking notice yields no calls, that warnings or a non-wallet recipient set requiresConfirmation, that connection settings can escalate either to a refusal, and that calls after validUntil can revert or refund hours later. It also describes the response ordering (notices first, then outcome kind, third-party costs excluding gas, expected time, validUntil, calls in signing order) — a level of behavioral detail far beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the 'sends nothing' safety note are front-loaded, and nearly every sentence carries operational weight (staleness, confirmation, refunds, costs). The single dense paragraph and heavily compressed clauses about outcome kinds make it harder to scan than it needs to be, but little is genuinely redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return-shape burden, and it does: ordering of notices, outcome kinds, minimum-received semantics, refund paths, cost breakdown, time estimate, validUntil, and signing order. Combined with the argument-boundary rules and sibling handoffs, an agent has everything needed to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 38% schema description coverage, the description does real work: it specifies amount as decimal strings in token units, tokens as listed symbols or contract addresses, that recipient defaults to the wallet, and that connection limits (pinned wallet, per-plan USD cap, listed tokens) bound every argument. It leaves maxSlippageBps entirely unexplained and never states that toChainId being optional is what distinguishes a single-chain swap from a bridge, which keeps it below a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names the specific verb ('Plans') and enumerates the exact resources: single-chain swap, cross-chain swap or bridge, and native-gas top-up, plus the supported chains and the fact that it returns unsigned transactions. The distinction from siblings is explicit (cleave_find_token for symbol ambiguity, cleave_track_swap for post-send tracking, cleave_get_gas for funding gas), so an agent can route without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the triggering intent directly: 'It fits when the user wants to exchange tokens, move them between these chains, or get ETH, BNB or POL for gas.' Each sibling is assigned a condition ('For an ambiguous symbol, cleave_find_token lists the candidates; after sending, cleave_track_swap reports progress. A wallet with no gas can get it with cleave_get_gas'), which covers both when to use this tool and when to hand off.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cleave_track_swapTrack a planned swap or transferARead-onlyIdempotentInspect
Reports the status of a swap, bridge or gas top-up that was planned with cleave_plan_swap and then sent, or ordered with cleave_get_gas: its state (for example pending, in flight, delivered, refund pending or refunded), what arrived against the plan and on which chain, and the next action or when to check again. It takes the chain and transaction hash, plus the plan's requestId when known, or for a gas top-up the requestId alone; a transaction to a contract outside Cleave's published list is reported as such. It fits when the user asks whether such a transfer arrived, and before any re-send, because re-sending a plan that is still in flight can pay twice. It reports states only and returns no transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| txHash | No | ||
| chainId | No | ||
| requestId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the description's value is in what it adds: the state vocabulary (pending, in flight, delivered, refund pending, refunded), that it reports what arrived and on which chain, the next-action guidance, and the edge case of transactions to contracts outside Cleave's published list. It also clarifies the tool only reports states and returns no transactions. The only gap is no mention of polling/refresh expectations beyond 'when to check again'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and state enumeration are front-loaded, and each sentence carries information (state list, inputs, edge case, when-to-use, negative capability). It is a dense single block with some clause-stacking, but no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must describe return content, and it does: states, what arrived and on which chain, and next action or when to re-check. Combined with the edge case for unlisted contracts and the explicit 'no transactions returned' note, an agent has what it needs to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the meaning, and it largely does: it explains the chain + txHash pairing for a sent plan, requestId as optional additional context, and that a gas top-up is identified by requestId alone. It stops short of documenting format constraints (e.g. the 'g:<id>:0x…' requestId form or the supported chain set), which only the schema pattern/enum convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reports status) and resource (swap, bridge or gas top-up), and ties each case to the sibling that created it (cleave_plan_swap, cleave_get_gas). An agent can separate this from cleave_plan_swap and cleave_get_gas without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit triggering conditions: when the user asks whether such a transfer arrived, and before any re-send because re-sending an in-flight plan can pay twice. It also names the ordering/precondition relationship to the sibling tools, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
cleave_find_token - First observed
cleave_get_gas - First observed
cleave_plan_swap - First observed
cleave_track_swap
Related MCP Connectors
Token swaps at the best net price on 9 EVM chains and Solana. No API key, non-custodial.
Best-price cross-chain swap quotes across 70 chains (EVM + Solana). Holds no keys, never signs.
Cross-chain swap API for native Bitcoin, Solana and EVM chains. No API key, no custody.
Non-custodial DEX aggregator for autonomous AI agents: best-price swaps on 8 chains, no API key.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceFree DEX aggregator API that returns executable swap calldata across 46 EVM chains. No API key required. Single GET request returns ready-to-sign transactions for any token pair.22MIT
- AlicenseNot gradedqualityCmaintenanceEnables users and agents to obtain MEV-protected multichain swap and cross-chain bridge quotes, check supported chains, and generate prefilled swap URLs, with gasless Permit2 execution and x402 or API-key access.284 npmMIT
- AlicenseNot gradedqualityCmaintenanceDeFi execution layer for AI agents - swap, zap in/out of LP, route across AMMs on 5 EVM chains.20 npm7MIT
- AlicenseAqualityAmaintenanceReal-time non-custodial crypto swap rates, fees, and on-chain routing across 240+ multi-chain pairs.142MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.