polsolbridge/solana-swap-api
A free, non-custodial crypto swap and trading API supporting Solana and 7 EVM chains, with 1288+ assets, no API key or KYC required.
π± Swapping & Trading
Solana DEX swaps: Build unsigned Jupiter-aggregated swap transactions β you sign and broadcast yourself
EVM DEX swaps: Build unsigned KyberSwap-aggregated swap calldata on ETH, Base, BSC, Arbitrum, Polygon, Optimism, and Avalanche
Cross-chain swaps: Create non-custodial cross-chain orders via ChangeNow, SimpleSwap, or Heleket (XMR-optimized); track swap lifecycle (waiting β done)
Universal smart router: Compare all swap rails (bridge, DEX, H2H) to find the best route β handles exotic pairs like ETHβXMR
π Quotes & Market Data
Get swap quotes for Solana, EVM, and cross-chain pairs
Real-time USD prices for BTC, SOL, ETH, XMR
List 1288+ supported swap assets
Hyperliquid perpetual markets: live prices, max leverage, size decimals
β‘ Solana Utilities
Priority fee oracle: live compute-unit price tiers (low/medium/high/turbo)
π Hyperliquid Perpetuals
Build unsigned perpetual orders (long/short) with EIP-712 signing
One-time builder approval transaction
π Wallet & Security
Generate non-custodial wallets for Solana and EVM chains
Check wallet balance and USD portfolio value
Rug-check token contracts for scam/rug-pull risk
π Alerts & AI
Set Telegram price alerts for BTC, SOL, ETH, or XMR
Chat with an AI assistant for complex multi-step crypto tasks in natural language
All transactions are non-custodial β the server never holds funds or private keys. Deployable locally as an MCP server or accessible via a hosted public URL.
Enables token swaps on Ethereum via KyberSwap aggregator, returning unsigned transactions.
Enables cross-chain swaps involving Monero (XMR) without KYC, returning unsigned transactions.
Enables token swaps on Optimism via KyberSwap aggregator, returning unsigned transactions.
Enables token swaps on Polygon via KyberSwap aggregator, returning unsigned transactions.
Enables token swaps on Solana via Jupiter aggregator, returning unsigned transactions.
SwapTitan Swap API β free, non-custodial, no API key
Swap on Solana and 7 EVM chains with one free REST API. Every endpoint returns an unsigned transaction β you sign with your own wallet. The server never holds funds, never sees keys. No registration, no API key, no KYC.
Base URL: https://swaptitan.net
Run as MCP server (stdio)
A self-contained MCP server β no dependencies, Node >= 18:
node mcp-server.js18 tools (prices, quotes, Solana + EVM swaps, routing, priority fees, Hyperliquid, rug checks). The protocol layer runs locally; tool calls hit the free public API. Hosted alternative: https://swaptitan.net/mcp (streamable HTTP, no auth).
Related MCP server: maxia-mcp
Solana swap (Jupiter aggregator)
# Quote
curl "https://swaptitan.net/v1/sol/quote?from=sol&to=usdc&amount=0.1"
# Build unsigned swap transaction for YOUR wallet
curl -X POST https://swaptitan.net/v1/sol/swap \
-H "Content-Type: application/json" \
-d '{"from":"sol","to":"usdc","amount":0.1,"userPublicKey":"<YOUR_WALLET>"}'Response contains swapTransaction (base64, unsigned) β deserialize, sign, send to any RPC:
import { VersionedTransaction, Connection } from '@solana/web3.js';
const { swapTransaction } = await (await fetch('https://swaptitan.net/v1/sol/swap', {
method: 'POST', headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ from: 'sol', to: 'usdc', amount: 0.1, userPublicKey: wallet.publicKey.toString() })
})).json();
const tx = VersionedTransaction.deserialize(Buffer.from(swapTransaction, 'base64'));
tx.sign([wallet]);
await new Connection('https://api.mainnet-beta.solana.com').sendRawTransaction(tx.serialize());from/to:sol,usdc,usdtor any base58 mint (memecoins, pump.fun tokens β anything Jupiter routes)amount(human units for sol/usdc/usdt) oramountRaw(base units, any mint)slippageBps: 1β1000, default 50Pricing: free API β 0.3% routing fee + small flat network service fee inside the transaction (disclosed in the response as
feeBpsandserviceFeeLamports)
EVM swap β Ethereum, Base, BSC, Arbitrum, Polygon, Optimism, Avalanche (KyberSwap aggregator)
# Quote
curl "https://swaptitan.net/v1/evm/base/quote?tokenIn=native&tokenOut=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&amount=0.1"
# Build unsigned calldata
curl -X POST https://swaptitan.net/v1/evm/base/swap \
-H "Content-Type: application/json" \
-d '{"tokenIn":"native","tokenOut":"0x8335...2913","amount":0.1,"account":"<YOUR_0x_WALLET>"}'Response: tx: { to, data, value } β sign and broadcast with your own wallet (ethers/viem/web3.js). ERC-20 input requires prior approval to tx.to. Pricing: free API, 0.3% routing fee in calldata.
Universal cross-chain router
One call compares all rails (cross-chain exchange bridge, direct H2H liquidity, Solana DEX) and returns the best route with ready-to-execute parameters β including hard pairs like eth -> xmr:
curl "https://swaptitan.net/v1/route?from=eth&to=xmr&amount=0.5"Solana priority-fee oracle
Live compute-unit price tiers, refreshed continuously β call before sending any Solana transaction:
curl "https://swaptitan.net/v1/sol/priority-fee"
# -> { "recommended": { "low": ..., "medium": ..., "high": ..., "turbo": ... }, "computeUnitsHint": {...} }Connect
Remote endpoint (no auth, free tier): https://swaptitan.net/mcp β JSON-RPC 2.0, streamable HTTP, 18 tools.
Claude (web & desktop): Settings β Connectors β Add custom connector β paste
https://swaptitan.net/mcpβ Connect.Claude Desktop / Cursor / VS Code / Cline: add to your MCP config:
{ "mcpServers": { "swaptitan": { "url": "https://swaptitan.net/mcp" } } }Local stdio (no hosted dependency):
node mcp-server.js(see above).Any SDK / agent: call
tools/listthentools/call. Tools:sol_swap,evm_swap,smart_route,sol_priority_fee,swap_create,swap_status,get_prices,rug_checkand more.
Discovery: /llms.txt Β· /.well-known/agent-skills/index.json Β· /.well-known/mcp/server-card.json
More
1288+ asset cross-chain swaps:
GET /v1/swap/quote?from=btc&to=eth&amount=1Live prices:
GET /v1/pricesXMR/Monero no-KYC swaps:
GET /v1/xmr/quote?from=sol&amount=1&to=xmr
Rate limits & fair use
Public endpoints are rate-limited per IP (20β60/min depending on endpoint). Fees are always disclosed in the API response. All transactions are non-custodial: nothing executes until you sign.
Available Tools
18 toolsai_chatARead-only
Chat with SwapTitan AI agent for complex crypto tasks, multi-step swaps, and natural language queries.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | No | Optional wallet address for context | |
| message | Yes | Natural language message |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; description adds no behavioral context beyond stating it handles complex tasks, which is implied by the name.
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?
Single clear sentence with no wasted words, front-loading the core action and scope.
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 chat tool, the description sufficiently covers purpose and input; no output schema is needed as the response is natural language from the AI.
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 coverage is 100%, and the description does not add meaning beyond the schema's parameter descriptions (wallet and message). Baseline score applies.
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 description clearly states it is for chatting with the SwapTitan AI agent for complex crypto tasks and multi-step swaps, distinguishing it from specific swap tools like evm_swap or sol_swap.
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?
No guidance on when to use this tool versus sibling tools; lacks when-not-to-use or explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_portfolioBRead-only
Check wallet balance on any chain. Returns native balance and USD value.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to check | sol |
| address | Yes | Wallet address to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds that it returns native balance and USD value, which is useful but does not deeply elaborate on behavior beyond annotations.
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?
Two sentences with no wasted words. The core action and output are front-loaded in the first sentence.
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 simple read-only tool with full schema coverage and clear annotations, the description sufficiently covers the return values. Missing only minor details like format or pagination, which are not critical here.
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 100% with clear parameter descriptions. The description does not add significant meaning beyond what the schema already provides for parameters.
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 description clearly states the verb 'Check' and the resource 'wallet balance' with scope 'any chain' and output 'native balance and USD value'. It is specific but does not differentiate from sibling tools like get_assets or get_prices.
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?
No guidance on when to use this tool versus alternatives. Sibling tools exist for swaps, quotes, and asset lists, but no exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_walletA
Generate a new non-custodial crypto wallet. Returns address and private key. Chain: sol (Solana), eth/base/bsc (EVM).
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Blockchain for the wallet | sol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint=false, destructiveHint=false). The description does not disclose critical behavioral aspects like the one-time nature of private key generation or the need to securely store it. This is a significant gap for a tool handling sensitive data.
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?
Two concise sentences that front-load the purpose and immediately provide key details. No unnecessary words or structural issues.
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 simple tool with one optional parameter and no output schema, the description covers purpose, return values, and chain options. It is complete enough, though missing a warning about private key security.
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?
The description explains the chain options with examples and grouping (EVM), adding value beyond the schema's enum and description. With 100% schema coverage, this extra context merits a 4.
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 description clearly states it generates a non-custodial crypto wallet, returns address and private key, and specifies supported chains. It distinctly differs from sibling tools like evm_swap or check_portfolio.
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?
No explicit when or when-not guidance. The use case is implied by the tool name and description, but no alternatives or prerequisites are mentioned. For a straightforward creation tool, this is adequate but not exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_swapA
Build a NON-CUSTODIAL EVM DEX swap via KyberSwap aggregator on eth/base/bsc/arbitrum/polygon/optimism/avax: returns UNSIGNED calldata {to,data,value} β sign with YOUR OWN wallet. Server never touches funds. 0.3% routing fee. ERC20 input needs prior approval.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | EVM chain | |
| amount | No | Human amount (native only) | |
| account | Yes | Your 0x wallet address | |
| tokenIn | Yes | 0x-address or native | |
| tokenOut | Yes | 0x-address or native | |
| amountRaw | No | Base units (any token) | |
| slippageBps | No | 10-2000, default 100 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide openWorldHint=true and destructiveHint=false. Description adds critical context: server never touches funds, 0.3% fee, returns unsigned calldata. No contradiction.
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?
Two sentences with bold emphasis, front-loaded with key information. No fluff, every word earns its place.
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?
Given no output schema, description explains return format (unsigned calldata with to, data, value). Covers chains, fee, approval, and parameter details. Complete for the tool's complexity.
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 coverage is 100%, but description adds meaning by clarifying amount vs amountRaw (human vs base units) and the need for prior approval. Baseline 3, plus extra value.
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?
Description clearly states it builds a non-custodial EVM DEX swap via KyberSwap aggregator on specific chains, returning unsigned calldata. Distinguishes from Solana swaps (sol_swap) and other tools.
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?
Specifies when to use (EVM DEX swaps) and prerequisites (ERC20 approval). Does not explicitly state when not to use, but sibling tools provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assetsARead-only
List all 1288+ supported swap assets with ticker, network and name
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. Description adds countable size and field details, which is helpful but not essential beyond annotations.
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?
Single sentence, efficiently conveys key information with no wasted words.
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 parameterless list tool, the description sufficiently covers what is returned (list of assets with ticker, network, name). No output schema exists, but the description explains return fields well.
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?
No parameters exist, so baseline 4 applies. The description adds no parameter info (none needed).
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 description clearly states the tool lists all 1288+ supported swap assets, specifying the fields (ticker, network, name). It is distinct from siblings like get_prices or swap_create.
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?
Usage is implied (list when you need supported assets) but no explicit when-to-use or alternative tools mentioned. For a simple read-only list, this is adequate but not exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricesARead-only
Get real-time USD prices for BTC, SOL, ETH and XMR
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition of 'real-time' is mildly helpful but does not disclose further behavioral traits like rate limits or data freshness.
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?
Single sentence with no unnecessary words. Front-loaded with key information. Every word earns its place.
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 simple read-only tool with no parameters and no output schema, the description adequately conveys the tool's function. Could optionally hint at return format (e.g., object with prices), but not essential.
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?
No parameters exist, and schema coverage is 100% (empty schema). The description specifies which assets are covered, adding value beyond the schema. Baseline 4 is appropriate.
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?
Clearly states the action (Get), resource (real-time USD prices), and specific assets (BTC, SOL, ETH, XMR). Distinguishes from sibling tools like check_portfolio or get_assets which have different purposes.
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?
Description implies usage for fetching current prices of listed cryptocurrencies. No explicit when-not or alternatives, but the purpose is straightforward enough that agents can infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_approveA
Get the one-time approveBuilderFee action to sign with your MAIN wallet, authorizing SwapTitan as Hyperliquid builder at a minimal 0.001% max fee. Revocable anytime.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints beyond readOnlyHint=false and destructiveHint=false. The description adds that the action is one-time, requires signing with the MAIN wallet, and is revocable. However, it does not disclose potential side effects, confirmation steps, or whether it triggers any on-chain transactions. Given the lack of annotations, more detail would be beneficial.
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?
The description is a single sentence that efficiently conveys the action, wallet requirement, fee, and revocability. No wasted words; structure is front-loaded with the key verb 'Get the one-time approveBuilderFee action'.
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?
Given the simple input schema (no parameters, no output schema), the description provides enough context to understand what the tool does. It could be improved by mentioning the expected output or next steps, but it remains functional for an approval action.
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?
The tool has no parameters (schema coverage 100%), so the description does not need to add parameter-level details. It correctly focuses on the tool's action and context. A score of 4 is appropriate as the description is sufficient for a parameterless tool.
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 description clearly states the tool obtains a one-time approveBuilderFee action for signing with the MAIN wallet, authorizing SwapTitan as a Hyperliquid builder at a specific fee. This is a distinct purpose from sibling tools like hl_build_order or hl_markets, which deal with order building and market data.
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?
The description implies this is a one-time approval action and mentions it's revocable, but it does not explicitly state when to use this tool versus alternatives (e.g., other approval mechanisms or swap tools). The context from sibling tools suggests it's unique, but guidance on prerequisites or timing is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_build_orderA
Build a ready Hyperliquid perpetual order action with SwapTitan builder code injected (minimal 0.001% fee). Non-custodial: returns the action + nonce to sign with your own wallet (EIP-712) and POST to https://api.hyperliquid.xyz/exchange. Call hl_approve first (once).
| Name | Required | Description | Default |
|---|---|---|---|
| sz | Yes | Order size in coin units | |
| tif | No | Time-in-force, default Gtc | |
| coin | Yes | Market, e.g. BTC, ETH, SOL | |
| isBuy | Yes | true=long/buy, false=short/sell | |
| limitPx | Yes | Limit price | |
| reduceOnly | No | Optional |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is non-custodial and returns an action + nonce to sign with the user's own wallet, adding context beyond the annotations (which indicate no destructive or read-only behavior). It provides essential behavioral traits without contradiction.
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?
The description is highly concise with two sentences, front-loading the core purpose and critical steps. Every sentence adds value without redundancy.
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?
Although there is no output schema, the description explains the return value (action + nonce) and the next step (POST to exchange). For a build-oriented tool, this provides sufficient context for an agent to use it correctly.
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 coverage is 100%, so the description doesn't need to add parameter details. It adds no additional meaning beyond what the schema already provides, meeting the baseline expectation.
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 description clearly states it builds a ready Hyperliquid perpetual order action with specific builder code and minimal fee. It distinguishes itself from sibling tools like hl_approve, which is a prerequisite, making the purpose unambiguous.
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?
The description explicitly mentions to call hl_approve first, providing clear prerequisite usage. It doesn't explicitly state when not to use or list alternatives, but the context is sufficient for correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_marketsARead-only
Hyperliquid perpetuals: list all 231 markets with live prices, max leverage and size decimals.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, and the description confirms a read-only listing operation. It adds useful context like the exact number of markets (231) and the data returned (live prices, max leverage, size decimals), going beyond annotations.
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?
A single 14-word sentence concisely conveys purpose and output. No extraneous information; front-loaded with key details.
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?
Despite no output schema, the description sufficiently explains the return data. For a zero-parameter list tool, this provides all necessary context.
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?
No parameters exist, schema coverage is 100%. Baseline score of 4 applies since the description doesn't need to add parameter details.
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 description clearly states the tool lists all 231 Hyperliquid perpetuals markets with live prices, max leverage, and size decimals. This specific verb and resource is distinct from sibling tools like swap or approval tools.
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?
Usage is self-evident: use when you need to list all markets. No explicit when-not or alternatives are provided, but given the simplicity and no parameters, it's clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rug_checkARead-only
Check if a token contract is a rug pull / scam. Returns risk score and warning flags.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain of the token | sol |
| token | Yes | Token contract address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, making the safety profile clear. The description adds that it returns risk score and warning flags, providing some behavioral context beyond annotations, but lacks details on behavior like rate limits or data sources.
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?
The description is a single sentence with no redundant words. It is efficiently structured and front-loaded with the main purpose.
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 simple read-only tool with full schema coverage and clear annotations, the description covers the essential purpose and outputs. No output schema exists, but the description mentions what it returns, making it complete enough for an agent.
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 100%, meaning the schema already explains the two parameters (chain with enum/default and token address). The description adds no additional meaning beyond what the schema provides.
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 description clearly states the verb 'check' and the resource 'token contract', specifying it checks for rug pulls/scams and returns risk score and warning flags. This distinguishes it from sibling tools like swap or portfolio checkers.
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?
The description implies usage when evaluating a token for safety, but does not explicitly state when to use it versus alternatives, nor does it provide conditions for when not to use it. No alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_price_alertB
Set a Telegram price alert for a crypto asset. Triggers when price goes above or below target.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Asset ticker: btc, sol, eth, xmr | |
| target | Yes | Target price in USD | |
| tg_chat | Yes | Telegram Chat ID to receive the alert | |
| direction | Yes | Trigger when price is above or below target |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description minimally restates the annotations (non-destructive, non-readOnly). It does not disclose important behavioral details like alert persistence, overwriting behavior, or authorization requirements, which are not covered by annotations.
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?
The description is two sentences with no extraneous information. It is front-loaded with the core action and efficiently explains the trigger behavior.
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 tool with 4 required parameters and no output schema, the description lacks completeness. It does not explain what happens after setting an alert (e.g., confirmation, persistence) or how to manage alerts. The minimal detail leaves gaps for a user unfamiliar with the system.
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?
The input schema has 100% parameter description coverage, so the description adds little new meaning. It repeats that triggers occur above/below target, which is already in the schema. Baseline 3 is appropriate.
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 description clearly states the tool's purpose: setting a Telegram price alert for a crypto asset, with specific trigger conditions (above/below target). It uses a specific verb and resource, distinguishing it from sibling tools like get_prices or rug_check.
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?
No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or context such as 'use when you want to be notified of price changes'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smart_routeARead-only
Universal crypto router: compares ALL available rails (cross-chain exchange bridge, direct H2H liquidity, Solana DEX) in one call and returns the best route with ready-to-execute parameters. Use for hard or exotic pairs.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination ticker, e.g. xmr, eth | |
| from | Yes | Source ticker, e.g. btc, sol, usdc | |
| amount | Yes | Amount in source asset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, and description clarifies it compares multiple rails and returns parameters without executing, adding behavioral context beyond annotations.
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?
Two concise sentences, front-loaded with key information, no fluff.
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?
Adequately describes return value and usage for a query tool with 3 parameters; no major gaps given no output schema.
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 covers all parameters with descriptions, so description adds minimal extra meaning beyond 'hard/exotic pairs' context.
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?
Clearly states it is a universal crypto router that compares all available rails and returns the best route with ready-to-execute parameters, distinguishing itself from specific swap tools.
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?
Explicitly recommends use for hard or exotic pairs, providing context for when to use, though lacks explicit when-not or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sol_priority_feeARead-only
Live Solana priority-fee oracle: current microLamports/CU percentiles and recommended low/medium/high/turbo tiers. Call before sending any Solana transaction.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds value by specifying return data (microLamports/CU percentiles and tiers) and 'live' nature, enriching behavioral understanding beyond annotations.
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?
Single sentence conveying purpose and usage guideline β every word earns its place. No fluff.
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?
Given no parameters and no output schema, the description fully informs the agent: what it does, what it returns, and when to call it. Nothing missing.
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?
No parameters exist (0 params, 100% schema coverage), so baseline is 4. Description needs no parameter details; it correctly focuses on the tool's function.
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?
Description clearly states it provides live Solana priority-fee oracle data with specific outputs (percentiles and tiers). Distinguishes from all sibling tools, none of which are fee oracles.
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?
Explicitly says 'Call before sending any Solana transaction' β a clear, actionable usage instruction. No ambiguity about when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sol_swapA
Build a NON-CUSTODIAL Solana DEX swap via Jupiter: returns an UNSIGNED base64 transaction β sign with YOUR OWN wallet and send to any Solana RPC. Server never touches funds. 0.3% on-chain routing fee.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | sol, usdc or base58 mint | |
| from | Yes | sol, usdc or base58 mint | |
| amount | No | Human amount (sol/usdc only) | |
| amountRaw | No | Base units (any mint) | |
| slippageBps | No | 1-1000, default 50 | |
| userPublicKey | Yes | Your Solana wallet address (signs the tx) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits beyond annotations: the transaction is unsigned (non-executing), non-custodial, and includes a 0.3% routing fee. These complement the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) without contradiction.
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?
The description is three concise sentences with no fluff. It front-loads the core action and key constraints, earning every word.
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?
Given the complexity of a swap transaction and lack of output schema, the description covers the essential aspects: output format, custody, fee, and destination. Minor omissions like user balance prerequisites or slippage context are implicit from the schema.
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 coverage is 100%, so baseline is 3. The description does not elaborate on parameter details beyond the schema, but adds context about the output format and fee, which indirectly aids understanding. No significant additional parameter meaning.
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 description clearly states the action ('Build a NON-CUSTODIAL Solana DEX swap via Jupiter'), output ('unsignED base64 transaction'), and key constraints (user signs, server never touches funds). It effectively distinguishes from sibling tools like evm_swap and sol_swap_quote.
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?
The description implies usage for executing swaps in a non-custodial manner, but lacks explicit guidance on when to use this tool vs. alternatives like sol_swap_quote (for quoting) or evm_swap (for other chains). No clear when-not-to-use criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sol_swap_quoteARead-only
Solana DEX quote via Jupiter aggregator. Any SPL token vs SOL/USDC. Free API.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | sol, usdc or base58 mint | |
| from | Yes | sol, usdc or base58 mint | |
| amount | No | Human amount (sol/usdc only) | |
| amountRaw | No | Base units (any mint) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, destructiveHint=false) are supported by the description, which adds context as 'Free API' and 'Jupiter aggregator.' However, no further behavioral details (e.g., rate limits, precision) are disclosed beyond the annotations.
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?
Two sentences, no redundancy. Purpose is front-loaded, and every word is necessary. No filler or unnecessary details.
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?
No output schema exists, so the description should explain the return format (e.g., quoted amounts, price, slippage). It does not. Additionally, it lacks guidance on when to use this tool versus the sibling sol_swap or swap_quote, making it incomplete for an agent.
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 100%, and the description adds value by clarifying that 'Any SPL token vs SOL/USDC' is supported, which is not obvious from the basic parameter descriptions (e.g., 'sol, usdc or base58 mint'). This enhances understanding of parameter usage.
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?
Description clearly states the tool provides a Solana DEX quote via Jupiter aggregator for any SPL token against SOL/USDC. The verb 'quote' and specific resource (Solana DEX, Jupiter aggregator) differentiate it from siblings like evm_swap or swap_quote.
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?
The description mentions 'Free API,' suggesting no cost, but does not explicitly state when to use this tool versus alternatives like sol_swap or swap_quote. It implies use for quoting before swapping but lacks explicit guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swap_createA
Create a non-custodial cross-chain swap order. 3 providers: changenow (1288+ assets, returns payinAddress), simpleswap (400+ assets, returns payinAddress), heleket (XMR-optimised 5-6 conf, returns redirectUrl to payment page). Omit provider for auto-select.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination asset ticker (e.g. xmr, btc, sol) | |
| from | Yes | Source asset ticker (e.g. sol, btc, eth, usdt) | |
| toNet | No | Destination network override | |
| amount | Yes | Amount to send | |
| address | Yes | Destination address to receive swapped funds | |
| fromNet | No | Source network override (e.g. arbitrum, base, tron) | |
| provider | No | changenow=1288+ assets; simpleswap=400+ assets; heleket=XMR-optimised payment page | |
| refundAddress | No | Optional refund address for failed swaps |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds provider-specific return details (payinAddress vs redirectUrl), which goes beyond annotations.
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?
Two sentences with no wasted words. The main purpose is front-loaded, and every phrase adds value.
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?
No output schema exists, but the description explains return types for each provider. It covers all required parameters indirectly and mentions optional refundAddress. For a multi-provider cross-chain swap tool, it is sufficiently complete.
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 coverage is 100%, so baseline is 3. The description adds meaningful context for the provider parameter (enum values with asset counts and return types), elevating the score.
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 description clearly states 'Create a non-custodial cross-chain swap order' and provides specific details about three providers, distinguishing it from sibling tools like evm_swap or sol_swap.
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?
The description gives clear guidance on when to use each provider (e.g., heleket for XMR-optimised, changenow for broad asset coverage) and notes that omitting provider triggers auto-select. It does not explicitly exclude use cases, but the sibling tool list implies this is for cross-chain swaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swap_quoteBRead-only
Get estimated output and minimum deposit for a crypto swap pair
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination asset ticker | |
| from | Yes | Source asset ticker, e.g. btc, usdtsol | |
| amount | Yes | Input amount in source asset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only operation. The description adds that the tool provides estimated output and minimum deposit, which is useful context beyond the annotations.
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?
The description is a single, front-loaded sentence that conveys the essential information without redundancies. Every word earns its place.
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 simple quote tool with no output schema, the description covers the key outputs. However, the presence of the sibling 'sol_swap_quote' suggests a need for differentiation that is not addressed.
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 100% with each parameter having a description. The tool description does not add any additional parameter semantics beyond what the schema provides.
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 description clearly states the tool retrieves estimated output and minimum deposit for a swap pair. It uses specific verb and resource, but lacks explicit differentiation from the sibling 'sol_swap_quote'.
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?
No guidance is provided on when to use this tool versus siblings like evm_swap, smart_route, or sol_swap_quote. The description implies usage but does not give context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swap_statusARead-only
Check status of a swap order. Poll every 20-30s. Lifecycle: waiting->confirming->exchanging->done. For heleket provider, status is checked via Heleket API.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Order ID from swap_create | |
| provider | No | Provider from swap_create response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, reinforcing read-only nature. Description adds polling behavior, lifecycle transitions, and provider-specific detail (Heleket API) beyond annotations.
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?
Three concise sentences deliver purpose, polling guidance, lifecycle, and provider note. No fluff; front-loaded with essential information.
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?
Covers key aspects: purpose, polling strategy, lifecycle, and provider-specific behavior. Lacks output format description, but given no output schema, the lifecycle states imply return values.
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 covers both parameters with descriptions (100% coverage). Description adds minor context for provider parameter (Heleket API). Baseline 3 is appropriate; schema already explains parameters adequately.
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?
Clear verb 'Check' and resource 'status of a swap order'. Polling and lifecycle details provide unambiguous scope, distinguishing it from sibling tools like swap_create or check_portfolio.
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?
Explicit polling interval (20-30s) and lifecycle sequence (waiting->confirming->exchanging->done). No direct 'when not to use' statement, but context is sufficient for typical usage.
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.
18 tool updates
v1.0.0- First observed
ai_chat - First observed
check_portfolio - First observed
create_wallet - First observed
evm_swap - First observed
get_assets - First observed
get_prices - First observed
hl_approve - First observed
hl_build_order - First observed
hl_markets - First observed
rug_check - First observed
set_price_alert - First observed
smart_route - First observed
sol_priority_fee - First observed
sol_swap - First observed
sol_swap_quote - First observed
swap_create - First observed
swap_quote - First observed
swap_status
TDQS
Scored across 18 tools
Each tool targets a distinct operation: wallet creation, portfolio check, swap building for Solana/EVM/cross-chain, quotes, status, alerts, rug checks, Hyperliquid perpetuals, and AI chat. No two tools have overlapping purposes; even related tools like sol_swap and sol_swap_quote are clearly separated by action (build vs. quote).
All tool names follow a consistent snake_case pattern with descriptive verb_noun or noun_verb structure. Examples: check_portfolio, create_wallet, sol_swap, swap_create. The Hyperliquid tools use a consistent 'hl_' prefix. No mixing of camelCase or other conventions.
18 tools is slightly above average but well-justified given the server's broad scope covering multiple blockchains (Solana, EVM, Hyperliquid), cross-chain swaps, alerts, rug checks, and AI chat. Each tool serves a distinct purpose, and the count is not overwhelming.
The tool surface covers core swap workflows (quotes, swaps, status) across Solana, EVM, and cross-chain, plus wallet creation, portfolio, alerts, rug checks, and Hyperliquid perpetuals. Minor gaps: no generic ERC20 approval tool (evm_swap expects prior approval), and no transaction history or alert management. Overall, it's well-scoped for a swap API.
Maintenance
Related MCP Connectors
Non-custodial DeFi tools for AI agents on Solana: swaps, perps, lending, staking, equities.
Non-custodial cross-chain crypto swap MCP β 1288+ assets, no KYC. Solana/EVM/Monero, RPC, oracle.
Safe Solana swaps for AI agents with risk checks, unsigned transactions, x402, and 3-bp fees.
Non-custodial DeFi for AI agents: swaps, concentrated liquidity (V3/V4) zaps + ranges, 5 EVM chains
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI agents to interact with cryptocurrency ecosystems through wallet management, trading operations (swaps, DCA, limit orders), staking, and multi-chain support starting with Solana.37GPL 3.0
- AlicenseNot gradedqualityCmaintenanceAI-to-AI marketplace MCP server with 46 tools β swap 65+ crypto tokens on 7 chains, rent GPUs, trade 25 tokenized stocks, on-chain escrow (Solana + Base), DeFi yields, sentiment analysis, wallet monitoring, and image generation. Supports USDC payments across 14 blockchains.MIT
- FlicenseAqualityBmaintenanceMCP server providing AI agents with native access to Jupiter's full DeFi stack on Solana. It offers 17 tools covering swaps, tokens, lending, limit orders, DCA, prediction markets, perpetuals, and portfolio management.16-

trade-router-mcpofficial
AlicenseBqualityDmaintenanceNon-custodial Solana swap & limit order engine for AI agents. 21 tools - swap, limit, trailing, TWAP, DCA, combo orders - across Raydium, PumpSwap, Orca, Meteora. Jito MEV-protected execution. Ed25519-verified server messages. Private key never leaves the process.2192 npm3MIT