LCX Liberty DEX
Server Details
Best-route swap quotes, token search and USD prices across EVM chains. Read-only, never trades.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct purpose: usage/quota, token price, swap quote, chain list, and token search. Descriptions explicitly clarify boundaries, such as distinguishing get_price (token value) from get_quote (swap output), leaving no ambiguity.
All tool names follow a consistent snake_case verb_noun pattern: get_my_usage, get_price, get_quote, list_chains, search_tokens. The convention is predictable throughout.
Five tools cover the core read-only operations for a DEX price/quote API without redundancy. The count is well-scoped and each tool earns its place.
The surface covers token discovery, price, quote, chain health, and usage limits, enabling typical queries. However, advanced operations like historical prices or pool-level details are absent, a minor gap.
Available Tools
5 toolsget_my_usageAInspect
Reads the calling API key's own plan and usage, so no key or account id is passed. Use it to answer questions about quota or throttling, or before a long run of calls. Read-only, live, and it does not count against the quota. Returns plan and planLabel; callsUsed, monthlyCalls and callsRemaining for the current billing period (monthlyCalls and callsRemaining are null when the plan has no cap); and rateLimit as perSecond and perMinute, where a slow request uses more than one. Only successful calls are counted, and at the limit calls are refused, never billed as overage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: read-only, live, does not count against quota, only successful calls are counted, and at the limit calls are refused rather than billed as overage. These are exactly the traits an agent needs to reason about cost and rate-limit safety.
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?
Front-loaded with purpose and usage, then behavior, then return shape. It is dense and somewhat long, but each sentence adds distinct information, and the return-value detail is warranted given there is no output schema.
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?
Without an output schema the description must describe the response, and it does: plan and planLabel, callsUsed, monthlyCalls, callsRemaining with the null-when-uncapped rule, and rateLimit as perSecond/perMinute with the note that a slow request consumes more than one. Nothing needed to call or interpret the tool is 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?
Zero parameters, so the baseline is 4. The description usefully explains the empty schema by noting the calling key is implicit and no key or account id is passed, which confirms there is nothing to supply.
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 ('Reads the calling API key's own plan and usage') plus the scope constraint that no key or account id is passed. This is clearly distinguishable from the sibling tools (get_price, get_quote, list_chains, search_tokens), which are about market data rather than the caller's own quota.
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 names the triggering situations: answering quota or throttling questions, and checking before a long run of calls. No exclusions or named alternatives are given, but the siblings are unrelated, so the omission is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_priceAInspect
USD price of one whole token on one chain, priced from the pools LCX Liberty DEX indexes itself (real depth, not a mid-market feed). Use it for a token's value; use get_quote for what a specific amount would swap for, and search_tokens first to turn a ticker into an address. Read-only. Returns usd, change24h (a ratio: 0.0123 is +1.23%), source, and the age of the pool state behind the price (asOfBlock, ageSeconds, stale). When there is no honest price, usd is null and reason says why (for example token_not_indexed or below_depth_floor) instead of an error.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token address on that chain. Use the zero address for the chain's native coin; on Arc, whose native coin is USDC, use its contract 0x3600000000000000000000000000000000000000. | |
| chainId | Yes | 1 Ethereum, 8453 Base, 42161 Arbitrum One, 10 OP Mainnet, 4663 Robinhood Chain, 56 BNB Chain, 137 Polygon, 43114 Avalanche, 130 Unichain, 143 Monad, 5042 Arc, 999 HyperEVM |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it declares the operation read-only, enumerates the return shape (usd, change24h as a ratio with a worked example, source), and discloses freshness metadata (asOfBlock, ageSeconds, stale). It also explains graceful degradation ('usd is null and reason says why ... instead of an error') with concrete reason codes, which is behavior no structured field here provides.
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 sentences, each earning its place: purpose front-loaded, then routing rules, then return/edge-case semantics. No restatement of the name and no filler despite the density of 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?
For a two-param read tool with no output schema, the description covers the return fields, the units of change24h, staleness signals, and the null/reason no-price path. Combined with 100% schema coverage and sibling routing, 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?
Schema description coverage is 100%, including a worked native-coin example and a full chainId legend, so the schema already does the heavy lifting. The description adds only the implicit framing of 'one whole token' as the unit (versus get_quote's amount), which is marginal beyond the structured fields. 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?
States a specific verb+resource+scope: 'USD price of one whole token on one chain,' and qualifies the pricing source (LCX Liberty DEX indexed pools, real depth not mid-market). It explicitly distinguishes itself from siblings get_quote and search_tokens, so an agent can route without opening 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?
Gives explicit when-to-use ('use it for a token's value'), names the alternative and its selection condition ('use get_quote for what a specific amount would swap for'), and supplies a prerequisite ('search_tokens first to turn a ticker into an address'). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteAInspect
Best route and expected output for selling a specific amount of one token for another on one chain, priced from the pools LCX Liberty DEX indexes itself. Use it for what an amount would swap for; use get_price for a token's value, and search_tokens first to turn a ticker into an address. Read-only: it never executes a trade. Returns output.amount and output.minimumAmount (at 0.5% slippage) in tokenOut's base units, with output.decimals to scale them; priceImpactPct, gasFeeUSD, the venues and the per-hop routes; and blockNumber and expiresAt, since a quote is priced at one block and lives 120 seconds. When there is no quote, the result is an error that says why: no route between the two tokens, or liquidity too thin for this size, usually naming a size that would fill.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Positive human amount of tokenIn to sell, e.g. "1.5". Scaled by the token's own decimals, which the server knows: do not send decimals. | |
| chainId | Yes | 1 Ethereum, 8453 Base, 42161 Arbitrum One, 10 OP Mainnet, 4663 Robinhood Chain, 56 BNB Chain, 137 Polygon, 43114 Avalanche, 130 Unichain, 143 Monad, 5042 Arc, 999 HyperEVM | |
| tokenIn | Yes | Sell token address. Use the zero address for native ETH. | |
| decimals | No | Optional, and best left out. Only for a token the index holds no decimals for; a value that disagrees with the token's own is refused (decimals_mismatch). | |
| tokenOut | Yes | Buy token address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so: it declares read-only and that it 'never executes a trade,' discloses the 0.5% slippage assumption, that a quote is priced at one block and lives 120 seconds, and enumerates the specific failure modes (no route, thin liquidity). This is exactly the behavioral context an agent needs before calling.
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 sibling routing are front-loaded, and the return-value and failure-mode sentences each earn their place. It is on the longer side for a single dense paragraph, but there is no filler or restatement of the title.
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 five-parameter read-only quote tool with no output schema, the description covers the return shape (output.amount, minimumAmount, decimals), optional fields (priceImpactPct, gasFeeUSD, venues, per-hop routes), and lifecycle metadata (blockNumber, expiresAt), plus error semantics. Nothing needed to call it correctly is 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?
Schema description coverage is 100%, including unit rules for amount, the chain enum mapping, and the caveat about decimals_mismatch, so the schema does the heavy lifting. The description adds little parameter-level detail beyond what is already documented, though it does confirm amounts are returned in tokenOut base units with a decimals scale.
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 up front: 'Best route and expected output for selling a specific amount of one token for another on one chain.' It distinguishes itself from siblings by naming get_price (token value) and search_tokens (ticker to address) as alternatives rather than alternatives for the same job.
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 routing: 'Use it for what an amount would swap for; use get_price for a token's value, and search_tokens first to turn a ticker into an address.' This gives both the use case and the two prerequisite/alternative tools, with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chainsAInspect
Every chain LCX Liberty DEX serves, with the live health of its index. Call it to learn which chainId values the other tools accept and whether a chain is quoting right now, or to explain a refused or stale answer from get_quote or get_price. Read-only, takes no arguments, and does not count against the API key's quota. Each entry has chainId, key, name, nativeSymbol, wrappedNative, router (the address a swap approves), ready (fresh enough to build a swap), degraded (still quoting, prices indicative only), available, unavailableReason (why not, when it is not) and ageSeconds, how long since the index recorded a new block, judged against freshnessLimitSeconds.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: read-only, takes no arguments, and does not count against the API key's quota. It also defines the semantics of ready, degraded, available, unavailableReason and ageSeconds against freshnessLimitSeconds, which is real behavioral context beyond a bare list.
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?
Front-loads purpose and usage before the field enumeration, and every clause earns its place given there is no output schema. The second sentence is dense but justified as the only documentation of the return shape.
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 compensates by enumerating the returned fields and their meaning (chainId, router, ready, degraded, ageSeconds, etc.). For a zero-argument discovery tool this is complete enough to call 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?
Zero parameters, so the baseline is 4; the description correctly notes it takes no arguments and needs no param syntax. No further parameter meaning is required or missing.
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?
Opens with a specific verb and resource ('Every chain LCX Liberty DEX serves') plus the added dimension of live index health. An agent can immediately tell this apart from get_quote/get_price siblings, which it explicitly names.
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?
States exactly when to call it: to learn which chainId values other tools accept, to check whether a chain is quoting now, or to explain a refused/stale answer from get_quote or get_price. Alternatives are named and the selecting conditions are explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tokensAInspect
Finds tokens on one chain by symbol, name or address, and gives the address get_quote and get_price need. Use it whenever you have a ticker or a name instead of an address. Read-only. Matching is case-insensitive on any part of the symbol, name or address; with no search it lists the chain's tokens. Results are ranked: the chain's curated tokens first, then other indexed tokens by how many pools hold them. A symbol is not unique, so when several match, prefer the verified one or the one with the most depth. Each result has address (the zero address for the native coin), symbol, name, decimals, verified, poolCount and depthUsd; hasMore says more matched than limit returned. A token refused for a transfer tax is left out unless its exact address is searched, which returns it with transferTaxBps.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return. Default 10, at most 50. | |
| search | No | Any part of a symbol, name or address, case-insensitive, e.g. "usdc" or "0x833589". Leave it out to list the chain's tokens. | |
| chainId | Yes | 1 Ethereum, 8453 Base, 42161 Arbitrum One, 10 OP Mainnet, 4663 Robinhood Chain, 56 BNB Chain, 137 Polygon, 43114 Avalanche, 130 Unichain, 143 Monad, 5042 Arc, 999 HyperEVM |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does so: read-only status, case-insensitive substring matching, empty-search fallback, ranking order (curated first, then pool count), symbol non-uniqueness, and the transfer-tax exclusion rule with its exact-address exception. These are non-obvious behaviors an agent could not infer from the schema.
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?
Front-loaded with purpose and the routing hint, then behavior. It is a single dense block, and the ranking/edge-case sentences are long but each carries distinct information; a short bulleted break would read better, but there is little dead weight.
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 and no annotations, the description compensates fully by enumerating the returned fields (address, symbol, name, decimals, verified, poolCount, depthUsd), the hasMore pagination signal, and the native-coin zero-address convention. An agent has everything needed to call and interpret it.
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 baseline is 3; the description still adds value beyond it by explaining what an omitted search does and how limit interacts with the hasMore flag, plus the ranking that determines which results arrive first. It stops short of adding format details the schema lacks, but nothing material is missing.
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 (finds tokens on one chain) plus the search keys (symbol, name, address), and explicitly distinguishes itself from siblings by naming get_quote and get_price as the consumers of its output. An agent can tell it apart from get_price/get_quote 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?
"Use it whenever you have a ticker or a name instead of an address" is an explicit selection condition that implicitly excludes the address-based siblings. It also resolves the ambiguous case with guidance: prefer the verified token or the one with most depth when a symbol matches several entries.
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.
1 tool update
- Changed
search_tokens2 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Max results to return. Default 10."New value: +"Max results to return. Default 10, at most 50." - changed
Input schema / properties / search / descriptionPrevious value: -"Symbol, name or address fragment."New value: +"Any part of a symbol, name or address, case-insensitive, e.g. \"usdc\" or \"0x833589\". Leave it out to list the chain's tokens."
2 tool updates
- Changed
get_price2 fields changed- added
Input schema / properties / chainId / descriptionAdded value: +"1 Ethereum, 8453 Base, 42161 Arbitrum One, 10 OP Mainnet, 4663 Robinhood Chain, 56 BNB Chain, 137 Polygon, 43114 Avalanche, 130 Unichain, 143 Monad, 5042 Arc, 999 HyperEVM" - added
Input schema / properties / token / descriptionAdded value: +"Token address on that chain. Use the zero address for the chain's native coin; on Arc, whose native coin is USDC, use its contract 0x3600000000000000000000000000000000000000."
- Changed
search_tokens1 field changed- added
Input schema / properties / chainId / descriptionAdded value: +"1 Ethereum, 8453 Base, 42161 Arbitrum One, 10 OP Mainnet, 4663 Robinhood Chain, 56 BNB Chain, 137 Polygon, 43114 Avalanche, 130 Unichain, 143 Monad, 5042 Arc, 999 HyperEVM"
5 tool updates
- First observed
get_my_usage - First observed
get_price - First observed
get_quote - First observed
list_chains - First observed
search_tokens
Publisher details
- Operator
- LCX Liberty Labs Inc.
- Operator website
- https://dex.lcx.com
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://dex.lcx.com/docs/mcp-server
- Trust center
- Not available
- Restrictions
- Tool calls need a free API key from https://dex.lcx.com/dashboard (free plan: 150,000 calls a month); paid plans for higher volume.
Related MCP Connectors
Best-price cross-chain swap quotes across 70 chains (EVM + Solana). Holds no keys, never signs.
Token swaps at the best net price on 9 EVM chains and Solana. No API key, non-custodial.
Swap quotes + unsigned txs on 8 EVM chains, plus Solana data: boards, candles, wallet PnL. No key.
On-chain DEX aggregator: quotes and verified swap calldata computed on your own RPC. No API key.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI agents to obtain on-chain DEX aggregator quotes computed by the on-chain Quoter contract through their own RPC node, returning verified unsigned swap calldata, simulations, token info, deployment registry checks, and live staking solvency. All tools are read-only and keyless, so the agent never signs or holds a private key.748 npm1MIT
- 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
- AlicenseAqualityAmaintenanceReal-time non-custodial crypto swap rates, fees, and on-chain routing across 240+ multi-chain pairs.142MIT
- AlicenseNot gradedqualityCmaintenanceGet the best swap quotes across Uniswap, SushiSwap, Aerodrome with pay-per-call via x402 (USDC on Base).MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.