Skip to main content
Glama

qmax

Server Details

Qubic DEX aggregator: best-price quotes across QX and QSwap, order books, candles, trade plans.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
profitphil/qmax
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 19 tools

Disambiguation4/5

Most tools have clearly distinct purposes, especially around market data, quoting, planning, and analytics. A few pairs overlap conceptually, such as get_quote vs swap_quote and check_arbitrage vs venue_premium, but the descriptions make their boundaries understandable.

Naming Consistency4/5

The qmax_ prefix and snake_case are used consistently throughout, which makes names predictable. However, the set mixes verb_noun names like get_candles and build_plan with noun-oriented names like backtest and pool_detail, so it is not a strict unified pattern.

Tool Count4/5

19 tools is on the heavy side, but the server covers a broad trading and analytics domain across two venues, including liquidity, backtesting, arbitrage, wallet history, and market health. Most tools appear to earn their place, though a few data tools could feel redundant to a new agent.

Completeness4/5

The surface covers market discovery, pricing, order planning, backtesting, arbitrage, liquidity analysis, wallet ledgers, and health diagnostics. It intentionally stops short of signing or broadcasting transactions, but there are minor gaps around direct order management and liquidity add/remove planning.

Available Tools

19 tools
qmax_backtestBacktest a simple strategy on real historyA
Read-onlyIdempotent
Inspect

Replays a strategy over real hourly trade data with the venues' real fees and reports what it would have done: final value, return, buy-and-hold comparison, max drawdown, fees paid, trades. Decisions are made on an hour's close and filled at the next hour's open; hours with no trades cannot be traded.

Strategies: 'hold' (buy once, hold), 'dca' (spend amountQu every everyHours), 'bands' (buy fractionPct of the QU when the price is bandPct below its lookbackHours average, sell fractionPct of the holding when above, with a cooldown). READ 'warnings' in the result: there is no order book depth in the history, so large amounts are optimistic, and QSwap's flat 100,100 QU fee can swallow small trades. Past results do not predict future ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.
rangeNo90d
venueNoWhich market's prices: QX (order book), QSwap (pool), 'all' (treat both as one market), or 'auto' (the market the live price comes from).auto
strategyYes
starting_quYesQU to start with, e.g. 10000000

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which already declare readOnly/idempotent/non-destructive), the description discloses the fill model ('decisions on an hour's close, filled at the next hour's open'), that no-trade hours are untradeable, that the history lacks order-book depth so large sizes are optimistic, and the flat QSwap fee risk. That is exactly the kind of behavioral context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded — capability and reported outputs come first, mechanics and strategy semantics follow, caveats last. Every sentence carries information, though the strategy paragraph is a long run-on that could be split.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent what the result contains and explicitly points to the 'warnings' field. For a read-only, non-persistent simulation tool this covers 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 60%, and the description compensates well: it defines the three strategy types and ties bandPct, fractionPct, lookbackHours and cooldownHours to the 'bands' logic and amountQu/everyHours to 'dca'. Only 'range' is left to self-explanatory enum values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Replays a strategy over real hourly trade data with the venues' real fees') and enumerates the exact outputs (final value, return, buy-and-hold comparison, max drawdown, fees, trades). It is unmistakably a simulation tool, distinct in kind from the get_* siblings, though it never names an alternative to disambiguate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is strongly implied: the strategy enum is expanded so an agent knows which strategy to pick and which parameters each one consumes, and the 'READ warnings' instruction steers interpretation. There is no explicit when-not-to-use or named alternative, which keeps it short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_build_planBuild the unsigned transactions for a tradeA
Read-onlyIdempotent
Inspect

Quotes an order and returns the exact transactions a wallet must sign to carry it out, in order. QMax signs nothing and sends nothing: you (or the user) sign each step with your own wallet and broadcast it.

