Skip to main content
Glama

XRPL MCP Server

A Model Context Protocol (MCP) server that provides read-only access to the XRP Ledger. Query accounts, transactions, NFTs, DEX order books, and more.

Features

  • Account Operations: Get account info, balances, trust lines, transaction history

  • Transaction Lookup: Retrieve detailed transaction information by hash

  • Ledger Data: Query ledger state and server information

  • NFT Support: List account NFTs and get NFT details

  • DEX Integration: View account offers and order books

  • Multi-Network: Supports Mainnet, Testnet, and Devnet

Related MCP server: Mina Archive Node

Installation

git clone https://github.com/esonica/mcp_xrpl.git
cd mcp_xrpl
npm install
npm run build

Configuration

Claude Desktop

Add to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "xrpl": {
      "command": "node",
      "args": ["C:/path/to/mcp_xrpl/build/index.js"]
    }
  }
}

Claude Code

Add to your Claude Code MCP settings (.claude/settings.json):

{
  "mcpServers": {
    "xrpl": {
      "command": "node",
      "args": ["C:/path/to/mcp_xrpl/build/index.js"]
    }
  }
}

Network Selection

All tools accept an optional network parameter:

Network

Description

WebSocket URL

mainnet

Production XRP Ledger (default)

wss://xrplcluster.com

testnet

Test network with test XRP

wss://s.altnet.rippletest.net:51233

devnet

Development network

wss://s.devnet.rippletest.net:51233


Tools Reference

Account Tools

get_account_info

Get detailed information about an XRPL account including balance, sequence number, and flags.

Parameter

Type

Required

Description

account

string

Yes

The XRPL account address (starts with r)

network

string

No

Network to query: mainnet, testnet, or devnet

Example:

{
  "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
  "network": "mainnet"
}

Returns: Account balance (in drops), sequence number, flags, owner count, and other account settings.


get_account_lines

Get trust lines (token balances) for an XRPL account. Shows all issued currencies the account holds.

Parameter

Type

Required

Description

account

string

Yes

The XRPL account address (starts with r)

peer

string

No

Filter to trust lines with this specific issuer

limit

number

No

Maximum number of trust lines to return (default: 200)

network

string

No

Network to query: mainnet, testnet, or devnet

Example:

{
  "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
  "limit": 50
}

Returns: Array of trust lines with currency code, balance, limit, and issuer for each.


get_account_currencies

Get a list of currencies an account can send or receive.

Parameter

Type

Required

Description

account

string

Yes

The XRPL account address (starts with r)

network

string

No

Network to query: mainnet, testnet, or devnet

Example:

{
  "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"
}

Returns: Lists of send_currencies and receive_currencies.


get_account_transactions

Get transaction history for an XRPL account.

Parameter

Type

Required

Description

account

string

Yes

The XRPL account address (starts with r)

limit

number

No

Maximum transactions to return (default: 20)

forward

boolean

No

If true, return oldest first (default: false, newest first)

network

string

No

Network to query: mainnet, testnet, or devnet

Example:

{
  "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
  "limit": 10,
  "forward": false
}

Returns: Array of transactions with full transaction details and metadata.


Transaction Tools

get_transaction

Get detailed information about a specific transaction by its hash.

Parameter

Type

Required

Description

transaction_hash

string

Yes

The transaction hash (64 character hex string)

binary

boolean

No

If true, return as binary blob (default: false)

network

string

No

Network to query: mainnet, testnet, or devnet

Example:

{
  "transaction_hash": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BCCABD0B9C4226"
}

Returns: Full transaction details including type, accounts involved, amounts, and result.


Ledger Tools

get_ledger

Get information about a specific ledger or the latest validated ledger.

Parameter

Type

Required

Description

ledger_index

string

No

Ledger index or validated, closed, current (default: validated)

transactions

boolean

No

Include transaction hashes (default: false)

expand

boolean

No

Include full transaction details (default: false)

network

string

No

Network to query: mainnet, testnet, or devnet

Example:

{
  "ledger_index": "validated",
  "transactions": true
}

Returns: Ledger header info including hash, close time, transaction count, and state hash.


get_server_info

Get information about the XRPL server/node including its current state and sync status.

Parameter

Type

Required

Description

network

string

No

