Skip to main content
Glama

token_account

Read-onlyIdempotent

Run before sending a token to someone. Tokens go to the recipient's token account, not their wallet, and models can't work this address out in their heads. Works out the recipient's token account (ATA) for a wallet and token using the token's real program, checks whether it exists, and prices creating it if not. Inputs: wallet: The wallet that will own the token account (usually the recipient). token: The token's address. network (optional): Which Solana network to read. Default "mainnet-beta" (real money). Cost: 25 free calls a day, then $0.01 USDC per call (x402). Full field-by-field docs: GET /api/tools/token_account.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tokenYesThe token's address. From find_token or tokens. Not a ticker.
walletYesThe wallet that will own the token account (usually the recipient). The recipient's wallet address.
networkNoWhich Solana network to read. Default "mainnet-beta" (real money). Leave it out for mainnet. Use "devnet" only for test wallets.mainnet-beta

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / network / description
      Added value: +"Which Solana network to read. Default \"mainnet-beta\" (real money). Leave it out for mainnet. Use \"devnet\" only for test wallets."
    • addedInput schema / properties / token / description
      Added value: +"The token's address. From find_token or tokens. Not a ticker."
    • addedInput schema / properties / wallet / description
      Added value: +"The wallet that will own the token account (usually the recipient). The recipient's wallet address."
  2. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations cover safety (readOnly=true, idempotent, non-destructive), and the description adds context those fields cannot: the x402 cost model (25 free calls/day, then $0.01 USDC per call), a network default carrying real money, and the fact that the tool returns an existence check plus a creation price. This is exactly the behavioral detail that annotations do not supply.

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 imperative 'Run before sending a token to someone' is front-loaded and the rationale is dense with useful facts. It is slightly longer than needed, and the trailing pointer to external docs (GET /api/tools/token_account) plus a repeated field list add minor redundancy, but nothing is filler.

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?

With no output schema, the description does its share by naming the three result elements: the derived ATA address, whether it exists, and the creation cost. Cost/rate-limit context is also included. What it omits is any shape for the returned data (e.g., field names or units of the price), which for an output-schema-less tool would have closed the remaining gap.

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 schema already documents all three params, including the mainnet-beta default and the 'not a ticker' note. The description largely restates that same information ('wallet... usually the recipient', 'network... Default mainnet-beta (real money)') rather than adding format or usage nuance, so the baseline 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 names a specific verb and resource — deriving the recipient's Associated Token Account (ATA) for a wallet+token — and additionally states it checks existence and prices creation. No sibling (wallet, find_token, tokens, balance) does ATA derivation, so an agent can distinguish it immediately. It even explains why the tool exists ('models can't work this address out in their heads').

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?

Usage is clearly signaled with 'Run before sending a token to someone,' which tells the agent exactly when the tool applies, and it disambiguates the common error of sending to a wallet rather than a token account. It does not, however, name alternatives or when-not conditions explicitly (e.g., pointing at find_token for obtaining the token address, which only appears in the schema).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.