Steps (in order): any share-management move needed first (selling shares that the other market manages), then one call per market. Each step: kind, description, destination (a smart contract by index), inputType (procedure number), amountQu to attach (QU that may leave the wallet; unused QU is refunded by the contracts) and payloadBase64 (the call's input bytes). 'maxOutlayQu' is the most QU that can leave the wallet across all steps, so check it against your own spending limit BEFORE signing. Sending a step moves real funds.

For a sell, pass how many shares the wallet holds under QX management and under QSwap management (holdings_qx, holdings_qswap) so the right moves are planned. Buys need no holdings.

ParametersJSON Schema
NameRequiredDescriptionDefault
qtyYes
sideYes
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.
holdings_qxNoSelling only: units of this asset the wallet holds that QX manages
slippage_bpsNo
holdings_qswapNoSelling only: units of this asset the wallet holds that QSwap manages

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial behavioral context beyond them: the tool signs nothing and sends nothing, steps must be signed and broadcast by the caller, unused QU is refunded, maxOutlayQu caps total outlay, and signing a step moves real funds. This is exactly the extra context the schema and annotations cannot provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose in the first sentence, then organizes step detail and the spending-limit warning in a readable sequence. It is fairly long, but nearly every sentence carries distinct information; only minor phrasing could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 carries the full burden of explaining return values, and it does so in detail: kind, description, destination, inputType, amountQu (with refund semantics), payloadBase64, and maxOutlayQu. Combined with the step ordering and signing model, an agent has everything needed to invoke and consume the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, so the schema documents asset and holdings_qx/holdings_qswap. The description clarifies that holdings parameters are sell-only and drive step planning, adding real meaning. However slippage_bps and qty remain undocumented in both places, so it does not fully compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: it quotes an order and returns the exact unsigned transactions a wallet must sign, in order. It also draws a clear line against sibling quote tools by emphasizing that QMax signs nothing and sends nothing. An agent can tell this is a transaction-planning tool, not a price-quote tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage conditions: pass holdings_qx/holdings_qswap for sells, buys need no holdings, and check maxOutlayQu against a spending limit BEFORE signing. It lacks an explicit 'use this instead of qmax_get_quote / qmax_swap_quote when...' routing statement, so it's clear context without full alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_check_arbitrageCheck an asset for QX/QSwap arbitrageA
Read-onlyIdempotent
Inspect

Searches, live and at full depth, for a profitable buy-on-one-market, sell-on-the-other loop after every venue fee, and returns the most profitable size or null. It is two separate transactions, so the second leg can fill worse than shown; this is a snapshot, not a guarantee. Only assets on both markets can have one. A found result may be billed to the caller's QMax key (50 QU).

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.
max_cost_quNoMost QU to put in (a budget); the search returns the best loop that fits
min_profit_quNoOnly an opportunity with at least this profit (QU)
min_profit_pctNoOnly one with at least this profit as a percentage of the QU put in

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/openWorld annotations, it discloses that the loop is two separate transactions so the second leg can fill worse, that the result is a snapshot and not a guarantee, and that a found result may be billed 50 QU to the caller's key. These are exactly the execution-risk and cost facts an agent needs and that structured fields cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action and return value, then the caveats and the billing note. Each sentence carries distinct information, with only mild compression in the parenthetical billing clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still conveys the shape of the result (most profitable size or null) and the key limitations and cost. It stops short of describing what a successful result object contains, but for a single-value search return that is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each of the four parameters is already documented in the schema (including the asset lookup pointer to qmax_list_assets). The description adds no format, unit, or interaction guidance beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Precise verb and resource: searches live and at full depth for a buy-one-market/sell-the-other loop net of every venue fee and returns the most profitable size or null. This is clearly distinct from sibling tools like qmax_swap_quote and qmax_get_quote, which only price a single venue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a real precondition - only assets listed on both markets can produce a result - which implies when the tool applies, but it never names an alternative or says when not to call it (e.g., when you only need one venue's price). Usage is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_candlesCandles and volume from real tradesA
Read-onlyIdempotent
Inspect

Open, high, low, close, QU volume, units and trade count per candle, built from every trade QX and QSwap logged (a minute wide at the finest; about six months back, which is all the Qubic archive has: its trade records begin in April 2026). A candle exists only where something traded, so a gap means no trades. The response also gives the last 24 hours of volume across both markets.

Returns: { asset, range, interval, venue, candles: [{ t (ms), o, h, l, c, volumeQu, volumeQty, trades }], truncated?, available?, volume24hQu, trades24h }. Prices are QU per unit.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.
rangeNoHow far back to look. 'all' is everything QMax has (about six months).7d
venueNoWhich market's prices: QX (order book), QSwap (pool), 'all' (treat both as one market), or 'auto' (the market the live price comes from).auto
intervalNoCandle width: a minute up to a day (default suits the range). One answer holds at most the latest 5,000 candles

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds real behavioral context beyond that: the archive begins April 2026 (about six months), a candle exists only where trades occurred, and the response can be truncated or unavailable (truncated?, available? flags). Some of the depth limit is duplicated in the range/interval schema text, which keeps this from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is front-loaded with the payload contents, and the explicit return-shape block is justified because no output schema exists. The prose is dense but every clause carries information; only the 'Returns:' literal could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full burden and does so: it enumerates every returned field, explains the gap semantics, the historical boundary, the 5,000-candle cap and the truncation flags. An agent has everything needed to call this and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds unit semantics the schema never states ('Prices are QU per unit'), clarifies that candles are 'a minute wide at the finest', and notes the 24h volume is aggregated across both markets regardless of the venue parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb+resource: OHLCV candles plus QU volume, units and trade count, built from every trade on QX and QSwap. That is specific and unambiguous. It does not, however, differentiate itself from the near-duplicate siblings qmax_get_price_history and qmax_get_tape, so an agent cannot tell from the text alone which of the three to reach for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no named alternative, despite qmax_get_price_history and qmax_get_tape sitting in the same family. The only orienting remark is interpretive ('a gap means no trades'), which explains output rather than telling the agent when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_flowBuy versus sell pressureA
Read-onlyIdempotent
Inspect