Network to query: mainnet, testnet, or devnet

Example:

{
  "network": "testnet"
}

Returns: Server version, uptime, validated ledger range, peer count, and sync state.


ping

Ping the XRPL server to check connectivity and measure response time.

Parameter

Type

Required

Description

network

string

No

Network to ping: mainnet, testnet, or devnet

Example:

{
  "network": "mainnet"
}

Returns: Connection status, response time in milliseconds, and network info.


NFT Tools

get_account_nfts

Get all NFTs (Non-Fungible Tokens) owned by an XRPL account.

Parameter

Type

Required

Description

account

string

Yes

The XRPL account address (starts with r)

limit

number

No

Maximum NFTs to return (default: 100)

network

string

No

Network to query: mainnet, testnet, or devnet

Example:

{
  "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
  "limit": 50
}

Returns: Array of NFTs with NFT ID, issuer, serial number, URI, and flags.


get_nft_info

Get detailed information about a specific NFT by its NFT ID.

Parameter

Type

Required

Description

nft_id

string

Yes

The NFT ID (64 character hex string)

network

string

No

Network to query: mainnet, testnet, or devnet

Example:

{
  "nft_id": "00081388DC1AB4937C899037B2FDFC3CB20F6F64E73120BB5F8AA66A00000228"
}

Returns: NFT details including owner, issuer, taxon, serial, URI, and flags.


DEX Tools

get_account_offers

Get all open DEX (Decentralized Exchange) offers for an XRPL account.

Parameter

Type

Required

Description

account

string

Yes

The XRPL account address (starts with r)

limit

number

No

Maximum offers to return (default: 200)

network

string

No

Network to query: mainnet, testnet, or devnet

Example:

{
  "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"
}

Returns: Array of open offers with taker_gets, taker_pays, sequence, and quality.


get_order_book

Get the order book for a currency pair on the XRPL DEX.

Parameter

Type

Required

Description

base_currency

string

Yes

Base currency code (e.g., "XRP", "USD")

base_issuer

string

No

Issuer for base currency (not needed for XRP)

quote_currency

string

Yes

Quote currency code (e.g., "XRP", "USD")

quote_issuer

string

No

Issuer for quote currency (not needed for XRP)

limit

number

No

Maximum offers per side (default: 20)

network

string

No

Network to query: mainnet, testnet, or devnet

Example - XRP/USD order book:

{
  "base_currency": "XRP",
  "quote_currency": "USD",
  "quote_issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",
  "limit": 10
}

Example - USD/EUR order book:

{
  "base_currency": "USD",
  "base_issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",
  "quote_currency": "EUR",
  "quote_issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq"
}

Returns: Object with asks and bids arrays containing order book offers.


Common Issuers

Here are some well-known token issuers on XRPL mainnet:

Issuer

Address

Tokens

Bitstamp

rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B

USD, BTC, EUR

GateHub

rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq

USD, EUR, GBP


Development

# Install dependencies
npm install

# Build
npm run build

# Watch mode (rebuild on changes)
npm run dev

License

MIT

Available Tools

12 tools
get_account_currenciesA

Get a list of currencies an account can send or receive

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYesThe XRPL account address (starts with r)
networkNoThe XRPL network to query (default: mainnet)

TDQS

A3.8/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the burden of behavioral disclosure. The verb 'Get' signals a read-only operation, but the description does not explicitly state safety, side effects, or network-specific behavior. It does not mention what happens if the account is invalid or what the return format looks like.

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?

The description is a single, concise sentence with no filler. It front-loads the verb and resource, making it immediately clear what the tool does.

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 simple tool with only two parameters and a list return, the description adequately conveys the purpose. It mentions the key output ('list of currencies') and the account context, but it does not detail the return format or network default, though these are covered by the schema.

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 input schema already provides full descriptions for both parameters (account and network), so the tool description adds little beyond the schema. The description's reference to 'currencies' gives some context to what the account parameter is used for, but this is minimal extra value.

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 clearly states the action ('Get'), the resource ('list of currencies'), and the scope ('an account can send or receive'). It is specific and distinguishes itself from sibling tools like get_account_lines or get_account_transactions, which fetch different data types.

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 description implies its use when one needs to know an account's currency capabilities, but it provides no explicit guidance on when to use this tool versus its siblings, nor does it mention any prerequisites or exclusions.

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

