xrpl-identity-mcp
Provides tools for managing identity on the XRP Ledger, including DID resolution and management, credential creation and verification, multisig signer lists, and safe transaction prepare/verify/submit workflows.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@xrpl-identity-mcpresolve DID for rN7n7ot6dSgW6sZJ9hVqJ7g5YbJ6cX8kL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
xrpl-identity-mcp
xrpl-identity-mcp is the first identity-focused MCP server for the XRP Ledger: DIDs (XLS-40), credentials (XLS-70), multisig signer lists, and safe transaction prepare/verify/submit workflows. It prepares unsigned transactions, reads ledger state, verifies signed blobs against intent, and can submit pre-signed blobs without ever taking custody of keys.
Built by Jarod Vyent, from the team behind SciPHR.
Security Model
These invariants are core behavior:
No key custody. The server has no seed, private key, mnemonic, wallet import, or signing path. Signing happens in the user's wallet or agent.
Network is explicit.
XRPL_NETWORKismainnet,testnet, ordevnet. The default istestnet. Every tool result includesnetwork.Mainnet submit is opt-in.
tx_submit_signedon mainnet is blocked unlessALLOW_MAINNET_SUBMIT=trueis set.Prepare, verify, then submit. Write workflows return unsigned JSON with instructions to sign externally, call
tx_decode_verify, and only then calltx_submit_signed.
Related MCP server: attest-mcp-server
Quickstart
Claude MCP:
claude mcp add xrpl-identity -- npx -y xrpl-identity-mcpGeneric MCP client config:
{
"mcpServers": {
"xrpl-identity": {
"command": "npx",
"args": ["-y", "xrpl-identity-mcp"],
"env": {
"XRPL_NETWORK": "testnet"
}
}
}
}Environment variables:
Variable | Values | Default | Purpose |
|
|
| Selects the XRPL network. |
| WebSocket URL | Network default | Overrides the rippled WebSocket endpoint. |
|
| unset | Required for |
Default endpoints:
Network | Endpoint |
|
|
|
|
|
|
Tools
Tool | What it does | Network writes? |
| Resolve an XLS-40 DID object and fetch an | No |
| Prepare an unsigned | No |
| Prepare an unsigned | No |
| Prepare an unsigned | No |
| Prepare an unsigned | No |
| Prepare an unsigned | No |
| Read a credential object and report existence, acceptance, and expiration. | No |
| List up to 400 credential objects visible to an account, with issuer/subject filtering. | No |
| Summarize auth posture, signer list, DID presence, and credential counts for an account. | No |
| Prepare an unsigned | No |
| Decode a signed blob, compute hash, and compare against expected intent. | No |
| Submit a pre-signed blob and poll for validation. Mainnet requires | Yes |
Example Agent Flows
Resolve a DID and read its document:
Call
did_resolvewithaddressset to a classic XRPL address ordid:xrpl:<address>.Inspect
decoded.URI,decoded.Data, anddecoded.DIDDocument.If the URI is
ipfs://orhttps://, inspectdocumentanddocumentSource. Only text and JSON documents are inlined; binary content (for example an image) is reported asdocumentSource,documentContentType, anddocumentByteLengthwithdocumentSkippedexplaining why the body was omitted.
Issue and accept a credential on testnet:
Set
XRPL_NETWORK=testnet.Call
credential_prepare_createwith issuer, subject, credential type, optional expiration, and optional URI.Sign the returned
unsignedTxexternally with the issuer account.Call
tx_decode_verifywith the signed blob and the expected intent.Call
tx_submit_signed.Call
credential_prepare_acceptfor the subject, sign externally, verify withtx_decode_verify, then submit.Call
credential_verifyto confirmaccepted: trueandexpired: false.
Verify a signed blob before submitting:
Call
tx_decode_verifywithsignedBloband anexpectedIntentpartial transaction JSON.Check
matchesand anymismatches.Submit only when the decoded transaction matches the user's intent.
Development
npm install
npm run typecheck
npm run build
SKIP_INTEGRATION=1 npm testIntegration tests target testnet and are skipped when SKIP_INTEGRATION=1. To run the account summary integration test, set XRPL_INTEGRATION_ACCOUNT to a funded testnet account address.
License
MIT
Available Tools
12 toolsaccount_identity_summaryAccount Identity SummaryA
Summarize an XRPL account identity posture: AccountRoot auth flags, RegularKey and Domain state, signer list, DID presence, and visible credential counts as issuer and subject (each with a *Truncated boolean flagging when the count hit the 400-object scan cap).
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Classic XRPL account address to summarize. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It proactively discloses the 400-object scan cap and the *Truncated flag, which is critical behavioral information about result limits. No contradictions with annotations.
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?
The description is a single sentence that efficiently lists all relevant components, though it is somewhat dense. It is front-loaded with the main purpose and includes necessary detail without excess.
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 no output schema, the description adequately explains the components of the summary (flags, keys, signer list, DID, credential counts with truncation). It does not detail the return format, but the listed components provide sufficient context for an agent to understand what the tool returns.
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?
There is only one parameter (address) with 100% schema description coverage. The tool description does not add additional parameter details beyond the schema, but this is acceptable given the high schema coverage.
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 description uses a specific verb ('Summarize') and clearly identifies the resource ('XRPL account identity posture') and the specific components included. It distinguishes from siblings like credential_list or did_resolve by covering multiple identity aspects.
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?
The description implies the tool is for getting an overview of account identity, but it does not explicitly state when to use it versus alternatives like credential_list or did_resolve, nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credential_listList Account CredentialsA
List up to 400 XLS-70 Credential objects visible in an account owner directory, optionally filtered by whether the account is issuer or subject.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Optional role filter comparing the account to Issuer or Subject fields. | |
| address | Yes | Classic XRPL account address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions the hard limit of 400 credentials, which is an important behavioral trait. However, it does not disclose pagination behavior, authorization requirements, or potential rate limits. Since there are no annotations, the description carries the full burden, and while the cap is useful, more behavioral details would be beneficial.
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?
The description is a single sentence that concisely covers all key aspects: what the tool does, the maximum results, the source, and the optional filter. No unnecessary words or redundant 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?
The description lacks an explanation of the output format or fields, and there is no output schema to compensate. It also omits error conditions or limits beyond the 400 cap. For a listing tool, hints about the returned structure would improve completeness, but the description is adequate for basic understanding.
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?
With 100% schema description coverage, the baseline is 3. The description adds the context of 'account owner directory' but otherwise repeats the schema's optional role filter information. It does not provide additional details like the format of the address or the effect of not providing the role, so it adds marginal value beyond the 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?
The description clearly states the tool lists up to 400 XLS-70 Credential objects from an account owner directory with an optional role filter. It uses specific verb and resource, and the sibling tool names (e.g., credential_prepare_create, credential_verify) indicate distinct actions, making this tool's purpose unambiguous.
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 explicitly states when to use the tool (to list credentials visible in an account directory with optional filtering). It does not explicitly state when not to use or alternatives, but the context from sibling tools implies that for creating, verifying, or deleting credentials, other tools should be used. This provides sufficient guidance for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credential_prepare_acceptPrepare CredentialAcceptA
Prepare an unsigned XLS-70 CredentialAccept transaction for a subject to accept an issued credential. Signing happens outside this server.
| Name | Required | Description | Default |
|---|---|---|---|
| issuer | Yes | Classic XRPL issuer account address. | |
| account | Yes | Classic XRPL subject account accepting the credential. | |
| credentialType | Yes | Credential type as UTF-8 text. Encoded to XRPL hex and capped at 64 bytes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that signing happens outside the server, which is good. However, it does not discuss permissions, reversibility, or effects on credential state, leaving some behavioral gaps.
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?
Two sentences, front-loaded with key information. No superfluous words; every sentence adds value.
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 simple 3-parameter tool with no output schema, the description covers the main purpose and external signing. Could mention that the prepared transaction is returned as a blob, but this is a minor omission.
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 baseline is 3. The description does not add extra meaning beyond the schema; it merely restates the purpose without explaining parameter details or constraints.
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?
Description clearly states the verb 'prepare', the resource 'CredentialAccept transaction', and the context 'for a subject to accept an issued credential'. It effectively distinguishes from sibling tools like credential_prepare_create and credential_prepare_delete.
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?
The description implies when to use (accepting a credential) and notes that signing is done externally, but it does not explicitly contrast with sibling tools or provide 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credential_prepare_createPrepare CredentialCreateA
Prepare an unsigned XLS-70 CredentialCreate transaction. The issuer signs externally; this server only prepares JSON and never custodies keys.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | Optional credential URI encoded as XRPL hex URI. | |
| subject | Yes | Classic XRPL subject account address. | |
| expiration | No | Optional ISO-8601 expiration time converted to Ripple epoch seconds. | |
| issuerAccount | Yes | Classic XRPL issuer account address. | |
| credentialType | Yes | Credential type as UTF-8 text. Encoded to XRPL hex and capped at 64 bytes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the transaction is unsigned, the issuer signs externally, and the server never custodies keys, providing critical behavioral traits for a tool dealing with credentials.
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?
The description is two sentences, front-loaded with the purpose, and every sentence adds value. There is no wasted text.
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?
The tool lacks an output schema, but the description mentions it prepares JSON. For a transaction preparation tool, this is adequate. It covers the signing process but could mention return format more explicitly.
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 the baseline is 3. The description does not add additional parameter semantics beyond what the schema already provides, so no extra value is given.
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 description clearly states 'Prepare an unsigned XLS-70 CredentialCreate transaction', specifying the exact verb and resource. It distinguishes from sibling tools like credential_prepare_accept and credential_prepare_delete by focusing on creation.
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?
The description explains that the issuer signs externally and the server only prepares JSON, making the usage context clear. It does not explicitly state when not to use this tool versus alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credential_prepare_deletePrepare CredentialDeleteA
Prepare an unsigned XLS-70 CredentialDelete transaction. The submitter signs externally; this server never signs or stores keys.
| Name | Required | Description | Default |
|---|---|---|---|
| issuer | No | Optional issuer account; if omitted, Account may be treated as issuer by XRPL. | |
| account | Yes | Classic XRPL account submitting the delete transaction. | |
| subject | No | Optional subject account; if omitted, Account may be treated as subject by XRPL. | |
| credentialType | Yes | Credential type as UTF-8 text. Encoded to XRPL hex and capped at 64 bytes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the server never signs or stores keys, but does not explain other behavioral traits such as side effects, latency, or error conditions. This is adequate but not rich.
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?
The description is two sentences with zero waste. It is front-loaded with the purpose and efficiently conveys the key behavioral trait.
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 the tool has 4 parameters, no output schema, and no annotations, the description is minimal. It conveys the essential purpose and signing model but lacks details on transaction behavior, prerequisites, or return values.
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 the baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides.
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 description clearly states the tool prepares an unsigned XLS-70 CredentialDelete transaction, using a specific verb (Prepare) and resource (CredentialDelete transaction). The name and description distinguish it from sibling credential tools like credential_prepare_accept or credential_prepare_create.
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?
The description indicates that the submitter signs externally and the server never signs or stores keys, providing clear usage context. However, it does not explicitly state when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credential_verifyVerify CredentialA
Read an XLS-70 Credential ledger object and report whether it exists, has been accepted, and is expired relative to the validated ledger close time.
| Name | Required | Description | Default |
|---|---|---|---|
| issuer | Yes | Classic XRPL issuer account address. | |
| subject | Yes | Classic XRPL subject account address. | |
| credentialType | Yes | Credential type as UTF-8 text. Encoded to XRPL hex and capped at 64 bytes. |
TDQS
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 states the tool reads a ledger object (read-only) and checks existence, acceptance, and expiry relative to validated ledger close time. This discloses key behaviors and side-effect-free nature. However, it does not mention any network requirements or potential performance implications.
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?
Single sentence that is clear and front-loaded with the main action. It could be slightly more concise by splitting into two sentences, but it is efficient and contains no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description partially covers returns (existence, acceptance, expiry). It mentions relative to validated ledger close time, which adds context. Could be more complete by explicitly stating the return format. Given three parameters and a read operation, it is fairly complete.
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% with descriptions for all three parameters. The description adds context about what it does with the parameters (reads the credential object), but does not add new constraints or format 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?
Description clearly states 'Read an XLS-70 Credential ledger object and report whether it exists, has been accepted, and is expired'. It uses a specific verb and resource, and the result is well-defined. It distinguishes from siblings like credential_list (which lists credentials) and credential_prepare_accept (which prepares acceptance).
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?
No explicit when-to-use or when-not-to-use guidance. The description implies this tool is for checking the status of a specific credential, but does not compare to sibling tools like credential_list or account_identity_summary. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
did_prepare_deletePrepare DIDDeleteA
Prepare an unsigned XLS-40 DIDDelete transaction for an account DID. This server never signs; sign externally and verify the blob before submitting.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Classic XRPL account address deleting its DID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully discloses that the server never signs and that the output requires external signing and verification, which is crucial behavioral information beyond the input schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, both essential: the first defines purpose, the second provides critical usage guidance. No redundant or irrelevant 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?
Given the single parameter and no output schema, the description covers purpose and a key behavioral note. It could briefly mention the output format (e.g., a blob), but overall it is sufficiently complete for an agent to understand the tool's use.
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 sole parameter 'account' is fully described in the input schema (100% coverage), and the description merely restates it as 'for an account DID' without adding meaningful new semantics beyond what the schema provides.
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 description clearly states the tool prepares an unsigned XLS-40 DIDDelete transaction, specifying both the verb ('Prepare') and the resource ('unsigned DIDDelete transaction'). It distinguishes itself from sibling tools like 'did_prepare_set' by indicating deletion.
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?
The description explicitly notes that the server never signs and instructs the user to sign externally and verify the blob before submitting, providing clear guidance on post-processing steps. However, it does not explicitly state when not to use this tool or compare it to direct alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
did_prepare_setPrepare DIDSetA
Prepare an unsigned XLS-40 DIDSet transaction. This server does not sign or custody keys; sign externally and verify the signed blob before submission.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | Optional DID document URI. UTF-8 encoded to XRPL hex URI. | |
| data | No | Optional DID data. UTF-8 encoded to XRPL hex Data. | |
| account | Yes | Classic XRPL account address setting the DID. | |
| didDocument | No | Optional DID document JSON/string payload. UTF-8 encoded to XRPL hex DIDDocument. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden. It discloses that the server does not sign or custody keys and that the output is unsigned, informing the agent of important behavioral traits without contradicting annotations.
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?
Two sentences with zero wasted words; the critical behavioral warning is front-loaded. Every sentence provides essential 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?
The description explains the tool's role as a preparation step and warns about key custody, which is sufficient given the lack of output schema. It could be slightly more complete by hinting at the return format, but overall adequate.
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% and each parameter has a description in the schema. The tool description adds no additional semantic value beyond what the schema already provides, so baseline of 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?
The description uses a specific verb ('Prepare') and resource ('unsigned XLS-40 DIDSet transaction'), clearly distinguishing it from sibling tools like did_prepare_delete or credential_prepare_create.
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 explicitly advises external signing and verification before submission, providing clear context. However, it does not explicitly state when to use this tool over alternatives, though sibling names imply distinct purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
did_resolveResolve XRPL DIDA
Resolve an XLS-40 DID object for an XRPL account or did:xrpl identifier. Returns raw ledger data, UTF-8 decoded DID fields where valid, and fetched DID document content for ipfs:// or https:// URIs. Only text/JSON documents are inlined; binary content is reported as metadata (source, content type, byte length) with the body omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Classic XRPL address, did:xrpl:<address>, or did:xrpl:1:<address>. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so description carries full burden. It thoroughly discloses behaviors: returns raw ledger data, decoded DID fields, fetched documents for URIs, inline vs binary handling.
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?
Two sentences, front-loaded with purpose, efficient. Could be slightly more structured (e.g., bullet points) but still concise.
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?
Complex tool with no output schema; description fully explains input, output types (raw data, decoded fields, document content), and edge cases (binary content handling).
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?
Single parameter 'address' well-documented in schema (coverage 100%). Description adds no extra semantics beyond schema; 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?
Excellent clarity: Description specifies verb 'resolve' and resource 'XLS-40 DID object', clearly distinguishing from sibling tools like did_prepare_set (creation) or credential_verify.
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?
Implied usage for resolving DIDs, but no explicit guidance on when to use this vs alternatives (e.g., account_identity_summary). Does not state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signer_list_prepare_setPrepare SignerListSetA
Prepare an unsigned SignerListSet transaction to create, replace, or delete an XRPL multisign signer list. This server never signs or stores keys.
| Name | Required | Description | Default |
|---|---|---|---|
| quorum | Yes | Required signer weight sum. Use 0 with no signers to delete the list. | |
| account | Yes | Classic XRPL account whose signer list is being changed. | |
| signers | Yes | Signer entries. Use an empty array only when quorum is 0 to delete the list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explicitly states the tool does not sign or store keys, which is important for security transparency. It mentions deletion capability but does not fully disclose whether the preparation has any side effects (likely none). Overall, it provides useful behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the purpose clearly, and the second adds a crucial behavioral note. No superfluous words or structure issues.
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?
The description covers the main purpose and operation but does not explain the output format (expected return value). Since there is no output schema, the description could have been more complete by stating what the tool returns (e.g., an unsigned transaction blob). Also, prerequisites or side effects are not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add meaning beyond what the schema already provides for each parameter (quorum, account, signers). The schema itself has clear descriptions, so no additional value from the tool description.
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 description clearly states it prepares an unsigned SignerListSet transaction for creating, replacing, or deleting an XRPL multisign signer list. It uses a specific verb (prepare) and resource (SignerListSet transaction), distinguishing it from sibling tools like credential_prepare_* and did_prepare_*.
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?
The description implies usage for multisign setup but provides no explicit guidance on when to use this tool versus alternative prepare tools (e.g., credential_prepare_*). It does not state when to use or when not to use, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_decode_verifyDecode and Verify Signed TransactionA
Decode a signed XRPL transaction blob, compute its hash, and optionally compare it against an expected partial intent before submission. This is the WYSIWYS safety gate.
| Name | Required | Description | Default |
|---|---|---|---|
| signedBlob | Yes | Signed XRPL transaction blob as a hexadecimal string. | |
| expectedIntent | No | Optional partial transaction JSON. Every provided field is compared against the decoded transaction. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states decoding, hashing, and optional comparison but does not discuss side effects, authentication needs, rate limits, or error conditions.
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?
Two concise sentences with front-loaded key information. The 'WYSIWYS safety gate' phrase is memorable and efficient.
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 2 parameters (one nested) and no output schema, the description does not mention return values (e.g., hash, comparison result) which would help the agent understand the tool's output.
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% and the description adds value by clarifying signedBlob is a hexadecimal string and expectedIntent is a partial JSON for field comparison, enhancing schema meaning.
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 title and description clearly state the tool decodes and verifies a signed XRPL transaction, computes hash, and optionally compares to expected intent. The phrase 'WYSIWYS safety gate' adds context, and it is distinguishable from siblings like tx_submit_signed.
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?
The description implies usage as a pre-submission safety gate but does not explicitly state when to use or not use, nor does it mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_submit_signedSubmit Signed TransactionA
Submit a pre-signed XRPL transaction blob and poll for validation. On mainnet this is blocked unless ALLOW_MAINNET_SUBMIT=true is set.
| Name | Required | Description | Default |
|---|---|---|---|
| failHard | No | Forward fail_hard behavior to rippled submit; defaults to false. | |
| signedBlob | Yes | Signed XRPL transaction blob as a hexadecimal string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It mentions polling for validation and mainnet blocking, but does not elaborate on what 'poll for validation' entails (e.g., timeout, success criteria), or whether the operation is idempotent or irreversible. More detail would improve transparency.
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?
The description consists of two concise sentences that front-load the purpose. Every sentence adds value: the first states the action, the second adds an important usage caveat. No wasted words.
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 no output schema and moderate complexity (2 params, no nested objects), the description covers the core action and a mainnet restriction. However, it omits details about polling behavior, error handling, and what happens on non-mainnet networks, leaving some gaps for an AI agent to infer.
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 the input schema already documents both parameters (signedBlob and failHard) adequately. The description does not add semantics beyond what the schema provides, so baseline score of 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?
The description clearly states 'Submit a pre-signed XRPL transaction blob and poll for validation,' which is a specific verb and resource. It distinguishes from sibling tools like tx_decode_verify (decode only) and credential_prepare_* (prepare actions).
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?
The description provides a key usage context: 'On mainnet this is blocked unless ALLOW_MAINNET_SUBMIT=true is set.' However, it does not explicitly state when to use this tool versus alternatives, such as tx_decode_verify for verification before submission.
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.
12 tool updates
v0.1.2- First observed
account_identity_summary - First observed
credential_list - First observed
credential_prepare_accept - First observed
credential_prepare_create - First observed
credential_prepare_delete - First observed
credential_verify - First observed
did_prepare_delete - First observed
did_prepare_set - First observed
did_resolve - First observed
signer_list_prepare_set - First observed
tx_decode_verify - First observed
tx_submit_signed
TDQS
Scored across 12 tools
Each tool targets a distinct operation: account summary, credential CRUD, DID management, signer list preparation, and transaction verification/submission. No two tools have overlapping purposes.
All tools use snake_case with a consistent verb_noun pattern (e.g., credential_prepare_create, did_resolve). The naming is uniform and predictable.
12 tools are well-scoped for the XRPL identity domain, covering credentials, DIDs, signer lists, and transaction safety without being excessive.
The tool set covers the main identity operations (credential lifecycle, DID, signer list) and includes transaction safety tools. Missing are account root flag modification and regular key management, but these are minor gaps for the focused purpose.
Maintenance
Related MCP Connectors
Hosted MCP server for AI agent identity, permissions, verification, and reusable proof.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
A paid remote MCP for ZeroID, built to return verdicts, receipts, usage logs, and audit-ready JSON.
Tenzro Network MCP server: wallet, identity, payments, inference, staking, bridges, verification.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for AI agent identity — verify agents with Ed25519 signatures, check trust scores, sign and verify content, exchange encrypted messages. Built on the Agent Identity Protocol (AIP).8MIT
- AlicenseAqualityDmaintenanceAn MCP server that exposes tools for issuing scoped agent credentials, delegating narrower child credentials, handling approvals, revoking task trees, and retrieving audit trails and evidence packets.141Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP Server for AI agent identity and authorization. Create, verify, and manage agent identities with trust scores and scoped authorization tokens.MIT
- FlicenseAqualityBmaintenanceAn MCP server for interacting with the AT Protocol (ATProto) ecosystem, including Bluesky, providing tools for identity, profiles, and social discovery.61-