Buy and sell volume (QU and units), trade counts and net pressure (positive = more buying) over the last hour or 24 hours, for one asset or the whole market. Direction is the taker's side. 'partial' is true while the server is still loading the window.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.
venueNo
windowNo24h

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds real value beyond that: 'Direction is the taker's side' defines the semantics, and 'partial' is true while the server is still loading' discloses an asynchronous completion state an agent would otherwise misread as final data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with zero filler, front-loading the measured quantities before the scope and the partial-load caveat. Every clause carries information not present in the structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 correctly enumerates what comes back (volumes, trade counts, net pressure, partial flag) plus the sign convention. The only material gap is the unexplained venue parameter; otherwise an agent can call and interpret this tool from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, so the description must compensate. It does explain window semantics ('last hour or 24 hours') and that asset is optional ('one asset or the whole market'), but venue — an enum with two values — is never mentioned in either the schema or the description, leaving that parameter opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource (buy/sell volume in QU and units, trade counts, net pressure) with scope (last hour or 24 hours, one asset or whole market) and even defines the sign convention. It is distinguishable from siblings like qmax_get_tape or qmax_get_order_book, though it never explicitly names an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the scope clauses ('for one asset or the whole market', window choices) rather than stated as when-to-use guidance. There is no exclusion or explicit pointer to a sibling tool for related questions such as raw trades.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_healthHow safe an asset is to tradeA
Read-onlyIdempotent
Inspect

A 0 to 100 score and A to E grade for an asset, from its QX order book, its QSwap pool and six months of trades, with flags and plain-English reasons (most important first).