get_account_infoA

Get detailed information about an XRPL account including balance, sequence number, and flags

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYesThe XRPL account address (starts with r)
networkNoThe XRPL network to query (default: mainnet)

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of disclosing behavior. It names some return fields (balance, sequence number, flags) but does not discuss error handling, network default, or response format. This is minimal but not entirely absent.

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?

The description is a single, front-loaded sentence with no filler. Every word contributes to identifying the tool's purpose and key output fields.

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?

This is a simple read tool, but with no output schema and no annotations, the description should provide more context about return values and network behavior. It lists some fields, which is helpful, but omits details like default network and error scenarios. Adequate but not enriched.

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%, and both parameters have clear descriptions in the schema. The tool description adds no additional parameter-level meaning beyond what is already in the schema, so the baseline score of 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?

The description uses the verb 'Get' and specifies the resource 'XRPL account' with a list of included data (balance, sequence number, flags). This clearly distinguishes it from sibling tools that focus on specific account subdata like lines, currencies, or transactions.

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 description does not explicitly mention when to prefer this tool over siblings or provide exclusions. However, the name and content imply it for general account info, which is a baseline level of guidance.

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

get_account_linesA

Get trust lines (token balances) for an XRPL account. Shows all tokens the account holds or can receive.

ParametersJSON Schema
NameRequiredDescriptionDefault
peerNoOptional: Filter to trust lines with this specific issuer account
limitNoMaximum number of trust lines to return (default: 200)
accountYesThe XRPL account address (starts with r)
networkNoThe XRPL network to query (default: mainnet)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the scope of returned data ('all tokens the account holds or can receive') but does not explicitly state read-only status, pagination behavior, or any rate limits or authorization constraints, which are important for safe invocation.

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?

The description is extremely concise, using two short sentences to communicate the tool's core function and the range of results. It is front-loaded with the action verb and contains no filler or redundant words.

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?

The tool has no output schema and no annotations, so the description must provide enough context about return values and behavior. It explains what the result contains (token balances) but fails to describe the response structure, limit truncation semantics, or network-specific ledger details, leaving gaps for a tool with four parameters.

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 input schema provides complete descriptions for all four parameters (account, peer, limit, network), giving 100% coverage. The description adds no extra parameter-specific meaning, such as the effect of peer filtering or the default limit behavior, so it correctly sits at the 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?

The description starts with the action verb 'Get' and specifically identifies the resource as 'trust lines (token balances)' for an XRPL account. It clearly distinguishes itself from sibling tools like get_account_info and get_account_transactions by detailing that it shows all tokens the account holds or can receive.

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 description implies when to use the tool (to retrieve trust lines/token balances) but provides no explicit guidance on alternatives or exclusions. It does not mention more specific sibling tools like get_account_currencies, leaving the agent to infer usage from the purpose alone.

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

get_account_nftsB

Get all NFTs (Non-Fungible Tokens) owned by an XRPL account

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of NFTs to return (default: 100)
accountYesThe XRPL account address (starts with r)
networkNoThe XRPL network to query (default: mainnet)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'Get all NFTs' but fails to disclose that the default limit is 100, meaning it may not actually return all NFTs. It also does not mention pagination, network behavior, or error handling, creating a potential gap between expectation and actual behavior.

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?

The description is a single sentence that immediately conveys the core purpose with no filler or redundant wording. It is well-structured and front-loaded.

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

Completeness2/5

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

The description is too minimal for the tool's context. It fails to mention the default limit of 100, making the claim of returning 'all NFTs' misleading. With no output schema and no annotations, it also omits return format, pagination, and network selection context, leaving the agent under-informed.

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 input schema provides descriptions for all three parameters, giving 100% coverage, so the baseline is 3. The tool description adds minimal semantic value beyond restating that the account is an XRPL address; it does not clarify how limit or network affect the query or result.

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 clearly states the tool retrieves all NFTs owned by an XRPL account, using a specific verb and resource. It distinguishes itself from siblings like get_nft_info (which targets individual NFTs) and other account-related getters.

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 description conveys a clear purpose, so usage is implied, but it does not explicitly state when to use this tool versus alternatives. No exclusions or alternative recommendations are provided, leaving the agent to infer that this is for full NFT lists rather than specific NFT lookups.

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

