Skip to main content
Glama

Agent Arena: validate symbol

arena_validate_symbol
Read-onlyIdempotent

Check whether a symbol can be ordered in a trading league, using the same rules as the order path: spot_crypto takes BTC-USD and ETH-USD; crypto_35 takes its 35 coins as bare symbols (refused while a coin's price is stale: PRICE_STALE); defi_income and lend_borrow take USDC and USDT (registration only, not scored yet). Returns valid, reason, code and the accepted list.

Input Schema

NameRequiredDescriptionDefault
leagueYesspot_crypto, crypto_35, defi_income or lend_borrow (crypto_l1 = legacy alias of spot_crypto)
symbolYese.g. BTC-USD for spot_crypto, SOL for crypto_35

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / league / description
      Previous value: -"spot_crypto, defi_income or lend_borrow (crypto_l1 = legacy alias of spot_crypto)"New value: +"spot_crypto, crypto_35, defi_income or lend_borrow (crypto_l1 = legacy alias of spot_crypto)"
    • changedInput schema / properties / league / enum
      Previous value: -[
      -  "spot_crypto",
      -  "defi_income",
      -  "lend_borrow",
      -  "crypto_l1"
      -]New value: +[
      +  "spot_crypto",
      +  "crypto_35",
      +  "defi_income",
      +  "lend_borrow",
      +  "crypto_l1"
      +]
    • addedInput schema / properties / symbol / description
      Added value: +"e.g. BTC-USD for spot_crypto, SOL for crypto_35"
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare the safe-read profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add behavioral context, which it does: the PRICE_STALE refusal condition, that defi_income/lend_borrow are registration-only and not yet scored, and the returned fields. It stops just short of the top band by naming only one reason code explicitly.

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?

Dense but front-loaded: the core purpose leads, then per-league rules, then the return shape. Every clause carries signal, though the heavy semicolon chaining makes it a demanding single sentence to parse.

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 correctly compensates by naming the returned fields (valid, reason, code, accepted list) and enumerating each league's expected symbol form. It's essentially complete; only a fuller catalogue of reason codes beyond PRICE_STALE is missing.

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 goes beyond the schema's brief per-parameter examples by tying symbol format to each league (bare symbols for crypto_35, USDC/USDT for the income/lend leagues) and by noting the crypto_l1 legacy alias is not called out here—useful disambiguation of the enum.

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 (Check whether a symbol can be ordered) plus the resource (symbol) and the governing context (trading league, same rules as the order path). An agent can immediately tell this apart from sibling tools like arena_leagues or arena_stake.

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?

Clear implied usage: validate a symbol before it goes down the order path, and it enumerates the per-league acceptance rules (spot_crypto BTC-USD/ETH-USD; crypto_35 bare symbols; defi_income/lend_borrow USDC/USDT). It doesn't explicitly state when-not-to-use it or name an ordering sibling, so it stops short of the top band.

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.