Flags include thin-book, wide-spread, quiet, few-trades, new-listing, volume-spike, one-sided, pool-dominated and wash-suspected / bot-burst (a single wallet churning tiny same-size swaps against itself, which inflates trade counts but not volume). Many assets grade D or E because QX markets are thin: that is information, not an error. It is an automated estimate from public data and NOT advice; the absence of 'wash-suspected' is not proof of a clean market (large wash trades are not detectable from this data). Omit 'asset' to get every asset's grade in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoLeave out for all assets (grade, score, flags, top reason each)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent safety profile, but the description goes well beyond them: it defines each flag, explains the wash-suspected detection mechanism and its volume/count asymmetry, warns that absence of the flag is not proof of a clean market, and states the score is a non-advisory automated estimate. That is unusually rich disclosure of method, error semantics, and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core output definition, then layered with flag semantics and caveats; nearly every sentence carries distinct information. The parenthetical explanations and long final sentence make it dense, but nothing reads as filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing the return values and does so fully (score, grade, flags, ranked plain-English reasons), plus interpretation caveats and the batch-mode behavior. An agent has everything needed to call and interpret this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single optional parameter is already documented in the schema, so the baseline is 3; the description adds value by spelling out that omitting 'asset' returns grade, score, flags and top reason for every asset, which clarifies the batch mode's output shape rather than just restating the field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the exact artifact produced (a 0–100 score and A–E grade) and the three data sources it is computed from (QX order book, QSwap pool, six months of trades), which cleanly separates it from siblings like qmax_get_order_book or qmax_get_flow that return raw data rather than a derived grade.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage guidance for the one parameter ('omit asset to get every asset's grade in one call') and frames expected outcomes ('many assets grade D or E... that is information, not an error'), which prevents an agent from misreading results. It never names an alternative tool or an explicit when-not-to-use condition, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_liquidity_poolOne QSwap pool's live stateA
Read-onlyIdempotent
Inspect

A QSwap pool's reserves (QU and tokens), total liquidity units and price, read from the contract. Use it to see how deep a pool is before talking about providing liquidity. Adding or removing liquidity each cost a flat 100,000 QU on top of any deposit. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds that values are read live from the contract, which is useful, but it also spends a sentence on the 100,000 QU cost of adding/removing liquidity — behavior of a different operation, not this read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what is read, followed by the usage cue, then a short note. Mostly tight, but the flat-fee sentence is tangential to a read-only reserve lookup and does not earn its place here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description states the data source and the fields returned, which is enough for an agent to call it correctly. The missing piece is differentiation from qmax_pool_detail and other pool-related siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, and the schema already documents the asset symbol format and points to qmax_list_assets. The description adds no syntax or format detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (a single QSwap pool) and enumerates what is returned: reserves in QU and tokens, total liquidity units, and price, read from the contract. It is clear what the tool does, though it never distinguishes itself from near-siblings like qmax_pool_detail or qmax_list_pools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers one usage cue — check pool depth before discussing liquidity provision — but gives no explicit when-not conditions and does not name the sibling to use for the related tasks (qmax_pool_detail, qmax_get_liquidity_positions). The guidance is implied rather than routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_liquidity_positionsA wallet's QSwap liquidity positionsA
Read-onlyIdempotent
Inspect

Every QSwap pool a wallet has liquidity in (public chain data, so any 60-letter identity works): its liquidity units, share of the pool, what removing it all would pay (QU and tokens, before QSwap's flat 100,000 QU fee) and its value in QU at the pool's own price, read live from the contract. Read-only. Adding or removing liquidity is done in the QMax app with a wallet; this tool never builds or signs one.

Check 'complete': when false, a pool could not be read and its positions are missing. 'earnedFeesQu' is already inside what removing pays, nothing pays it separately. Values are estimates at the pool's price, which can be far from what the tokens sell for on a thin market.

ParametersJSON Schema
NameRequiredDescriptionDefault
identityYesThe wallet's 60-letter identity

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/idempotent annotations, it discloses non-obvious behavior: the 'complete' flag meaning partial reads, that 'earnedFeesQu' is already embedded in the removal payout, and that values are pool-price estimates that can diverge from thin-market sale prices. This is exactly the surplus context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and return fields are front-loaded in the first sentence, with caveats (complete, earnedFeesQu, estimate) following. It is denser than strictly necessary but nearly every clause adds usable detail rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the returned fields, explaining the partial-read flag, and warning about estimate semantics. An agent has everything needed to call it and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single documented 'identity' parameter, so the schema already does the heavy lifting and baseline 3 applies. The description adds only a marginal note that any 60-letter identity works because the data is public chain data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb+resource+scope: 'Every QSwap pool a wallet has liquidity in', then enumerates the returned quantities (liquidity units, share, removal payout, QU value). An agent can immediately distinguish this wallet-position tool from pool/asset listing siblings like qmax_list_pools or qmax_pool_detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly bounds the tool's role: read-only, and 'adding or removing liquidity is done in the QMax app with a wallet; this tool never builds or signs one.' That cleanly excludes mutation use cases, though it does not name a specific alternative sibling tool for the write path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_order_bookQX order book and QSwap poolA
Read-onlyIdempotent
Inspect

What is resting on the QX order book (grouped by price, with cumulative size and cost from the best price outward, best bid/ask, spread) and the QSwap pool (reserves, price, and how far trades of 0.1% to 5% of the pool would move the price). Use it to judge depth before sizing an order.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.
levelsNoPrice levels per side of the QX book

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds meaningful behavioral context by describing what is computed and returned (outward cumulative aggregation, price-impact simulation for 0.1%–5% trades). It stays silent on any fusion of the two data sources or freshness, which keeps it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the returned content and closed with the usage trigger. Dense but every clause is informative. Slightly heavy parenthetical nesting keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 carries the full burden of explaining return values, and it does so thoroughly for both the order book and the QSwap pool, including reserve, price, and price-impact figures. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both 'asset' (with a pointer to qmax_list_assets) and 'levels' are documented in the schema. The description reinforces that output is grouped by price from the best outward, which lightly informs 'levels', but adds no new parameter semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource and contents: the QX order book (grouped by price, cumulative size/cost, best bid/ask, spread) and the QSwap pool (reserves, price, price impact). It is a specific and informative statement of what the tool retrieves. It does not explicitly name the sibling it differs from (e.g., qmax_get_liquidity_pool, qmax_pool_detail), so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it to judge depth before sizing an order' gives a concrete when-to-use context. However, it names no alternative or exclusion condition, so an agent has no explicit routing guidance versus the other pool/book siblings like qmax_swap_quote or qmax_get_quote.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_price_historyPrice over time (line)A
Read-onlyIdempotent
Inspect

The asset's price over time as points (ms timestamp, price in QU, and for recently recorded points the best bid, ask and pool price). Points before 'recordedSince' were rebuilt from past trades as hourly volume-weighted averages (marked src 'trades'); after it QMax recorded the price about every 10 minutes. Use qmax_get_candles for OHLC and volume.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.
rangeNoHow far back to look. 'all' is everything QMax has (about six months).7d

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive), but the description adds substantial data-semantics context not in any structured field: points before 'recordedSince' are hourly volume-weighted averages rebuilt from trades (marked src 'trades') while later points are recorded roughly every 10 minutes. That provenance detail directly affects how an agent interprets values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences front-loading the return format, then the alternative tool. Every clause carries information — no filler, no restating of the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 carry the return shape, and it does: point fields (ms timestamp, price in QU, bid/ask/pool price for recent points) plus the 'src' marker and sampling cadence. Nothing essential for correct invocation or interpretation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both 'asset' and 'range' (including the 'all' ~six-month meaning). The description explains what the returned points mean but adds no extra meaning about manipulating the parameters, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a specific verb+resource+scope: the asset's price over time returned as timestamped points in QU, including bid/ask/pool price for recent points. It is clearly distinguishable from qmax_get_candles, which it names as the OHLC/volume alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to qmax_get_candles 'for OHLC and volume', which is a concrete alternative-selection rule. It does not state when-not to use this tool (e.g. prefer candles for charting), so it falls just short of full 5-level guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_quoteQuote a buy or sell across QX and QSwapA
Read-onlyIdempotent
Inspect

Prices an order and finds the cheapest route across the QX order book and the QSwap pool, splitting the order across both when that is cheaper. Nothing is placed.

Returns the total in QU, the average price, each leg (venue, quantity, price range, fees, price impact), what each single market alone would cost, a plain-English line saying what the routing saved, and warnings. All amounts are QU; quantities are whole units. The quote is a snapshot: prices move, so re-quote before acting.

ParametersJSON Schema
NameRequiredDescriptionDefault
qtyYesHow many units of the asset
sideYes
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.
splitNofalse prices the best single market only
slippage_bpsNoSlippage tolerance in basis points (100 = 1%), applied to the limits in route[].execution

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, open-world, so the safety profile is covered. The description adds genuinely new behavioral context: it restates that nothing is placed, warns the quote is a snapshot that goes stale, and advises re-quoting before acting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action in the first sentence, then covers returns and the staleness caveat. The return enumeration is long but each item is informative; little waste overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so thoroughly (total, average price, legs, single-market comparisons, savings line, warnings). Combined with annotations covering safety, an agent has enough to call it correctly; only explicit sibling routing guidance is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so the schema already documents qty, asset, split, and slippage_bps. The description adds the unit convention ('All amounts are QU; quantities are whole units') and implies split's effect, which is marginal added value on top of an already well-documented schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (prices an order, finds the cheapest route) and a concrete resource (QX order book + QSwap pool), and distinguishes its scope from single-venue siblings by describing cross-venue routing and splitting. An agent can tell this is the multi-venue routing 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: 'Nothing is placed' and 're-quote before acting' suggest it is a pre-trade preview, but no sibling (e.g. qmax_swap_quote) is named as an alternative and no explicit when/when-not condition is given. Adequate but leaves routing choice to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_sellersWho has been selling an asset, and what they paidA
Read-onlyIdempotent
Inspect

For the last 7 days: the wallets that sold the asset on QX or QSwap, how long each had held the units (each unit sold is matched, first in first out, to the purchase it came from), what they paid and whether they sold above or below that, with a plain-language reading ("what the numbers say"). Read from the public Qubic archive, so the first call for an asset starts the reading and answers status "working" with its progress and what is known so far: call again in 30 to 60 seconds until status is "ready" (a reading takes a minute or two and is kept for six hours). The chain shows who sold and what they paid, not why. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses the data source (public Qubic archive), the async workflow (first call returns status 'working' with progress, poll every 30-60s until 'ready'), the run time (a minute or two), the six-hour cache retention, cost (free), and an honest limitation ('shows who sold and what they paid, not why').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the 7-day scope and dense with genuinely useful content, though the single run-on sentence packs the polling procedure and caveats together and could be broken up for scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still conveys what comes back (sellers, holding durations, purchase price, above/below verdict, plain-language reading) and fully covers the multi-call async lifecycle, so an agent has everything needed to invoke and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single asset parameter, and the schema already supplies the example and the pointer to qmax_list_assets. The description adds no format or constraint detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource (sellers of an asset over the last 7 days on QX/QSwap) and adds distinguishing detail — FIFO cost-basis matching and above/below-purchase reads — that separates it from siblings like qmax_get_tape or qmax_get_wallet_ledger.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for use (last-7-day seller history on Qubic venues) and crucial operational guidance for the async read, but it does not name alternatives or explicitly state when a different sibling (e.g. wallet_ledger) would be the better pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_tapeLatest trades on QX and QSwapA
Read-onlyIdempotent
Inspect

The most recent trades on both markets in one feed, newest first: time, market, asset, quantity, QU, price and direction. The direction is the TAKER's side (the person who started the trade): 'buy' or 'sell'. Rows also carry the transaction hash. The answer includes 'flow24h', the last 24 hours of buy versus sell volume, and 'latestId': pass it back as 'since' to get only newer trades. Served from memory, so cheap to poll.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoOnly this asset (leave out for all)
limitNo
sinceNoOnly trades newer than this id (the latestId from an earlier call)
venueNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and openWorld. The description adds real behavioral value on top: the source is in-memory hence cheap to poll, direction is the TAKER's side (a subtle semantic that changes interpretation), and each row carries a transaction hash. No rate limits or pagination behavior are mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the feed contains, then direction semantics, then continuation and cost. Every sentence carries information, though the explicit field enumeration is slightly list-like and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the work of describing return fields, the flow24h aggregate and the latestId cursor, which is exactly what an agent needs. It leaves minor gaps around what 'limit' bounds in the combined two-market feed and how the 24h flow is bucketed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: 'asset' and 'since' are documented in the schema, and the description usefully reinforces 'since' as the latestId continuation token. 'limit' and 'venue' get no prose explanation, though the venue enum is self-describing. This is the baseline 3 given the mixed coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: the most recent trades across QX and QSwap in one newest-first feed, with the exact columns returned. That is clearly separable from siblings like qmax_get_candles, qmax_get_order_book and qmax_get_flow (though the embedded 'flow24h' summary is a useful distinguishing note).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating context: served from memory so cheap to poll, and pass 'latestId' back as 'since' to fetch only newer rows — a precise incremental-polling recipe. It never names an alternative tool or states when not to use this one, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_get_wallet_ledgerA wallet's QX and QSwap trade ledgerA
Read-onlyIdempotent
Inspect

Every QX and QSwap buy and sell a wallet made (read from public on-chain transfers, so any 60-letter identity works): price, QU net of fees, estimated fees, running position, and average-cost realized profit, plus current positions with unrealized profit and loss.

ESTIMATED. Read 'warnings' and 'truncated': the archive has no events for about 10 to 14 June 2026, units that arrived before the window or by transfer have no known cost (selling them is not counted as profit), and QSwap liquidity changes appear as transfers. Unrealized P&L uses the mid or pool price, which can mislead on thin markets. Takes a few seconds and many archive reads, so ask once and keep the answer. Not tax advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
identityYesThe wallet's 60-letter identity

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (which cover read-only/idempotent/open-world) by disclosing that results are ESTIMATED, that the archive has a June 2026 gap, that pre-window/transferred units have unknown cost and distort profit, that QSwap liquidity moves surface as transfers, and that thin-market mid/pool pricing can mislead. It also flags latency/cost and a non-tax-advice caveat.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core capability and return shape before the caveats, and every sentence carries substantive information. It is dense rather than padded, though the caveat block is long enough to be slightly heavy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly takes on the burden of enumerating return fields and the warnings/truncated flags. It also covers accuracy limits and cost, leaving only the undocumented `days` parameter as a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for `identity` ('any 60-letter identity works'), but schema coverage is 50% and the `days` window parameter (default 180, 1-365) is never explained in either schema or description. The 'before the window' phrasing gestures at a time window without mapping it to the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Every QX and QSwap buy and sell a wallet made', naming the wallet-ledger scope explicitly. It then enumerates the exact outputs (price, QU net of fees, running position, average-cost realized profit, unrealized P&L), which cleanly separates it from siblings like qmax_get_tape, qmax_get_flow, and qmax_get_liquidity_positions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when to reach for it (reconstructing a wallet's trade history and cost-basis P&L) and practical guidance ('ask once and keep the answer' due to cost). It does not name an alternative sibling or state when not to use it, so it stops short of full routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_list_assetsList or search tradable Qubic assetsA
Read-onlyIdempotent
Inspect

Lists assets that trade on QX and/or QSwap, most liquid first, or searches by symbol.

Use this first to find the right asset symbol and to see which markets it trades on ('QX', 'QSwap' or both: only assets on both can be split for a better price).

Returns: { count, assets: [{ id, symbol, category ('contract' shares or 'token'), venues, priceQu, liquidityQu, activity }] }. Prices are QU per unit.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMost assets to return
queryNoPart of a symbol to search for, e.g. 'QD'
categoryNoOnly smart-contract shares or only tokens

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive safety, so the bar is lower. The description adds ordering behavior (most liquid first), venue semantics, and the meaning of each returned field, including that prices are per unit in QU — 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then usage, then return shape in three tight sentences with no filler. The return-shape sentence is dense but earns its place given the absence of an output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by spelling out the return structure and field meanings, and annotations cover safety. Missing only minor details like pagination or default-limit behavior, which the schema partially covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents limit, query, and category. The description only implies the symbol-search behavior of 'query' and category meanings ('contract' shares vs 'token') already enumerated in the schema, adding little beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific verbs (lists/searches) and the exact resource (assets trading on QX and/or QSwap), and clarifies it operates across two venues. An agent can distinguish this inventory/search tool from siblings like qmax_get_quote or qmax_get_order_book 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this first to find the right asset symbol' gives explicit workflow positioning before the quote/trade tools. It also explains a downstream condition (assets on both venues can be split for a better price), though it doesn't name a specific sibling to use afterward.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_list_poolsQSwap pools ranked by real fee incomeA
Read-onlyIdempotent
Inspect