get_account_offersB

Get all open DEX (Decentralized Exchange) offers for an XRPL account

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of offers to return (default: 200)
accountYesThe XRPL account address (starts with r)
networkNoThe XRPL network to query (default: mainnet)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only says 'Get all open DEX offers' but does not mention that it is a read-only operation, pagination behavior, or any potential side effects. This lack of behavioral context makes transparency minimal.

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?

The description is a single, concise sentence that front-loads the key action and resource. There is no wasted text or redundancy, earning a perfect score for structure.

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 simple read tool with three well-documented parameters and no output schema, the description adequately conveys the return scope (all open offers). It lacks explicit return format details and differentiation from siblings, but the schema covers parameter semantics, making it mostly complete. The absence of usage guidance slightly reduces completeness.

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 input schema has 100% coverage with descriptions for all three parameters (account, limit, network). The tool description does not add any parameter-specific meaning beyond the schema, so the baseline score of 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?

The description clearly states the tool's purpose with a specific verb ('Get'), resource ('all open DEX offers'), and scope ('for an XRPL account'). It distinguishes from sibling account tools by focusing on offers specifically, making the purpose unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like get_order_book or other account tools. It only states what it does, without exclusions or contextual use cases, leaving usage fully implied.

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

get_account_transactionsC

Get transaction history for an XRPL account

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of transactions to return (default: 20)
accountYesThe XRPL account address (starts with r)
forwardNoIf true, return oldest transactions first (default: false, newest first)
networkNoThe XRPL network to query (default: mainnet)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic action ('Get transaction history') without mentioning read-only nature, pagination behavior, network selection, or any other operational details beyond what the schema already provides.

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?

The description is a single, front-loaded sentence with no redundant words. It is appropriately concise for the tool's purpose, though it could benefit from additional context that is not present.

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

Completeness2/5

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

The tool has no output schema and no annotations, so the description must be comprehensive. It lacks information about return format, usage context, and when to prefer this tool over siblings. The description is too minimal for the tool's complexity, leaving the agent without essential decision-making information.

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 the baseline is 3. The description does not add any extra meaning to the parameters (limit, forward, network), leaving the schema to carry the details. No additional context or examples are provided.

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 clear verb ('Get') and resource ('transaction history for an XRPL account'), which distinguishes it from sibling tools like get_transaction (single transaction) or get_account_info. It is specific, but lacks explicit mention of alternatives, so it does not fully excel.

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?

No guidance is provided on when to use this tool versus alternatives. There is no mention of scenarios, exclusions, or comparisons with sibling tools like get_transaction or get_account_lines, leaving the agent to infer usage 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.

get_ledgerB

Get information about a specific ledger or the latest validated ledger

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoIf true, include full transaction details instead of just hashes (default: false)
networkNoThe XRPL network to query (default: mainnet)
ledger_indexNoLedger index number, or "validated", "closed", "current" (default: validated)
transactionsNoIf true, include transaction hashes in the response (default: false)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Get information,' which implies a read operation, but does not elaborate on side effects, return format, error handling, or any restrictions. This lack of detail is a notable gap.

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 description is a single, front-loaded sentence that efficiently states the tool's core function. It is appropriately sized, though it omits some useful context that could be added without excessive length.

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

Completeness2/5

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

Given the tool has 4 optional parameters and no output schema, the description should offer more context about what the response contains or how to interpret results. It only describes the high-level purpose, leaving significant ambiguity for an agent attempting to use the tool effectively.

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 input schema provides detailed descriptions for all 4 parameters, achieving 100% schema coverage. The description doesn't add any parameter semantics beyond the schema, so it earns the baseline score of 3.

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 clearly states the tool retrieves information about a specific or latest validated ledger, using a specific verb ('Get') and resource ('ledger'). It distinguishes from sibling tools focused on accounts or transactions, making its purpose unambiguous.

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?

No guidance is provided on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or scenarios where a sibling tool might be more appropriate. The description merely states what it does, leaving the agent to infer usage.

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

get_nft_infoA

Get detailed information about a specific NFT by its NFT ID

