Kryptonian Labs XRPL APIs
Server Details
Read-only XRP Ledger data for agents: fees, order books, slippage, AMM pools, accounts and health.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool targets a distinct resource or action: estimate_slippage vs get_orderbook vs get_amm are clearly separated by purpose, and get_account_summary, get_fee, get_latest_ledger, and get_network_health serve non-overlapping roles. Descriptions explicitly clarify boundaries where confusion could arise, such as slippage estimates vs orderbook depth vs AMM reserves.
All tool names use snake_case with a verb_noun pattern (get_account_summary, get_amm, get_fee, get_latest_ledger, get_network_health, get_orderbook) except estimate_slippage, which still follows verb_noun. The convention is predictable and consistent throughout.
Seven tools is well-scoped for a read-only XRPL data API, falling comfortably within the ideal 3-15 range. Each tool covers a distinct endpoint or calculation, so none feels redundant or out of place.
The set covers core read operations for market and network data: account summary, AMM, fee, latest ledger, network health, orderbook, and slippage. However, it lacks notable operations such as transaction lookup, account transaction history, ledger-by-index, full trust line details, and account flags, which limits full XRPL data workflows.
Available Tools
7 toolsestimate_slippageSlippage estimateARead-onlyIdempotentInspect
Slippage and average price for buying an amount of base currency. When to use: Before placing a market-style trade, to size it against available depth and to see whether the CLOB or the AMM pool is the cheaper venue. Prefer another tool: It is an estimate, not a quote, and it does not split an amount across venues or route through other pairs. To read pool reserves, use the amm page. Example: estimate_slippage {"base":"XRP","quote":"USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh","amount":"1000"}
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`) | |
| depth | No | Levels per side: a positive integer, rounded up to 10, 50, 100 or 200 (max 200) | |
| quote | Yes | Quote currency: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`) | |
| amount | Yes | Positive decimal amount of base to buy |
Output Schema
| Name | Required | Description |
|---|---|---|
| base | Yes | |
| meta | Yes | |
| side | Yes | |
| depth | Yes | |
| quote | Yes | |
| amount | Yes | Decimal string |
| filled | Yes | Decimal string |
| venues | Yes | CLOB vs AMM comparison for the same amount; no routing split |
| partial | Yes | |
| avg_price | Yes | |
| best_price | Yes | |
| slippage_pct | Yes | Percent, null when liquidity is insufficient |
| transfer_fee | Yes | |
| avg_price_after_fees | Yes | |
| transfer_fee_applied | Yes | |
| insufficient_liquidity | Yes |
TDQS
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 genuinely non-obvious behavioral context: this is a read-only estimate that does not split amounts across venues or route through other pairs, which materially affects how results should be interpreted.
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, then usage, then exclusion, then a concrete example — a sensible ordering. Slightly dense with the 'Prefer another tool' phrasing sitting awkwardly against the limitations listed, but no sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. With 100% schema coverage, annotations covering safety, and the description supplying usage conditions, exclusions, an example, and the estimate-not-quote caveat, an agent has enough to call it correctly. Minor gap: no mention of depth's effect on the estimate.
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%, so base, quote, amount and depth are already documented with formats and constraints in the schema. The description's worked example reinforces base/quote/amount but adds nothing about the optional depth parameter, so it neither compensates nor regresses. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — estimate slippage and average price for buying an amount of base currency — and immediately scopes it against the sibling tools by contrasting CLOB vs AMM pool. An agent can distinguish this from get_orderbook or get_amm without opening a 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?
Explicit 'When to use' (before placing a market-style trade, to size against depth and compare venues) and an explicit 'Prefer another tool' clause stating it is an estimate rather than a quote and does not split or route. It also names the sibling (amm page) for reading reserves, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_summaryAccount summaryARead-onlyIdempotentInspect
XRP balance, sequence, owner count, transfer rate and trust lines (capped) for an account. When to use: To inspect an account before building a transaction for it. Prefer another tool: Not for transaction history, reserves or account flags; it is a summary, not a full account dump. Example: get_account_summary {"address":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"}
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Valid classic XRPL account address (r..., checksum verified) |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | |
| address | Yes | |
| sequence | Yes | |
| balance_xrp | Yes | Decimal string |
| owner_count | Yes | |
| trust_lines | Yes | |
| transfer_rate | Yes | Issuer TransferRate, 1000000000 = no fee |
| lines_truncated | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is covered. The description adds a genuinely non-obvious behavioral detail — that trust lines are 'capped' — which warns the agent about truncated results. It stops short of saying how many or whether other fields are also truncated, so it is strong but not exhaustive.
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 labeled segments — content, when to use, boundary/example — with zero filler. The most decision-relevant information (what it returns, when to call it) is front-loaded.
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?
An output schema exists, so return-value structure need not be explained, and the description still previews the fields. For a single-parameter read tool with full annotation coverage, 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 coverage is 100%, so the address format ('r..., checksum verified') is already documented. The description goes beyond the schema by supplying a concrete, correctly-formatted example call, which is useful for an agent constructing the invocation. It adds no further constraints, so it lands above the 3 baseline rather than at 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names the concrete resource (an XRPL account) and enumerates exactly what the summary contains — balance, sequence, owner count, transfer rate, trust lines. Combined with the title and the explicit scope note, an agent can distinguish it from get_network_health, get_amm, or get_orderbook without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit positive trigger ('inspect an account before building a transaction for it') and an explicit negative boundary ('Not for transaction history, reserves or account flags'). Both when-to-use and when-not-to-use are stated rather than inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ammAMM poolARead-onlyIdempotentInspect
AMM pool reserves and trading fee for an asset pair. When to use: To read AMM pool depth and fee for a pair. Prefer another tool: It does not estimate slippage or compare venues (use the slippage page for the CLOB vs AMM comparison); a pair without a pool returns 404. Example: get_amm {"a":"XRP","b":"USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"}
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First asset: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`) | |
| b | Yes | Second asset: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`) |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | |
| asset_a | Yes | |
| asset_b | Yes | |
| reserve_a | Yes | Decimal string |
| reserve_b | Yes | Decimal string |
| trading_fee | Yes | Decimal string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive. Description adds a specific failure mode (404 for no pool) beyond annotations. However, it does not cover rate limits, auth requirements, or response caching.
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?
Description is front-loaded with purpose and structured with labels. However, the 'When to use' sentence largely restates the first sentence, adding mild redundancy. Example is useful but overall slightly longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists (so return values need no explanation), annotations cover safety, and schema covers params, the description completes the picture with usage, alternatives, and failure mode. Nothing critical is missing for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are fully documented in the schema. The description's example merely restates the schema's format without adding semantic meaning (e.g., order independence). 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 resource (AMM pool reserves and trading fee) and scope (asset pair). Explicitly distinguishes from sibling estimate_slippage by noting it does not estimate slippage or compare venues. An agent can identify its role without opening the 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?
Provides explicit 'When to use' and 'Prefer another tool' guidance, naming the alternative (slippage page) and the condition (slippage/venue comparison). Also notes 404 for a pair without a pool, covering failure mode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feeFee intelligenceARead-onlyIdempotentInspect
Current XRPL fee tiers in drops with a congestion score. When to use: Before submitting a transaction, to choose a Fee and to decide whether the network is congested. Prefer another tool: Not a price feed and not a historical series; it describes the latest validated ledger only. Example: get_fee {}
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| fee | Yes | |
| meta | Yes | |
| base_fee | Yes | Decimal string |
| congestion | Yes | |
| median_fee | Yes | Decimal string |
| minimum_fee | Yes | Decimal string |
| max_queue_size | Yes | Decimal string |
| open_ledger_fee | Yes | Decimal string |
| current_queue_size | Yes | Decimal string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description's job is to add context beyond that — it does, by scoping freshness to the latest validated ledger and by stating that a congestion score accompanies the fee tiers. It stops short of describing freshness/rate-limit behavior or the number of tiers, so it is not fully exhaustive.
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 what it returns, then when-to-use, then exclusions, then a literal call example. Every clause earns its place with no restatement of the title or name.
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?
An output schema exists and the description does not need to enumerate return values, yet it still characterizes the payload (fee tiers in drops plus congestion score). For a zero-parameter, read-only lookup, nothing an agent needs 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline is 4. The schema is an empty object and the description correctly shows the invocation as 'get_fee {}'.
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 ('Current XRPL fee tiers in drops') plus the derived value ('congestion score'), which is exactly the kind of specific output framing an agent needs. It also separates itself from siblings by declaring it is 'not a price feed and not a historical series' and describes 'the latest validated ledger only'.
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 ('Before submitting a transaction, to choose a `Fee` and to decide whether the network is congested') and explicit when-not ('Not a price feed and not a historical series'). The alternative framing is clear even without naming a specific sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_ledgerLatest ledgerARead-onlyIdempotentInspect
Latest validated ledger index, hash and close time. When to use: To anchor other readings to a ledger or to check how current the network view is. Prefer another tool: Not for transaction data or account state; use the account endpoint for those. Example: get_latest_ledger {}
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | |
| close_time | Yes | |
| ledger_hash | Yes | |
| ledger_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered structurally. The description adds the returned fields and the notion of network-view freshness, but nothing about staleness behavior or failure modes beyond what the annotations and output schema carry.
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?
Labeled sections (When to use / Prefer another tool / Example) front-load the essential routing information efficiently. The literal example call is mildly redundant but harmless.
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 parameters, full annotation coverage and an output schema describing return values, the description is complete enough for correct invocation. Little additional context is needed for a zero-arg read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. The description and example correctly convey the empty-argument invocation, matching the empty schema.
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 ('Latest validated ledger index, hash and close time') and explicitly distinguishes itself from the account endpoint. An agent can identify what this returns without opening the 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?
Provides an explicit 'When to use' condition (anchoring readings, checking network currency) and a 'Prefer another tool' exclusion naming account/transaction data as out of scope. Routing is fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_healthNetwork healthARead-onlyIdempotentInspect
Overall and per-node health of the upstream XRPL nodes. When to use: To decide whether to trust or retry data, or to explain a 503 from another endpoint. Prefer another tool: Not a probe of your own connectivity; it reports the service's upstream nodes. Example: get_network_health {}
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | |
| nodes | Yes | |
| status | Yes | |
| ledger_index | Yes | |
| last_probe_at | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely new context: it reports the *service's* upstream nodes rather than the caller's own connectivity, which prevents a plausible misuse. It does not discuss caching, freshness, or how health is determined, keeping it short of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the what, then labeled When to use / Prefer another tool sections, closing with a call example. Every sentence carries distinct information and the structure is immediately scannable.
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 zero-parameter, read-only health endpoint with an output schema already describing the return shape, nothing an agent needs in order to decide to call it 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?
The tool takes zero parameters, so the baseline is 4. The description correctly shows the empty-argument invocation (get_network_health {}), which adds nothing beyond the schema but also introduces no confusion.
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 resource and scope: overall and per-node health of the upstream XRPL nodes. The subject is unambiguous and, since the siblings (get_fee, get_orderbook, get_latest_ledger, etc.) are all data-fetch tools, no further differentiation is needed.
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 gives when-to-use ('to decide whether to trust or retry data, or to explain a 503 from another endpoint') and a when-not clause ('not a probe of your own connectivity; it reports the service's upstream nodes'). This is the strongest form of routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderbookFunded order bookARead-onlyIdempotentInspect
CLOB order book for a currency pair with unfunded offers removed. When to use: To read executable liquidity for a pair on the XRPL central limit order book (CLOB). Prefer another tool: Not for AMM liquidity (use the amm page) and not for a cost estimate (use the slippage page). Example: get_orderbook {"base":"XRP","quote":"USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"}
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`) | |
| depth | No | Levels per side: a positive integer, rounded up to 10, 50, 100 or 200 (max 200) | |
| quote | Yes | Quote currency: `XRP` (no issuer) or `CODE.issuer` with a valid classic-address issuer (e.g. `USD.rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`) |
Output Schema
| Name | Required | Description |
|---|---|---|
| asks | Yes | Best (lowest) price first |
| base | Yes | |
| bids | Yes | Best (highest) price first, from the base-asset side |
| meta | Yes | |
| depth | Yes | |
| quote | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description still adds real value by disclosing that unfunded offers are filtered out, which materially affects what the returned liquidity means. It does not discuss return shape or depth rounding, but the output schema and input schema cover those.
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 the core purpose, then labels usage, exclusions and an example, so an agent can skim to the relevant clause. Slightly list-like with the repeated labels, but every sentence carries distinct 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?
With an output schema present, return values need not be explained, and annotations carry the safety profile. Purpose, scope, routing and an example invocation are all present, leaving nothing an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so base/quote/depth are already fully documented, including the issuer format and depth rounding rules. The description only supplies a sample call, adding no semantics beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('CLOB order book for a currency pair') and adds a precise scope qualifier ('with unfunded offers removed'). This distinguishes it from get_amm (AMM liquidity) and estimate_slippage without the agent needing to open either 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?
Has an explicit 'When to use' statement and a 'Prefer another tool' clause that names the two relevant alternatives (AMM page, slippage page) and the conditions that select them. Routing is fully determined.
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
estimate_slippage2 fields changed- added
Output schema / properties / venuesAdded value: +{ + "additionalProperties": false, + "description": "CLOB vs AMM comparison for the same amount; no routing split", + "properties": { + "amm": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "avg_price": { + "anyOf": [ + { + "description": "Decimal string", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Quote paid per base received, null when it cannot fill" + }, + "avg_price_after_fees": { + "anyOf": [ + { + "description": "Decimal string", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "avg_price x issuer TransferRate, null when the rate is unknown" + }, + "cost": { + "anyOf": [ + { + "description": "Decimal string", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Total quote paid for `amount`, null when it cannot fill" + }, + "insufficient_liquidity": { + "type": "boolean" + }, + "slippage_pct": { + "anyOf": [ + { + "description": "Decimal string", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Percent vs the fee-free pool spot price (includes the trading fee), null when it cannot fill" + }, + "spot_price": { + "description": "Pool spot price, quote per base, excluding fee and impact", + "type": "string" + }, + "trading_fee": { + "description": "Pool trading fee as a fraction, like /v1/amm", + "type": "string" + } + }, + "required": [ + "avg_price", + "cost", + "slippage_pct", + "insufficient_liquidity", + "avg_price_after_fees", + "spot_price", + "trading_fee" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Null when the pair has no pool or the pool could not be read (see amm_status)" + }, + "amm_status": { + "description": "State of the AMM read: ok, stale (served past its fresh window), no_pool, unavailable", + "enum": [ + "ok", + "stale", + "no_pool", + "unavailable" + ], + "type": "string" + }, + "best": { + "anyOf": [ + { + "enum": [ + "clob", + "amm" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Cheaper venue by avg_price (ties go to the CLOB), null when neither can fill" + }, + "clob": { + "additionalProperties": false, + "properties": { + "avg_price": { + "anyOf": [ + { + "description": "Decimal string", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Quote paid per base received, null when it cannot fill" + }, + "avg_price_after_fees": { + "anyOf": [ + { + "description": "Decimal string", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "avg_price x issuer TransferRate, null when the rate is unknown" + }, + "cost": { + "anyOf": [ + { + "description": "Decimal string", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Total quote paid for `amount`, null when it cannot fill" + }, + "insufficient_liquidity": { + "type": "boolean" + }, + "slippage_pct": { + "anyOf": [ + { + "description": "Decimal string", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Percent vs the best ask, null when it cannot fill" + } + }, + "required": [ + "avg_price", + "cost", + "slippage_pct", + "insufficient_liquidity", + "avg_price_after_fees" + ], + "type": "object" + } + }, + "required": [ + "best", + "amm_status", + "clob", + "amm" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "base", - "quote", - "side", - "depth", - "amount", - "filled", - "partial", - "insufficient_liquidity", - "best_price", - "avg_price", - "slippage_pct", - "transfer_fee_applied", - "transfer_fee", - "avg_price_after_fees", - "meta" -]New value: +[ + "base", + "quote", + "side", + "depth", + "amount", + "filled", + "partial", + "insufficient_liquidity", + "best_price", + "avg_price", + "slippage_pct", + "transfer_fee_applied", + "transfer_fee", + "avg_price_after_fees", + "venues", + "meta" +]
7 tool updates
- First observed
estimate_slippage - First observed
get_account_summary - First observed
get_amm - First observed
get_fee - First observed
get_latest_ledger - First observed
get_network_health - First observed
get_orderbook
Related MCP Connectors
XRPL token rug-checks, issuer reputation & AMM data for AI agents. Pay-per-call USDC via x402.
Read-only XRPL tools for ASTEROID: identity, market, supply, liquidity, escrows, holders, AMM quotes
Read-only Hyperliquid data for AI agents: fills, candles, funding, liquidations, wallet analytics.
Trust and payment layer for the agentic economy on the XRP Ledger.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides read-only access to the XRP Ledger for querying accounts, transactions, NFTs, DEX order books, and more.12-
- AlicenseNot gradedqualityBmaintenanceRead-only XRP Ledger analytics — signed snapshots, AMM pools, token volume, whale activity, NFT tracking. Proof-annotated. Public beta 2026-09.MIT
- FlicenseNot gradedqualityBmaintenanceProvides protocol-neutral market intelligence for the AI agent economy, with read-only tools to search agents, retrieve details and histories, compare agents, list categories, view category rankings, and access methodology.-
- AlicenseBqualityCmaintenanceExposes 17 read-only tools from six XRPL-Utilities services so AI agents can access XRPL wallet analysis, signal feeds, macro telemetry, permissioned asset stacks, RWA tracking, and ETF flow data.41235 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.