Every QSwap liquidity pool with its TVL, trailing swap volume, estimated fee APR (from real swap volume; only 0.192% of each swap's volume reaches liquidity providers), price change and impermanent loss over the window. A trailing estimate: past fees do not predict future fees, and volume that looks inflated (wash trading) is flagged in each pool's notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoapr
limitNo
windowNo7d

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), but the description adds real behavioral context: the 0.192% LP fee take rate, the trailing-estimate caveat that past fees don't predict future fees, and that wash-traded volume is flagged in pool notes. That is meaningful domain context an agent could not get from the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core scope ('Every QSwap liquidity pool') followed by the field list, then a single caveat sentence. Dense but every clause carries information; the only weakness is the tightly packed field enumeration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 contents, and it does so by naming each metric plus the fee-rate and wash-trading caveats. Adequate for a read-only listing tool; only the parameter-level behavior (sorting, limiting) is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden. It partially compensates: the three named metrics (TVL, trailing volume, fee APR) map onto the sort enum values, and 'over the window' hints at the window parameter. However, the sort and limit parameters are never explicitly explained, and the 7d/30d enum values go unmentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (listing every QSwap liquidity pool) and enumerates the returned dimensions (TVL, trailing volume, fee APR, price change, impermanent loss), which distinguishes it from qmax_pool_detail. It never names a sibling explicitly, so the differentiation is by implication rather than direct routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what comes back but says nothing about when to call this versus qmax_pool_detail, qmax_get_liquidity_pool, or qmax_list_assets. There are no conditions, prerequisites, or exclusions — usage must be inferred from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_pool_detailOne QSwap pool in detail, with a deposit estimateA
Read-onlyIdempotent
Inspect