ParametersJSON Schema
NameRequiredDescriptionDefault
nft_idYesThe NFT ID (64 character hex string)
networkNoThe XRPL network to query (default: mainnet)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description should carry the burden of disclosing behavior. It only says 'Get detailed information,' which already implies a read operation, but it does not mention how invalid IDs are handled, what specific fields are returned, or any network-default behavior. This adds minimal value beyond what the verb 'Get' already conveys.

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?

The description is a single, concise sentence that front-loads the action and resource. Every word contributes to the meaning, with no redundant or vague 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?

The tool is simple with complete schema coverage, but no output schema exists, so the description should clarify what 'detailed information' includes. It remains vague on return content, though for a standard NFT-info tool it is minimally adequate.

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%, with both nft_id and network having clear descriptions. The tool description's mention of 'by its NFT ID' adds no additional semantics beyond the schema, so the baseline of 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?

The description uses a specific verb ('Get') and resource ('detailed information about a specific NFT by its NFT ID'), making the action and target unambiguous. It clearly distinguishes from sibling tools like get_account_nfts, which list NFTs for an account, by focusing on a single NFT identified by its ID.

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 phrase 'by its NFT ID' implies the tool is used when you have an NFT ID, but it does not explicitly contrast this with alternatives such as get_account_nfts or state when not to use it. The usage context is implied rather than clearly defined.

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

get_order_bookA

Get the order book for a currency pair on the XRPL DEX. Shows current buy and sell offers.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of offers to return per side (default: 20)
networkNoThe XRPL network to query (default: mainnet)
base_issuerNoThe issuer account for the base currency (not needed for XRP)
quote_issuerNoThe issuer account for the quote currency (not needed for XRP)
base_currencyYesThe base currency code (e.g., "XRP", "USD", "EUR")
quote_currencyYesThe quote currency code (e.g., "XRP", "USD", "EUR")

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must disclose safety and behavior. It states it 'shows current buy and sell offers,' implying a read-only operation, but it does not detail response format, pagination, default limit, or how issuers are handled for non-XRP currencies. Minimal behavioral disclosure, though it does convey the core read intent.

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?

The description is two sentences: the first states the action precisely, the second adds a key detail about contents. No filler or redundancy, and the most important information is front-loaded.

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

Completeness2/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 should convey return values and edge cases. It only gives a high-level statement about buy and sell offers, omitting response structure, default limits, network selection, and the distinction between XRP and issued currencies. For a moderately complex tool with six parameters, this is insufficient.

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?

All six parameters have descriptions in the schema (100% coverage), so the baseline is 3 as the description need not re-explain them. The description adds no further meaning about parameter semantics, such as relationships between base/quote or default behaviors, but neither is required given the schema completeness.

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 clearly identifies the operation ('Get'), the resource ('order book for a currency pair'), and the specific domain ('XRPL DEX'), and adds that it shows current buy and sell offers. This distinguishes it from sibling tools like get_account_info or get_ledger, which target different data.

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 description implies usage for current market data on the XRPL DEX, but it does not explicitly state when to prefer this tool over alternatives, nor note any exclusions or prerequisites. The sibling tool list is provided externally, but the description itself offers no comparative guidance.

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

get_server_infoA

Get information about the XRPL server/node including its current state, version, and sync status

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoThe XRPL network to query (default: mainnet)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not explicitly state it is a read-only operation or mention any side effects, authentication needs, or node selection behavior. However, the 'Get' verb implies a safe read, and the listed fields give some insight into the response.

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?

The description is a single, front-loaded sentence that states the action, resource, and key details without unnecessary words. It earns its place with essential information.

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 simple tool with one optional parameter and no output schema, the description adequately explains the purpose and the type of information returned (state, version, sync status). It does not mention the network parameter, but that is captured in the schema, so completeness is good.

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 input schema fully covers the single 'network' parameter with an enum and description (100% coverage). The description adds no additional meaning beyond the schema, so the baseline score of 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 clearly uses the verb 'Get' with a specific resource 'information about the XRPL server/node' and lists key details (current state, version, sync status). This distinguishes it from sibling tools that focus on accounts, transactions, or ledger data.

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 intended use is implied by the resource name, but the description does not explicitly state when to use this tool versus alternatives like 'ping' or account-specific tools. No exclusions or alternative references are provided.

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

