Skip to main content
Glama

xRoot token operations

Server Details

Solana token operations for self-funded agents: quote the exact fee, get an unsigned transaction for a token deploy, authority revoke, airdrop or metadata update, sign it with your own wallet, and submit it back. Non-custodial: the platform never holds keys or funds.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.3/5.0

Scored across 3 tools

Disambiguation5/5

Each tool occupies a distinct stage of the same workflow: estimating cost, building an unsigned transaction, and submitting the signed transaction. No two tools could be confused.

Naming Consistency5/5

All tool names use a consistent snake_case verb_noun pattern: build_request, get_fee_estimate, submit_transaction. The verbs clearly indicate the action taken.

Tool Count5/5

Three tools form a minimal but complete pipeline; every tool is necessary and none is redundant. The count is well-scoped for the stated purpose.

Completeness4/5

The estimate-build-submit lifecycle covers the core path end-to-end. However, there is no explicit status query or cancellation tool, and 'token operations' could imply more operation types, so a small gap remains.

Available Tools

3 tools
build_requestAInspect

Build the unsigned Solana transaction for an operation. Returns a base64-encoded transaction whose fee payer is the given wallet address, plus the requestId to pass to submit_transaction after signing locally. The prepared transaction expires with its blockhash.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe agent's own Solana wallet address (base58) — becomes the fee payer and token owner. Must sign the returned transaction.
requestYesThe operation intent — same shape the browser flow sends (chain, then service, then the service's fields).
requestIdNoOptional idempotency key (req_…). Generated when omitted; reuse it to re-prepare without creating duplicates.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full behavioral burden. It discloses that the transaction is unsigned, who the fee payer is, the output format, and the expiry consequence of blockhash reuse. It does not explicitly say 'this tool does not submit the transaction', but 'unsigned' and 'after signing locally' make that clear. It also omits server-side persistence/idempotency details, which are only in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each purposeful and front-loaded: first states the action, second states the outputs and workflow, third states expiry. No filler, no duplication of schema content. It is optimally sized for an agent to absorb quickly.

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 request object is complex with multiple services and options, but the schema thoroughly documents every field. The description supplies the missing workflow glue: output shape, local signing requirement, requestId handoff, and time sensitivity. Minor gap: it doesn't note that this tool itself has no on-chain side effects, but 'unsigned' and 'build' imply that. Overall adequate for a tool of this complexity.

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%, so the baseline is 3. The tool description adds little beyond the schema: it merely reinforces that the address becomes fee payer and requestId feeds into submit_transaction. All required field meanings are already in the schema; description doesn't need to compensate.

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 ('build'), a clear resource ('unsigned Solana transaction'), and the primary output (base64-encoded transaction). It explicitly names submit_transaction as the next step, distinguishing this preparation tool from its sibling without ambiguity. No tautology and no confusion about what the tool does.

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 description explains the intended workflow: call this tool to prepare, sign locally, then pass requestId to submit_transaction. It also warns the transaction expires with its blockhash, implying it should be used promptly. It does not explicitly contrast against get_fee_estimate or list when not to use, but the flow is clear enough.

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

get_fee_estimateAInspect

Estimate the exact cost of a token operation before anything is built. Returns the platform fee (quoted per service-chain pair) plus the estimated network fee (rent + base + priority), as decimal strings in the chain's currency.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesThe operation intent — same shape the browser flow sends (chain, then service, then the service's fields).

TDQS

A4/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 full burden. It discloses the output (platform and network fees as decimal strings) and implies a non-mutating operation via 'before anything is built', but it does not explicitly state read-only semantics, authentication requirements, or other side effects. This is a moderate gap given the lack of annotation support.

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?

Two sentences with no redundant wording. The output format and timing are stated upfront, making it easy to parse quickly.

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?

Given the complex nested request schema, the description is minimal but the schema covers all parameter details. The description does explain the return format, which is necessary since there is no output schema. It is adequate for an agent to understand the tool's purpose and output, though it could offer a brief hint about the request structure.

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 description adds no parameter-specific guidance; it relies entirely on the input schema, which has 100% coverage. Since the schema fully documents the request structure, the baseline of 3 applies. The description's mention of 'per service-chain pair' refers to output, not input parameters.

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 'estimate' and identifies the resource as 'cost of a token operation'. It clearly distinguishes itself from siblings (build_request, submit_transaction) by focusing on cost estimation before any building occurs.

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 phrase 'before anything is built' clearly indicates when to use this tool, implying it should precede build_request and submit_transaction. However, it does not explicitly name alternatives or exclusion conditions, so it falls short of the highest bar.

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

submit_transactionAInspect

Submit a locally-signed transaction for execution. The transaction must be the exact bytes returned by build_request, signed by the payer address, and submitted with the same requestId. Idempotent: resubmitting returns the current deployment state.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestIdYesThe requestId returned by build_request — binds this submit to its prepared transaction.
transactionYesBase64-encoded fully-signed Solana transaction (the build_request output signed locally).

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses idempotency ('resubmitting returns the current deployment state') and enforces exact-byte/payer-signature constraints. It does not describe failure modes or the initial success response, but the core execution behavior is transparent.

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?