One pool's numbers explained, and for a deposit size (position_qu, the QU value of both sides together) an estimate of fees per day, per 30 days and the impermanent loss for price moves of 10%, 25% and 50%. Adding and removing liquidity each cost a flat 100,000 QU.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.
windowNo7d
position_quNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety bar is low, and the description adds real context beyond them: what the estimate contains (fees per day, per 30 days, IL at three price-move levels) and the flat 100,000 QU cost assumption for adding/removing liquidity. It does not mention rate limits, freshness of the underlying data, or what happens when position_qu is omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, purpose front-loaded before the estimate details and the cost caveat. Dense but every clause carries information; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 returns and largely does (fees per day, per 30 days, IL at 10/25/50%), plus a cost assumption. Gaps remain: the window parameter's effect on the estimate and the default behaviour when position_qu is not supplied are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 33%, so the description must carry weight; it does define position_qu as 'the QU value of both sides together', which the schema leaves undocumented. However, the window parameter (7d/30d enum, default 7d) is never explained, and it is unclear from the description whether position_qu is optional or what the output looks like without it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'one pool's numbers explained' plus a deposit-size estimate of daily/30-day fees and impermanent loss at 10/25/50% price moves. That is a clear, distinctive capability that separates it from generic siblings like qmax_get_liquidity_pool or qmax_list_pools, though it never names a sibling to route against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: you gather the estimate when you have a deposit size (position_qu) in mind. There is no explicit when-to-use/when-not guidance, no statement of prerequisites, and no pointer to an alternative tool for a plain pool lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_swap_quotePlan a token-to-token swapA
Read-onlyIdempotent
Inspect

Plans swapping one token for another as two linked trades: sell 'from' for QU (leg 1), then buy 'to' with the QU (leg 2), each routed across QX and QSwap by the best route. Read-only: nothing is signed.

Returns both quotes, 'upfrontQu' (QU the wallet must hold BEFORE leg 1 for its flat fees), 'expectedOutQty' (what you should get) and 'minOutQty' (guaranteed by the limits only if neither price moves past the slippage limit), plus warnings. Leg 2 can only be sized exactly after leg 1 settles, from the wallet's real balance, so a swap is never one atomic transaction: if leg 1 completes and leg 2 cannot proceed you are left holding QU. Both tokens must trade on QX or QSwap; QU itself is not a swap leg (use qmax_get_quote).

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesToken to buy
qtyYesHow many units of 'from' to sell
fromYesToken to sell
compareNoAlso plan the same swap forced onto each single market (QX or QSwap per leg) and say what QMax's route is worth against them (bestDeal). Slower.
slippage_bpsNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses non-trivial behavior: the wallet must hold 'upfrontQu' before leg 1, minOutQty is only guaranteed if price doesn't move past the slippage limit, and the swap is never atomic so a completed leg 1 with a failed leg 2 leaves the user holding QU. This is exactly the kind of risk context annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the core mechanism before the caveats, and every sentence carries real information (fees, guarantees, failure mode). It is on the longer side, but the density is justified rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 correctly explains the return values (both quotes, upfrontQu, expectedOutQty, minOutQty, warnings) and the atomicity caveat. For a five-parameter planning tool with no output contract elsewhere, nothing an agent needs is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so the schema already documents 'to', 'qty', 'from', and 'compare' well. The description reinforces the sell/buy direction of 'from'/'to' and references a slippage limit, but it adds no syntax or format detail beyond the schema, particularly for the undocumented slippage_bps. Baseline 3 fits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a specific verb and resource ('Plans swapping one token for another as two linked trades') and explains the two-leg mechanism (sell 'from' for QU, then buy 'to' with the QU). It also distinguishes itself from the sibling qmax_get_quote by noting QU is not a swap leg.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly says when to use it (token-to-token swaps routed across QX and QSwap) and gives one explicit alternative ('QU itself is not a swap leg (use qmax_get_quote)'). It does not address how it relates to other plan-related siblings like qmax_build_plan or qmax_backtest, so it stops short of full alternatives coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qmax_venue_premiumHow far apart QX and QSwap prices wereA
Read-onlyIdempotent
Inspect

Hour by hour, the gap between the asset's QX and QSwap prices (positive = QSwap dearer) and how often it was wider than the trading costs for a trade of 'reference_qu'. This is an UPPER BOUND on arbitrage, not a profit: it uses hourly average prices, so it leaves out the QX bid-ask spread (often wider than the costs) and the delay between the two transactions. Returns { bothVenues, breakEvenPct, points, summary, note }.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset symbol, for example CFB or QDOGE (case does not matter). Use qmax_list_assets to find one.
rangeNo30d
reference_quNoTrade size in QU used to work out the break-even gap (default 10,000,000)

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safe-read profile (readOnly, idempotent, openWorld, non-destructive), yet the description goes well beyond them: it defines the sign convention, labels the output an upper bound rather than a profit, and names the specific omissions that make it one (hourly averages, QX bid-ask spread, inter-transaction delay). That is exactly the kind of behavioral context an agent needs to avoid misinterpreting the result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no filler, and the core measurement is front-loaded before the caveats and the return-shape note. Dense but every clause carries information; the return-field list at the end is slightly list-like but useful given no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an analytical tool with no output schema, the description compensates by naming the returned keys (bothVenues, breakEvenPct, points, summary, note) and by scoping the metric's limitations. The remaining gap is routing: nothing tells the agent when to pick this over qmax_check_arbitrage or qmax_backtest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%; the description adds real meaning for reference_qu by explaining it is the trade size used to derive the break-even gap (the schema only says 'Trade size in QU'). 'Hour by hour' also conveys the time granularity behind the range parameter. The range enum itself is left without added semantics in either place.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific measurement: the hourly price gap between QX and QSwap for a given asset, with an explicit sign convention ('positive = QSwap dearer') and a defined threshold ('wider than the trading costs for a trade of reference_qu'). It is clearly a historical/analytical measurement rather than a live quote, though it never names the sibling it is meant to be used instead of (e.g. qmax_check_arbitrage), so differentiation is implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The framing as an 'UPPER BOUND on arbitrage, not a profit' implies this is for research/backtesting rather than live execution, but there is no explicit when-to-use, when-not-to-use, or named alternative such as qmax_check_arbitrage or qmax_backtest. The agent must infer the intended context from the caveats.

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. 19 tool updates
    • First observedqmax_backtest
    • First observedqmax_build_plan
    • First observedqmax_check_arbitrage
    • First observedqmax_get_candles
    • First observedqmax_get_flow
    • First observedqmax_get_health
    • First observedqmax_get_liquidity_pool
    • First observedqmax_get_liquidity_positions
    • First observedqmax_get_order_book
    • First observedqmax_get_price_history
    • First observedqmax_get_quote
    • First observedqmax_get_sellers
    • First observedqmax_get_tape
    • First observedqmax_get_wallet_ledger
    • First observedqmax_list_assets
    • First observedqmax_list_pools
    • First observedqmax_pool_detail
    • First observedqmax_swap_quote
    • First observedqmax_venue_premium

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables 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.
    7
    48 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Free 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.
    22
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Launches tokens, trades, and reads market data on Robinhood Chain, Base, and Ethereum through the Qian DEX. Non-custodial and supports multiple chains.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides access to live swap quotes and routing on the Base network via the o1.exchange DEX aggregator. Read-only and safe by default, it returns routing data and unsigned calldata for you to sign in your own wallet.
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.