get_transactionA

Get detailed information about a specific transaction by its hash

ParametersJSON Schema
NameRequiredDescriptionDefault
binaryNoIf true, return transaction as binary blob (default: false)
networkNoThe XRPL network to query (default: mainnet)
transaction_hashYesThe transaction hash (64 character hex string)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It clearly indicates a read operation ('Get') but adds no detail about side effects, error behavior, or return format. For a non-mutating tool, the lack of explicit safety disclosure is acceptable but not exemplary; it could note that no state changes occur.

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?

A single sentence that is concise, front-loaded, and free of fluff. It states the core action and key identifier without wasting words.

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?

The tool is simple with three schema-documented parameters and no output schema. The description adequately states its purpose, but 'detailed information' is a bit vague about the exact return shape or content. Given the tool's simple nature, the description is sufficient but could explicitly mention that it returns a structured object with transaction details.

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 schema covers all three parameters with full descriptions (hash, binary, network), so the description needs no elaboration. The description text itself 'detailed information' adds no semantic value beyond the schema, which already provides 100% 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?

The description uses a specific verb 'Get' and resource 'transaction' with a clear identifier 'by its hash', distinguishing it sharply from sibling account/ledger/nft tools. It unambiguously states the tool's function in a direct manner.

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 from the hash parameter and the tool's name, but there is no explicit guidance about when to use this vs. alternatives or any exclusions. The description doesn't mention that this is for retrieving a single transaction rather than listing transactions, nor does it refer to sibling tools.

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

pingA

Ping the XRPL server to check connectivity and measure response time

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoThe XRPL network to ping (default: mainnet)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral disclosure. It adequately conveys the tool's action (ping) and what it measures (response time), though it doesn't detail the output format or any potential side effects. For a simple connectivity tool, this is sufficient transparency.

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?

The description is a single, front-loaded sentence with no unnecessary words. It efficiently states the action and purpose without redundancy.

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?

For a tool with one optional parameter and no output schema, the description plus schema fully specify the input and behavior. The simplicity of a ping operation means no further details are needed for completeness.

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 schema covers 100% of parameters with a clear description for 'network', including its enum values and default. The tool description does not add parameter semantics, but the schema provides the necessary meaning, so the baseline of 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?

The description uses the specific verb 'ping' and identifies the resource 'XRPL server', clearly stating the tool's purpose of checking connectivity and measuring response time. This distinguishes it from sibling data-retrieval tools like get_account_info or get_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?

The usage context is clear: it is for connectivity checks and latency measurement, which is a unique function among the siblings. Although it doesn't explicitly state when not to use it, there are no direct alternatives for this network diagnostic, so the purpose is self-evident.

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. Dates show when Glama detected each change.

  1. 12 tool updatesv1.0.0
    • First observedget_account_currencies
    • First observedget_account_info
    • First observedget_account_lines
    • First observedget_account_nfts
    • First observedget_account_offers
    • First observedget_account_transactions
    • First observedget_ledger
    • First observedget_nft_info
    • First observedget_order_book
    • First observedget_server_info
    • First observedget_transaction
    • First observedping

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct resource or aspect of XRPL, from account info to NFTs to order books. There is no overlap or ambiguity between tools.

Naming Consistency4/5

All tools follow a snake_case get_<resource> pattern with the sole exception of ping, which is a minor deviation. The naming is otherwise highly consistent and predictable.

Tool Count5/5

With 12 tools covering accounts, transactions, NFTs, DEX, ledger, and server state, the count is well-scoped for a query-focused XRPL server and feels neither sparse nor bloated.

Completeness3/5

The tool set provides broad read access to XRPL data but lacks any write or transaction submission capabilities, such as sending payments or creating offers. This is a notable gap if the server is intended for full lifecycle management, though it may be acceptable for a read-only explorer.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides read-only access to Solana on-chain data, enabling natural language queries for wallet balances, token holdings, prices, transactions, and more via MCP-compatible clients.
    8
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only, real-time access to TON blockchain data including wallet balances, token holdings, transactions, prices, NFTs, DNS resolution, and address validation, without requiring private keys.
    22
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/esonica/mcp_xrpl'

If you have feedback or need assistance with the MCP directory API, please join our Discord server