Skip to main content
Glama

Issue a credential to a subject (writes to the ledger)

issue_credential

Creates a credential on the XRP Ledger to authorize a subject to act; the subject must accept it before it becomes valid.

Instructions

Create a credential on the XRP Ledger, so a subject can be authorised to act. THIS WRITES TO THE LEDGER and spends XRP.

The signing seed comes from the OS keychain, which the server reads itself, so the agent never sees the seed. This tool is only available if the server was started with --allow-writes.

An optional seed argument exists for throwaway testnet use. It is refused unless the server was started with --allow-inline-seed, because a seed in the agent's context is a seed the agent can read.

The credential is created but not yet valid for the subject until the subject accepts it with accept_credential. To withdraw a credential, use revoke_credential instead. To read a credential's state without changing anything, use get_credential.

Input Schema

NameRequiredDescriptionDefault
uriNo
seedNo
networkNo
subjectYes
expirationNo
credential_typeYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full load and does most of it well: it declares the write, the XRP cost, the OS-keychain seed handling, the --allow-writes and --allow-inline-seed feature gates, and the two-phase pending/accept state transition. What is missing is failure behavior — duplicate/already-issued credentials, idempotency, and error conditions — so the agent cannot predict how the call fails.

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?

Front-loads the verb, target, and cost in the first sentence, then layers secrets handling, gating, and sibling routing in short paragraphs. Every sentence carries distinct information — no restatement of the title or name.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and the mutation/safety context is unusually complete. However, for a 6-parameter, 0%-coverage mutation tool, the description leaves too many inputs undefined; it is adequate for deciding whether to call, less so for calling correctly.

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

Parameters2/5

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

Schema description coverage is 0% across 6 parameters, yet the description only explains `seed` and the gating around it. `subject`, `credential_type`, `uri`, `network`, and `expiration` receive no meaning, format, or default guidance anywhere, leaving the agent to guess at critical inputs like credential type and expiration units.

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

Purpose5/5

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

States a specific verb and resource ('Create a credential on the XRP Ledger') plus the goal ('so a subject can be authorised to act'). It explicitly distinguishes itself from the three credential siblings (accept_credential, revoke_credential, get_credential) at the end, so an agent can route correctly without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use and when-to-use-something-else guidance: creates a pending credential, requires accept_credential to become valid, revoke_credential to withdraw, get_credential to read without mutating. It also names the precondition (server started with --allow-writes), which is exactly the eligibility gate an agent must know before attempting the call.

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