MCP Server

XRPName

io.github.XRPDomains/xrpname-mcp-server
Crypto & Web3 Public & reachable MCP 2025-11-25

What this MCP does

Checks, discovers, profiles, registers, and manages XRPL domain names, portfolios, ownership resolution, offers, and related transactions.

check_domains
Check 1 to 25 XRPL domains for registration status and cost. Use for questions like "is <name>.xrp taken?", "how much does <name>.xrp cost?", "who owns <name>.xrp?", or to verify availability before registering. Accepts .xrp, .xrpl, .xrpfi, .rlusd TLDs (defaults to .xrp when omitted). Returns availability, price in XRP and RLUSD, owner address, profile metadata if registered, and a web URL for the user to register if available. Also returns invalid_domains for inputs that fail validation.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domains'], 'properties': {'domains': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 25, 'minItems': 1, 'description': 'List of domains to check. Each may include or omit the TLD; defaults to .xrp.'}}, 'additionalProperties': False}
check_order_status
Check the backend order status for a domain you tried to register on xrpdomains.xyz. Returns whether payment landed, the offer was created, the mint completed, or it failed at a step. Use when a user asks "did my X.xrp registration go through?" or "what's the status of my order?". This is deeper than check_domains (which only shows availability).
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'The domain whose order to check, e.g. "alice.xrp".'}}, 'additionalProperties': False}
check_tx_status
Check the validation status of an XRPL transaction by hash. Use after send_signed_tx to confirm whether the transaction was validated on-ledger. Returns status (pending, validated, failed, not_found) and engine result code.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tx_hash'], 'properties': {'tx_hash': {'type': 'string', 'pattern': '^[A-Fa-f0-9]{64}$', 'description': '64-character hex XRPL transaction hash'}}, 'additionalProperties': False}
get_domain_profile
Get the full public profile of a single XRPL domain — owner, NFT token ID, metadata, avatar, fullname, description, social handles, linked chain addresses, and optionally the on-chain ownership history (pass include_history=true). Use when the user asks "show me X.xrp", "what does X.xrp link to?", "who owns X.xrp?", or "show me the history of X.xrp". Returns null fields gracefully if no profile is set.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'Domain to look up, e.g. "alice.xrp"'}, 'include_history': {'type': 'boolean', 'default': False, 'description': 'Include the on-chain ownership timeline (transfers, marketplace sales).'}}, 'additionalProperties': False}
get_pending_offers
Get all pending XRPL domain operations for a wallet — incoming offers (someone offered the wallet a domain), outgoing offers (the wallet listed a domain), and paid-but-not-yet-minted orders the user can still complete. Use when the user asks "do I have any pending transfers?", "what offers are waiting on me?", or before suggesting an accept/cancel/continue-mint action. Requires an XRPL r... address.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'XRPL r... address of the wallet to query (e.g. "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe").'}}, 'additionalProperties': False}
get_portfolio
List all XRPL domains owned by a wallet address. Use when the user asks "what domains do I own?", "show me my domains", or wants to see another wallet's holdings. Returns each domain with its TLD, length, primary flag, subname flag, and quick-action URLs. (nftoken_id, image, and mint time are not included here — use get_domain_profile for one domain.) Requires an XRPL r... address.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['address'], 'properties': {'sort': {'enum': ['recent', 'length-asc', 'length-desc', 'name-asc'], 'type': 'string', 'default': 'recent', 'description': 'Sort order. "recent" keeps the backend order.'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max domains to return.'}, 'address': {'type': 'string', 'description': 'XRPL r... address whose domains to list.'}, 'filter_tld': {'type': 'string', 'default': 'all', 'description': 'Filter by TLD, e.g. ".xrp", ".xrpfi", ".rlusd", or "all".'}}, 'additionalProperties': False}
recommend_domain
Get AI-recommended domain suggestions for a keyword or theme (e.g. "tom", "crypto", "defi"). Returns creative name + TLD combos with a category, each cross-checked for availability, priced, and given a register link. Use when a user asks "suggest names", "find me a domain about X", or "give me some .xrp ideas".
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'tlds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'TLDs to include (without dots), e.g. ["xrp","xrpfi"]. Omit for all.'}, 'limit': {'type': 'integer', 'default': 8, 'maximum': 25, 'minimum': 1, 'description': 'How many suggestions to return.'}, 'query': {'type': 'string', 'description': 'Keyword or theme to base suggestions on, e.g. "tom" or "crypto".'}}, 'additionalProperties': False}
register_domain
Get the link to register a .xrp / .xrpl / .xrpfi / .rlusd domain on xrpdomains.xyz. Registration is completed in the browser — the website handles the order and the user signs in their wallet there (the MCP does NOT build or broadcast the payment). Use when the user says "register X.xrpfi" or "buy X.xrp". Pass refcode if a referral applies.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'The domain to register, e.g. "coolname.xrpfi".'}, 'refcode': {'type': 'string', 'description': 'Optional referral code to embed in the registration link.'}}, 'additionalProperties': False}
resolve_address
Reverse resolution: given an XRPL address, return its primary XRPName (if set) and the full list of names owned by the wallet. Use when the user says "who owns [address]?", "look up this wallet", or "what names does [address] have?", or when chained with get_domain_profile to explore a wallet. Returns found:false if the address owns no XRPName.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['address'], 'properties': {'limit': {'type': 'integer', 'default': 100, 'maximum': 200, 'minimum': 1, 'description': 'Maximum number of domains to return (cap 200).'}, 'address': {'type': 'string', 'description': 'XRPL classic address, e.g. "rLhi87eXFZNueP4Kg1jUuHmm7pWZBoT3Yn".'}, 'include_history': {'type': 'boolean', 'default': False, 'description': 'If true, include per-domain nftoken_id and mint date.'}}, 'additionalProperties': False}
set_primary_domain
Get the link to set a domain as your wallet's primary (the name shown by default for your address). Setting primary is completed in the browser — the website handles it and your wallet signs there (the MCP does NOT build or broadcast the transaction). Use when the user says "make X.xrp my primary" or "set X.xrpfi as my main domain". The wallet must already own the domain.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'The domain to set as primary, e.g. "alice.xrp".'}}, 'additionalProperties': False}
Added
set_primary_domain
Sept. 17, 2026, 12:53 p.m.
Added
register_domain
Sept. 17, 2026, 12:53 p.m.
Added
resolve_address
Sept. 17, 2026, 12:53 p.m.
Added
get_portfolio
Sept. 17, 2026, 12:53 p.m.
Added
get_pending_offers
Sept. 17, 2026, 12:53 p.m.
Added
check_order_status
Sept. 17, 2026, 12:53 p.m.
Added
check_tx_status
Sept. 17, 2026, 12:53 p.m.
Added
get_domain_profile
Sept. 17, 2026, 12:53 p.m.
Added
recommend_domain
Sept. 17, 2026, 12:53 p.m.
Added
check_domains
Sept. 17, 2026, 12:53 p.m.