Three sentences, each earning its place: the action, the mandatory constraints, and the idempotency behavior. No redundancy or filler, and the most important operational details are front-loaded.

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 two-parameter tool with no output schema, the description covers the essential prerequisites, binding to build_request, and repeated-submission behavior. It is slightly incomplete in not stating what the initial successful submission returns or how errors are surfaced, but it is sufficient for correct invocation in most cases.

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

Parameters4/5

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 adds meaningful constraint detail beyond the schema: the transaction must be 'the exact bytes returned by build_request' and 'signed by the payer address,' which clarifies what counts as a valid transaction 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 starts with a specific verb and resource: 'Submit a locally-signed transaction for execution.' It clearly differentiates this from sibling tools by requiring 'the exact bytes returned by build_request' and 'the same requestId,' so an agent can tell it apart from build_request and get_fee_estimate.

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 description gives clear context on how to use the tool: it must be called after build_request, with the exact returned bytes, signed by the payer, and keyed to the same requestId. It does not explicitly state when not to use it or name alternatives, but the prerequisites effectively convey the intended usage sequence.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedbuild_request2 fields changed
      • changedInput schema / properties / request / properties / options / description
        Previous value: -"Service options, keyed by service. spl-token and token-2022 (optional, may be omitted): transferTaxBps, transferTaxMaxFee, permanentDelegate, freezeAuthority. authority-tools (REQUIRED): revokeMint, revokeFreeze, revokeUpdate as booleans — all three must be present, at least one true; optional revokePermanentDelegate, revokeTransferFee, revokeWithheldWithdraw, revokeTransferHook, revokePause. airdrop (REQUIRED): recipients, a list of {address, amount} with amount as a decimal string in whole tokens, the same unit as supply — the mint's decimals are applied at prepare time. update-metadata (REQUIRED, at least one): name, symbol, metadataUri."New value: +"Service options, keyed by service. spl-token and token-2022 (optional, may be omitted): transferTaxBps, transferTaxMaxFee, permanentDelegate, freezeAuthority. authority-tools (REQUIRED): revokeMint, revokeFreeze, revokeUpdate as booleans — all three must be present, at least one true; optional revokePermanentDelegate, revokeTransferFee, revokeWithheldWithdraw, revokeTransferHook, revokePause. airdrop (REQUIRED): recipients, a list of {address, amount} — at most 20 recipients per transaction — with amount as a decimal string in whole tokens, the same unit as supply; the mint's decimals are applied at prepare time. update-metadata (REQUIRED, at least one): name, symbol, metadataUri."
      • changedInput schema / properties / request / properties / token / properties / supply / description
        Previous value: -"Total supply as a decimal string in base units, e.g. \"1000000000\" for 1B tokens."New value: +"Total supply in whole tokens as a decimal string, e.g. \"1000000000\" for 1B tokens — the mint's decimals are applied at prepare time."
    • Changedget_fee_estimate2 fields changed
      • changedInput schema / properties / request / properties / options / description
        Previous value: -"Service options, keyed by service. spl-token and token-2022 (optional, may be omitted): transferTaxBps, transferTaxMaxFee, permanentDelegate, freezeAuthority. authority-tools (REQUIRED): revokeMint, revokeFreeze, revokeUpdate as booleans — all three must be present, at least one true; optional revokePermanentDelegate, revokeTransferFee, revokeWithheldWithdraw, revokeTransferHook, revokePause. airdrop (REQUIRED): recipients, a list of {address, amount} with amount as a decimal string in whole tokens, the same unit as supply — the mint's decimals are applied at prepare time. update-metadata (REQUIRED, at least one): name, symbol, metadataUri."New value: +"Service options, keyed by service. spl-token and token-2022 (optional, may be omitted): transferTaxBps, transferTaxMaxFee, permanentDelegate, freezeAuthority. authority-tools (REQUIRED): revokeMint, revokeFreeze, revokeUpdate as booleans — all three must be present, at least one true; optional revokePermanentDelegate, revokeTransferFee, revokeWithheldWithdraw, revokeTransferHook, revokePause. airdrop (REQUIRED): recipients, a list of {address, amount} — at most 20 recipients per transaction — with amount as a decimal string in whole tokens, the same unit as supply; the mint's decimals are applied at prepare time. update-metadata (REQUIRED, at least one): name, symbol, metadataUri."
      • changedInput schema / properties / request / properties / token / properties / supply / description
        Previous value: -"Total supply as a decimal string in base units, e.g. \"1000000000\" for 1B tokens."New value: +"Total supply in whole tokens as a decimal string, e.g. \"1000000000\" for 1B tokens — the mint's decimals are applied at prepare time."
  2. 3 tool updates
    • First observedbuild_request
    • First observedget_fee_estimate
    • First observedsubmit_transaction

Publisher details

Operator
xRoot · Publisher source
Operator website
https://app.xroot.dev
Vendor relationship
First-party
Trust center
Not available
Restrictions
None. No account, no API key, no paid plan. You bring your own funded Solana wallet and sign locally; the platform never holds keys or funds.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    9 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources