Algorand MCP
The Algorand MCP server gives AI agents and LLMs comprehensive access to the Algorand blockchain, covering wallet management, transaction building/signing, smart contracts, DeFi integrations, and blockchain data queries. Every tool supports per-call network selection (mainnet, testnet, localnet).
Wallet Management: Create, list, switch, and remove OS-keychain-backed accounts with nicknames and spending limits; sign transactions and arbitrary data; opt accounts into assets.
Account Operations: Create and rekey accounts; convert between mnemonics, secret keys, master derivation keys, and seeds.
Transaction Building: Construct all Algorand transaction types — payments, key registrations, asset (create/configure/destroy/freeze/transfer), and application (create/update/delete/opt-in/close-out/clear/call); assign group IDs for atomic transactions; sign, encode, and decode transactions.
Smart Contract (TEAL) Utilities: Compile and disassemble TEAL code; simulate transaction groups with configurable options including traces and extra opcode budget.
Algod API Queries: Look up account info, application info, asset info, application boxes, pending transactions, suggested parameters, and node status; submit signed transactions.
Indexer API Queries: Search and look up accounts, applications, assets, transactions, asset balances, account/asset transactions, and application logs with rich filtering and automatic pagination.
NFDomains (NFD): Look up NFDs by name, app ID, or address; retrieve activity, analytics, browse, and search NFDs.
Tinyman AMM: Get pool info, analytics, swap quotes, liquidity quotes (add/remove/initial), pool creation quotes, and opt-in/out quotes.
Haystack DEX Aggregation: Get optimized swap quotes routed across multiple DEXes (Tinyman V2, Pact, Folks, LST); execute end-to-end swaps; check opt-in requirements.
Pera Wallet: Verify asset verification status and search verified mainnet assets.
Alpha Arcade Prediction Markets: Browse live and reward markets, view orderbooks, manage open orders and positions, place/cancel/amend limit and market orders, split/merge shares, and claim from resolved markets.
ARC-26 URI & QR Codes: Generate Algorand payment URIs and QR code SVGs per the ARC-26 specification.
Utility Tools: Validate and encode/decode addresses, convert between bytes/BigInt/uint64, sign/verify data, encode/decode msgpack, get application addresses, and ping the server.
Knowledge Base: Access structured Algorand developer documentation covering ARCs, SDKs, AlgoKit, TEALScript, Puya, Liquid Auth, CLIs, and nodes.
Provides comprehensive Algorand blockchain interaction capabilities, including account management, asset operations, application interactions, transaction creation/submission, and blockchain state queries.
Provides a server package for Algorand blockchain interactions specifically built for Node.js environments.
Uses TypeScript for type-safe interaction with the Algorand blockchain across both client and server implementations.
Click on "Install 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., "@Algorand MCPcheck my wallet balance"
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.
Algorand MCP Server
A comprehensive Model Context Protocol (MCP) server that gives AI agents and LLMs full access to the Algorand blockchain. Built by GoPlausible.
Algorand is a carbon-negative, pure proof-of-stake Layer 1 blockchain with instant finality, low fees, and built-in support for smart contracts (AVM), standard assets (ASAs), and atomic transactions.
What is MCP?
Model Context Protocol is an open standard that lets AI applications connect to external tools and data sources. This server exposes Algorand blockchain operations as MCP tools that any compatible AI client can use — Claude Desktop, Claude Code, Cursor, Windsurf, and others.
Related MCP server: Alchemy MCP Server
Features
Agent wallet — mnemonics stored in a local SQLite database, used by the MCP server to sign on the agent's behalf (mnemonics never returned in tool responses)
Wallet accounts with human-readable nicknames
Account creation, key management, and rekeying
Transaction building, signing, and submission (payments, assets, applications, key registration)
Atomic transaction groups
TEAL compilation and disassembly
Full Algod and Indexer API access
NFDomains (NFD) name service integration
x402 HTTP micropayments — automatic discovery and one-call paid requests using the active wallet (USDC/ALGO)
AP2 tooling for Algorand
Tinyman AMM integration (pools, swaps, liquidity)
Haystack Router DEX aggregation (best-price swaps across Tinyman, Pact, Folks)
Alpha Arcade prediction market trading (browse markets, orderbooks, limit/market orders, positions, claims)
ARC-26 URI and QR code generation
Algorand knowledge base with full developer documentation taxonomy
Per-tool-call network selection (mainnet, testnet, localnet) and pagination
Requirements
Node.js v20 or later
npm, pnpm, or yarn
Installation
From npm
npm install -g @goplausible/algorand-mcpFrom source
git clone https://github.com/GoPlausible/algorand-mcp.git
cd algorand-mcp
npm install
npm run buildMCP Configuration
The server runs over stdio. There are three ways to invoke it — pick whichever suits your setup:
Method | Command | When to use |
npx (recommended) |
| No install needed, always latest version |
Global install |
| After |
Absolute path |
| Built from source or local clone |
No environment variables are required for standard use. Network selection, pagination, and node URLs are all handled dynamically per tool call.
OpenClaw
No manual configuration needed — install the @goplausible/openclaw-algorand-plugin npm package and the Algorand MCP server is configured automatically:
npm install -g @goplausible/openclaw-algorand-pluginClaude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Using npx:
{
"mcpServers": {
"algorand-mcp": {
"command": "npx",
"args": ["@goplausible/algorand-mcp"]
}
}
}Using global install:
{
"mcpServers": {
"algorand-mcp": {
"command": "algorand-mcp"
}
}
}Using absolute path:
{
"mcpServers": {
"algorand-mcp": {
"command": "node",
"args": ["/absolute/path/to/algorand-mcp/dist/index.js"]
}
}
}Claude Code
Create .mcp.json in your project root (project scope) or ~/.claude.json (user scope):
{
"mcpServers": {
"algorand-mcp": {
"type": "stdio",
"command": "npx",
"args": ["@goplausible/algorand-mcp"]
}
}
}Or add interactively:
claude mcp add algorand-mcp -- npx @goplausible/algorand-mcpCursor
Add via Settings > MCP Servers, or edit .cursor/mcp.json in your project root:
{
"mcpServers": {
"algorand-mcp": {
"command": "npx",
"args": ["@goplausible/algorand-mcp"]
}
}
}Windsurf
Add via Settings > MCP, or edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"algorand-mcp": {
"command": "npx",
"args": ["@goplausible/algorand-mcp"]
}
}
}VS Code / GitHub Copilot
Edit .vscode/mcp.json in your workspace root, or open Settings > MCP Servers:
{
"servers": {
"algorand-mcp": {
"type": "stdio",
"command": "npx",
"args": ["@goplausible/algorand-mcp"]
}
}
}Cline
Add via the MCP Servers panel in the Cline sidebar, or edit ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json (macOS):
{
"mcpServers": {
"algorand-mcp": {
"command": "npx",
"args": ["@goplausible/algorand-mcp"],
"disabled": false
}
}
}OpenAI Codex CLI
Create .codex/mcp.json in your project root or ~/.codex/mcp.json for global scope:
{
"mcpServers": {
"algorand-mcp": {
"command": "npx",
"args": ["@goplausible/algorand-mcp"]
}
}
}Open Code
Edit ~/.config/opencode/config.json:
{
"mcp": {
"algorand-mcp": {
"type": "stdio",
"command": "npx",
"args": ["@goplausible/algorand-mcp"]
}
}
}Any MCP-compatible client
The server speaks the standard MCP stdio protocol. For any client not listed above, configure it with:
Command:
npx(oralgorand-mcpif globally installed, ornode /path/to/dist/index.js)Args:
["@goplausible/algorand-mcp"](for npx)Transport:
stdio
Network Selection
Every tool accepts an optional network parameter: "mainnet" (default), "testnet", or "localnet". Algod and Indexer URLs are built-in for mainnet and testnet via AlgoNode.
Example tool call:
{ "name": "api_algod_get_account_info", "arguments": { "address": "ABC...", "network": "testnet" } }If no network is provided, tools default to mainnet.
Pagination
API responses are automatically paginated. Every tool accepts an optional itemsPerPage parameter (default: 10). Pass the pageToken from a previous response to fetch the next page.
Agent Wallet
Architecture
The agent wallet is a local SQLite database that the MCP server controls on the agent's behalf. The server holds the mnemonics and signs transactions for the agent — the agent never sees the mnemonics in any tool response.
Layer | What it stores | Where |
SQLite ( | Account rows ( |
|
Threat model. The wallet.db file is the secret. Anyone with read access to it can recover every mnemonic stored in the wallet. The mitigations are filesystem permissions (0600, owner-only), keeping the data directory off shared/world-readable volumes, and treating the data directory like any other secret store (snapshot it carefully, restrict backups, encrypt the host disk for at-rest protection). For Docker deployments, mount ~/.algorand-mcp as a named volume and restrict access to it like you would any secret material.
How it works
Agent (LLM) MCP Server Storage
────────── ────────── ───────
│ │ │
│ wallet_add_account │ │
│ { nickname: "main" } │ │
│ ──────────────────────────► │ generate keypair │
│ │ INSERT (address, public_key, │
│ │ nickname, mnemonic) ──►│ wallet.db
│ ◄─ { address, publicKey, │ │
│ nickname, index } │ │
│ │ │
│ wallet_sign_transaction │ │
│ { transaction: {...} } │ │
│ ──────────────────────────► │ SELECT mnemonic FROM accounts ◄─│
│ │ WHERE address=<active> │
│ │ sign in memory │
│ ◄─ { txID, blob } │ (key discarded after sign) │
│ │ │Account creation (
wallet_add_account) — Generates a keypair and inserts a row containing the mnemonic intoaccounts. Returns address, public key, nickname, and index. The mnemonic is never returned.Active account — One account is active at a time.
wallet_switch_accountchanges it by nickname or index. All signing and query tools operate on the active account.Transaction signing (
wallet_sign_transaction) — Reads the mnemonic from the DB, signs in memory, returns only the signed blob.Data signing (
wallet_sign_data) — Signs arbitrary hex data using raw Ed25519 via the@noble/curveslibrary (no Algorand SDK prefix). Useful for off-chain authentication.Asset opt-in (
wallet_optin_asset) — Creates, signs, and submits an opt-in transaction for the active account in one step.
Backward compatibility (silent migration from OS keychain)
Older installs of this MCP stored mnemonics in the OS keychain (@napi-rs/keyring). On first startup after upgrading, the server runs a one-shot, silent migration:
For every
accountsrow whosemnemoniccolumn isNULLor empty, it attempts to read the mnemonic from the OS keychain under the service namealgorand-mcpkeyed by the address.If found, the mnemonic is copied into the DB column.
The original keychain entry is left in place as a redundant backup; nothing is deleted.
After this completes, the DB is the sole source of truth. The keychain is consulted only as a fallback if the DB still has a NULL mnemonic for an address (e.g., the keychain was unavailable during startup and became available later). All new accounts created after the upgrade are written directly to the DB and never touch the keychain.
Orphan handling (archive, not delete). If an accounts row exists but its mnemonic isn't in the keychain and isn't already in the DB (e.g., the user copied wallet.db to a new machine without also moving the keychain entries, restored from a partial backup, or installed in Docker where the keychain never existed), that row is unusable for signing. Rather than delete it, the server marks the row as archived (UPDATE accounts SET archived = 1 WHERE mnemonic IS NULL OR mnemonic = ''). Archived rows:
are hidden from the default
wallet_list_accountsresponsenever become the active account (the active-account index is clamped to the end of the remaining active list, or reset to
0if no active accounts remain)keep their original nickname (a partial unique index
idx_active_nicknameenforces nickname uniqueness only among active rows, so a newwallet_add_accountcan reuse the same nickname for a fresh keypair)are surfaced via
wallet_list_accounts { archived: true }for forensics or future recovery
Archiving is silent at the MCP tool layer. The only diagnostic is a one-line stderr log per failed keychain read ([algorand-mcp] keychain read failed for <addr>…: <msg>), so if a user investigates a false archive they can see whether the keychain threw "no entry" vs "access denied" vs "no DBus" etc.
No user action is required for any of this. No prompts, no env vars, no migration tools.
Schema versions
The DB schema evolves additively via an idempotent migration that runs at startup:
Version | Change |
v1 | initial — |
v2 | added |
v3 | added |
The v2→v3 step recreates the accounts table (SQLite cannot drop a column-level UNIQUE constraint via ALTER) and copies data forward with archived = 0. Existing wallets keep working unchanged.
x402 HTTP Payments
x402 is an HTTP-native micropayments protocol. It uses the long-reserved 402 Payment Required status as a real handshake: when a client requests a paid resource without paying, the server returns 402 with a JSON body listing what it accepts (networks, assets, amounts, the recipient address). The client constructs a payment, attaches it as an HTTP header, retries the same request, and the server returns 200 with the resource. No API keys, no Stripe webhooks, no accounts to manage — payment is part of the request itself.
This MCP implements the Algorand flavor of x402, where payments are USDC (or native ALGO) transfers on Algorand. It exposes two tools that collapse the seven-step manual flow (probe → parse → opt-in check → build fee payer → build payment → group → sign → encode → header → retry) into a single tool call.
Protocol shape (Algorand variant)
Agent (LLM) algorand-mcp Endpoint Facilitator
────────── ──────────── ──────── ───────────
│ │ │ │
│ make_http_request_ │ │ │
│ with_x402 { url, ... } │ │ │
│ ────────────────────────► │ HTTP request │ │
│ │ ─────────────────────────► │ │
│ │ 402 PaymentRequired │ │
│ │ ◄───────────────────────── │ │
│ │ pick accepts[i] for │ │
│ │ Algorand network │ │
│ │ build fee-payer + payment │ │
│ │ (atomic group of 2) │ │
│ │ sign payment leg │ │
│ │ via agent wallet DB │ │
│ │ encode unsigned fee-payer │ │
│ │ base64 PAYMENT-SIGNATURE │ │
│ │ ─────────────────────────► │ │
│ │ HTTP request + │ forward + settle │
│ │ PAYMENT-SIGNATURE │ ───────────────────────► │
│ │ │ sign fee-payer, │
│ │ │ submit atomic group │
│ │ 200 + resource │ ◄─────────────────────── │
│ │ ◄───────────────────────── │ │
│ ◄─ { result, paid: {...}}│ │ │
│ │ │ │What's different from the Coinbase/EVM version
Header name is
PAYMENT-SIGNATURE, notX-PAYMENT. The header body is base64-encoded JSON withx402Version,scheme,network(a CAIP-2 identifier likealgorand:wGHE2Pw…for mainnet), apayload, and a verbatim copy of theaccepts[]entry the client chose.Payment is an atomic 2-transaction group. Index 0 is a fee-payer transaction (sender = facilitator, amount = 0, fee = 2000 µAlgo for the whole group); index 1 is the actual USDC ASA transfer (sender = wallet, fee = 0). The wallet signs only index 1 — the facilitator signs index 0 server-side at settlement. The user's wallet pays only the USDC, not even network fees.
Network strings are Algorand CAIP-2. This MCP recognizes mainnet (
wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=) and testnet (SGO1GKSzyE7IEPItTxCByw9x8FmnrCDexi9/cOUJOiI=). Endpoints that only accept Base, Solana, or other non-Algorand networks are not satisfiable here and the tool returns a clear error.
Coinbase Wallet MCP compatibility (x402 surface)
The x402 tools — make_http_request_with_x402 and x402_discover_payment_requirements — are intentionally name- and shape-compatible with the Coinbase Wallet MCP's x402 tools. The input parameters (baseURL, path, method, queryParams, body, headers, correlationId, maxAmountPerRequest, paymentRequirements, preferredNetwork, extensions) are the same. The output envelope (result, _atomicUnitsNote) is the same.
What this means in practice:
Drop-in for Algorand x402. Agents and MCP apps written against the Coinbase Wallet MCP's x402 tools work against this server without any prompt changes — they just hit Algorand x402 endpoints instead of Base/Solana ones.
Same agent reflexes. Models trained on tool-call traces from the Coinbase ecosystem use these tools correctly on first call. Nothing to relearn.
Compatibility is scoped to the x402 surface only. The wallet, account, transaction-building, and DEX tools in this MCP are Algorand-specific and do not mirror Coinbase's wallet API. Only
make_http_request_with_x402andx402_discover_payment_requirementsare drop-in compatible.
The one parameter that necessarily differs: preferredNetwork accepts mainnet | testnet | localnet only (Algorand networks), because the wallet only signs Algorand transactions. Coinbase's enum lists base | base-sepolia | solana | solana-devnet. Agents that pass one of those values get a clear error indicating no Algorand-payable accepts entry exists.
Example — paid weather API
# Step 1 (optional): peek at the cost
x402_discover_payment_requirements {
"baseURL": "https://example.x402.goplausible.xyz",
"path": "/weather",
"method": "GET"
}
# returns: { result: { accepts: [{ scheme: "exact", network: "algorand:SGO1...",
# maxAmountRequired: "100", asset: "10458941",
# payTo: "AAAA...", extra: { feePayer: "BBBB..." } }] } }
# Step 2: pay and fetch in one call
make_http_request_with_x402 {
"baseURL": "https://example.x402.goplausible.xyz",
"path": "/weather",
"method": "GET",
"maxAmountPerRequest": 10000,
"preferredNetwork": "testnet"
}
# returns: { result: <weather payload>, paid: { network: "testnet",
# asset: "10458941",
# amount: "100", payTo: "AAAA..." },
# paymentResponse: <decoded X-PAYMENT-RESPONSE> }The active wallet account must be opted into the target ASA (e.g. USDC) and hold enough balance to cover maxAmountRequired. If it isn't opted in, the payment fails at settlement — opt in first with wallet_optin_asset.
Prerequisites
An active wallet account exists (
wallet_get_infoto verify)That account is opted into the payment asset (USDC mainnet ASA
31566704, testnet ASA10458941)The account has enough of the payment asset for
maxAmountRequiredThe endpoint's
accepts[]includes at least one entry with an Algorand network the MCP recognizes
Optional Environment Variables
Environment variables are only needed for special setups. Pass them via the env block in your MCP config.
Variable | Description | Default | When needed |
| API token for private/authenticated nodes |
| Connecting to a private Algod/Indexer node |
| Localnet base URL |
| Using |
| Alpha Arcade API key |
| Accessing reward market data |
Example: localnet (AlgoKit)
{
"mcpServers": {
"algorand-mcp": {
"command": "node",
"args": ["/path/to/algorand-mcp/dist/index.js"],
"env": {
"ALGORAND_LOCALNET_URL": "http://localhost:4001",
"ALGORAND_TOKEN": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}
}Then use "network": "localnet" in your tool calls.
Available Tools
Wallet Tools (10 tools)
See Secure Wallet for full architecture details.
Tool | Description |
| Create a new Algorand account with nickname (returns address + public key only) |
| Remove an account from the wallet by nickname or index |
| List active accounts with nicknames and addresses. Pass |
| Switch the active account by nickname or index |
| Get info for the active account this MCP server owns (DB-backed): address, public key, balance, opted-in counts. For arbitrary on-chain accounts use |
| Get all ASA holdings for the active account this MCP server owns. For arbitrary on-chain accounts use |
| Sign a single transaction with the active account |
| Sign a group of transactions with the active account (auto-assigns group ID) |
| Sign arbitrary hex data with raw Ed25519 (noble, no SDK prefix) |
| Opt the active account into an asset (creates, signs, and submits) |
x402 HTTP Payment Tools (5 tools)
See x402 HTTP Payments for the full protocol explanation.
Tool | Description |
| Probe an x402-protected endpoint and return its |
| Call an x402-protected endpoint with automatic USDC/ALGO payment from the active wallet. Discovers internally if |
| Browse paid API resources cataloged in the Bazaar discovery directory hosted by the configured facilitator ( |
| Keyword search over Bazaar resources (URL + description). Server-side: |
| Fetch a single Bazaar resource by its exact |
Account Management (8 tools)
Tool | Description |
| Create a new Algorand account (returns address + mnemonic in the clear) |
| Rekey an account to a new address |
| Convert mnemonic to master derivation key |
| Convert master derivation key to mnemonic |
| Convert secret key to mnemonic |
| Convert mnemonic to secret key |
| Generate seed from mnemonic |
| Generate mnemonic from seed |
Utility Tools (13 tools)
Tool | Description |
| Server connectivity check and info |
| Check if an Algorand address is valid |
| Encode a public key to an Algorand address |
| Decode an Algorand address to a public key |
| Get address for a given application ID |
| Convert bytes to BigInt |
| Convert BigInt to bytes |
| Encode uint64 to bytes |
| Decode bytes to uint64 |
| Verify signature against bytes |
| Sign bytes with a secret key |
| Encode object to msgpack |
| Decode msgpack to object |
Transaction Tools (18 tools)
Tool | Description |
| Create a payment transaction |
| Create a key registration transaction |
| Create an asset creation transaction |
| Create an asset configuration transaction |
| Create an asset destroy transaction |
| Create an asset freeze transaction |
| Create an asset transfer transaction |
| Create an application creation transaction |
| Create an application update transaction |
| Create an application delete transaction |
| Create an application opt-in transaction |
| Create an application close-out transaction |
| Create an application clear state transaction |
| Create an application call transaction |
| Assign group ID for atomic transactions |
| Sign a transaction with a secret key |
| Encode an unsigned transaction to base64 msgpack bytes |
| Decode a signed transaction blob back to JSON with signature details |
Algod Tools (5 tools)
Tool | Description |
| Compile TEAL source code |
| Disassemble TEAL bytecode to source |
| Submit signed transactions to the network |
| Simulate already-encoded transactions (base64 bytes). Pass/fail + log/cost only — no trace, no extra budget. |
| Simulate decoded transaction groups with full |
Algod API Tools (13 tools)
Live, current-state reads against an Algod node. Default choice for account/application/asset lookups — the matching indexer endpoints were intentionally disabled to keep the tool surface lean (see .notes/redundant-tools-report.md). Use the indexer family below only when you need historical or filtered queries that algod cannot serve.
Tool | Description |
| Get account balance, assets, and auth address |
| Get account-specific application info |
| Get account-specific asset info |
| Get application information |
| Get application box by name |
| Get all application boxes |
| Get asset information |
| Get pending transaction info |
| Get pending transactions for an address |
| Get all pending transactions |
| Get suggested transaction parameters |
| Get current node status |
| Get node status after a specific round |
Indexer API Tools (10 tools)
Historical / filtered queries against an Algorand Indexer instance. Use these for time-range scans, paginated searches, log retrieval, and creator/holder discovery — anything algod's current-state endpoints cannot answer.
Seven indexer endpoints that duplicated algod equivalents (account-by-id, account assets, account app local states, application by id, application box, application boxes, asset by id) were intentionally disabled. They live commented-out in src/tools/apiManager/indexer/ and can be re-enabled in one place if needed.
Tool | Description |
| Get apps created by account |
| Search accounts with filters (asset/app holdings, balance ranges) |
| Get application log messages over a round range |
| Search applications by creator |
| Get all accounts holding an asset with their balances |
| Get transactions involving an asset (time/round/address-role filters) |
| Search assets by creator, name, or unit |
| Get a confirmed transaction by ID |
| Get an account's transaction history (time/round/type/asset filters) |
| Search transactions across the chain with filters |
NFDomains Tools (6 tools)
Tool | Description |
| Get NFD by name or application ID |
| Get NFDs for specific addresses |
| Get activity/changes for NFDs |
| Get NFD analytics data |
| Browse NFDs with filters |
| Search NFDs |
Tinyman AMM Tools (9 tools)
Tool | Description |
| Get pool info by asset pair |
| Get pool analytics |
| Get quote for creating a pool |
| Get quote for adding liquidity |
| Get quote for removing liquidity |
| Get quote for swapping assets |
| Get quote for asset opt-in |
| Get quote for validator opt-in |
| Get quote for validator opt-out |
Haystack Router Tools (3 tools)
Tool | Description |
| Get optimized swap quote with routing across Tinyman V2, Pact, Folks, and LST protocols |
| All-in-one swap: quote → sign (via wallet) → submit → confirm |
| Check if address needs asset opt-in before swapping |
Pera Wallet Tools (3 tools)
Tool | Description |
| Get verification status of a mainnet asset (verified, trusted, suspicious, unknown) |
| Get detailed asset info from Pera (name, unit, logo, decimals, verification) |
| Search Pera verified assets by name, unit name, or keyword |
Pera Wallet tools are mainnet only — the Pera public API does not support testnet or localnet.
Alpha Arcade Tools (14 tools)
Trade on-chain prediction markets (YES/NO outcomes) denominated in USDC. All prices and quantities use microunits (1,000,000 = $1.00 or 1 share). Read-only tools work without a wallet; trading tools require an active wallet account.
Tool | Description |
| Fetch all live prediction markets with prices, volume, and categories |
| Fetch markets with liquidity rewards (requires |
| Fetch full details for a single market by app ID |
| Unified YES-perspective orderbook with spread calculation |
| Open orders for a wallet on a specific market |
| YES/NO token positions across all markets |
| Place a limit order at a specific price (locks ~0.957 ALGO collateral) |
| Place a market order with auto-matching and slippage tolerance |
| Cancel an open order (refunds USDC/tokens and ALGO collateral) |
| Edit an existing unfilled order in-place (price, quantity, slippage) |
| Propose a match between an existing maker order and your wallet |
| Split USDC into equal YES + NO outcome tokens |
| Merge equal YES + NO tokens back into USDC |
| Claim USDC from a resolved market by redeeming winning tokens |
Optional env var:
ALPHA_API_KEY— needed for reward market data.ALPHA_API_BASE_URL— custom API endpoint (default:https://platform.alphaarcade.com/api).
ARC-26 URI Tools (1 tool)
Tool | Description |
| Generate Algorand URI and QR code per ARC-26 spec |
Knowledge Tools (1 tool)
Tool | Description |
| Get markdown content for Algorand knowledge documents |
Resources
The server exposes MCP resources for direct data access. Wallet resources are described in the Secure Wallet section above.
Knowledge Resources
URI | Description |
| Full Algorand knowledge taxonomy |
| Algorand Request for Comments |
| SDK documentation |
| AlgoKit documentation |
| AlgoKit Utils documentation |
| TEALScript documentation |
| Puya documentation |
| Liquid Auth documentation |
| Python SDK documentation |
| Developer documentation |
| CLI tools documentation |
| Node management documentation |
| Technical details documentation |
Project Structure
algorand-mcp/
├── src/ # TypeScript source
│ ├── index.ts # Server entry point
│ ├── networkConfig.ts # Hardcoded network URLs and client factories
│ ├── algorand-client.ts # Re-exports from networkConfig
│ ├── env.ts # Legacy env shim (unused)
│ ├── types.ts # Shared types (Zod schemas)
│ ├── resources/ # MCP Resources
│ │ ├── knowledge/ # Documentation taxonomy
│ │ └── wallet/ # Wallet resources
│ ├── tools/ # MCP Tools
│ │ ├── commonParams.ts # Network + pagination schema fragments
│ │ ├── walletManager.ts # Agent wallet (SQLite-backed)
│ │ ├── accountManager.ts # Account operations
│ │ ├── utilityManager.ts # Utility functions
│ │ ├── algodManager.ts # TEAL compile, simulate, submit
│ │ ├── arc26Manager.ts # ARC-26 URI generation
│ │ ├── knowledgeManager.ts # Knowledge document access
│ │ ├── transactionManager/ # Transaction building
│ │ │ ├── accountTransactions.ts
│ │ │ ├── assetTransactions.ts
│ │ │ ├── appTransactions/
│ │ │ └── generalTransaction.ts
│ │ └── apiManager/ # API integrations
│ │ ├── algod/ # Algod API
│ │ ├── indexer/ # Indexer API
│ │ ├── nfd/ # NFDomains
│ │ ├── tinyman/ # Tinyman AMM
│ │ ├── hayrouter/ # Haystack Router DEX aggregator
│ │ ├── pera/ # Pera Wallet verified assets
│ │ └── alpha/ # Alpha Arcade prediction markets
│ └── utils/
│ └── responseProcessor.ts # Pagination and formatting
├── tests/ # Test suite
│ ├── helpers/ # Shared test utilities
│ │ ├── mockFactories.ts # Mock algod/indexer/keychain factories
│ │ ├── testConfig.ts # Category enable/disable logic
│ │ ├── e2eSetup.ts # E2E account provisioning + invokeTool()
│ │ └── testConstants.ts # Well-known testnet addresses and asset IDs
│ ├── unit/ # 11 unit test suites (mocked, fast)
│ ├── e2e/ # 11 E2E test suites (live testnet)
│ │ ├── globalSetup.ts # Account provisioning + fund-check
│ │ └── globalTeardown.ts # Cleanup
│ └── jest.config.e2e.js # E2E-specific Jest config
├── dist/ # Compiled output
├── jest.config.js # Unit test Jest config
├── tsconfig.json # Production TypeScript config
├── tsconfig.test.json # Test TypeScript config
└── package.jsonResponse Format
All tool responses follow the MCP content format. API responses include automatic pagination when datasets exceed itemsPerPage (default 10):
{
"data": { ... },
"metadata": {
"totalItems": 100,
"itemsPerPage": 10,
"currentPage": 1,
"totalPages": 10,
"hasNextPage": true,
"pageToken": "eyJ..."
}
}Pass pageToken from a previous response to fetch the next page. Set itemsPerPage on any tool call to control page size.
Development
# Install dependencies
npm install
# Type-check
npm run typecheck
# Build
npm run build
# Clean build output
npm run cleanTesting
The project has a comprehensive dual-layer test suite: fast unit tests (mocked, no network) and real E2E tests (live testnet). Both use Jest 29 with ts-jest and ESM support.
Quick start
npm test # Unit tests (fast, no network)
npm run test:e2e # E2E tests (testnet, generates account + fund link)
npm run test:all # BothUnit tests
Unit tests cover all 11 tool categories with fully mocked network dependencies. They run in parallel and finish in ~5 seconds. No environment variables or funded accounts are needed.
npm testCoverage: 11 suites, 75+ tests covering success paths, error handling, and edge cases for every tool category.
Suite | What it tests |
| Account creation, mnemonic round-trips, rekey parameter validation |
| Ping, address validation, encode/decode, sign/verify bytes, encode/decode objects |
| Full lifecycle: add → list → switch → get info → sign data → remove (mocked keychain + SQLite) |
| Payment, asset, app transaction building; sign_transaction; assign_group_id |
| TEAL compile/disassemble, send raw, simulate |
| All 13 algod API tools with correct mock routing |
| All 10 active indexer API tools with fluent builder mocks |
| NFD get/search/browse with mocked fetch |
| Tinyman pool/swap with error handling |
| ARC-26 URI generation and QR code SVG output |
| Knowledge document retrieval and missing-doc error handling |
How mocking works
Unit tests use jest.unstable_mockModule() (ESM-compatible) to intercept imports before they load. The shared tests/helpers/mockFactories.ts provides:
setupNetworkMocks()— Replacesalgorand-client.tswith mock algod/indexer clients that return deterministic responses without any network calls.createKeychainMock()— Replaces@napi-rs/keyringwith an in-memoryMap, so wallet tests work without an OS keychain.Fluent Proxy mocks — Algorand's Indexer SDK uses a builder pattern (
.searchForAssets().limit(5).do()). The mock factory uses ESProxyobjects that return themselves for any chained method and resolve when.do()is called.
E2E tests
E2E tests call tool handlers directly against Algorand testnet (via AlgoNode public nodes). They run serially to avoid rate-limiting.
npm run test:e2eOn first run (no mnemonic provided), the test setup:
Generates a new Algorand account
Prints the address and mnemonic
Prints a fund link: https://lora.algokit.io/testnet/fund
Runs all tests (unfunded tests still pass)
To run with a funded account:
E2E_MNEMONIC="word1 word2 ... word25" npm run test:e2eCoverage: 11 suites, 35+ tests covering real network interactions.
Suite | What it tests |
| Account creation, mnemonic-to-key round-trip chain |
| Ping, address validation, encode/decode, sign/verify bytes, encode/decode objects |
| Full wallet lifecycle: add → list → switch → get info → get assets → sign data → remove |
| Build payment → sign → verify txID; build asset opt-in; build group with assign_group_id |
| Compile + disassemble TEAL round-trip |
| Account info, suggested params, node status, asset info via algod |
| Account lookup, asset/transaction/account search via indexer |
| Look up "algo.algo", search NFDs, browse NFDs |
| Get ALGO/USDC pool |
| Generate ARC-26 URI, verify format + QR SVG |
| Retrieve known knowledge doc content |
Category activation
E2E tests can be selectively enabled by category or individual tool via environment variables. By default all categories are enabled.
Enable specific categories
E2E_WALLET=1 npm run test:e2e # Only wallet tests
E2E_ALGOD=1 E2E_UTILITY=1 npm run test:e2e # Algod + utility testsAvailable category flags
Env var | Category |
| All categories (explicit) |
| Wallet tools |
| Account tools |
| Utility tools |
| Transaction tools |
| Algod tools |
| Algod API tools |
| Indexer API tools |
| NFDomains tools |
| Tinyman tools |
| ARC-26 tools |
| Knowledge tools |
Important: Setting any individual flag (e.g. E2E_WALLET=1) disables all other categories unless E2E_ALL=1 is also set.
Enable specific tools
E2E_TOOLS=ping,validate_address npm run test:e2eThe E2E_TOOLS variable accepts a comma-separated list of tool names. Only tests for those specific tools will run.
Test file structure
tests/
├── helpers/
│ ├── mockFactories.ts # Mock algod/indexer/keychain factories
│ ├── testConfig.ts # Category enable/disable logic
│ ├── e2eSetup.ts # E2E account provisioning + invokeTool()
│ └── testConstants.ts # Well-known testnet addresses and asset IDs
├── unit/ # 11 unit test files (*.test.ts)
│ ├── accountManager.test.ts
│ ├── utilityManager.test.ts
│ ├── walletManager.test.ts
│ ├── transactionManager.test.ts
│ ├── algodManager.test.ts
│ ├── apiAlgod.test.ts
│ ├── apiIndexer.test.ts
│ ├── apiNfd.test.ts
│ ├── apiTinyman.test.ts
│ ├── arc26Manager.test.ts
│ └── knowledgeManager.test.ts
├── e2e/ # 11 E2E test files (*.e2e.test.ts)
│ ├── globalSetup.ts # Account provisioning + fund-check
│ ├── globalTeardown.ts # Cleanup
│ ├── account.e2e.test.ts
│ ├── utility.e2e.test.ts
│ ├── wallet.e2e.test.ts
│ ├── transaction.e2e.test.ts
│ ├── algod.e2e.test.ts
│ ├── algodApi.e2e.test.ts
│ ├── indexerApi.e2e.test.ts
│ ├── nfd.e2e.test.ts
│ ├── tinyman.e2e.test.ts
│ ├── arc26.e2e.test.ts
│ └── knowledge.e2e.test.ts
└── jest.config.e2e.js # E2E-specific Jest configJest configuration
Config | Purpose | Key settings |
| Unit tests |
|
| E2E tests |
|
| TypeScript for tests |
|
Writing new tests
Unit test template:
import { jest } from '@jest/globals';
import { setupNetworkMocks } from '../helpers/mockFactories.js';
jest.unstable_mockModule('../../src/algorand-client.js', () => setupNetworkMocks());
const { YourManager } = await import('../../src/tools/yourManager.js');
describe('YourManager', () => {
it('does something', async () => {
const result = await YourManager.handleTool('tool_name', { arg: 'value' });
const data = JSON.parse(result.content[0].text);
expect(data.field).toBeDefined();
});
});E2E test template:
import { describeIf, testConfig } from '../helpers/testConfig.js';
import { invokeTool, parseToolResponse } from '../helpers/e2eSetup.js';
describeIf(testConfig.isCategoryEnabled('your-category'))('Your Tools (E2E)', () => {
it('does something on testnet', async () => {
const data = parseToolResponse(
await invokeTool('tool_name', { arg: 'value', network: 'testnet' }),
);
expect(data.field).toBeDefined();
});
});Dependencies
algosdk v3 — Algorand JavaScript SDK
@modelcontextprotocol/sdk — MCP TypeScript SDK
@napi-rs/keyring — Native OS keychain access (macOS Keychain, Linux libsecret, Windows Credential Manager). Used as a backward-compatibility read fallback for accounts created by pre-DB-migration installs; new mnemonics are written only to
wallet.db.sql.js — Embedded SQLite (WASM) for wallet metadata persistence
@noble/curves — Pure JS Ed25519 for raw data signing (
wallet_sign_data)@tinymanorg/tinyman-js-sdk — Tinyman AMM SDK
@alpha-arcade/sdk — Alpha Arcade prediction market SDK
zod — Runtime type validation
qrcode — QR code generation for ARC-26
License
MIT
Available Tools
120 toolsalpha_amend_orderA
Edit an existing unfilled Alpha Arcade order in-place (change price, quantity, or slippage). Faster than cancel + recreate.
| Name | Required | Description | Default |
|---|---|---|---|
| marketAppId | Yes | The market app ID | |
| escrowAppId | Yes | The escrow app ID of the order to amend | |
| price | Yes | New price in microunits | |
| quantity | Yes | New quantity in microunits | |
| slippage | No | New slippage in microunits (default 0) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions that the operation is 'faster than cancel + recreate,' which adds useful behavioral context about performance. However, it does not disclose critical details such as required permissions, whether the edit is atomic or reversible, error conditions, or rate limits, leaving gaps for a mutation tool.
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 concise and front-loaded, with two sentences that efficiently convey the tool's purpose and a key advantage. Every word earns its place, with no redundant or vague language, making it easy to parse quickly.
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 complexity of a mutation tool with no annotations and no output schema, the description is adequate but incomplete. It covers the basic purpose and a performance hint, but lacks details on behavioral traits, error handling, or return values, which are important for safe and effective use in this context.
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 schema fully documents all 7 parameters. The description adds minimal value beyond the schema by listing the editable fields ('price, quantity, or slippage'), but does not provide additional semantics like unit explanations or constraints. This meets the baseline for 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 clearly states the verb ('Edit'), resource ('existing unfilled Alpha Arcade order'), and scope ('in-place'), specifying what can be changed ('price, quantity, or slippage'). It distinguishes from the sibling 'alpha_cancel_order' by noting it's 'faster than cancel + recreate,' making the purpose specific and differentiated.
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 clear context for when to use this tool: for editing unfilled orders in-place, and implies an alternative ('cancel + recreate') without explicitly naming it. However, it lacks explicit exclusions or comparisons with other order-related tools like 'alpha_create_limit_order' or 'alpha_create_market_order,' which could be relevant for order modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alpha_cancel_orderA
Cancel an open Alpha Arcade order. Requires escrowAppId and orderOwner. Refunds USDC/tokens and ~0.957 ALGO collateral.
| Name | Required | Description | Default |
|---|---|---|---|
| marketAppId | Yes | The market app ID | |
| escrowAppId | Yes | The escrow app ID of the order to cancel | |
| orderOwner | Yes | The Algorand address that owns the order | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a destructive action (cancels orders), specifies prerequisites (requires escrowAppId and orderOwner), and outlines outcomes (refunds USDC/tokens and ~0.957 ALGO collateral). This adds valuable context beyond the input schema, though it doesn't cover error conditions or rate limits.
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 front-loaded with the core purpose in the first sentence, followed by prerequisites and outcomes. Every sentence earns its place by providing essential information without redundancy, making it highly efficient and well-structured.
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 complexity of a cancellation tool with no annotations and no output schema, the description does a good job covering purpose, prerequisites, and outcomes. It could be more complete by explaining error cases or return values, but it provides sufficient context for an agent to understand the tool's role and effects in the system.
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 schema already documents all parameters. The description mentions 'escrowAppId and orderOwner' as required, which aligns with the schema but doesn't add meaning beyond it. It doesn't explain parameter interactions or provide additional context, so it meets the baseline for 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 clearly states the specific action ('Cancel an open Alpha Arcade order'), identifies the resource ('Alpha Arcade order'), and distinguishes it from siblings like 'alpha_amend_order' by focusing on cancellation rather than modification. It's precise and action-oriented.
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 open orders (via 'Cancel an open Alpha Arcade order') and mentions required parameters ('Requires escrowAppId and orderOwner'), but doesn't explicitly state when to use this tool versus alternatives like 'alpha_amend_order' or 'alpha_get_open_orders'. It provides some context but lacks explicit guidance on alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alpha_claimC
Claim USDC from a resolved Alpha Arcade market by redeeming outcome tokens. Winning = 1:1 USDC.
| Name | Required | Description | Default |
|---|---|---|---|
| marketAppId | Yes | The market app ID | |
| assetId | Yes | The outcome token ASA ID to redeem | |
| amount | No | Amount to claim in microunits (omit to claim entire balance) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions 'Winning = 1:1 USDC,' which hints at conversion rates, but lacks critical behavioral details: whether this is a read-only or mutating operation, authentication requirements, rate limits, error conditions, or what happens on failure. The description is insufficient for a tool that likely involves financial transactions.
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 concise and front-loaded with the core purpose in one sentence. The second sentence adds useful rate information ('1:1 USDC'), but could be integrated more smoothly. Overall, it's efficient with minimal waste.
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 complexity (financial claiming tool with 5 parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavioral traits, error handling, return values, and how it fits among siblings. The absence of annotations and output schema increases the burden, which the description does not adequately meet.
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 schema already documents all parameters. The description adds no additional semantic context beyond implying 'marketAppId' and 'assetId' relate to a resolved market and outcome tokens. It doesn't explain parameter interactions or provide examples, meeting the baseline for 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 clearly states the tool's purpose: 'Claim USDC from a resolved Alpha Arcade market by redeeming outcome tokens.' It specifies the verb ('claim'), resource ('USDC'), and context ('resolved Alpha Arcade market'), but does not explicitly differentiate it from sibling tools like 'alpha_get_positions' or 'alpha_merge_shares' that might involve similar assets or markets.
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 minimal guidance: it implies usage when a market is resolved and tokens are redeemable, but offers no explicit when-to-use rules, prerequisites (e.g., market must be resolved), or alternatives among siblings. For example, it doesn't clarify if this is for winners only or how it differs from 'alpha_merge_shares' in handling tokens.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alpha_create_limit_orderA
Place a limit order on an Alpha Arcade prediction market. Price and quantity in microunits (500000 = $0.50, 1000000 = 1 share). Locks ~0.957 ALGO collateral. Returns escrowAppId — save it for cancel_order.
| Name | Required | Description | Default |
|---|---|---|---|
| marketAppId | Yes | The market app ID | |
| position | Yes | 1 = Yes, 0 = No | |
| price | Yes | Price in microunits (e.g. 500000 = $0.50) | |
| quantity | Yes | Quantity in microunits (e.g. 1000000 = 1 share) | |
| isBuying | Yes | true = buy order, false = sell order | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and delivers well. It discloses critical behavioral traits: collateral locking ('Locks ~0.957 ALGO collateral'), return value ('Returns escrowAppId'), and post-action requirement ('save it for cancel_order'). It doesn't mention error conditions or rate limits, but covers essential mutation behavior.
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?
Perfectly concise with three information-dense sentences: purpose statement, parameter unit explanation, and behavioral/post-action guidance. Every sentence earns its place with zero wasted words, and the most critical information (tool purpose) is front-loaded.
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 mutation tool with no annotations and no output schema, the description does well by explaining the action, units, collateral impact, and return value. It could be more complete by mentioning error cases or authorization requirements, but covers the essential context given the tool's complexity and lack of structured metadata.
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%, providing detailed parameter documentation. The description adds value by explaining the microunit convention with examples (500000 = $0.50, 1000000 = 1 share) and mentioning collateral implications, but doesn't provide additional parameter semantics beyond what the schema already covers thoroughly.
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 specific action ('Place a limit order') on a specific resource ('Alpha Arcade prediction market'), distinguishing it from siblings like 'alpha_create_market_order' (different order type) and 'alpha_cancel_order' (different action). It precisely defines the tool's function without being tautological.
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 clear context for when to use this tool (placing limit orders with specific price/quantity units) and implicitly contrasts with 'alpha_create_market_order' by specifying 'limit order'. However, it doesn't explicitly state when NOT to use it or mention all relevant alternatives like 'alpha_amend_order' for modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alpha_create_market_orderC
Place a market order with auto-matching on Alpha Arcade. Price, quantity, and slippage in microunits. Returns escrowAppId, matched quantity, and actual fill price.
| Name | Required | Description | Default |
|---|---|---|---|
| marketAppId | Yes | The market app ID | |
| position | Yes | 1 = Yes, 0 = No | |
| price | Yes | Price in microunits (e.g. 500000 = $0.50) | |
| quantity | Yes | Quantity in microunits (e.g. 1000000 = 1 share) | |
| isBuying | Yes | true = buy order, false = sell order | |
| slippage | Yes | Slippage tolerance in microunits (e.g. 50000 = $0.05) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the order is placed 'with auto-matching' and specifies the return values, but fails to describe critical behaviors: whether this is a read-only or mutating operation (implied mutation from 'Place'), authentication requirements, rate limits, error handling, or side effects. The description is insufficient for a tool that likely executes financial transactions.
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, efficient sentence that front-loads the core action ('Place a market order') and includes key details (system, unit specification, return values). There's no wasted text, though it could be slightly more structured for readability.
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 tool with 8 parameters (6 required), no annotations, and no output schema, the description is inadequate. It lacks behavioral context (e.g., mutation effects, auth needs), usage guidance, and fails to explain the purpose of parameters like 'position' or 'itemsPerPage'. The return values are listed but not explained, leaving the agent with significant gaps in 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?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds minimal value beyond the schema: it clarifies that price, quantity, and slippage are in 'microunits' (already in schema descriptions) and mentions 'auto-matching' (not parameter-related). No additional parameter semantics, constraints, or interactions are explained.
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 action ('Place a market order') and the target system ('Alpha Arcade'), with specific mention of 'auto-matching' as a key feature. It distinguishes itself from sibling tools like 'alpha_create_limit_order' by specifying 'market order', but doesn't explicitly contrast with other order-related tools like 'alpha_amend_order' or 'alpha_cancel_order'.
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 guidance is provided on when to use this tool versus alternatives. The description doesn't mention when a market order is appropriate compared to limit orders (available via 'alpha_create_limit_order'), nor does it discuss prerequisites, error conditions, or typical use cases. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alpha_get_live_marketsA
Fetch all live Alpha Arcade prediction markets. Returns summary: id, title, marketAppId, prices, volume. Multi-choice markets have an options[] array — use options[].marketAppId for trading.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool fetches data (implied read-only) and describes return format details like the options array for multi-choice markets. However, it doesn't mention pagination behavior (implied by itemsPerPage parameter but not explained), rate limits, authentication needs, 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 sentences with zero waste. The first sentence states purpose and return format. The second provides crucial behavioral detail about multi-choice markets. Every word earns its place, and information is front-loaded appropriately.
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 read-only tool with 2 optional parameters and no output schema, the description is reasonably complete. It explains what data is returned and includes important behavioral details about market structure. However, it doesn't address pagination behavior (implied but not explained) or potential limitations, leaving minor gaps.
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 schema fully documents both parameters. The description adds no parameter-specific information beyond what's in the schema. This meets the baseline of 3 since the schema does all the work, but the description doesn't compensate with additional context about parameter interactions or effects.
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 specific action ('Fetch all live Alpha Arcade prediction markets') and resource ('prediction markets'), distinguishing it from siblings like alpha_get_market (single market) and alpha_get_reward_markets (different market type). It explicitly mentions what data is returned, making the 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?
The description implies usage context by specifying it returns 'live' markets and summary data, suggesting it's for overview rather than detailed trading. However, it doesn't explicitly state when to use this versus alternatives like alpha_get_market or alpha_get_reward_markets, 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.
alpha_get_marketB
Fetch full details for a single Alpha Arcade prediction market. Pass marketAppId (numeric, always required) and optionally marketId (UUID) for richer API data.
| Name | Required | Description | Default |
|---|---|---|---|
| marketAppId | Yes | The market application ID (numeric, always required) | |
| marketId | No | The market UUID (optional, used for API mode when ALPHA_API_KEY is set) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions that marketId is 'used for API mode when ALPHA_API_KEY is set', adding some behavioral context about authentication dependencies. However, it lacks details on rate limits, error handling, response format, or whether it's read-only/destructive, which are critical for a tool with no 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, efficient sentence that front-loads the purpose and key parameters. It avoids unnecessary words, though it could be slightly more structured by separating usage guidance into a second sentence for clarity.
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 annotations and no output schema, the description is moderately complete for a read operation. It covers the main purpose and parameter usage but lacks details on behavioral traits like response format, error conditions, or authentication requirements. This leaves gaps for an agent to use the tool effectively without additional context.
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 schema already documents all parameters thoroughly. The description adds marginal value by emphasizing that marketAppId is 'always required' and that marketId provides 'richer API data', but doesn't explain semantics beyond what the schema provides. Baseline 3 is appropriate given 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 clearly states the tool fetches details for a single prediction market ('Fetch full details for a single Alpha Arcade prediction market'), specifying the resource and action. It distinguishes from siblings like 'alpha_get_live_markets' (which likely lists multiple markets) by focusing on a single market, though it doesn't explicitly name alternatives.
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 by stating 'Pass marketAppId... and optionally marketId... for richer API data', which suggests when to use the optional parameter. However, it doesn't provide explicit guidance on when to use this tool versus siblings like 'alpha_get_live_markets' or 'alpha_get_reward_markets', leaving the context somewhat implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alpha_get_open_ordersA
Fetch all open orders for a wallet on a specific Alpha Arcade market. Uses your active MCP wallet if walletAddress is not provided.
| Name | Required | Description | Default |
|---|---|---|---|
| marketAppId | Yes | The market app ID | |
| walletAddress | No | Algorand wallet address (uses active MCP wallet if omitted) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 discloses the default wallet behavior, which is valuable, but doesn't mention other behavioral traits like whether this is a read-only operation, potential rate limits, error conditions, or pagination details (implied by itemsPerPage but not explained). The description adds some context but leaves significant 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?
The description is a single, efficient sentence that front-loads the core purpose and includes essential contextual information about default behavior. Every word earns its place with zero redundancy or wasted space.
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 tool with 4 parameters, 100% schema coverage, but no annotations and no output schema, the description is adequate but incomplete. It covers the purpose and a key default behavior, but lacks information about return format, error handling, or other behavioral expectations that would help an agent use it correctly in complex scenarios.
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 schema already fully documents all parameters. The description adds marginal value by clarifying the default behavior for walletAddress (uses active MCP wallet if omitted), but doesn't provide additional semantic context beyond what's in the schema descriptions. This meets the baseline for 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 clearly states the specific action ('Fetch all open orders') and resource ('for a wallet on a specific Alpha Arcade market'), distinguishing it from siblings like alpha_get_positions (positions) or alpha_get_orderbook (orderbook). It precisely defines scope without ambiguity.
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 clear context for when to use this tool (to get open orders for a wallet on a market) and includes a helpful default behavior (uses active MCP wallet if walletAddress omitted). However, it doesn't explicitly differentiate from potential alternatives like alpha_get_positions or specify 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.
alpha_get_orderbookB
Fetch the on-chain orderbook as a unified YES-perspective view. Merges all 4 sides (YES bids/asks + NO bids/asks). Includes spread calculation.
| Name | Required | Description | Default |
|---|---|---|---|
| marketAppId | Yes | The market app ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool fetches and merges data, implying a read-only operation, but doesn't address critical aspects like rate limits, authentication requirements, error handling, or the format of the returned data. The mention of 'paginated responses' in the schema hints at behavior, but the description doesn't elaborate on this.
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 extremely concise and front-loaded, consisting of just two sentences that directly convey the tool's purpose and key features. Every word earns its place, with no redundant or vague language.
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 complexity of fetching and merging orderbook data, the lack of annotations, and no output schema, the description is incomplete. It doesn't explain the structure of the returned data, how the merging works, what 'YES-perspective view' means, or how the spread calculation is performed. This leaves significant gaps for an agent to understand the tool's behavior fully.
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 schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning about the parameters beyond what the schema provides, such as explaining the significance of 'marketAppId' or the implications of network choice. However, it doesn't contradict the schema, so the 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 the specific action ('Fetch'), the resource ('on-chain orderbook'), and the distinctive transformation ('unified YES-perspective view'). It explicitly distinguishes this tool from siblings by mentioning the merging of all 4 sides and spread calculation, which no other tool in the list addresses.
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 no guidance on when to use this tool versus alternatives. While it mentions the unified view, it doesn't specify scenarios where this is preferred over other order-related tools like alpha_get_open_orders or alpha_get_market, 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.
alpha_get_positionsA
Fetch all YES/NO token positions for a wallet across all Alpha Arcade markets. Uses your active MCP wallet if walletAddress is not provided.
| Name | Required | Description | Default |
|---|---|---|---|
| walletAddress | No | Algorand wallet address (uses active MCP wallet if omitted) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It mentions the tool fetches data (implied read-only) and uses the active MCP wallet as a fallback, but lacks details on permissions required, rate limits, pagination behavior (despite itemsPerPage parameter), error handling, or response format. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
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, efficient sentence that front-loads the core purpose and includes essential usage guidance without redundancy. Every word earns its place, making it appropriately sized and well-structured for quick comprehension.
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's complexity (fetching positions across markets with pagination), lack of annotations, and no output schema, the description is incomplete. It does not explain what 'YES/NO token positions' entail, how pagination works with itemsPerPage, the structure of returned data, or potential errors, leaving the agent with insufficient context for reliable 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?
Schema description coverage is 100%, so the schema already documents all parameters (walletAddress, network, itemsPerPage) with descriptions and defaults. The description adds marginal value by clarifying walletAddress behavior (uses active MCP wallet if omitted), but does not provide additional syntax, format details, or constraints beyond what the schema provides, meeting the baseline for high 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 clearly states the verb ('Fetch') and resource ('YES/NO token positions for a wallet across all Alpha Arcade markets'), making the purpose specific. It distinguishes from siblings like alpha_get_open_orders (which fetches orders, not positions) and alpha_get_market (which fetches market data, not wallet positions), providing clear differentiation.
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 clear context on when to use this tool: to fetch token positions for a wallet across Alpha Arcade markets, with guidance on walletAddress parameter usage (uses active MCP wallet if omitted). However, it does not explicitly state when not to use it or name alternatives (e.g., alpha_get_open_orders for orders instead of positions), which prevents a score of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alpha_get_reward_marketsA
Fetch Alpha Arcade markets with liquidity rewards (totalRewards, rewardsPaidOut, etc.). Same shape as alpha_get_live_markets but includes reward info. Requires ALPHA_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 discloses the authentication requirement (ALPHA_API_KEY) and hints at pagination through the parameter 'itemsPerPage', but lacks details on rate limits, error handling, or what happens if the key is missing. It adds some behavioral context but is incomplete for a tool with no 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 front-loaded and efficiently structured in two sentences: the first states the purpose and key differentiator, the second adds authentication requirement. Every sentence earns its place with no wasted words, making it appropriately sized and clear.
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 annotations and no output schema, the description provides purpose, authentication, and sibling comparison, but lacks details on return values, error cases, or operational constraints. It is adequate for a read-only tool with simple parameters but could be more complete to fully guide an agent without structured data.
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 schema already documents both parameters (network with enum and default, itemsPerPage with default). The description does not add any parameter-specific semantics beyond what the schema provides, such as explaining network implications or pagination behavior, meeting the baseline for 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 clearly states the verb ('Fetch') and resource ('Alpha Arcade markets with liquidity rewards'), specifying the exact data returned (totalRewards, rewardsPaidOut, etc.). It explicitly distinguishes from sibling 'alpha_get_live_markets' by noting the same shape but with added reward info, making the purpose specific and differentiated.
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 clear context by mentioning the requirement for ALPHA_API_KEY and comparing to alpha_get_live_markets, which helps guide usage. However, it does not explicitly state when to use this tool versus alternatives like alpha_get_market or other market-related tools, missing explicit exclusions or named alternatives beyond the one sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alpha_propose_matchC
Propose a match between an existing maker order and your wallet as taker on Alpha Arcade.
| Name | Required | Description | Default |
|---|---|---|---|
| marketAppId | Yes | The market app ID | |
| makerEscrowAppId | Yes | The escrow app ID of the maker order | |
| makerAddress | Yes | The Algorand address of the maker | |
| quantityMatched | Yes | Quantity to match in microunits | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It mentions 'Propose a match,' which implies a transactional or write operation, but doesn't clarify if this is a read-only proposal, requires authentication, involves on-chain transactions, or has side effects like escrow interactions. Critical behavioral traits like permissions, reversibility, or network implications are missing.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action, making it easy to grasp quickly. However, it could be slightly more structured by including key usage notes, but it avoids redundancy.
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 complexity of a financial transaction tool with no annotations and no output schema, the description is insufficient. It lacks details on what the tool returns (e.g., transaction ID, status), error conditions, or how it integrates with the broader Alpha Arcade system. For a tool that likely involves significant on-chain operations, more context is needed to ensure safe and correct usage.
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%, meaning all parameters are documented in the schema itself. The description doesn't add any additional meaning or context for the parameters beyond what the schema provides (e.g., it doesn't explain relationships between 'marketAppId' and 'makerEscrowAppId'). Baseline score of 3 is appropriate as the schema handles parameter documentation adequately.
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 action ('Propose a match') and identifies the resources involved ('existing maker order' and 'your wallet as taker'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'alpha_create_limit_order' or 'alpha_create_market_order', which might also involve order matching in different contexts.
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 minimal guidance, stating only that it's for proposing a match as a taker. It doesn't specify when to use this tool versus alternatives (e.g., when to propose vs. create an order directly), nor does it mention prerequisites like needing an existing maker order or wallet setup. No explicit exclusions or context for usage is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_account_application_infoB
Get account-specific application information from algod
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The account public key | |
| appId | Yes | The application ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states it's a read operation ('Get'), implying non-destructive behavior, but doesn't disclose any behavioral traits like authentication needs, rate limits, error conditions, or what the output contains. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.
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, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a straightforward query tool.
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's moderate complexity (4 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks behavioral details, usage context, and output information. With no annotations to compensate, it's incomplete for safe and effective use by an agent.
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 schema fully documents all parameters (address, appId, network, itemsPerPage). The description adds no additional meaning beyond the schema, such as explaining relationships between parameters or usage nuances. Baseline 3 is appropriate when the schema does all the work.
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 action ('Get') and target ('account-specific application information from algod'), making the purpose understandable. It distinguishes itself from siblings like 'api_algod_get_account_info' by specifying 'application' focus, though it doesn't explicitly contrast with similar tools like 'api_indexer_lookup_account_app_local_states'.
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 guidance is provided on when to use this tool versus alternatives. With many sibling tools available for querying account and application data (e.g., 'api_indexer_lookup_account_app_local_states', 'api_algod_get_application_by_id'), the description lacks any context about use cases, prerequisites, or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_account_asset_infoC
Get account-specific asset information from algod
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The account public key | |
| assetId | Yes | The asset ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. While 'Get' implies a read-only operation, the description doesn't mention authentication requirements, rate limits, error conditions, response format, or whether this is a paginated endpoint (despite the 'itemsPerPage' parameter suggesting pagination). This leaves significant 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?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a tool with good schema documentation and gets straight to the point without unnecessary elaboration.
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 tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'account-specific asset information' includes, how results are structured, whether pagination applies, or any error scenarios. Given the complexity of Algorand asset data and the lack of structured metadata, the description should provide more context about what information is returned.
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 schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter information beyond what's already in the schema descriptions. This meets the baseline expectation when schema coverage is complete.
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 verb ('Get') and resource ('account-specific asset information from algod'), making the purpose understandable. However, it doesn't differentiate this tool from similar sibling tools like 'api_algod_get_account_info' or 'api_indexer_lookup_account_assets', which appear to serve related functions.
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 no guidance on when to use this tool versus alternatives. With many sibling tools related to accounts, assets, and algod/indexer APIs, there's no indication of when this specific tool is appropriate versus others like 'api_algod_get_asset_by_id' or 'api_indexer_lookup_account_assets'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_account_infoB
Get current account balance, assets, and auth address from algod
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The account public key | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions the data returned but doesn't disclose behavioral traits like whether it's a read-only operation, potential rate limits, network latency, error conditions, or pagination handling (implied by 'itemsPerPage' parameter). For a tool with no annotation coverage, this leaves significant 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?
The description is a single, efficient sentence with zero wasted words. It front-loads the core purpose and resource, making it immediately understandable without unnecessary elaboration.
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's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It states what data is returned but lacks context on behavioral aspects, error handling, or output structure. With no output schema, the description should ideally hint at return format, but it doesn't, leaving gaps in completeness.
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 schema fully documents all three parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., format of 'address', meaning of 'network' options, how 'itemsPerPage' affects output). Baseline 3 is appropriate when the schema does the heavy lifting.
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 action ('Get') and the specific data returned ('current account balance, assets, and auth address'), with the resource being an Algorand account via the algod API. It distinguishes from siblings like 'api_algod_get_account_application_info' by focusing on general account info rather than application-specific data, but doesn't explicitly contrast with all similar tools.
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 guidance is provided on when to use this tool versus alternatives. With many sibling tools for account-related queries (e.g., 'api_indexer_lookup_account_by_id', 'api_indexer_lookup_account_assets'), the description lacks context on selection criteria, prerequisites, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_application_boxC
Get application box by name
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Application ID | |
| boxName | Yes | Box name. | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states 'Get application box by name', implying a read-only operation, but doesn't disclose behavioral traits such as authentication needs, rate limits, error conditions, or what the return value contains (since no output schema). This leaves significant gaps for a tool with 4 parameters.
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, efficient sentence with zero waste. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse quickly.
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 complexity (4 parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavioral aspects, return values, and differentiation from siblings. For a tool that likely interacts with Algorand blockchain data, more context is needed to guide effective 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?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning beyond implying that 'boxName' is used to retrieve a specific box. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't detract either.
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 'Get application box by name' clearly states the action (get) and resource (application box), but it's vague about what an 'application box' is in the Algorand context and doesn't differentiate from sibling tools like 'api_algod_get_application_boxes' or 'api_indexer_lookup_application_box'. It provides basic purpose but lacks specificity and sibling distinction.
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 no guidance on when to use this tool versus alternatives. With many sibling tools related to applications and boxes (e.g., 'api_algod_get_application_boxes', 'api_indexer_lookup_application_box'), there's no indication of context, prerequisites, or exclusions. Usage is implied only by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_application_boxesC
Get all application boxes
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Application ID | |
| maxBoxes | No | Maximum number of boxes to return | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action without behavioral details. It doesn't disclose if this is a read-only operation, how it handles pagination (implied by 'itemsPerPage' but not explained), rate limits, authentication needs, or what 'all' means in practice (e.g., completeness guarantees).
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, efficient sentence with zero wasted words. It's front-loaded and appropriately sized for the tool's apparent simplicity, though this conciseness comes at the cost of detail.
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 annotations, no output schema, and a tool that likely returns complex data (application boxes), the description is incomplete. It doesn't explain what boxes are, the return format, pagination behavior, or error conditions, leaving significant gaps for an agent to use it effectively.
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 parameters are well-documented in the schema itself. The description adds no additional meaning about parameters beyond implying 'appId' is required and 'all boxes' relates to that ID, meeting the baseline for 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 'Get all application boxes' clearly states the verb ('Get') and resource ('application boxes'), making the purpose understandable. However, it lacks specificity about what 'boxes' are in the Algorand context and doesn't distinguish from sibling tools like 'api_algod_get_application_box' (singular) or 'api_indexer_lookup_application_boxes'.
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 guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, appropriate contexts, or comparisons to similar tools in the extensive sibling list, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_application_by_idC
Get application information
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Application ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states this is a 'get' operation, implying read-only behavior, but doesn't mention any constraints like rate limits, authentication requirements, or what happens if the application ID doesn't exist. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
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, efficient sentence with zero wasted words. It's appropriately sized for a simple retrieval tool and front-loads the core purpose immediately.
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 complexity (a read operation with 3 parameters) and no annotations or output schema, the description is incomplete. It doesn't explain what 'application information' entails, potential errors, or behavioral traits like pagination details. For a tool with no structured output documentation, the description should provide more context to be fully helpful.
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 schema description coverage is 100%, so the schema fully documents all three parameters (appId, network, itemsPerPage). The description adds no additional meaning beyond what the schema provides, such as explaining what 'application information' includes or how pagination works. Baseline 3 is appropriate when the schema does all the work.
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 'Get application information' clearly states the action (get) and resource (application information), but it's vague about what specific information is retrieved. It doesn't distinguish this tool from sibling tools like 'api_algod_get_application_box' or 'api_indexer_lookup_applications', which also retrieve application-related data.
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 guidance is provided on when to use this tool versus alternatives. With many sibling tools dealing with applications (e.g., 'api_algod_get_application_box', 'api_indexer_lookup_applications'), the description fails to indicate this tool's specific context or prerequisites, leaving the agent to guess based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_asset_by_idC
Get current asset information from algod
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Asset ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions 'Get' which implies a read operation, but doesn't disclose behavioral traits like authentication requirements, rate limits, error handling, or what 'current' means (e.g., real-time vs. cached). The description is minimal and lacks necessary context for safe invocation.
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, efficient sentence with no wasted words. It's front-loaded with the core purpose, though it could be more structured by including key details. It earns a 4 for being concise but loses a point for lacking depth.
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's complexity (3 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what information is returned, how errors are handled, or prerequisites for use. For a tool that likely interacts with a blockchain network, more context is needed for effective agent 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?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional meaning beyond the schema, such as explaining what an 'assetId' represents or how 'itemsPerPage' affects pagination. Baseline 3 is appropriate since the schema does the heavy lifting.
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 states the action ('Get') and resource ('current asset information'), but is vague about what 'current asset information' entails. It doesn't distinguish from sibling tools like 'api_indexer_lookup_asset_by_id' or 'api_algod_get_account_asset_info', leaving ambiguity about which tool to use for asset queries.
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 guidance on when to use this tool versus alternatives is provided. With multiple asset-related tools in the sibling list (e.g., api_indexer_lookup_asset_by_id, api_algod_get_account_asset_info), the description offers no context for selection, leaving the agent to infer based on names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_node_statusC
Get current node status
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. 'Get current node status' implies a read-only operation, but the description doesn't specify authentication requirements, rate limits, error conditions, or what 'node status' actually includes (health metrics, version info, network connectivity, etc.). For an API tool with zero annotation coverage, this is a significant gap in behavioral context.
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 extremely concise at just three words ('Get current node status'), with zero wasted language. It's front-loaded with the core purpose. While it may be too brief for completeness, as a standalone statement it's efficiently structured.
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 complexity of an API tool with no annotations, no output schema, and multiple sibling tools, the description is insufficiently complete. It doesn't explain what 'node status' returns, how it differs from the 'after_block' variant, what authentication might be needed, or typical use cases. The 100% schema coverage helps with parameters, but the overall context for proper tool selection and invocation is lacking.
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 description mentions no parameters at all, while the schema documents two optional parameters with 100% coverage (network with enum values and itemsPerPage with default). Since schema_description_coverage is 100%, the baseline score is 3 even without parameter information in the description. The description adds no value beyond what the schema already provides about parameters.
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 'Get current node status' clearly states the verb ('Get') and resource ('current node status'), making the basic purpose understandable. However, it doesn't distinguish this tool from its sibling 'api_algod_get_node_status_after_block', which appears to be a similar status-checking tool with different timing. The description is adequate but lacks sibling differentiation.
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 no guidance on when to use this tool versus alternatives. With many sibling tools available (including 'api_algod_get_node_status_after_block' and various other API tools), there's no indication of when this specific node status check is appropriate versus other status or information retrieval tools. No prerequisites, exclusions, or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_node_status_after_blockB
Get node status after a specific round
| Name | Required | Description | Default |
|---|---|---|---|
| round | Yes | Round number | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states it's a read operation ('Get'), but doesn't disclose behavioral traits like rate limits, authentication needs, error conditions, or what 'node status' entails (e.g., health, metrics). For a tool with no annotations, this is a significant gap in transparency about how it behaves and what to expect.
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, efficient sentence with zero waste. It's front-loaded with the core action and condition, making it easy to parse. Every word earns its place, and there's no redundant or verbose language.
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 annotations and no output schema, the description is minimal. It states the purpose but lacks context on behavior, output format, or usage relative to siblings. For a tool with 3 parameters and no structured metadata, it's adequate as a basic descriptor but incomplete for guiding an agent effectively without additional inference.
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 schema fully documents parameters (round, network, itemsPerPage). The description adds no additional meaning beyond implying the 'round' parameter's purpose. With high schema coverage, the baseline is 3, as the description doesn't compensate but doesn't detract either.
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 'Get node status after a specific round' clearly states the action (get) and resource (node status) with a specific condition (after a specific round). It distinguishes from the sibling tool 'api_algod_get_node_status' by specifying the temporal condition, though it doesn't explicitly contrast them. The purpose is unambiguous but could be more explicit about differentiation.
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 guidance is provided on when to use this tool versus alternatives like 'api_algod_get_node_status' or other status-related tools. The description implies usage for post-round status but offers no context about prerequisites, typical use cases, or exclusions. This leaves the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_pending_transactionC
Get pending transaction information
| Name | Required | Description | Default |
|---|---|---|---|
| txId | Yes | Transaction ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states 'Get pending transaction information' which implies a read-only operation, but doesn't disclose any behavioral traits like authentication requirements, rate limits, error conditions, or what 'pending' specifically means in this context. The description is minimal and lacks operational context.
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 extremely concise at just four words, with zero wasted language. It's front-loaded with the core purpose. While it may be too brief for completeness, it earns full marks for conciseness.
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 complexity of transaction lookup in a blockchain context, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'pending transaction information' includes, how it differs from other transaction tools, or what the return format looks like. For a tool with one required parameter and two optional ones in a specialized domain, more context is needed.
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 schema fully documents all three parameters (txId, network, itemsPerPage). The description doesn't add any parameter-specific context beyond what's in the schema. The baseline score of 3 reflects adequate parameter documentation through the schema alone.
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 'Get pending transaction information' clearly states the action (get) and resource (pending transaction information), but it's quite generic. It doesn't specify what kind of information is retrieved or differentiate meaningfully from sibling tools like 'api_algod_get_pending_transactions' (plural) or 'api_indexer_lookup_transaction_by_id'.
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 guidance is provided on when to use this tool versus alternatives. With many sibling tools for transaction lookup (e.g., api_algod_get_pending_transactions, api_indexer_lookup_transaction_by_id), the description offers no context about whether this is for pending vs. confirmed transactions, Algod vs. Indexer APIs, or single vs. batch queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_pending_transactionsC
Get all pending transactions
| Name | Required | Description | Default |
|---|---|---|---|
| maxTxns | No | Maximum number of transactions to return | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 'Get all pending transactions', implying a read-only operation, but doesn't disclose behavioral traits like whether it's paginated (hinted by 'itemsPerPage' in schema but not described), rate limits, authentication needs, or what 'all' entails (e.g., network-wide). This leaves significant gaps for a tool with parameters.
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, efficient sentence with zero waste—'Get all pending transactions'—front-loading the core action and resource. It's appropriately sized for a simple tool, though its brevity contributes to gaps in other dimensions.
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 annotations and no output schema, the description is incomplete. It doesn't explain return values (e.g., transaction format, pagination details), behavioral context (e.g., network defaults, error handling), or usage relative to siblings. For a tool with parameters and complex sibling relationships, this leaves the agent under-informed.
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 schema fully documents parameters like 'maxTxns', 'network', and 'itemsPerPage'. The description adds no additional meaning beyond implying retrieval of transactions, which is already clear from the tool name and schema. This meets the baseline for 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 clearly states the verb 'Get' and resource 'all pending transactions', making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'api_algod_get_pending_transaction' (singular) or 'api_algod_get_pending_transactions_by_address', leaving room for ambiguity about scope.
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 guidance is provided on when to use this tool versus alternatives. With siblings like 'api_algod_get_pending_transaction' (singular) and 'api_algod_get_pending_transactions_by_address', the description lacks context on whether this tool is for bulk retrieval, unfiltered access, or specific use cases, offering no help in tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_pending_transactions_by_addressC
Get pending transactions for an address
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Account address | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't disclose whether this is a read-only operation (implied by 'Get'), potential rate limits, authentication requirements, pagination behavior (despite 'itemsPerPage' in schema), or what happens with invalid addresses. The description adds little beyond the basic action.
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, clear sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable 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?
For a tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects like error handling, response format, or pagination details. Given the complexity of blockchain transactions and sibling tools, more context is needed to guide effective 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?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description doesn't add any semantic context beyond implying an address is needed. It doesn't explain parameter interactions (e.g., how network affects results) or provide examples, but the schema adequately covers basics, meeting the baseline.
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 verb ('Get') and resource ('pending transactions for an address'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'api_algod_get_pending_transactions' (which likely gets all pending transactions) or 'api_indexer_lookup_account_transactions' (which might include confirmed transactions), missing explicit sibling distinction.
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 guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., whether the address must be valid or on a specific network), nor does it compare to similar tools like 'api_algod_get_pending_transactions' or transaction lookup tools in the indexer API.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_algod_get_transaction_paramsC
Get suggested transaction parameters
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states 'Get', implying a read-only operation, but doesn't disclose behavioral traits like rate limits, authentication needs, error conditions, or what 'suggested transaction parameters' entails (e.g., fee estimates, validity rounds). This is inadequate for a tool with zero annotation coverage.
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, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple retrieval tool.
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 annotations and no output schema, the description is incomplete. It doesn't explain what 'suggested transaction parameters' includes (e.g., first/last round, fee), potential errors, or typical use cases. For a tool in a complex Algorand ecosystem, this leaves significant gaps for an agent.
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 schema fully documents both parameters (network with enum, itemsPerPage with default). The description adds no parameter-specific information beyond what's in the schema, such as explaining why these parameters are relevant. Baseline 3 is appropriate when schema does the heavy lifting.
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 verb 'Get' and the resource 'suggested transaction parameters', making the purpose understandable. However, it doesn't differentiate from sibling tools like 'api_algod_get_account_info' or 'api_algod_get_pending_transactions', which also retrieve information from the Algorand network. The description is specific but lacks sibling distinction.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., before submitting a transaction), or related tools. With many sibling tools for Algorand operations, this omission leaves the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_haystack_execute_swapA
Execute an optimized token swap via Haystack Router — gets the best route across multiple DEXes (Tinyman V2, Pact, Folks) and LST protocols, then signs and submits the atomic transaction group using the active wallet account. This is an all-in-one tool: quote → sign → submit → confirm. All amounts are in base units (e.g., 1000000 = 1 ALGO).
| Name | Required | Description | Default |
|---|---|---|---|
| fromASAID | Yes | Input asset ID (0 = ALGO, 31566704 = USDC, 312769 = USDt, etc.) | |
| toASAID | Yes | Output asset ID (0 = ALGO, 31566704 = USDC, 312769 = USDt, etc.) | |
| amount | Yes | Amount in base units (e.g., 1000000 = 1 ALGO with 6 decimals) | |
| slippage | No | Slippage tolerance percentage (e.g., 1 = 1%). Recommended: 0.5-1% stable pairs, 1-3% volatile, 3-5% low liquidity | |
| type | No | Quote type: fixed-input (specify input, default) or fixed-output (specify desired output) | fixed-input |
| note | No | Optional note to attach to the input transaction (plain text) | |
| maxGroupSize | No | Maximum transactions in atomic group (default: 16) | |
| maxDepth | No | Maximum routing hops (default: 4) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's an atomic transaction group that signs and submits using the active wallet account, and it confirms the swap. However, it lacks details on permissions needed, rate limits, error handling, or what 'confirm' entails (e.g., wait for blockchain confirmation).
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 appropriately sized and front-loaded, starting with the core purpose and key details. Both sentences earn their place: the first defines the tool's scope and process, and the second clarifies amount units. There is no wasted text, though it could be slightly more structured for readability.
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's complexity (10 parameters, no output schema, no annotations), the description is moderately complete. It covers the high-level process and unit clarification but lacks details on output format, error cases, or confirmation specifics. For a tool that executes financial transactions, more behavioral context would be beneficial to fully guide an agent.
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 schema already documents all 10 parameters thoroughly. The description adds minimal value beyond the schema, only reiterating that amounts are in base units and mentioning the all-in-one process, which doesn't provide additional parameter semantics. Baseline 3 is appropriate when the schema does the heavy lifting.
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's purpose with specific verbs ('execute an optimized token swap') and resources ('via Haystack Router across multiple DEXes and LST protocols'). It distinguishes itself from sibling tools like api_haystack_get_swap_quote by emphasizing the all-in-one nature: 'quote → sign → submit → confirm'.
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 clear context for when to use this tool ('all-in-one tool: quote → sign → submit → confirm'), implying it should be used for complete swap execution rather than just quoting. However, it does not explicitly state when not to use it or name specific alternatives, though the sibling list includes quoting tools like api_haystack_get_swap_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_haystack_get_swap_quoteA
Get an optimized swap quote from Haystack Router — a DEX aggregator that finds the best swap route across multiple Algorand DEXes (Tinyman V2, Pact, Folks) and LST protocols (tALGO, xALGO). Returns the best-price quote with route details, USD values, and price impact. Use this to preview a swap before executing. All amounts are in base units (e.g., 1000000 = 1 ALGO).
| Name | Required | Description | Default |
|---|---|---|---|
| fromASAID | Yes | Input asset ID (0 = ALGO, 31566704 = USDC, 312769 = USDt, etc.) | |
| toASAID | Yes | Output asset ID (0 = ALGO, 31566704 = USDC, 312769 = USDt, etc.) | |
| amount | Yes | Amount in base units (e.g., 1000000 = 1 ALGO with 6 decimals) | |
| type | No | Quote type: fixed-input (specify input amount, default) or fixed-output (specify desired output amount) | fixed-input |
| address | No | User Algorand address (optional, needed for auto opt-in detection) | |
| maxGroupSize | No | Maximum transactions in atomic group (default: 16) | |
| maxDepth | No | Maximum routing hops (default: 4) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it's a read-only preview operation (not execution), mentions the DEX aggregator functionality, specifies base units for amounts, and describes the return content. It could improve by mentioning 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?
Perfectly concise and well-structured: three sentences that each earn their place (purpose, return details, usage guidance). No wasted words, and key information is front-loaded.
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 read-only quote tool with 9 parameters and no output schema, the description provides good context about what the tool does and when to use it. It could be more complete by briefly mentioning the return format or potential limitations, but it's largely adequate given the tool's complexity.
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 schema already documents all parameters thoroughly. The description adds some context about base units and the preview purpose, but doesn't provide additional parameter semantics beyond what's in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
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's purpose with specific verbs ('Get an optimized swap quote') and resources ('from Haystack Router'), and distinguishes it from siblings by specifying it's for previewing swaps before execution, unlike execution tools like api_haystack_execute_swap.
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?
Explicitly states when to use this tool ('Use this to preview a swap before executing'), providing clear context and distinguishing it from execution alternatives. It also mentions the tool's role in the swap workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_haystack_needs_optinA
Check if an Algorand address needs to opt into an asset before swapping. Returns true if opt-in is needed, false otherwise. Always returns false for ALGO (ASA 0). Use before executing a swap to determine if wallet_optin_asset should be called first.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Algorand address to check | |
| assetId | Yes | Asset ID to check opt-in status for | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it returns a boolean (true/false) indicating opt-in necessity, specifies that it always returns false for ALGO (ASA 0), and clarifies its read-only nature through the 'check' verb. However, it doesn't mention potential errors, rate limits, or authentication requirements, which are minor 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?
The description is front-loaded with the core purpose in the first sentence, followed by specific behavioral details and usage guidance. Every sentence earns its place by adding critical information without redundancy, making it highly efficient and well-structured.
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's moderate complexity (4 parameters, no output schema, no annotations), the description is largely complete. It explains the tool's purpose, behavior, and usage context effectively. However, it doesn't detail the return format beyond 'true/false' or address potential edge cases, leaving minor gaps in full contextual 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?
The input schema has 100% description coverage, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what the schema provides, such as explaining the relationship between 'address' and 'assetId' or clarifying 'itemsPerPage' usage. This meets the baseline for 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 clearly states the tool's purpose with a specific verb ('Check'), resource ('Algorand address'), and condition ('needs to opt into an asset before swapping'). It distinguishes itself from siblings like 'wallet_optin_asset' by focusing on pre-swap verification rather than performing the opt-in action.
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 explicit usage guidance: 'Use before executing a swap to determine if wallet_optin_asset should be called first.' It names the alternative tool ('wallet_optin_asset') and specifies when to use it, offering clear context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_account_app_local_statesC
Get account application local states
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Account address | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get' implies a read-only operation, the description doesn't address important behavioral aspects: whether this requires authentication, rate limits, pagination behavior (despite the 'itemsPerPage' parameter), error conditions, or what format the 'local states' data returns. For a tool with no annotation coverage, this leaves significant 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?
The description is maximally concise - a single clear sentence with zero wasted words. It's front-loaded with the essential purpose and contains no unnecessary elaboration. This is an excellent example of efficient communication within the constraints of minimal content.
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 tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'account application local states' are conceptually, what data format to expect, whether results are paginated (implied by itemsPerPage but not stated), or any behavioral constraints. Given the complexity of blockchain data retrieval and the lack of structured metadata, the description should provide more contextual information.
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 schema already fully documents all three parameters (address, network, itemsPerPage). The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain what 'account application local states' are, how they relate to the address parameter, or provide context for the network selection. Baseline 3 is appropriate when the schema does all the parameter documentation work.
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 action ('Get') and resource ('account application local states'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar sibling tools like 'api_indexer_lookup_account_assets' or 'api_indexer_lookup_account_created_applications' - all appear to retrieve different types of account-related data without clear distinction in the description.
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 no guidance on when to use this tool versus alternatives. With many similar 'api_indexer_lookup_account_*' tools available, there's no indication of what distinguishes 'local states' from 'assets', 'created applications', or other account data retrievals. No prerequisites, timing considerations, or alternative suggestions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_account_assetsC
Get account assets
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Account address | |
| limit | No | Maximum number of assets to return | |
| assetId | No | Filter by asset ID | |
| nextToken | No | Token for retrieving the next page of results | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Get account assets' implies a read-only operation but doesn't disclose any behavioral traits: no mention of pagination behavior (implied by 'nextToken' and 'itemsPerPage'), rate limits, authentication requirements, error conditions, or what constitutes an 'asset' in the response. This leaves critical gaps for an agent.
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 extremely concise at three words, with zero wasted text. It's front-loaded with the core action, though this brevity comes at the cost of clarity and completeness.
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 complexity (6 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain the tool's role in the Algorand ecosystem, what 'assets' refers to, pagination behavior, or error handling. For a lookup tool with multiple parameters and sibling overlaps, more context is needed to guide effective 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?
Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds no meaning beyond what the schema provides—it doesn't explain relationships between parameters (e.g., how 'limit' interacts with 'itemsPerPage') or provide examples. Baseline 3 is appropriate when the schema does all the work.
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 'Get account assets' is a tautology that essentially restates the tool name 'api_indexer_lookup_account_assets'. While it indicates a read operation on assets for an account, it lacks specificity about what 'assets' means in this context (e.g., Algorand Standard Assets) and doesn't distinguish it from sibling tools like 'api_indexer_lookup_asset_balances' or 'wallet_get_assets'.
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 no guidance on when to use this tool versus alternatives. With many sibling tools dealing with assets, accounts, and lookups, there's no indication of context, prerequisites, or distinctions from tools like 'api_indexer_lookup_asset_balances' or 'api_algod_get_account_asset_info'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_account_by_idC
Get account information from indexer
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Account address | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get' implies a read-only operation, it doesn't specify whether this is a simple lookup or involves pagination (though the 'itemsPerPage' parameter hints at pagination). It doesn't mention rate limits, authentication requirements, error conditions, or what happens with invalid addresses. The description adds minimal behavioral context beyond the basic operation.
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, efficient sentence with no wasted words. It's front-loaded with the core purpose. However, given the complexity of the tool and lack of annotations, it could benefit from additional context to improve completeness without sacrificing conciseness.
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 tool with 3 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'account information' includes, how pagination works, or differences from sibling tools. The agent lacks sufficient context to use this tool effectively compared to alternatives, especially given the rich ecosystem of account-related tools on this server.
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 schema fully documents all three parameters. The description doesn't add any parameter semantics beyond what's already in the schema—it doesn't explain address format, network implications, or pagination behavior. This meets the baseline for high schema coverage but doesn't provide extra value.
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 'Get account information from indexer' clearly states the verb ('Get') and resource ('account information'), but it's vague about what specific information is retrieved. It doesn't distinguish this tool from sibling tools like 'api_algod_get_account_info' or 'api_indexer_search_for_accounts', leaving ambiguity about when to use this particular lookup method.
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 guidance is provided about when to use this tool versus alternatives. With many sibling tools that also retrieve account information (e.g., 'api_algod_get_account_info', 'api_indexer_search_for_accounts'), the description offers no context about differences in data source, completeness, or performance. This leaves the agent guessing about the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_account_created_applicationsC
Get applications created by this account
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Account address | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. While 'Get' implies a read-only operation, the description doesn't mention pagination behavior (despite the 'itemsPerPage' parameter), rate limits, authentication requirements, or what format the applications are returned in. This leaves significant gaps for a tool that fetches potentially large datasets.
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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a straightforward lookup tool and is perfectly front-loaded.
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 tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'applications' are in this context (Algorand smart contracts?), what data is returned, or how pagination works despite having an 'itemsPerPage' parameter. The agent would be left guessing about the tool's behavior and output format.
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 schema already fully documents all three parameters. The description doesn't add any additional meaning about the parameters beyond what's in the schema (e.g., it doesn't clarify what 'applications' means in this context or provide examples). This meets the baseline for 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 'Get applications created by this account' clearly states the verb ('Get') and resource ('applications created by this account'), making the purpose immediately understandable. However, it doesn't distinguish this tool from similar sibling tools like 'api_indexer_lookup_account_app_local_states' or 'api_indexer_search_for_applications', which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives. With numerous sibling tools that also deal with applications and accounts (e.g., 'api_indexer_lookup_applications', 'api_indexer_search_for_applications'), the agent receives no help in selecting this specific tool for the 'created by' use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_account_transactionsC
Get account transaction history
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Account address | |
| limit | No | Maximum number of transactions to return | |
| beforeTime | No | Only return transactions before this time | |
| afterTime | No | Only return transactions after this time | |
| minRound | No | Only return transactions after this round | |
| maxRound | No | Only return transactions before this round | |
| txType | No | Filter by transaction type | |
| assetId | No | Filter by asset ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states 'Get account transaction history', which implies a read-only operation, but doesn't mention pagination behavior (implied by 'itemsPerPage' parameter), rate limits, authentication requirements, or what the return format looks like (no output schema). This leaves significant gaps for a tool with 10 parameters.
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, efficient sentence with zero wasted words. It's front-loaded with the core purpose ('Get account transaction history'), making it easy to parse quickly. No structural issues are present.
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's complexity (10 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain the return format, pagination, error conditions, or how parameters interact (e.g., time vs. round filters). For a data retrieval tool with many filtering options, more context is needed to guide effective 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?
Schema description coverage is 100%, so the schema fully documents all 10 parameters with clear descriptions. The description adds no additional parameter semantics beyond implying transaction history retrieval, which is already covered by the schema. This meets the baseline for 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 'Get account transaction history' clearly states the verb ('Get') and resource ('account transaction history'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'api_indexer_lookup_account_by_id' or 'api_indexer_search_for_transactions' that might also retrieve transaction-related data, making it somewhat generic.
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 no guidance on when to use this tool versus alternatives. With many sibling tools available (e.g., 'api_indexer_search_for_transactions', 'api_algod_get_pending_transactions_by_address'), there's no indication of context, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_application_boxC
Get application box by name
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Application ID | |
| boxName | Yes | Box name Buffer | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states 'Get' implying a read operation, but doesn't disclose behavioral traits like authentication needs, rate limits, error conditions, or what 'lookup' entails versus 'get'. For a tool with no annotations, this is insufficient to inform safe usage.
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, efficient sentence with zero waste—'Get application box by name' is front-loaded and appropriately sized for its purpose, earning its place without unnecessary elaboration.
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 annotations and no output schema, the description is incomplete. It lacks context on what an 'application box' is, how it differs from similar tools, and what the return value includes. For a lookup tool in a complex ecosystem with many siblings, this leaves significant gaps for an agent.
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 parameters are well-documented in the schema. The description adds no additional meaning beyond implying 'boxName' is used for lookup, which is already clear from the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
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 'Get application box by name' clearly states the action (Get) and resource (application box), but it's vague about what an 'application box' is in this context. It doesn't distinguish this tool from its sibling 'api_indexer_lookup_application_boxes' (plural) or 'api_algod_get_application_box', leaving ambiguity about when to use each.
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 guidance is provided on when to use this tool versus alternatives. With multiple similar tools in the sibling list (e.g., 'api_indexer_lookup_application_boxes', 'api_algod_get_application_box'), the description offers no context about differences, prerequisites, or specific use cases, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_application_boxesC
Get all application boxes
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Application ID | |
| maxBoxes | No | Maximum number of boxes to return | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Get all application boxes' implies a read-only operation, but doesn't disclose behavioral traits like whether it's paginated (hinted by 'itemsPerPage' parameter but not explained), rate limits, authentication needs, or what 'all' means in practice (e.g., across all networks or per network). The description lacks critical context for safe invocation.
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, efficient sentence with no wasted words. However, it's overly terse and under-specified for a tool with four parameters and no annotations, missing opportunities to add necessary context. While structurally simple, it prioritizes brevity over clarity.
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 complexity (4 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'application boxes' are, the tool's behavior (e.g., pagination, network defaults), or return values. For a lookup tool in a crowded sibling set, more context is needed to guide the agent effectively.
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 parameters are fully documented in the schema. The description adds no meaning beyond the schema—it doesn't explain relationships between parameters (e.g., how 'maxBoxes' interacts with 'itemsPerPage'), default behaviors, or semantic nuances. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't detract either.
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 'Get all application boxes' restates the tool name 'api_indexer_lookup_application_boxes' without adding specificity. It uses the verb 'Get' which matches 'lookup', but doesn't clarify what 'application boxes' are or distinguish this from sibling tools like 'api_algod_get_application_boxes' or 'api_indexer_lookup_application_box' (singular). The purpose is tautological rather than informative.
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 guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or compare it to similar tools like 'api_algod_get_application_boxes' (which might be for different networks or data sources). Without any usage instructions, the agent has no basis for choosing this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_application_logsC
Get application log messages
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Application ID | |
| limit | No | Maximum number of logs to return | |
| minRound | No | Only return logs after this round | |
| maxRound | No | Only return logs before this round | |
| txid | No | Filter by transaction ID | |
| sender | No | Filter by sender address | |
| nextToken | No | Token for retrieving the next page of results | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. While 'Get' implies a read-only operation, the description doesn't mention pagination behavior (implied by 'nextToken' parameter), rate limits, authentication requirements, or what format/log level the log messages are returned in. For a tool with 9 parameters and no annotation coverage, this leaves significant 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?
The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the core purpose and contains no unnecessary elaboration. For a simple lookup tool, this level of brevity is appropriate.
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 complexity (9 parameters, no output schema, no annotations), the description is insufficiently complete. It doesn't explain what 'application' means in this Algorand context, what format the logs are returned in, whether this is a paginated API, or any error conditions. The agent would need to infer too much from the parameter names alone.
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, all parameters are documented in the schema itself. The description adds no additional parameter semantics beyond what's already in the schema descriptions. This meets the baseline expectation when schema coverage is complete, but doesn't provide extra value like explaining relationships between parameters (e.g., how minRound/maxRound interact).
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 'Get application log messages' clearly states the verb ('Get') and resource ('application log messages'), making the purpose understandable. However, it lacks specificity about what 'application' refers to in this context (Algorand smart contracts) and doesn't distinguish itself from sibling tools like 'api_indexer_lookup_applications' or 'api_indexer_lookup_account_transactions', which also deal with application-related data.
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 no guidance on when to use this tool versus alternatives. With many sibling tools available for querying application data, transactions, and accounts, there's no indication of whether this is the primary method for accessing logs, when it should be preferred over other lookup tools, or any prerequisites for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_applicationsC
Get application information from indexer
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Application ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions 'Get' which implies a read operation, but doesn't disclose behavioral traits like rate limits, authentication needs, pagination behavior (hinted by 'itemsPerPage' parameter), or what happens if the appId doesn't exist. This is inadequate for a tool with no annotation coverage.
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, efficient sentence with zero wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 annotations and no output schema, the description is incomplete. It doesn't explain what 'application information' includes, how pagination works with 'itemsPerPage', or what the return format looks like. For a tool with 3 parameters and complex sibling context, this leaves significant gaps for an agent.
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 schema fully documents all three parameters (appId, network, itemsPerPage). The description adds no additional meaning beyond what's in the schema, such as explaining the relationship between parameters or typical usage patterns. Baseline 3 is appropriate when schema does all the work.
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 'Get application information from indexer' states the verb ('Get') and resource ('application information'), but it's vague about what specific information is retrieved. It doesn't distinguish from sibling tools like 'api_indexer_search_for_applications' or 'api_algod_get_application_by_id', leaving the scope unclear.
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 guidance is provided on when to use this tool versus alternatives. With many sibling tools that also deal with applications (e.g., 'api_indexer_search_for_applications', 'api_algod_get_application_by_id'), the description offers no context about prerequisites, use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_asset_balancesC
Get accounts holding this asset and their balances
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Asset ID | |
| limit | No | Maximum number of balances to return | |
| currencyGreaterThan | No | Filter by minimum balance | |
| currencyLessThan | No | Filter by maximum balance | |
| nextToken | No | Token for retrieving the next page of results | |
| address | No | Filter by account address | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It mentions 'Get,' implying a read-only operation, but does not specify pagination behavior (beyond parameters like 'limit' and 'nextToken'), rate limits, authentication needs, or error handling. For a tool with 8 parameters and no annotations, this is insufficient to inform an agent adequately.
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, clear sentence: 'Get accounts holding this asset and their balances.' It is front-loaded with the core purpose, has zero wasted words, and is appropriately sized for the tool's complexity. Every part of the sentence earns its place by conveying 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?
Given the tool's complexity (8 parameters, no output schema, no annotations), the description is incomplete. It lacks details on behavioral traits, usage context, and output format. While the schema covers parameters, the description does not address how results are structured or any operational constraints, making it inadequate for full agent 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?
Schema description coverage is 100%, meaning all parameters are documented in the input schema. The description does not add any semantic details beyond what the schema provides (e.g., it doesn't explain how 'assetId' relates to assets or how filtering works). With high schema coverage, the baseline score is 3, as the description doesn't compensate but doesn't detract either.
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's purpose: 'Get accounts holding this asset and their balances.' It specifies the verb ('Get'), resource ('accounts holding this asset'), and what information is retrieved ('their balances'). However, it does not explicitly differentiate from sibling tools like 'api_indexer_lookup_account_assets' or 'api_indexer_search_for_accounts,' which might have overlapping functionality, so it falls short of a perfect score.
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 no guidance on when to use this tool versus alternatives. With many sibling tools related to assets and accounts (e.g., 'api_indexer_lookup_account_assets,' 'api_indexer_search_for_accounts'), there is no indication of context, prerequisites, or exclusions. This lack of guidance could lead to confusion in tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_asset_by_idC
Get asset information and configuration
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Asset ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, the description doesn't mention important behavioral aspects like whether this is a lookup by exact ID only, what format the response takes, whether it's paginated (despite the itemsPerPage parameter), or any rate limits or authentication requirements.
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 extremely concise at just 5 words, which is efficient. However, it's arguably too brief given the tool's context among many similar siblings and the lack of annotations - more information would be helpful but isn't provided.
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 tool with no annotations, no output schema, and operating in a crowded namespace of similar asset tools, the description is inadequate. It doesn't explain what differentiates this from other asset lookup tools, what format the response takes, or provide any context about the 'configuration' aspect mentioned. The agent would struggle to use this tool effectively without trial and error.
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 schema already documents all three parameters adequately. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain what 'asset information and configuration' includes, how the network parameter affects results, or clarify the relationship between assetId lookup and pagination.
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 'Get asset information and configuration' clearly states the verb ('Get') and resource ('asset information and configuration'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'api_algod_get_asset_by_id' or 'api_indexer_search_for_assets' - all appear to retrieve asset data, so differentiation is lacking.
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 guidance is provided about when to use this specific tool versus the many other asset-related tools in the sibling list. The description doesn't mention prerequisites, alternatives, or specific use cases that would help an agent choose this tool appropriately among similar options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_asset_transactionsC
Get transactions involving this asset
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Asset ID | |
| limit | No | Maximum number of transactions to return | |
| beforeTime | No | Only return transactions before this time | |
| afterTime | No | Only return transactions after this time | |
| minRound | No | Only return transactions after this round | |
| maxRound | No | Only return transactions before this round | |
| address | No | Filter by account address | |
| addressRole | No | Filter by address role (sender or receiver) | |
| excludeCloseTo | No | Whether to exclude close-to transactions | |
| nextToken | No | Token for retrieving the next page of results | |
| txid | No | Filter by transaction ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. While 'Get' implies a read operation, the description doesn't mention pagination behavior (though 'nextToken' and 'itemsPerPage' parameters suggest it), rate limits, authentication requirements, or what format the returned transactions will have. For a tool with 13 parameters and no annotation coverage, this is insufficient.
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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a lookup tool and front-loads the core functionality without unnecessary elaboration.
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 tool with 13 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the return format, pagination behavior, error conditions, or provide any context about the transaction data structure. While the schema documents parameters well, the description fails to provide necessary operational context for proper tool invocation.
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 schema already documents all 13 parameters thoroughly. The description adds no additional parameter semantics beyond implying asset-based filtering through 'involving this asset', which is already covered by the required 'assetId' parameter in the schema. This meets the baseline expectation when schema coverage is high.
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 'Get transactions involving this asset' clearly states the verb ('Get') and resource ('transactions involving this asset'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'api_indexer_lookup_account_transactions' or 'api_indexer_search_for_transactions', which also retrieve transactions but with different scopes or filters.
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 no guidance on when to use this tool versus alternatives. With many sibling tools that also retrieve transactions (e.g., 'api_indexer_lookup_account_transactions', 'api_indexer_search_for_transactions'), there's no indication of when this asset-specific lookup is preferred over other transaction retrieval methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_lookup_transaction_by_idC
Get transaction information by ID
| Name | Required | Description | Default |
|---|---|---|---|
| txId | Yes | Transaction ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'Get transaction information' implies a read-only operation, but the description doesn't specify whether this requires authentication, has rate limits, returns paginated results (despite the itemsPerPage parameter), or what format the information comes in. This leaves significant 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?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple lookup tool and front-loads the core purpose immediately.
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 transaction lookup tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'transaction information' includes (fields, format), whether it's historical or pending data, or how pagination works despite the itemsPerPage parameter. The context signals show this is a non-trivial tool (3 parameters, no output schema), requiring more descriptive completeness.
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 input schema already documents all three parameters well. The description adds no additional parameter semantics beyond what's in the schema. The baseline score of 3 reflects adequate parameter documentation through the schema alone.
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 'Get transaction information by ID' clearly states the verb ('Get') and resource ('transaction information'), making the purpose understandable. However, it lacks specificity about what 'transaction information' includes and doesn't differentiate from sibling tools like 'api_algod_get_pending_transaction' or 'api_indexer_search_for_transactions'.
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 no guidance on when to use this tool versus alternatives. With many sibling tools related to transactions (e.g., api_algod_get_pending_transaction, api_indexer_search_for_transactions), there's no indication whether this tool is for historical vs pending transactions, indexer vs algod API, or other contextual distinctions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_search_for_accountsC
Search for accounts with various criteria
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of accounts to return | |
| assetId | No | Filter by asset ID | |
| applicationId | No | Filter by application ID | |
| currencyGreaterThan | No | Filter by minimum balance | |
| currencyLessThan | No | Filter by maximum balance | |
| nextToken | No | Token for retrieving the next page of results | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden but adds minimal behavioral context. It mentions 'various criteria' but doesn't disclose pagination behavior (implied by 'nextToken' and 'itemsPerPage' in schema), rate limits, authentication needs, or what the search returns (e.g., list format). For a search tool with 8 parameters, this is inadequate.
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, efficient sentence with no wasted words. However, it's overly concise to the point of under-specification—it could benefit from slightly more detail (e.g., specifying 'Algorand accounts') without losing brevity.
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's complexity (8 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain the return format, pagination behavior, or error conditions. For a search tool in a crowded namespace, more context is needed to guide effective 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?
Schema description coverage is 100%, so the schema fully documents all 8 parameters. The description adds no meaning beyond the schema—it doesn't explain relationships between parameters (e.g., how 'limit' interacts with pagination) or provide examples. Baseline 3 is appropriate as the schema does the heavy lifting.
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 'Search for accounts with various criteria' clearly states the verb ('search') and resource ('accounts'), but it's vague about scope and doesn't differentiate from sibling tools like 'api_indexer_lookup_account_by_id' or 'api_algod_get_account_info'. It lacks specificity about what kind of accounts (e.g., Algorand blockchain accounts) or what 'various criteria' entails.
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 guidance is provided on when to use this tool versus alternatives. With many sibling tools for account lookup (e.g., 'api_indexer_lookup_account_by_id', 'api_algod_get_account_info'), the description offers no context about use cases, prerequisites, or comparisons. It's a generic statement that fails to help an agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_search_for_applicationsC
Search for applications with various criteria
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of applications to return | |
| creator | No | Filter by creator address | |
| nextToken | No | Token for retrieving the next page of results | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't disclose whether this is a read-only operation, what authentication might be required, rate limits, pagination behavior beyond the 'nextToken' parameter, or what format results are returned in. The description adds no meaningful context beyond the basic action.
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 extremely concise at just 6 words. While it may be too brief for completeness, every word earns its place by conveying the core action (search), target (applications), and scope (various criteria). There's no wasted verbiage.
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 search tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'applications' are in this Algorand context, what the search actually returns, how results are structured, or any behavioral characteristics. The agent would struggle to use this tool effectively based solely on the description.
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 schema already fully documents all 5 parameters. The description mentions 'various criteria' which loosely references the parameters but adds no specific meaning, syntax examples, or constraints beyond what the schema provides. The baseline of 3 is appropriate when the schema does the heavy lifting.
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 'Search for applications with various criteria' states the basic purpose (searching applications) but is vague about what 'applications' means in this context (Algorand smart contracts vs. other types). It doesn't distinguish this tool from sibling search tools like 'api_indexer_search_for_accounts' or 'api_indexer_search_for_assets' beyond the resource type.
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 no guidance on when to use this tool versus alternatives. There are many sibling tools for searching different resources (accounts, assets, transactions) and for looking up applications directly, but the description doesn't help the agent choose between them. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_search_for_assetsC
Search for assets with various criteria
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of assets to return | |
| creator | No | Filter by creator address | |
| name | No | Filter by asset name | |
| unit | No | Filter by asset unit name | |
| assetId | No | Filter by asset ID | |
| nextToken | No | Token for retrieving the next page of results | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions 'various criteria' but doesn't disclose behavioral traits like pagination handling (implied by 'nextToken' and 'itemsPerPage' in schema), rate limits, authentication needs, or what happens on errors. For a search tool with 8 parameters, this is a significant gap in 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 is a single, efficient sentence with no wasted words. It's appropriately sized for a search tool, though it could be more informative. It's front-loaded with the core action but lacks depth that might justify more content.
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 complexity (8 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the return format, pagination behavior, or error handling. For a search tool in a context with many asset-related siblings, more guidance is needed to help the agent use it effectively.
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 schema fully documents all 8 parameters. The description adds no additional meaning beyond implying search criteria, which the schema already covers with detailed parameter descriptions. This meets the baseline score when schema does the heavy lifting.
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 'Search for assets with various criteria' clearly states the action (search) and resource (assets), but it's vague about scope and doesn't differentiate from sibling tools like 'api_indexer_lookup_asset_by_id' or 'api_indexer_lookup_account_assets'. It lacks specificity about what type of assets or what search capabilities are available.
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 guidance is provided on when to use this tool versus alternatives. With many sibling tools related to assets (e.g., 'api_indexer_lookup_asset_by_id', 'api_indexer_lookup_asset_balances'), the description fails to indicate whether this is for broad searches, filtered queries, or paginated results, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_indexer_search_for_transactionsC
Search for transactions with various criteria
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of transactions to return | |
| beforeTime | No | Only return transactions before this time | |
| afterTime | No | Only return transactions after this time | |
| minRound | No | Only return transactions after this round | |
| maxRound | No | Only return transactions before this round | |
| address | No | Filter by account address | |
| addressRole | No | Filter by address role (sender or receiver) | |
| txType | No | Filter by transaction type | |
| assetId | No | Filter by asset ID | |
| applicationId | No | Filter by application ID | |
| currencyGreaterThan | No | Filter by minimum amount | |
| currencyLessThan | No | Filter by maximum amount | |
| round | No | Filter by specific round | |
| nextToken | No | Token for retrieving the next page of results | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions 'search' but doesn't disclose behavioral traits like whether it's read-only (likely, but not stated), pagination behavior (implied by 'nextToken' but not explained), rate limits, authentication needs, or what happens with no criteria. The description adds minimal context beyond the basic action.
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, efficient sentence with no wasted words. It's appropriately sized for a simple search tool, though it could be more informative without sacrificing conciseness. It's front-loaded but under-specified rather than 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?
Given the complexity (16 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain the return format, pagination, error handling, or how criteria interact. For a search tool with many filters, more context is needed to guide effective use, especially without annotations or output schema.
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 schema fully documents all 16 parameters. The description adds no meaning beyond the schema, as it only vaguely references 'various criteria' without detailing any parameters. Baseline 3 is appropriate since the schema does the heavy lifting, but the description doesn't compensate or enhance understanding.
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 'Search for transactions with various criteria' clearly states the verb ('search') and resource ('transactions'), but it's generic and doesn't differentiate from sibling tools like 'api_indexer_lookup_account_transactions' or 'api_indexer_lookup_transaction_by_id'. It lacks specificity about what kind of transactions or search scope.
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 guidance is provided on when to use this tool versus alternatives. With multiple transaction-related sibling tools (e.g., lookup_account_transactions, lookup_transaction_by_id, search_for_accounts), the description offers no context about use cases, prerequisites, or distinctions, leaving the agent to guess based on names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_nfd_browse_nfdsC
Browse NFDs with various filters
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name to filter on | |
| category | No | ||
| saleType | No | ||
| state | No | ||
| owner | No | Owner address to filter on | |
| minPrice | No | Minimum price | |
| maxPrice | No | Maximum price | |
| limit | No | Limit the number of results | |
| offset | No | Offset for pagination | |
| sort | No | Sort order | |
| view | No | View of data to return | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. 'Browse NFDs with various filters' implies a read-only operation, but it doesn't specify whether this is a safe query, what the output format looks like (e.g., list of NFD objects), or any rate limits or authentication requirements. For a tool with 13 parameters and no annotation coverage, this is a significant gap in 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 is a single, efficient sentence with zero waste. It's appropriately sized for a tool name that hints at its function, though it could benefit from more detail given the complexity of the tool. The structure is front-loaded with the core action, making it easy to parse quickly.
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's complexity (13 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain what NFDs are, the expected return format, pagination behavior (implied by 'limit' and 'offset'), or error handling. For a browse/filter tool with rich input options, this leaves the agent poorly equipped to use it effectively without additional context.
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 77%, providing good documentation for most parameters. The description adds minimal value beyond the schema by mentioning 'various filters,' which loosely maps to parameters like name, category, and price filters. However, it doesn't explain the semantics of key parameters (e.g., what 'NFD' stands for, how filters interact, or the meaning of 'view' options), leaving the agent to rely heavily on 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 'Browse NFDs with various filters' states the verb ('browse') and resource ('NFDs'), but it's vague about what NFDs are and what browsing entails. It doesn't distinguish this tool from sibling tools like 'api_nfd_search_nfds' or 'api_nfd_get_nfd', leaving the agent uncertain about when to choose this specific browsing tool over alternatives.
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 no guidance on when to use this tool versus alternatives. With sibling tools like 'api_nfd_search_nfds' and 'api_nfd_get_nfd' available, there's no indication of scenarios where browsing with filters is preferred over searching or fetching a specific NFD. This lack of differentiation leaves the agent without clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_nfd_get_nfdC
Get a specific NFD by name or by its application ID
| Name | Required | Description | Default |
|---|---|---|---|
| nameOrID | Yes | Name of NFD or application ID | |
| view | No | View of data to return | |
| poll | No | Use if polling waiting for state change | |
| nocache | No | Set to true to return a never-cached result | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't clarify if it's safe, idempotent, or has side effects. It also doesn't mention rate limits, authentication requirements, or error handling. The description is minimal and misses key behavioral traits needed for an agent to use it effectively.
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, efficient sentence: 'Get a specific NFD by name or by its application ID.' It's front-loaded with the core action and resource, with zero wasted words. This makes it easy for an agent to parse quickly and understand the tool's basic function.
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 complexity (6 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the return values, error conditions, or behavioral nuances like pagination ('itemsPerPage') or network defaults. For a tool with multiple optional parameters and no structured output, more context is needed to guide effective usage.
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%, meaning all parameters are documented in the schema. The description adds no additional meaning beyond the schema, such as explaining the 'view' options or when to use 'poll' or 'nocache.' It only reiterates the primary parameter ('name or application ID') without providing context. Baseline 3 is appropriate as the schema handles parameter documentation adequately.
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's purpose: 'Get a specific NFD by name or by its application ID.' It specifies the verb ('Get') and resource ('NFD'), and distinguishes it from sibling tools like 'api_nfd_browse_nfds' or 'api_nfd_search_nfds' by focusing on retrieving a single NFD. However, it doesn't explicitly differentiate from 'api_nfd_get_nfd_activity' or 'api_nfd_get_nfd_analytics,' which are also get operations but for different data types, so it's not fully sibling-aware.
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 no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'api_nfd_browse_nfds' (for browsing multiple NFDs) or 'api_nfd_search_nfds' (for searching NFDs), nor does it specify prerequisites, such as network selection or authentication needs. Usage is implied by the action but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_nfd_get_nfd_activityC
Get activity/changes for NFDs
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Array of NFD names to get activity for | |
| type | No | Type of activity to retrieve | |
| afterTime | No | Get activity after this time | |
| limit | No | Limit the number of results | |
| sort | No | Sort order | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the tool 'Get[s] activity/changes,' implying a read-only operation, but doesn't clarify aspects like whether it's safe (non-destructive), requires authentication, has rate limits, returns paginated results, or what the output format is. The description is too minimal to provide adequate behavioral context beyond the basic action.
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, concise sentence: 'Get activity/changes for NFDs.' It's front-loaded with the core action and resource, with zero wasted words. However, it's arguably too brief, bordering on under-specified, which slightly reduces its effectiveness despite the efficient structure.
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's complexity (7 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'activity/changes' means, the return format, or behavioral traits like pagination or safety. While the schema covers parameters well, the lack of annotations and output schema means the description should compensate more to provide a complete picture, which it fails to do.
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 input schema has 100% description coverage, with each parameter well-documented (e.g., 'name' as 'Array of NFD names to get activity for'). The description adds no additional parameter semantics beyond what the schema provides, such as explaining relationships between parameters or usage examples. Given the high schema coverage, a baseline score of 3 is appropriate, as the schema does the heavy lifting.
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 'Get activity/changes for NFDs' states the verb ('Get') and resource ('activity/changes for NFDs'), making the basic purpose clear. However, it's vague about what 'activity/changes' entails (e.g., modifications, transactions, events) and doesn't distinguish this tool from sibling NFD tools like api_nfd_get_nfd or api_nfd_get_nfd_analytics, which also retrieve NFD-related data. It's adequate but lacks specificity.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., monitoring NFD updates), or compare it to sibling tools like api_nfd_browse_nfds or api_nfd_search_nfds, leaving the agent to infer usage based on the name alone. This absence of explicit when-to-use or when-not-to-use information limits its helpfulness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_nfd_get_nfd_analyticsC
Get analytics data for NFDs
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | NFD name to filter on | |
| buyer | No | Buyer address to filter on | |
| seller | No | Seller address to filter on | |
| event | No | Events to filter on | |
| requireBuyer | No | Whether buyer must be present | |
| includeOwner | No | Whether to include current owner | |
| excludeNFDAsSeller | No | Whether to exclude NFDomains as seller | |
| category | No | ||
| minPrice | No | Minimum price | |
| maxPrice | No | Maximum price | |
| limit | No | Limit the number of results | |
| offset | No | Offset for pagination | |
| sort | No | Sort order | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 only states the action ('Get analytics data') without disclosing behavioral traits like whether this is a read-only operation, potential rate limits, authentication requirements, or what format the analytics data returns. For a tool with 15 parameters and no annotations, this is a significant gap.
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, efficient sentence with no wasted words. However, it's overly brief given the tool's complexity (15 parameters, no annotations), which leans toward under-specification rather than optimal conciseness.
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 tool with 15 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'analytics data' includes, how results are structured, or any behavioral context. The high schema coverage helps with parameters, but overall completeness is poor given the tool's complexity.
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 93%, so the schema already documents most parameters well. The description adds no additional parameter semantics beyond implying filtering capabilities through 'analytics data for NFDs.' This meets the baseline score when schema coverage is high.
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 'Get analytics data for NFDs' states the basic action (get) and resource (NFD analytics), but it's vague about what 'analytics data' specifically entails. It doesn't distinguish this tool from sibling NFD tools like api_nfd_get_nfd_activity, which suggests some overlap in purpose without clear differentiation.
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 guidance is provided on when to use this tool versus alternatives. With many sibling tools available (including other NFD tools like api_nfd_browse_nfds and api_nfd_search_nfds), the description offers no context about appropriate use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_nfd_get_nfds_for_addressesC
Get NFDs for specific addresses
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Array of addresses to look up | |
| limit | No | Limit the number of results | |
| view | No | View of data to return | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 'Get' implying a read operation, but doesn't disclose behavioral traits like whether it's idempotent, rate-limited, or requires authentication. It also doesn't describe the return format (e.g., paginated results, error handling), which is critical given the lack of output 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 a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose, making it easy to parse. Every word earns its place by conveying the essential action and target.
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 complexity (5 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain what NFDs are, the response structure, or error conditions. For a lookup tool with multiple parameters and no structured output, more context is needed to guide effective 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?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond implying an array of addresses is required. It doesn't explain parameter interactions (e.g., how 'limit' and 'itemsPerPage' relate) or default values, so it meets the baseline but doesn't enhance understanding.
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 'Get NFDs for specific addresses' clearly states the verb ('Get') and resource ('NFDs'), with the scope 'for specific addresses' indicating it's a lookup operation. However, it doesn't distinguish this from sibling tools like 'api_nfd_get_nfd' (singular) or 'api_nfd_browse_nfds', which might have different use cases.
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 no guidance on when to use this tool versus alternatives like 'api_nfd_get_nfd' (singular lookup) or 'api_nfd_search_nfds' (search-based). It doesn't mention prerequisites, such as needing valid addresses, or context like network defaults, leaving the agent to infer usage from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_nfd_search_nfdsC
Search NFDs with various filters
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name to search for | |
| category | No | ||
| saleType | No | ||
| state | No | ||
| owner | No | Owner address to filter on | |
| minPrice | No | Minimum price | |
| maxPrice | No | Maximum price | |
| limit | No | Limit the number of results | |
| offset | No | Offset for pagination | |
| sort | No | Sort order | |
| view | No | View of data to return | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions 'various filters' but doesn't disclose critical behaviors: whether this is a read-only operation, if it has rate limits, authentication requirements, pagination details beyond offset/limit parameters, error conditions, or response format. For a search tool with 13 parameters, this is insufficient.
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, efficient sentence with no wasted words. However, it's overly terse for a tool with 13 parameters and no annotations, potentially sacrificing clarity for brevity. It's front-loaded but under-specified.
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 complex search tool with 13 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what NFDs are, how results are structured, pagination behavior, error handling, or network implications. The context signals indicate high complexity, but the description fails to provide necessary operational context.
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 77%, providing good baseline documentation. The description adds minimal value by mentioning 'various filters', which loosely references the parameters but doesn't explain their relationships, default behaviors, or practical usage examples. It compensates slightly but doesn't fully address the 23% coverage gap.
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 'Search NFDs with various filters' clearly states the action (search) and target resource (NFDs), but it's vague about what NFDs are (likely Non-Fungible Domains on Algorand) and doesn't differentiate from sibling tools like 'api_nfd_browse_nfds' or 'api_nfd_get_nfd'. It provides basic purpose but lacks specificity and sibling distinction.
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 offers no guidance on when to use this tool versus alternatives. With siblings like 'api_nfd_browse_nfds' and 'api_nfd_get_nfd' available, there's no indication of differences in scope, filtering capabilities, or performance. Users must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_pera_asset_verification_statusA
Get the verification status of an Algorand mainnet asset from Pera Wallet. Returns verification tier (verified, trusted, suspicious, unverified) and explorer URL.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Asset ID to check verification status |
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 discloses the tool's behavior by specifying it's a read operation ('Get') and describes the return format (verification tier and explorer URL). However, it lacks details on error handling, rate limits, authentication requirements, or whether the data is cached/live. The description adds some behavioral context but leaves gaps for a tool with no annotation coverage.
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, efficient sentence that front-loads the core purpose and includes essential output details. Every word earns its place with no redundancy or unnecessary elaboration, making it easy to parse quickly.
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 single-parameter read tool with no output schema, the description is reasonably complete: it states the purpose, specifies the network (Algorand mainnet) and source (Pera Wallet), and outlines the return values. However, without annotations or output schema, it could benefit from more behavioral context (e.g., error cases, performance expectations) to fully guide an agent.
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%, with the single parameter 'assetId' fully documented in the schema as 'Asset ID to check verification status'. The description does not add any additional parameter semantics beyond what the schema provides, such as format examples or valid ranges. Baseline 3 is appropriate when the schema does the heavy lifting.
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 specific action ('Get the verification status'), target resource ('an Algorand mainnet asset from Pera Wallet'), and output details ('verification tier and explorer URL'). It distinguishes itself from sibling tools like 'api_pera_verified_asset_details' and 'api_pera_verified_asset_search' by focusing on status retrieval for a specific asset ID rather than detailed asset information or search functionality.
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 when needing verification status for a specific Algorand asset, but does not explicitly state when to use this tool versus alternatives like 'api_pera_verified_asset_details' (which may provide more detailed information) or 'api_algod_get_asset_by_id' (which retrieves basic asset data). No explicit exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_pera_verified_asset_detailsB
Get detailed information about an Algorand mainnet asset from Pera Wallet, including name, unit name, decimals, total supply, USD value, logo, verification tier, and collectible status.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Asset ID to get detailed information |
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 mentions the tool is for 'Get detailed information,' which implies a read-only operation, but doesn't disclose behavioral traits such as rate limits, authentication requirements, error handling, or data freshness. This leaves significant gaps in understanding how the tool behaves in practice.
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, efficient sentence that front-loads the purpose and lists key attributes without unnecessary words. Every part of the sentence contributes to understanding the tool's scope, making it highly concise and well-structured.
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 annotations and no output schema, the description provides a clear purpose but lacks details on behavioral aspects and output format. It's minimally adequate for a simple read tool but doesn't fully compensate for the absence of structured data, leaving gaps in transparency and usage context.
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%, with the parameter 'assetId' well-documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, such as format constraints or examples. Baseline score of 3 is appropriate since the schema handles the parameter documentation adequately.
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 action ('Get detailed information') and the resource ('an Algorand mainnet asset from Pera Wallet'), with specific attributes listed. It distinguishes itself from sibling tools like 'api_pera_asset_verification_status' and 'api_pera_verified_asset_search' by focusing on comprehensive details rather than verification status or search functionality.
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 guidance is provided on when to use this tool versus alternatives. While it implies usage for retrieving detailed asset data, it doesn't specify prerequisites, exclusions, or compare it to similar tools like 'api_algod_get_asset_by_id' or 'api_indexer_lookup_asset_by_id' for context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_pera_verified_asset_searchA
Search Pera Wallet verified Algorand mainnet assets by name, unit name, or keyword. Returns matching assets with verification status, USD value, and logo.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — asset name, unit name, or keyword | |
| verifiedOnly | No | If true, only return assets with "verified" or "trusted" tier (default: false) |
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 discloses the return format ('matching assets with verification status, USD value, and logo') but omits behavioral details like rate limits, authentication requirements, pagination, error conditions, or whether it's a read-only operation. The description adds some value but leaves significant 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?
The description is a single, well-structured sentence that efficiently conveys purpose, scope, and return format with zero wasted words. It's appropriately sized and front-loaded with 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?
For a search tool with no annotations and no output schema, the description provides adequate basic context (purpose, parameters, return fields) but lacks completeness regarding behavioral traits like error handling, pagination, or authentication. It meets minimum viability but has clear gaps in transparency.
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 schema fully documents both parameters. The description mentions search criteria ('by name, unit name, or keyword') which aligns with the 'query' parameter, but adds no additional semantic context beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
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 specific action ('Search'), target resource ('Pera Wallet verified Algorand mainnet assets'), and search criteria ('by name, unit name, or keyword'). It distinguishes itself from sibling tools like 'api_indexer_search_for_assets' by specifying 'verified' assets and 'Pera Wallet' as the source.
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 searching verified assets, but lacks explicit guidance on when to use this tool versus alternatives like 'api_indexer_search_for_assets' or 'api_pera_verified_asset_details'. No prerequisites, exclusions, or comparative context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tinyman_get_asset_optin_quoteC
Get quote for opting into a Tinyman pool token
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | ID of the pool token asset | |
| initiatorAddr | Yes | Address of the account to opt in | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a 'Get quote' operation, implying it's a read-only, non-destructive query. However, it doesn't clarify whether this requires authentication, has rate limits, returns structured quote data, or what format the quote takes. For a financial quoting tool with zero annotation coverage, this leaves significant 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?
The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a straightforward quoting tool and front-loads the 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?
For a financial quoting tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the quote contains (e.g., fees, minimum amounts, transaction structure), whether the quote is actionable or informational, or how it relates to actual opt-in execution. The agent lacks critical context to understand the tool's output and proper application.
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 schema fully documents all 4 parameters. The description adds no additional parameter semantics beyond what's already in the schema - it doesn't explain relationships between parameters, provide examples, or clarify edge cases. This meets the baseline expectation when schema coverage is complete.
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 action ('Get quote') and target ('for opting into a Tinyman pool token'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from its closest sibling 'api_tinyman_get_validator_optin_quote', which appears to serve a similar opt-in quoting function but for validators rather than pool tokens.
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 no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when this tool is appropriate versus other opt-in or quoting tools, or what context would trigger its use. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tinyman_get_liquidity_quoteC
Get quote for adding liquidity to a pool
| Name | Required | Description | Default |
|---|---|---|---|
| asset1Id | Yes | ID of the first asset | |
| asset2Id | Yes | ID of the second asset | |
| asset1Amount | No | Amount of first asset to add | |
| asset2Amount | No | Amount of second asset to add | |
| mode | Yes | Mode of adding liquidity | |
| version | No | Tinyman protocol version | v2 |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the tool 'Get quote', implying a read-only, non-destructive operation, but does not confirm this or add context about rate limits, authentication needs, or what the quote output entails. The description is minimal and lacks behavioral details beyond the basic action.
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, efficient sentence with zero waste—'Get quote for adding liquidity to a pool'. It is front-loaded and directly conveys the core purpose without unnecessary elaboration, making it highly concise and well-structured.
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 complexity of liquidity quoting with 8 parameters, no annotations, and no output schema, the description is inadequate. It does not explain the quote's format, potential errors, or how the 'mode' parameter affects the quote, leaving significant gaps for an AI agent to understand and use the tool effectively in context.
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 input schema has 100% description coverage, with clear parameter descriptions and enums, so the schema provides comprehensive parameter semantics. The description adds no additional meaning beyond the schema, as it does not explain parameter interactions, constraints, or usage examples. The baseline score of 3 is appropriate 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 clearly states the verb 'Get quote' and the resource 'for adding liquidity to a pool', making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'api_tinyman_get_swap_quote' or 'api_tinyman_get_remove_liquidity_quote', which are also quote-related tools in the same domain.
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 no guidance on when to use this tool versus alternatives, such as other Tinyman quote tools or general liquidity management operations. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tinyman_get_poolC
Get Tinyman pool information by asset pair
| Name | Required | Description | Default |
|---|---|---|---|
| asset1Id | Yes | ID of the first asset in the pool | |
| asset2Id | Yes | ID of the second asset in the pool | |
| version | No | Tinyman protocol version | v2 |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states it 'gets' information, implying a read-only operation, but doesn't clarify if it's idempotent, has rate limits, requires authentication, or what happens with invalid inputs (e.g., non-existent asset pairs). The mention of 'paginated responses' in the schema suggests pagination behavior, but the description doesn't explain this, leaving gaps in understanding how the tool behaves.
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, efficient sentence that front-loads the core purpose ('Get Tinyman pool information') and specifies the key constraint ('by asset pair'). There is no wasted wording or unnecessary elaboration, making it highly concise and well-structured for quick understanding.
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's moderate complexity (5 parameters, no output schema, no annotations), the description is insufficient. It lacks details on return values (e.g., what pool information is included), error handling, or behavioral traits like pagination hinted in the schema. Without annotations or an output schema, the description should provide more context to guide the agent effectively, but it falls short.
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 schema description coverage is 100%, with all parameters well-documented in the schema itself (e.g., asset IDs, version, network, itemsPerPage). The description adds no additional parameter semantics beyond implying asset pairs are required. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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 action ('Get') and resource ('Tinyman pool information') with the specific condition 'by asset pair'. It distinguishes this tool from other Tinyman tools like 'api_tinyman_get_pool_analytics' or 'api_tinyman_get_swap_quote' by focusing on basic pool information retrieval rather than analytics or quotes. However, it doesn't explicitly differentiate from non-Tinyman pool-related tools, keeping it at a 4 rather than a 5.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing asset IDs), compare it to similar tools like 'api_tinyman_get_pool_analytics' for more detailed data, or specify use cases (e.g., checking pool existence vs. getting swap quotes). The absence of any usage context leaves the agent with minimal direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tinyman_get_pool_analyticsC
Get analytics for a Tinyman pool
| Name | Required | Description | Default |
|---|---|---|---|
| asset1Id | Yes | ID of the first asset | |
| asset2Id | Yes | ID of the second asset | |
| version | No | Tinyman protocol version | v2 |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It only states the action ('Get analytics') without detailing permissions, rate limits, side effects, or response format. For a tool with no annotations, this is a significant gap in 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 is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration.
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 complexity of fetching analytics (likely involving data aggregation or metrics), no annotations, and no output schema, the description is incomplete. It lacks details on what analytics are returned, error conditions, or behavioral traits, making it inadequate for informed tool 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?
Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no additional meaning beyond what the schema provides, such as explaining relationships between parameters or usage examples, meeting the baseline for 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 'Get analytics for a Tinyman pool' states the basic action (get) and resource (Tinyman pool analytics), but it's vague about what 'analytics' entails. It doesn't distinguish this tool from sibling tools like 'api_tinyman_get_pool' or 'api_tinyman_get_swap_quote', leaving the specific type of data unclear.
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 guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or exclusions, nor does it reference any sibling tools for comparison, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tinyman_get_pool_creation_quoteC
Get quote for creating a new Tinyman pool
| Name | Required | Description | Default |
|---|---|---|---|
| asset1Id | Yes | ID of the first asset | |
| asset2Id | Yes | ID of the second asset | |
| initiatorAddr | Yes | Address of the account creating the pool | |
| version | No | Tinyman protocol version | v2 |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a 'Get quote' operation, implying it's likely read-only and non-destructive, but doesn't confirm this or mention any side effects, authentication requirements, rate limits, or what the quote output contains. The description is minimal and leaves key behavioral aspects unspecified.
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, efficient sentence that directly states the tool's purpose without any unnecessary words. It's appropriately sized for a tool with a clear, focused function and is front-loaded with the 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?
For a tool with 6 parameters (including required ones) and no output schema, the description is insufficient. It doesn't explain what the quote output contains, how it should be used, or any behavioral context. Given the complexity of pool creation in DeFi and the lack of annotations, more guidance is needed to make this tool usable for an AI agent.
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 schema already documents all parameters thoroughly. The description adds no additional parameter context beyond what's in the schema (e.g., it doesn't explain relationships between asset IDs or the significance of the initiator address). This meets the baseline expectation when schema coverage is complete.
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 action ('Get quote') and resource ('for creating a new Tinyman pool'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'api_tinyman_get_swap_quote' or 'api_tinyman_get_liquidity_quote', which are also quote-related tools in the same domain.
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 no guidance on when to use this tool versus alternatives, prerequisites, or typical use cases. It doesn't mention that this is for pool creation quotes specifically (as opposed to swap or liquidity quotes), nor does it reference related tools like 'api_tinyman_get_pool' for existing pools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tinyman_get_remove_liquidity_quoteC
Get quote for removing liquidity from a pool
| Name | Required | Description | Default |
|---|---|---|---|
| asset1Id | Yes | ID of the first asset | |
| asset2Id | Yes | ID of the second asset | |
| poolTokenAmount | Yes | Amount of pool tokens to burn | |
| initiatorAddr | Yes | Address of the account removing liquidity | |
| slippage | No | Maximum acceptable slippage (e.g., 0.01 for 1%) | |
| singleAssetMode | No | Whether to remove liquidity in single asset mode (v2 only) | |
| version | No | Tinyman protocol version | v2 |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'Get quote' implies a read-only, non-destructive operation, but it doesn't clarify if this is a simulation, whether it requires authentication, rate limits, or what the quote output entails (e.g., estimated asset amounts). This leaves significant gaps for an agent to understand the tool's behavior.
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, efficient sentence that directly states the tool's purpose without any fluff. It is appropriately sized and front-loaded, making it easy to parse quickly.
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 complexity of a 9-parameter tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the quote returns (e.g., asset amounts, fees), potential errors, or how the quote integrates into a broader workflow (e.g., using it before an actual removal). This leaves the agent with incomplete context for effective 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 input schema has 100% description coverage, providing clear details for all 9 parameters. The description adds no additional parameter semantics beyond the schema, such as explaining interactions between parameters (e.g., how 'singleAssetMode' affects the quote). This meets the baseline score since the schema handles the heavy lifting.
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 action ('Get quote') and resource ('removing liquidity from a pool'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'api_tinyman_get_liquidity_quote' or 'api_tinyman_get_swap_quote', which also involve liquidity operations but for different purposes.
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 guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites (e.g., needing pool tokens) or when this is appropriate compared to other liquidity-related tools in the sibling list, such as 'api_tinyman_get_liquidity_quote' for adding liquidity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tinyman_get_swap_quoteC
Get quote for swapping assets
| Name | Required | Description | Default |
|---|---|---|---|
| assetIn | Yes | ID of the input asset | |
| assetOut | Yes | ID of the output asset | |
| amount | Yes | Amount to swap | |
| mode | Yes | Mode of swap | |
| version | No | Tinyman protocol version | v2 |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions 'get quote' but doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires authentication, rate limits, network latency, or what the quote includes (e.g., slippage, fees). For a financial tool with no annotations, this is a significant gap in 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 is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, though it could be more informative. Every word earns its place, making it highly 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?
Given the tool's complexity (7 parameters, financial operations) and lack of annotations or output schema, the description is incomplete. It doesn't explain what a 'quote' returns (e.g., expected output, amounts, fees), behavioral context, or differentiation from siblings, leaving significant gaps for an AI agent to understand and use it correctly.
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 schema already documents all 7 parameters with descriptions and enums. The description adds no additional meaning beyond the schema, such as explaining the 'mode' options (fixedInput vs. fixedOutput) or how 'amount' interacts with them. Baseline 3 is appropriate when schema does the heavy lifting.
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 'Get quote for swapping assets' states the basic action (get quote) and resource (assets), but it's vague about what a 'quote' entails and doesn't distinguish this from sibling tools like 'api_haystack_get_swap_quote' or 'api_tinyman_get_liquidity_quote'. It lacks specificity about the Tinyman protocol context implied by the name.
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 guidance is provided on when to use this tool versus alternatives. With sibling tools like 'api_haystack_get_swap_quote' and 'api_tinyman_get_liquidity_quote', the description offers no context on differences (e.g., protocol, use cases, or prerequisites), leaving the agent to guess based on names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tinyman_get_validator_optin_quoteC
Get quote for opting into Tinyman validator app
| Name | Required | Description | Default |
|---|---|---|---|
| initiatorAddr | Yes | Address of the account to opt in | |
| version | No | Tinyman protocol version | v2 |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It doesn't disclose that this is a read-only quote generation (not an actual opt-in), doesn't mention network requirements, rate limits, or what the quote output contains. The description is functionally correct but lacks operational details an agent would need.
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, efficient sentence with zero wasted words. It's appropriately sized for a tool with good schema documentation and gets straight to the point without unnecessary elaboration.
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 tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the quote contains, how it should be used, or what the next steps are after obtaining it. The agent would be left guessing about the tool's output and integration into a workflow.
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 schema already fully documents all 4 parameters. The description adds no additional parameter semantics beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.
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 action ('Get quote') and target ('for opting into Tinyman validator app'), providing a specific verb+resource combination. However, it doesn't differentiate from its sibling 'api_tinyman_get_validator_optout_quote' which is very similar but for opt-out instead of opt-in.
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 guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (like needing to prepare a transaction after getting the quote), nor does it contrast with other opt-in tools like 'api_tinyman_get_asset_optin_quote' or 'make_app_optin_txn'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tinyman_get_validator_optout_quoteC
Get quote for opting out of Tinyman validator app
| Name | Required | Description | Default |
|---|---|---|---|
| initiatorAddr | Yes | Address of the account to opt out | |
| version | No | Tinyman protocol version | v2 |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get quote' implies a read-only, non-destructive operation, it doesn't clarify whether this is a simulation, what permissions are needed, rate limits, or what format the quote returns. For a financial/blockchain tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
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, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a tool with good schema documentation, though it could potentially benefit from slightly more context given the lack of annotations.
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 4 parameters with 100% schema coverage but no annotations and no output schema, the description is minimally adequate. It states what the tool does but doesn't provide crucial context about what the quote contains, how to use it, or behavioral constraints. For a blockchain operation involving financial transactions, more guidance would be helpful.
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 schema already documents all 4 parameters thoroughly. The description adds no additional parameter context beyond what's in the schema - it doesn't explain relationships between parameters or provide usage examples. This meets the baseline for high schema coverage but doesn't add value.
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 action ('Get quote for opting out') and the target ('Tinyman validator app'), providing a specific verb+resource combination. However, it doesn't differentiate from its sibling 'api_tinyman_get_validator_optin_quote' which handles the opposite operation, missing an opportunity for clear sibling distinction.
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 no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when opt-out is appropriate, or what to do with the quote once obtained. The sibling list includes both opt-in and opt-out quote tools, but no comparison is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_group_idC
Assign a group ID to a list of transactions
| Name | Required | Description | Default |
|---|---|---|---|
| transactions | Yes | Array of transaction objects to be assigned a group ID | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers limited behavioral insight. It implies a write operation ('Assign'), suggesting mutation, but doesn't disclose permissions needed, side effects (e.g., whether transactions are modified in-place), rate limits, or error handling. This is inadequate for a tool that likely alters data.
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, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. No structural issues are present.
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 likely performs a mutation (assigning IDs) with no annotations and no output schema, the description is insufficient. It lacks details on what a 'group ID' is, how it's used, what the return value looks like, or any error conditions. For a 3-parameter tool with potential side effects, this leaves critical gaps.
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 schema fully documents parameters. The description adds no additional meaning beyond implying 'transactions' are assigned a group ID, which is already clear from the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
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 action ('Assign') and target resource ('group ID to a list of transactions'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'api_indexer_search_for_transactions' or 'decode_signed_transaction' that also handle transactions, leaving some ambiguity about its specific role in the broader toolset.
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 guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing transaction objects in a specific format), context (e.g., grouping for batch processing), or exclusions (e.g., not for single transactions). This leaves the agent with minimal direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bigint_to_bytesC
Convert a BigInt to bytes
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | BigInt value as a string to convert to bytes | |
| size | Yes | Size of the resulting byte array | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the conversion action but doesn't explain what 'bytes' means in this context (e.g., byte array format, endianness), error handling, or performance characteristics. For a data transformation tool with zero annotation coverage, this leaves significant 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?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a straightforward conversion tool.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain the output format (e.g., byte array representation), error conditions, or why parameters like 'network' and 'itemsPerPage' are relevant to a BigInt conversion. For a tool with 4 parameters and no structured output documentation, more context is needed.
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 schema fully documents all four parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't clarify the relationship between 'value' and 'size', or why 'network' and 'itemsPerPage' are included). Baseline 3 is appropriate when the schema does all the work.
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's purpose: converting a BigInt to bytes. It uses specific verbs ('Convert') and identifies the resource ('BigInt'). However, it doesn't distinguish itself from sibling tools like 'bytes_to_bigint' (which performs the inverse operation), missing an opportunity for clearer differentiation.
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 no guidance on when to use this tool versus alternatives. There's no mention of sibling tools (like 'bytes_to_bigint'), typical use cases, or prerequisites. The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bytes_to_bigintC
Convert bytes to a BigInt
| Name | Required | Description | Default |
|---|---|---|---|
| bytes | Yes | Bytes in hexadecimal format to convert to a BigInt | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states it's a conversion tool but doesn't disclose behavioral traits like whether it's read-only (likely yes), what happens with invalid input, whether it's computationally expensive, or what format the BigInt output takes. The description is minimal and lacks operational context.
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 maximally concise - a single sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple conversion tool and front-loaded with the core functionality.
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 3 parameters (one required, two with defaults), no annotations, and no output schema, the description is inadequate. It doesn't explain the Algorand blockchain context, doesn't describe the output format, and doesn't address why pagination parameters ('itemsPerPage') are relevant to a conversion operation. The minimal description leaves too many questions unanswered.
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 schema already documents all three parameters thoroughly. The description doesn't add any meaning beyond what the schema provides - it doesn't explain why 'network' and 'itemsPerPage' are relevant to a byte conversion operation, or provide examples of hexadecimal byte strings.
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 'Convert bytes to a BigInt' clearly states the verb ('convert') and resource ('bytes to a BigInt'), but it's vague about the specific context. It doesn't differentiate from its sibling tool 'bigint_to_bytes' which performs the inverse operation, nor does it mention the Algorand blockchain context implied by the parameters.
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 guidance is provided on when to use this tool versus alternatives. It doesn't mention its sibling 'bigint_to_bytes' for reverse conversions, nor does it explain the Algorand-specific parameters (network, itemsPerPage) that suggest this is for blockchain data processing rather than general byte conversion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compile_tealC
Compile TEAL source code
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Logic that executes when the app is called (compiled TEAL as base64) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the action ('compile') but doesn't describe what happens during compilation (e.g., validation, optimization), error handling, output format (though no output schema exists), or side effects (e.g., network calls). For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
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, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately clear. Every word earns its place by conveying essential information without redundancy.
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 complexity of compilation (a non-trivial operation), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., compiled bytecode, errors), behavioral traits (e.g., network dependency for 'network' parameter), or how 'itemsPerPage' relates to compilation. For a tool with these gaps, more context is needed.
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 schema fully documents all three parameters (source, network, itemsPerPage). The description adds no additional parameter information beyond what's in the schema, such as TEAL version support or format details for 'source'. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.
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 'Compile TEAL source code' clearly states the verb ('compile') and resource ('TEAL source code'), making the basic purpose understandable. However, it doesn't specify what compilation produces (e.g., bytecode, program ID) or how it differs from sibling tools like 'disassemble_teal' or transaction creation tools, leaving the scope somewhat vague.
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 guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing TEAL source), typical use cases (e.g., before deploying a smart contract), or relationships with sibling tools like 'disassemble_teal' (reverse operation) or transaction tools that might use compiled output.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_accountC
Create a new Algorand account
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a creation operation but provides no information about what 'create' entails - whether this generates keys, stores credentials, requires authentication, has side effects, or what the expected output looks like. For a tool that presumably creates cryptographic assets, this is a significant gap.
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, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the essential information immediately.
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 tool that creates cryptographic accounts with no annotations and no output schema, the description is insufficient. It doesn't explain what gets created (keys, addresses, mnemonics?), whether credentials are stored, what permissions are needed, or what the tool returns. Given the complexity of account creation in a blockchain context, this leaves critical gaps.
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 schema already fully documents both parameters. The description adds no additional parameter information beyond what's in the schema. The baseline score of 3 reflects adequate parameter documentation through the schema alone, though the description contributes nothing extra.
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 action ('Create') and resource ('new Algorand account'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'wallet_add_account' or 'rekey_account' that might also involve account creation or modification.
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 guidance is provided about when to use this tool versus alternatives like 'wallet_add_account' or 'rekey_account'. The description gives no context about prerequisites, when this tool is appropriate, or what alternatives exist for similar functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decode_addressB
Decode an Algorand address to a public key
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address in standard Algorand format (58 characters) to decode | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states what the tool does but reveals nothing about behavioral traits: no information about error conditions, rate limits, authentication requirements, or what happens with invalid addresses. For a tool with no annotation coverage, this is a significant gap.
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, efficient sentence that states exactly what the tool does with zero wasted words. It's appropriately sized and front-loaded with the core functionality.
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 transformation tool with no output schema, the description is minimally complete but lacks important context. It doesn't explain what format the public key is returned in, whether there are error conditions for invalid addresses, or how this differs from similar address-related tools among the many siblings.
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 schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. The baseline of 3 is appropriate when the schema does the heavy lifting.
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 verb ('decode') and resource ('Algorand address'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'validate_address' or 'encode_address' which likely perform related but distinct operations on addresses.
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 guidance is provided about when to use this tool versus alternatives. With many sibling tools that work with addresses (validate_address, encode_address, create_account, etc.), the description offers no context about when decoding is appropriate versus validating or encoding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decode_objC
Decode msgpack bytes to an object
| Name | Required | Description | Default |
|---|---|---|---|
| bytes | Yes | Base64-encoded msgpack bytes to decode | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the basic action ('decode') but doesn't mention error handling, performance characteristics, or what the decoded object structure looks like. For a tool with no annotations, this leaves significant gaps in understanding its behavior beyond the core function.
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, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by specifying the decoding target ('msgpack bytes') and outcome ('to an object').
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 complexity of decoding operations and the lack of annotations and output schema, the description is incomplete. It doesn't explain the decoded object's format, potential errors, or how parameters like 'network' and 'itemsPerPage' affect the decoding process. For a tool with three parameters and no output schema, more context is needed to understand its full behavior.
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 schema fully documents all three parameters. The description doesn't add any meaning beyond what the schema provides—it doesn't explain parameter interactions or provide examples. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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 'Decode msgpack bytes to an object' clearly states the verb ('decode') and resource ('msgpack bytes'), but it's vague about the specific object type or context. It doesn't distinguish from sibling tools like 'decode_address' or 'decode_signed_transaction', which perform similar decoding operations but on different data types. The purpose is understandable but lacks specificity.
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 guidance is provided on when to use this tool versus alternatives. With many sibling tools involving decoding (e.g., 'decode_address', 'decode_signed_transaction'), the description doesn't specify that this is for msgpack-encoded data specifically or mention any prerequisites or typical use cases. Usage is implied only by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decode_signed_transactionA
Decode base64 signed transaction bytes back into a transaction object with signature details. Accepts the blob from sign_transaction or wallet_sign_transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| bytes | Yes | Base64-encoded signed transaction bytes (blob from sign_transaction or wallet_sign_transaction) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 discloses the tool's read-only nature (decoding) and input source, but lacks details on error handling, performance, or output format. It doesn't contradict annotations (none exist), but could provide more behavioral context for a tool that parses cryptographic data.
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 concise sentences with zero waste. The first sentence states the core purpose, and the second provides crucial usage context. Every word earns its place, and it's front-loaded with the primary function.
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 annotations and no output schema, the description adequately covers the tool's purpose and input source. However, for a decoding tool that returns a transaction object, it should ideally mention what signature details are included or the structure of the decoded object. The absence of output schema increases the need for more completeness.
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 schema fully documents all three parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain network implications or pagination behavior). This meets the baseline for 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 clearly states the specific action ('decode base64 signed transaction bytes') and the resource ('transaction object with signature details'). It distinguishes from siblings by specifying the input source ('blob from sign_transaction or wallet_sign_transaction'), making it unambiguous among many transaction-related tools.
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 clear context for when to use this tool ('Accepts the blob from sign_transaction or wallet_sign_transaction'), indicating it's for decoding already-signed transactions. However, it doesn't explicitly state when not to use it or name alternatives (e.g., for unsigned transactions), which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decode_uint64C
Decode bytes to a uint64
| Name | Required | Description | Default |
|---|---|---|---|
| bytes | Yes | Bytes in hexadecimal format to decode into a uint64 | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the action ('decode') but does not explain what happens on success or failure, error conditions, rate limits, or permissions required. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
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, efficient sentence with zero waste. It is front-loaded and appropriately sized for the tool's simple purpose, making it easy to parse quickly.
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's complexity (decoding operation with 3 parameters) and lack of annotations or output schema, the description is incomplete. It does not cover behavioral aspects, error handling, or output format, which are crucial for an agent to use the tool correctly. The schema covers parameters well, but overall context is lacking.
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 schema already documents all parameters thoroughly. The description does not add any meaning beyond what the schema provides, such as explaining the relationship between 'bytes' and 'network' or clarifying the purpose of 'itemsPerPage' in a decoding context. Baseline 3 is appropriate when the schema does the heavy lifting.
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 'Decode bytes to a uint64' clearly states the verb ('decode') and resource ('bytes to a uint64'), but it's vague about the specific context or format. It doesn't distinguish from sibling tools like 'decode_address' or 'bytes_to_bigint', which perform similar decoding operations on different data types or outputs.
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 guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, context, or comparisons to sibling tools like 'decode_address' or 'bytes_to_bigint', leaving the agent to infer usage based on parameter names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disassemble_tealC
Disassemble TEAL bytecode back to source
| Name | Required | Description | Default |
|---|---|---|---|
| bytecode | Yes | TEAL bytecode to disassemble into source code | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the core action but lacks details on permissions, rate limits, side effects, or output format. For a tool that performs a transformation operation, this leaves significant gaps in understanding how it behaves beyond the basic function.
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, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it immediately understandable with zero wasted verbiage.
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 transformation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what format the disassembled source returns in, whether there are any limitations or edge cases, or how the network parameter affects the disassembly process. The minimal description leaves too many operational questions unanswered.
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 schema fully documents all three parameters. The description doesn't add any parameter-specific information beyond what's already in the schema descriptions, resulting in the baseline score of 3 where the schema does the heavy lifting.
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 verb ('Disassemble') and resource ('TEAL bytecode') with the outcome ('back to source'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential siblings like 'compile_teal' or other TEAL-related tools in the list, which would require explicit comparison.
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 guidance is provided on when to use this tool versus alternatives. The sibling tools list includes 'compile_teal', which is a logical inverse operation, but the description doesn't mention this relationship or any prerequisites, leaving the agent to infer usage context independently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
encode_addressC
Encode a public key to an Algorand address
| Name | Required | Description | Default |
|---|---|---|---|
| publicKey | Yes | Public key in hexadecimal format to encode into an address | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe output format, error conditions, rate limits, or side effects. For a tool that performs encoding (potentially with network-specific behavior), this leaves significant gaps in understanding how it behaves.
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, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a straightforward encoding tool and gets directly to the point.
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 tool with no annotations and no output schema, the description is insufficient. It doesn't explain what format the encoded address returns in, whether there are validation requirements for the public key, or how network selection affects the output. Given the complexity of cryptographic encoding and the lack of structured metadata, more descriptive context is needed.
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 schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. This meets the baseline expectation when schema does the heavy lifting.
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 action ('encode') and target resource ('public key to an Algorand address'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'decode_address' or 'validate_address' that also work with Algorand addresses, which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives like 'decode_address' or 'validate_address', nor does it mention prerequisites or typical use cases. It's a standalone statement without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
encode_objC
Encode an object to msgpack format
| Name | Required | Description | Default |
|---|---|---|---|
| obj | Yes | Object to encode | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the tool encodes to msgpack format, implying a transformation, but lacks details on error handling, performance, or side effects. For a tool with no annotations, this is a significant gap in 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 is a single, efficient sentence with zero waste. It's front-loaded and directly states the tool's function without unnecessary elaboration, making it highly concise and well-structured.
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's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It explains the core function but lacks details on output format, error cases, or integration with sibling tools. Without annotations or output schema, more context would improve completeness.
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 schema fully documents the three parameters. The description adds no additional meaning beyond implying the 'obj' parameter is the input for encoding. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't detract either.
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 'Encode an object to msgpack format' clearly states the verb ('encode') and resource ('object'), but it's vague about the specific context or purpose. It doesn't distinguish this tool from its sibling 'decode_obj', which handles the reverse operation, leaving ambiguity about when to use each.
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 no guidance on when to use this tool versus alternatives. Given the sibling tool 'decode_obj' exists for decoding, the description should explicitly mention it as the complementary tool or specify use cases like data serialization for storage or transmission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
encode_uint64C
Encode a uint64 to bytes
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Uint64 value as a string to encode into bytes | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states the core function but lacks critical details: whether this is a read-only operation, what permissions are needed, how errors are handled, or what the output format looks like (e.g., byte array encoding). For a tool with no annotation coverage, this is insufficient.
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 extremely concise—a single sentence with zero wasted words. It's front-loaded with the core purpose and uses clear terminology. Every word earns its place, making it easy to parse quickly.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain the tool's role in the broader Algorand ecosystem (e.g., why uint64 encoding is needed), what the output looks like, or how errors are handled. For a tool with three parameters and no structured behavioral hints, more context is required.
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 schema fully documents all three parameters. The description adds no parameter-specific information beyond what's in the schema. It doesn't explain why 'network' or 'itemsPerPage' are relevant for a uint64 encoding operation, leaving semantic gaps despite the schema's technical completeness.
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's purpose: 'Encode a uint64 to bytes'. It specifies the verb ('encode') and resource ('uint64'), making the function unambiguous. However, it doesn't differentiate from sibling tools like 'bigint_to_bytes' or 'encode_address', which perform similar encoding operations on different data types.
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 no guidance on when to use this tool versus alternatives. There's no mention of sibling tools like 'bigint_to_bytes' for other integer types or 'encode_address' for address encoding, nor does it specify prerequisites or typical use cases for uint64 encoding in the Algorand context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
encode_unsigned_transactionA
Encode a transaction object into base64 unsigned transaction bytes (msgpack). Accepts output from make_*_txn or assign_group_id.
| Name | Required | Description | Default |
|---|---|---|---|
| transaction | Yes | Transaction object (from make_*_txn or assign_group_id) to encode as unsigned transaction bytes | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states the tool encodes to 'unsigned transaction bytes,' implying it's a read-only transformation, but doesn't disclose behavioral traits like error handling, performance characteristics, or whether it validates the transaction object. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
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, efficient sentence with zero waste. It front-loads the core purpose and includes essential context without redundancy. Every word earns its place.
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 annotations and no output schema, the description is adequate but incomplete. It explains what the tool does and its input sources, but lacks details on output format beyond 'base64 unsigned transaction bytes,' error conditions, or performance implications. For a tool with 3 parameters and no structured safety hints, more context would be helpful.
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 schema already documents all parameters. The description adds minimal value beyond the schema by implying the 'transaction' parameter comes from specific sources ('make_*_txn or assign_group_id'), but doesn't explain parameter interactions or usage nuances. Baseline 3 is appropriate when schema does the heavy lifting.
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 specific action ('encode'), the target ('transaction object'), and the output format ('base64 unsigned transaction bytes (msgpack)'). It distinguishes from sibling tools like 'decode_signed_transaction' or 'sign_transaction' by focusing on encoding rather than decoding or signing.
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 explicit context for when to use this tool: 'Accepts output from make_*_txn or assign_group_id.' This gives clear prerequisites. However, it doesn't mention when NOT to use it or name alternatives (e.g., 'encode_obj' for general encoding).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_algorand_qrcodeC
Generate an Algorand URI and QR code according to ARC-26 specification
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Algorand address in standard format (58 characters) | |
| label | No | Label for the address (e.g. name of receiver) | |
| amount | No | Amount in microAlgos (must be non-negative) | |
| asset | No | Asset ID for ASA transfers | |
| note | No | URL-encoded note that can be modified by user | |
| xnote | No | URL-encoded note that must not be modified by user | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states what the tool generates but doesn't disclose behavioral traits such as whether it's read-only (likely, but not confirmed), what format the output takes (e.g., image data vs. URI string), error conditions, or performance characteristics. The description is minimal and lacks operational context.
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, efficient sentence with zero wasted words. It front-loads the core purpose and includes the technical standard reference. Every element earns its place, making it easy to parse quickly.
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 complexity (8 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain the output format (e.g., base64 image, JSON with URI and QR code), error handling, or how the QR code is intended to be used. For a tool with many optional parameters and no structured output documentation, more context is needed.
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 schema fully documents all 8 parameters. The description adds no parameter-specific information beyond implying that parameters are used to construct the URI/QR code per ARC-26. This meets the baseline for high schema coverage but doesn't enhance understanding of how parameters interact or affect output.
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 action ('Generate') and the output ('Algorand URI and QR code'), with reference to the technical specification ('ARC-26'). It distinguishes this tool from siblings by focusing on QR code generation rather than transaction creation or data queries. However, it doesn't explicitly differentiate from potential similar tools not in the sibling list.
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 guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, typical use cases (e.g., payment requests), or how it relates to other Algorand tools in the sibling list. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_application_addressC
Get the address for a given application ID
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Application ID to get the address for | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the tool retrieves an address but doesn't clarify if this is a read-only operation, whether it requires authentication, what network it queries by default, or how pagination works with 'itemsPerPage'. For a tool with 3 parameters and no annotations, this is a significant gap in 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 is a single, clear sentence with zero waste: 'Get the address for a given application ID'. It's front-loaded and efficiently conveys the core purpose without unnecessary elaboration, making it easy for an agent to parse quickly.
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's complexity (3 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the address represents (e.g., creator address, escrow address), how pagination affects results, or what the return format is. For a tool in a crowded namespace with many siblings, more context is needed to ensure correct usage.
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 schema fully documents all parameters (appId, network, itemsPerPage). The description adds no additional meaning beyond implying 'appId' is required, which is already in the schema. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.
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's purpose: 'Get the address for a given application ID'. It specifies the verb ('Get') and resource ('address'), making the intent unambiguous. However, it doesn't differentiate from sibling tools like 'api_algod_get_application_by_id' or 'api_indexer_lookup_applications', which might retrieve similar application-related data.
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 no guidance on when to use this tool versus alternatives. With many sibling tools related to applications and addresses (e.g., 'api_algod_get_account_application_info', 'api_indexer_lookup_account_created_applications'), there's no indication of prerequisites, context, or distinctions. This leaves the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledge_docC
Get markdown content for specified knowledge documents
| Name | Required | Description | Default |
|---|---|---|---|
| documents | Yes | Array of document keys (e.g. ["ARCs:specs:arc-0020.md"]) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions 'Get markdown content' which implies a read operation, but doesn't specify permissions needed, rate limits, pagination behavior (despite an 'itemsPerPage' parameter), error conditions, or what happens if documents aren't found. This leaves significant gaps for a tool with 3 parameters.
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, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded with the core purpose.
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 tool with 3 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns (beyond 'markdown content'), how pagination works with 'itemsPerPage', error behavior, or any operational context. The agent would have significant gaps in understanding how to use this tool effectively.
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 schema fully documents all parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., format examples, constraints, or relationships between parameters). This meets the baseline for 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 clearly states the action ('Get markdown content') and resource ('specified knowledge documents'), making the tool's purpose immediately understandable. However, it doesn't differentiate this tool from potential siblings (though none appear to be knowledge-document-related in the provided list), which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives, prerequisites, or any context about its role relative to other tools. It's a bare statement of functionality without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_app_call_txnC
Create an application call transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| appIndex | Yes | ID of the application to call | |
| appArgs | No | Arguments to pass to the application (max 16 arguments) | |
| accounts | No | Accounts whose local state may be accessed (max 4 accounts) | |
| foreignApps | No | IDs of apps whose global state may be accessed (max 8 apps) | |
| foreignAssets | No | IDs of assets that may be accessed (max 8 assets) | |
| note | No | Transaction note field (up to 1000 bytes) | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the tool creates a transaction but doesn't clarify if this is a read-only operation, if it requires authentication, what happens on success/failure, or any side effects (e.g., network submission). For a transaction-creation tool with zero annotation coverage, this is a significant gap in 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 is a single, efficient sentence with no wasted words. It's front-loaded with the core action, though it could be more structured (e.g., by including key context). The brevity is appropriate but borders on under-specification.
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 complexity of creating an Algorand transaction (11 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns (e.g., a transaction object ready for signing), error conditions, or how it fits into broader workflows (e.g., needing subsequent signing and submission). This leaves critical gaps for an agent.
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 schema already documents all 11 parameters thoroughly. The description adds no additional meaning beyond the schema's parameter details (e.g., it doesn't explain relationships between parameters or provide usage examples). Baseline 3 is appropriate when the schema does the heavy lifting.
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 'Create an application call transaction' states the action (create) and resource (application call transaction), providing a basic purpose. However, it's vague about what an 'application call transaction' entails in the Algorand context and doesn't distinguish this tool from sibling tools like make_app_clear_txn or make_app_optin_txn, which also create specific transaction types.
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 guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing an Algorand account), context (e.g., interacting with smart contracts), or exclusions (e.g., when other transaction types like make_app_create_txn would be more appropriate). This leaves the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_app_clear_txnC
Create an application clear state transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| appIndex | Yes | ID of the application to clear state from | |
| note | No | Transaction note field (up to 1000 bytes) | |
| lease | No | Lease enforces mutual exclusion of transactions (32 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| appArgs | No | Arguments to pass to the application (max 16 arguments) | |
| accounts | No | Accounts whose local state may be accessed (max 4 accounts) | |
| foreignApps | No | IDs of apps whose global state may be accessed (max 8 apps) | |
| foreignAssets | No | IDs of assets that may be accessed (max 8 assets) | |
| onComplete | No | Application call completion behavior (0=NoOp, 1=OptIn, 2=CloseOut, 3=ClearState, 4=UpdateApplication, 5=DeleteApplication) | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but provides minimal information. It states this 'creates' a transaction but doesn't clarify whether this actually submits the transaction, what permissions are required, what the expected outcome is, or any side effects. The term 'clear state' is not explained, leaving the agent to guess at the tool's behavior.
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 extremely concise - a single sentence with no wasted words. However, this conciseness comes at the cost of being under-specified for a complex tool with 14 parameters. The structure is front-loaded but lacks necessary elaboration.
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 complex transaction creation tool with 14 parameters, no annotations, and no output schema, the description is severely incomplete. It doesn't explain what the tool returns, what 'clear state' means operationally, when this transaction type is used, or how it differs from similar application transaction tools. The agent would struggle to use this tool correctly without significant external knowledge.
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 description provides no parameter information beyond what's already in the schema. With 100% schema description coverage, the baseline is 3. However, the description doesn't add any context about how parameters interact (e.g., that 'onComplete' should typically be 3 for clear state transactions, or how 'appArgs' might be used during clearing).
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 'Create an application clear state transaction' clearly states the action (create) and resource (application clear state transaction), but it's vague about what this operation actually does. It doesn't explain what 'clear state' means in the Algorand context or how this differs from similar tools like make_app_closeout_txn or make_app_delete_txn.
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 guidance is provided about when to use this tool versus alternatives. With multiple sibling tools for application transactions (make_app_call_txn, make_app_closeout_txn, make_app_create_txn, etc.), the description offers no context about when this specific clear state transaction is appropriate versus other application transaction types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_app_closeout_txnC
Create an application close out transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| appIndex | Yes | ID of the application to close out from | |
| note | No | Transaction note field (up to 1000 bytes) | |
| lease | No | Lease enforces mutual exclusion of transactions (32 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| appArgs | No | Arguments to pass to the application (max 16 arguments) | |
| accounts | No | Accounts whose local state may be accessed (max 4 accounts) | |
| foreignApps | No | IDs of apps whose global state may be accessed (max 8 apps) | |
| foreignAssets | No | IDs of assets that may be accessed (max 8 assets) | |
| onComplete | No | Application call completion behavior (0=NoOp, 1=OptIn, 2=CloseOut, 3=ClearState, 4=UpdateApplication, 5=DeleteApplication) | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 'Create' but doesn't disclose behavioral traits such as whether this is a mutating operation, if it requires specific permissions, potential side effects (e.g., affecting application state), or error conditions. This leaves critical gaps for a tool that likely modifies blockchain state.
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, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to scan and understand quickly without unnecessary elaboration.
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 complexity (14 parameters, no annotations, no output schema), the description is incomplete. It lacks context on what the tool returns (e.g., a transaction object), error handling, or how it fits into broader workflows (e.g., signing and sending the transaction). For a mutating blockchain tool, this leaves significant gaps for an agent.
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 schema fully documents all 14 parameters. The description adds no additional meaning beyond the schema, such as explaining how parameters interact (e.g., 'onComplete' defaulting to 2 for close-out) or providing examples. The baseline score of 3 reflects adequate parameter documentation solely from 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 states the action ('Create') and resource ('application close out transaction'), which clarifies the basic purpose. However, it's vague about what 'close out' means in the Algorand context (e.g., ending participation in a smart contract) and doesn't differentiate from sibling tools like 'make_app_clear_txn' or 'make_app_delete_txn', which might have overlapping or related functions.
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 guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing an existing application), exclusions, or compare it to siblings like 'make_app_clear_txn' or 'make_app_delete_txn', leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_app_create_txnD
Create an application creation transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| approvalProgram | Yes | Logic that executes when the app is called (compiled TEAL as base64) | |
| clearProgram | Yes | Logic that executes when clear state is called (compiled TEAL as base64) | |
| numGlobalByteSlices | Yes | Number of byte array values in global state (0-64) | |
| numGlobalInts | Yes | Number of integer values in global state (0-64) | |
| numLocalByteSlices | Yes | Number of byte array values in local state per account (0-16) | |
| numLocalInts | Yes | Number of integer values in local state per account (0-16) | |
| extraPages | No | Additional program pages for larger programs (0-3) | |
| note | No | Transaction note field (up to 1000 bytes) | |
| lease | No | Lease enforces mutual exclusion of transactions (32 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| appArgs | No | Arguments to pass to the application (max 16 arguments) | |
| accounts | No | Accounts whose local state may be accessed (max 4 accounts) | |
| foreignApps | No | IDs of apps whose global state may be accessed (max 8 apps) | |
| foreignAssets | No | IDs of assets that may be accessed (max 8 assets) | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but fails completely. It doesn't indicate whether this is a read-only or destructive operation, what permissions are required, whether it submits a transaction or just constructs one, what happens on success/failure, or any rate limits. The description merely restates the action without behavioral context.
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?
While technically concise with just one sentence, the description is under-specified rather than efficiently informative. It wastes its single sentence on a tautological restatement of the tool name instead of providing any useful context about the tool's purpose or behavior.
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 complex transaction construction tool with 19 parameters, no annotations, and no output schema, the description is completely inadequate. It should explain what kind of transaction is created, how it's used, what the expected output is, and critical behavioral aspects like whether it requires signing or network submission.
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%, providing detailed documentation for all 19 parameters. The description adds no additional parameter information beyond what's already in the schema, so it meets the baseline score of 3. However, it doesn't compensate for any gaps since there are none in 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 'Create an application creation transaction' is a tautology that restates the tool name 'make_app_create_txn' without adding meaningful specificity. It doesn't clarify what an 'application creation transaction' entails in the Algorand context or how it differs from similar sibling tools like 'make_app_update_txn' or 'make_app_delete_txn'.
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 no guidance on when to use this tool versus alternatives. There are multiple sibling tools for application transactions (e.g., make_app_update_txn, make_app_delete_txn), but the description offers no context about prerequisites, typical use cases, or when this specific creation tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_app_delete_txnC
Create an application delete transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| appIndex | Yes | ID of the application to delete | |
| note | No | Transaction note field (up to 1000 bytes) | |
| lease | No | Lease enforces mutual exclusion of transactions (32 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| appArgs | No | Arguments to pass to the application (max 16 arguments) | |
| accounts | No | Accounts whose local state may be accessed (max 4 accounts) | |
| foreignApps | No | IDs of apps whose global state may be accessed (max 8 apps) | |
| foreignAssets | No | IDs of assets that may be accessed (max 8 assets) | |
| onComplete | No | Application call completion behavior (0=NoOp, 1=OptIn, 2=CloseOut, 3=ClearState, 4=UpdateApplication, 5=DeleteApplication) | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but fails completely. It doesn't indicate whether this is a destructive operation (deleting an application), what permissions are required, whether the deletion is reversible, what happens to associated state, or what the tool actually returns. For a tool that appears to perform a significant mutation operation, this lack of behavioral context is critical.
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 maximally concise at just three words with no wasted language. It's front-loaded with the core action and doesn't contain any unnecessary elaboration. While it's severely under-specified for the tool's complexity, it earns full points for conciseness as every word serves the minimal purpose.
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's apparent complexity (14 parameters, likely destructive operation, no annotations, no output schema), the description is completely inadequate. It doesn't explain what the tool returns, what 'application delete transaction' means in practice, or any behavioral characteristics. For a tool that creates blockchain transactions with significant implications, this minimal description fails to provide necessary context for safe and effective 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 schema description coverage is 100%, with all 14 parameters well-documented in the input schema. The description adds zero additional parameter information beyond what's already in the schema. According to the scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no parameter information in the description, which applies here.
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 'Create an application delete transaction' is essentially a tautology that restates the tool name 'make_app_delete_txn'. It specifies the verb 'create' and resource 'application delete transaction', but doesn't clarify what this transaction does beyond the obvious deletion implication. It doesn't distinguish this tool from sibling transaction creation tools like make_app_create_txn or make_app_update_txn in any meaningful way.
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 absolutely no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, appropriate contexts, or comparison to sibling tools like make_app_clear_txn or make_app_closeout_txn that might handle different application lifecycle states. The agent receives no usage direction beyond the literal meaning of the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_app_optin_txnC
Create an application opt-in transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| appIndex | Yes | ID of the application to opt into | |
| note | No | Transaction note field (up to 1000 bytes) | |
| lease | No | Lease enforces mutual exclusion of transactions (32 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| appArgs | No | Arguments to pass to the application (max 16 arguments) | |
| accounts | No | Accounts whose local state may be accessed (max 4 accounts) | |
| foreignApps | No | IDs of apps whose global state may be accessed (max 8 apps) | |
| foreignAssets | No | IDs of assets that may be accessed (max 8 assets) | |
| onComplete | No | Application call completion behavior (0=NoOp, 1=OptIn, 2=CloseOut, 3=ClearState, 4=UpdateApplication, 5=DeleteApplication) | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't mention that this is a write operation (creating a transaction), potential costs (transaction fees), network effects (broadcasting to blockchain), or error conditions (e.g., invalid appIndex). This leaves significant gaps in understanding the tool's impact and requirements.
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, efficient sentence with zero waste—it directly states the tool's purpose without fluff. It's appropriately front-loaded and concise, making it easy to parse, though this brevity contributes to gaps in other dimensions.
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 complexity (14 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain what the tool returns (e.g., a transaction object or ID), behavioral implications, or error handling. For a blockchain transaction tool with many optional parameters, more context is needed to guide effective 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?
Schema description coverage is 100%, so the schema fully documents all 14 parameters. The description adds no additional meaning beyond the schema, not even hinting at key parameters like 'appIndex' or 'from'. Baseline 3 is appropriate as the schema does the heavy lifting, but the description fails to compensate with any high-level context about parameter roles.
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 'Create an application opt-in transaction' clearly states the action (create) and resource (application opt-in transaction), but it's somewhat vague about what an 'opt-in transaction' entails compared to similar tools like make_app_call_txn or make_app_clear_txn. It doesn't distinguish itself from siblings beyond the name, leaving room for ambiguity about when this specific opt-in operation is needed.
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 guidance is provided on when to use this tool versus alternatives like make_app_call_txn or wallet_optin_asset. The description lacks context about prerequisites (e.g., needing an Algorand account with funds) or typical scenarios for application opt-in, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_app_update_txnC
Create an application update transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| appIndex | Yes | ID of the application to update | |
| approvalProgram | Yes | New approval program (compiled TEAL as base64) | |
| clearProgram | Yes | New clear state program (compiled TEAL as base64) | |
| note | No | Transaction note field (up to 1000 bytes) | |
| lease | No | Lease enforces mutual exclusion of transactions (32 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| appArgs | No | Arguments to pass to the application (max 16 arguments) | |
| accounts | No | Accounts whose local state may be accessed (max 4 accounts) | |
| foreignApps | No | IDs of apps whose global state may be accessed (max 8 apps) | |
| foreignAssets | No | IDs of assets that may be accessed (max 8 assets) | |
| onComplete | No | Application call completion behavior (0=NoOp, 1=OptIn, 2=CloseOut, 3=ClearState, 4=UpdateApplication, 5=DeleteApplication) | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action ('create') without disclosing behavioral traits. It doesn't mention that this is a write/mutation operation, potential side effects (e.g., updating app logic), permissions needed, rate limits, or what the output looks like (transaction object vs. sent transaction).
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, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly concise and well-structured for quick comprehension.
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 complex mutation tool with 16 parameters and no annotations or output schema, the description is inadequate. It doesn't explain the transaction's purpose (updating app logic), typical use cases, required inputs beyond the schema, or what the agent should expect as a result, leaving significant gaps.
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 schema fully documents all 16 parameters. The description adds no parameter semantics beyond the schema, not even hinting at core parameters like 'appIndex' or 'approvalProgram'. Baseline 3 is appropriate as the schema does all the work.
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 'Create an application update transaction' states the action (create) and resource (application update transaction), which is clear. However, it doesn't differentiate from sibling tools like 'make_app_create_txn' or 'make_app_delete_txn' that also create application-related transactions, leaving the specific 'update' purpose somewhat vague in context.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing app to update), exclusions, or compare to siblings like 'make_app_call_txn' or 'make_app_create_txn', leaving the agent without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_asset_config_txnC
Create an asset configuration transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| assetIndex | Yes | Index of the asset to reconfigure | |
| manager | No | New address that can manage the asset configuration | |
| reserve | No | New address holding reserve funds for the asset | |
| freeze | No | New address that can freeze/unfreeze holder accounts | |
| clawback | No | New address that can revoke the asset from holders | |
| strictEmptyAddressChecking | Yes | Whether to error if any provided address is empty | |
| note | No | Transaction note field (up to 1000 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Create an asset configuration transaction' implies a write/mutation operation, but it doesn't disclose any behavioral traits: no information about permissions required, whether this is reversible, rate limits, network effects, or what happens after transaction creation. The description is minimal and fails to provide necessary context for safe usage.
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 extremely concise - a single 5-word phrase with zero waste. It's front-loaded with the core action and resource. While it may be too brief for adequate tool understanding, from a pure conciseness perspective, every word serves a purpose.
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 complex transaction tool with 13 parameters, no annotations, and no output schema, the description is severely inadequate. It doesn't explain what an 'asset configuration transaction' does in the Algorand context, doesn't provide usage context, and offers no behavioral information. The agent would struggle to understand when and how to use this tool effectively.
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 schema already documents all 13 parameters thoroughly. The description adds no parameter information beyond what's in the schema - it doesn't explain relationships between parameters, provide examples, or clarify the asset reconfiguration process. Baseline 3 is appropriate when the schema does all the parameter documentation work.
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 'Create an asset configuration transaction' clearly states the action (create) and resource (asset configuration transaction), but it's vague about what 'asset configuration' entails. It doesn't distinguish this tool from sibling transaction tools like make_asset_create_txn or make_asset_transfer_txn, leaving the specific purpose unclear.
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 no guidance on when to use this tool versus alternatives. With many sibling transaction tools (make_asset_create_txn, make_asset_destroy_txn, make_asset_freeze_txn, etc.), there's no indication of when asset reconfiguration is appropriate versus creating new assets or using other asset management tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_asset_create_txnD
Create an asset creation transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| total | Yes | Total number of base units of the asset to create | |
| decimals | Yes | Number of decimals for display purposes (0-19) | |
| defaultFrozen | Yes | Whether accounts should be frozen by default | |
| unitName | No | Short name for the asset (1-8 characters) | |
| assetName | No | Full name of the asset (1-32 characters) | |
| assetURL | No | URL where more information about the asset can be found | |
| assetMetadataHash | No | Hash commitment of some sort of asset metadata (32-byte string) | |
| manager | No | Address that can manage the asset configuration | |
| reserve | No | Address holding reserve funds for the asset | |
| freeze | No | Address that can freeze/unfreeze holder accounts | |
| clawback | No | Address that can revoke the asset from holders | |
| note | No | Transaction note field (up to 1000 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It fails to mention that this is a write operation that creates a blockchain transaction, requires network submission (implied but not stated), may incur fees, or has side effects like asset indexing. Critical behavioral traits like idempotency, error handling, or typical response format are omitted, leaving the agent with minimal operational insight.
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 three-word phrase that is under-specified rather than concise. It lacks any structuring (e.g., separating purpose from usage) and doesn't front-load critical information. While brief, it fails to convey necessary context, making it inefficient for an agent to understand the tool's role without external knowledge.
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's complexity (18 parameters, no annotations, no output schema), the description is severely inadequate. It doesn't explain what the tool returns (e.g., a transaction object or ID), behavioral expectations, or integration with other tools (e.g., 'send_raw_transaction'). For a mutation tool in a blockchain context, this leaves major gaps in understanding how to use it effectively.
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%, with all 18 parameters well-documented in the schema itself (e.g., 'from' as sender address, 'total' as base units). The description adds no additional meaning about parameters beyond what the schema provides, such as typical values or interdependencies. However, with high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.
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 'Create an asset creation transaction' is a tautology that essentially restates the tool name 'make_asset_create_txn'. It doesn't specify what an 'asset creation transaction' actually does in the Algorand context, nor does it distinguish this tool from sibling tools like 'make_asset_config_txn' or 'make_asset_destroy_txn' that also handle asset-related transactions. The purpose is vague beyond the literal name.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a sender address with sufficient funds), compare it to sibling tools like 'make_asset_config_txn' for modifying existing assets, or indicate typical use cases (e.g., token issuance). Without any context, an agent must infer usage solely from the name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_asset_destroy_txnD
Create an asset destroy transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| assetIndex | Yes | Index of the asset to destroy | |
| note | No | Transaction note field (up to 1000 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It fails to mention that this is a destructive operation (permanently destroying an asset), requires specific permissions or conditions, involves irreversible changes, or has network implications. This omission is critical for a tool with 'destroy' in its name.
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, under-specified sentence that fails to convey necessary information for a destructive tool. While concise, it lacks front-loaded critical details and wastes the opportunity to inform users about risks or usage, making it ineffective rather than efficiently brief.
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's complexity (destructive operation with 8 parameters) and lack of annotations or output schema, the description is severely incomplete. It does not cover behavioral aspects, return values, or error conditions, leaving the agent with insufficient information to use the tool safely or correctly.
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 parameters are well-documented in the schema. The description adds no semantic context beyond the schema, such as explaining the significance of 'assetIndex' for destruction or how 'note' might be used. Baseline score of 3 reflects adequate schema coverage without description enhancement.
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 'Create an asset destroy transaction' restates the tool name with minimal elaboration, making it a tautology. It specifies the verb ('Create') and resource ('asset destroy transaction'), but lacks details on what 'destroy' entails or how it differs from similar tools like 'make_asset_config_txn' or 'make_asset_transfer_txn', leaving the purpose vague.
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 no guidance on when to use this tool versus alternatives, such as other asset-related tools in the sibling list (e.g., 'make_asset_config_txn' for modifying assets). There is no mention of prerequisites, exclusions, or contextual cues, making it misleadingly simple for a destructive operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_asset_freeze_txnC
Create an asset freeze transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| assetIndex | Yes | Index of the asset being frozen | |
| freezeTarget | Yes | Address of the account whose asset is being frozen/unfrozen | |
| freezeState | Yes | True to freeze the asset, false to unfreeze | |
| note | No | Transaction note field (up to 1000 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Create an asset freeze transaction' implies a write/mutation operation, but it doesn't disclose critical behaviors: whether this requires specific permissions (e.g., asset manager role), if it's irreversible, potential side effects (e.g., locking assets), or network implications (e.g., transaction fees, confirmation time).
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, efficient sentence with zero wasted words. It's appropriately sized for a tool name that's self-explanatory at a basic level, though it lacks depth.
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 mutation tool with 10 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a transaction object, success status), error conditions, or real-world usage context, leaving significant gaps for an AI agent.
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 schema fully documents all 10 parameters. The description adds no parameter semantics beyond the schema, not even high-level context like 'freezeState toggles freezing on/off'. Baseline 3 is appropriate when schema does all the work.
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 'Create an asset freeze transaction' states the action (create) and resource (asset freeze transaction), but it's vague about what an 'asset freeze transaction' entails in the Algorand context. It doesn't distinguish this tool from sibling transaction tools like make_asset_config_txn or make_asset_transfer_txn beyond the name.
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 guidance is provided on when to use this tool versus alternatives. There's no mention of prerequisites (e.g., needing asset manager permissions), typical use cases (e.g., compliance, security), or how it relates to sibling tools like make_asset_config_txn (which might handle similar functions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_asset_transfer_txnC
Create an asset transfer transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| to | Yes | Recipient address in standard Algorand format (58 characters) | |
| assetIndex | Yes | Index of the asset being transferred | |
| amount | Yes | Amount of asset base units to transfer | |
| note | No | Transaction note field (up to 1000 bytes) | |
| closeRemainderTo | No | Address to send remaining asset balance to (close asset holding) | |
| rekeyTo | No | Address to rekey the sender account to | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure but offers none. It doesn't indicate whether this creates a signed or unsigned transaction, whether it submits to the network or just constructs locally, what permissions are required, potential side effects, or error conditions. For a transaction creation tool with 11 parameters, this lack of behavioral context is severely inadequate.
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 maximally concise at just four words with zero wasted language. It's appropriately sized for what it attempts to communicate, though the brevity contributes to its inadequacy in other dimensions. There's no unnecessary verbiage or structural 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?
For a complex transaction creation tool with 11 parameters, no annotations, and no output schema, the description is completely inadequate. It doesn't explain what the tool returns (transaction object? signed bytes? transaction ID?), doesn't clarify the tool's role in a broader workflow, and provides no context about Algorand-specific considerations. The description fails to compensate for the lack of structured metadata.
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 schema already fully documents all 11 parameters with clear descriptions. The description adds no additional parameter semantics beyond what's in the schema, which meets the baseline expectation when schema coverage is complete. However, it doesn't explain relationships between parameters (e.g., how closeRemainderTo interacts with the transfer) or provide usage examples.
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 'Create an asset transfer transaction' is a tautology that essentially restates the tool name 'make_asset_transfer_txn' without adding meaningful specificity. It doesn't distinguish this tool from sibling transaction creation tools like make_payment_txn or make_asset_config_txn, nor does it clarify what type of asset transfer this handles (Algorand assets vs. other types).
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 zero guidance on when to use this tool versus alternatives. With numerous sibling tools including other transaction creators (make_payment_txn, make_app_call_txn, etc.) and asset-related tools (make_asset_create_txn, wallet_optin_asset), there's no indication of when this specific asset transfer tool is appropriate versus other methods of transferring assets or creating transactions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_keyreg_txnC
Create a key registration transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| voteKey | Yes | The root participation public key (58 bytes base64 encoded) | |
| selectionKey | Yes | VRF public key (32 bytes base64 encoded) | |
| stateProofKey | Yes | State proof public key (64 bytes base64 encoded) | |
| voteFirst | Yes | First round this participation key is valid | |
| voteLast | Yes | Last round this participation key is valid | |
| voteKeyDilution | Yes | Dilution for the 2-level participation key | |
| nonParticipation | No | Mark account as nonparticipating for rewards | |
| note | No | Transaction note field (up to 1000 bytes) | |
| rekeyTo | No | Address to rekey the sender account to | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. 'Create a key registration transaction' implies a write/mutation operation, but the description doesn't disclose any behavioral traits: it doesn't mention whether this requires specific permissions, whether it's idempotent, what happens on failure, or what the output looks like (though there's no output schema). For a mutation tool with zero annotation coverage, this is a significant gap.
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, efficient sentence with zero waste. It's appropriately sized and front-loaded, immediately conveying the core purpose without unnecessary elaboration.
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 complexity (14 parameters, 7 required, mutation operation) and the absence of both annotations and output schema, the description is incomplete. It doesn't explain what a key registration transaction is used for in the Algorand context, what the output looks like, or any behavioral considerations. The description should do more to compensate for the lack of structured metadata.
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 schema already documents all 14 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. According to the rules, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the 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 'Create a key registration transaction' clearly states the verb ('Create') and resource ('key registration transaction'), making the purpose immediately understandable. It doesn't specifically distinguish from sibling tools, but the tool name 'make_keyreg_txn' is distinct from other transaction creation tools like 'make_payment_txn' or 'make_app_call_txn' in the sibling list.
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 no guidance on when to use this tool versus alternatives. While the sibling list includes many transaction creation tools (e.g., 'make_payment_txn', 'make_app_call_txn'), there's no indication of when a key registration transaction is appropriate versus other transaction types or what prerequisites might be needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_payment_txnC
Create a payment transaction
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Sender address in standard Algorand format (58 characters) | |
| to | Yes | Receiver address in standard Algorand format (58 characters) | |
| amount | Yes | Amount in microAlgos | |
| note | No | Optional transaction note | |
| closeRemainderTo | No | Optional close remainder to address in standard Algorand format | |
| rekeyTo | No | Optional rekey to address in standard Algorand format | |
| fee | No | Transaction fee in microAlgos. If not set, uses suggested fee from the network | |
| flatFee | No | If true, fee is used as-is (flat fee). If false (default), fee is per-byte | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Create a payment transaction' implies a write operation that likely requires authentication and network interaction, but the description doesn't mention these requirements. It doesn't disclose whether this actually submits the transaction or just constructs it, what happens on failure, or any rate limits. For a financial transaction tool with zero annotation coverage, this is a significant gap.
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 extremely concise at just three words. While it may be too brief for adequate tool understanding, it contains zero wasted words and is perfectly front-loaded. Every word directly contributes to stating the tool's purpose.
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 complex financial transaction tool with 10 parameters, no annotations, and no output schema, the description is severely inadequate. It doesn't explain what happens after creation (is it submitted? signed?), what the return value is, error conditions, authentication requirements, or network implications. The description fails to provide the contextual completeness needed for safe and effective 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?
Schema description coverage is 100%, so the schema already documents all 10 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.
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 'Create a payment transaction' clearly states the verb ('Create') and resource ('payment transaction'), but it's vague about what this actually means in the Algorand context. It doesn't distinguish this from sibling tools like 'make_asset_transfer_txn' or other transaction creation tools, leaving ambiguity about when to use payment vs asset transfers.
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 guidance is provided about when to use this tool versus alternatives. With many sibling tools for different transaction types (asset transfers, app calls, keyreg, etc.), the description offers no context about when a payment transaction is appropriate versus other transaction types. It doesn't mention prerequisites like needing sender authentication or network connectivity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdk_to_mnemonicC
Convert a master derivation key to a mnemonic
| Name | Required | Description | Default |
|---|---|---|---|
| mdk | Yes | The master derivation key in hexadecimal format | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the conversion action but doesn't mention whether this is a read-only operation, if it has side effects, error conditions, or output format. For a tool that handles cryptographic keys, this lack of detail on security or behavior is a significant gap.
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, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to understand at a glance. No unnecessary words or structure detract from the clarity.
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 complexity of cryptographic key conversion and the lack of annotations and output schema, the description is incomplete. It doesn't explain what a mnemonic is, the security implications, or the format of the output. For a tool with no structured output documentation, this leaves critical gaps for an AI agent to use it correctly.
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 fully documents all three parameters (mdk, network, itemsPerPage). The description adds no additional parameter semantics beyond what's in the schema, such as explaining why 'itemsPerPage' is included in a conversion tool. Baseline 3 is appropriate when the schema does the heavy lifting.
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's purpose: converting a master derivation key to a mnemonic. It specifies the verb 'convert' and the resource 'master derivation key', making the action clear. However, it doesn't differentiate from sibling tools like 'mnemonic_to_secret_key' or 'secret_key_to_mnemonic', which handle related but different conversions.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid MDK, or compare it to sibling tools like 'mnemonic_from_seed' or 'seed_from_mnemonic' that might be relevant in similar contexts. Usage is implied only by the tool's name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mnemonic_from_seedC
Generate a mnemonic from a seed
| Name | Required | Description | Default |
|---|---|---|---|
| seed | Yes | The seed in hexadecimal format to generate a mnemonic from | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states 'Generate a mnemonic from a seed' but fails to describe what the tool actually does: e.g., whether it's deterministic, what mnemonic standard is used (BIP-39?), if it involves cryptographic hashing, what the output format is (word list?), or any side effects like network calls. For a cryptographic tool with zero annotation coverage, this is a significant gap.
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, efficient sentence with zero wasted words. It's front-loaded and directly states the core action, though this brevity comes at the cost of completeness. Every word earns its place by conveying the basic operation.
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 complexity of a cryptographic key derivation tool with no annotations and no output schema, the description is inadequate. It doesn't explain the mnemonic format, security implications, or what the tool returns (e.g., a phrase string or structured data). Siblings like 'mdk_to_mnemonic' suggest this is part of a key management suite, but the description fails to provide necessary context for safe and correct 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?
Schema description coverage is 100%, so the schema fully documents all three parameters (seed, network, itemsPerPage). The description adds no parameter-specific information beyond what's in the schema—it doesn't explain the relationship between seed and mnemonic, why network matters, or what 'itemsPerPage' is for (seemingly irrelevant for a generation tool). Baseline 3 is appropriate when the schema does all the work.
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 'Generate a mnemonic from a seed' is a tautology that essentially restates the tool name 'mnemonic_from_seed'. It specifies the verb 'generate' and resource 'mnemonic', but lacks specificity about what a mnemonic is (e.g., a human-readable phrase for cryptographic keys) or its purpose in the Algorand context. It doesn't differentiate from sibling tools like 'mdk_to_mnemonic' or 'secret_key_to_mnemonic' that also handle mnemonic generation.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a seed in hex format), use cases (e.g., key derivation, wallet setup), or comparisons to siblings like 'seed_from_mnemonic' (the inverse operation). Without any context, an agent must infer usage solely from the name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mnemonic_to_secret_keyC
Convert a mnemonic to a secret key
| Name | Required | Description | Default |
|---|---|---|---|
| mnemonic | Yes | The mnemonic phrase to convert to a secret key | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the conversion action but doesn't describe what a 'secret key' entails (e.g., format, security implications, whether it's reversible), network effects, or error conditions. For a cryptographic tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and safety.
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, efficient sentence with zero waste—it directly states the tool's function without unnecessary elaboration. It's appropriately sized for a straightforward conversion tool and front-loaded with the core purpose.
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 complexity of cryptographic conversion and lack of annotations or output schema, the description is incomplete. It doesn't explain the output format (e.g., what a 'secret key' looks like), error handling, or security considerations. For a tool with 3 parameters and no structured output documentation, more context is needed to guide effective 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?
Schema description coverage is 100%, so the schema fully documents all three parameters (mnemonic, network, itemsPerPage). The description adds no parameter-specific information beyond the schema, such as mnemonic format requirements or why itemsPerPage is included. Baseline 3 is appropriate when the schema does the heavy lifting, but the description doesn't compensate with additional context.
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 'Convert a mnemonic to a secret key' clearly states the verb (convert) and resources (mnemonic to secret key), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'secret_key_to_mnemonic' or 'mdk_to_mnemonic', which perform related but inverse operations, leaving some ambiguity about when to use this specific conversion tool.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, typical use cases, or how it differs from sibling tools like 'secret_key_to_mnemonic' (which does the reverse conversion) or 'seed_from_mnemonic' (which might be related). Without this context, an agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingB
Basic protocol utility to verify server connectivity
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Basic protocol utility to verify server connectivity' implies a read-only diagnostic operation, but doesn't disclose what 'verify' entails (e.g., returns success/failure, latency metrics, error details), whether it requires authentication, or what happens with the pagination parameter that seems unrelated to connectivity testing.
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, efficient sentence with zero wasted words. It's appropriately sized for a simple utility tool and front-loads the core purpose immediately.
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 connectivity verification tool with no annotations and no output schema, the description is minimally adequate. However, it doesn't explain what 'verify' returns (e.g., success status, error details) or why a pagination parameter exists for what should be a simple ping operation, leaving gaps in understanding the tool's behavior.
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 schema already documents both parameters completely. The description adds no parameter information beyond what's in the schema. The baseline score of 3 reflects adequate but minimal value addition from the description regarding parameters.
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's purpose as 'Basic protocol utility to verify server connectivity' with a specific verb ('verify') and resource ('server connectivity'). However, it doesn't distinguish itself from potential sibling tools since there are no other connectivity verification tools in the sibling list.
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 no guidance on when to use this tool versus alternatives. With 100+ sibling tools focused on Algorand blockchain operations, there's no indication of whether this is for general network health checks, prerequisite testing, or troubleshooting specific connectivity issues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rekey_accountC
Rekey an Algorand account to a new address
| Name | Required | Description | Default |
|---|---|---|---|
| sourceAddress | Yes | Sender address in standard Algorand format (58 characters) | |
| targetAddress | Yes | Address to rekey the sender account to | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a rekey operation (which implies a potentially irreversible account authority change), but doesn't mention security implications, required permissions, whether it's destructive, what the tool returns, or any rate limits. For a security-sensitive operation with zero annotation coverage, this is insufficient.
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, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded with the 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?
For a security-sensitive account modification tool with no annotations and no output schema, the description is inadequate. It doesn't explain what 'rekey' means operationally, what the tool returns, error conditions, or security implications. Given the complexity and lack of structured data, the description should provide more complete context.
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 schema already documents all parameters thoroughly. The description doesn't add any parameter-specific context beyond what's in the schema (like explaining what 'rekey' means for the addresses or network implications). Baseline 3 is appropriate when the schema does the heavy lifting.
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 action ('rekey') and resource ('Algorand account') with a specific outcome ('to a new address'). It's specific enough to understand the core function, but doesn't differentiate from sibling tools that also modify accounts (like wallet_switch_account or create_account).
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 guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (like needing the source account's private key), what happens after rekeying, or when this operation is appropriate compared to other account management tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secret_key_to_mnemonicC
Convert a secret key to a mnemonic
| Name | Required | Description | Default |
|---|---|---|---|
| secretKey | Yes | The secret key in hexadecimal format | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the conversion action but does not describe side effects, security implications, error handling, or output format. For a tool handling cryptographic keys, this lack of detail is a significant gap.
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, direct sentence with zero waste. It is appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration.
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 complexity of cryptographic key conversion, the lack of annotations, and no output schema, the description is insufficient. It does not explain the mnemonic format, security considerations, or error cases, leaving critical gaps for an agent to use the tool effectively.
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 schema fully documents the three parameters. The description does not add any semantic details beyond what the schema provides, such as explaining the purpose of 'network' or 'itemsPerPage' in the conversion context. Baseline 3 is appropriate when the schema does the heavy lifting.
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 'Convert a secret key to a mnemonic' clearly states the verb ('convert') and resource ('secret key to mnemonic'), making the purpose understandable. However, it lacks specificity about the conversion process (e.g., format or algorithm) and does not differentiate from sibling tools like 'mdk_to_mnemonic' or 'mnemonic_to_secret_key', which are related but inverse operations.
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 guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, typical use cases, or how it relates to sibling tools such as 'mdk_to_mnemonic' or 'mnemonic_to_secret_key'. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seed_from_mnemonicC
Generate a seed from a mnemonic
| Name | Required | Description | Default |
|---|---|---|---|
| mnemonic | Yes | The mnemonic phrase to generate a seed from | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. The description only states the basic action without any details on what the tool does beyond the transformation (e.g., output format, cryptographic properties, side effects, error conditions, or network implications). For a tool that likely involves cryptographic operations, this lack of transparency is significant.
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, efficient sentence with zero waste. It is appropriately sized for a simple tool and front-loaded with the core action. No extraneous information is included, making it highly 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?
Given the tool's complexity (cryptographic seed generation), lack of annotations, and no output schema, the description is incomplete. It fails to explain what a 'seed' is in this context, the output format, any security considerations, or how the network parameter affects the result. For a tool with potential security implications, this minimal description is inadequate.
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 schema already documents all three parameters (mnemonic, network, itemsPerPage) with descriptions and defaults. The description adds no additional meaning about parameters beyond what the schema provides, such as explaining the relationship between mnemonic and seed or why network matters. Baseline 3 is appropriate when the schema does the heavy lifting.
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 'Generate a seed from a mnemonic' is a tautology that essentially restates the tool name 'seed_from_mnemonic'. It specifies the verb 'generate' and resource 'seed', but lacks any differentiation from sibling tools like 'mnemonic_from_seed' or 'mnemonic_to_secret_key', which also deal with mnemonic/seed conversions. The purpose is clear at a basic level but fails to distinguish this tool's specific role.
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 no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, nor does it refer to sibling tools like 'mnemonic_from_seed' (which performs the inverse operation). Without any usage instructions, an agent cannot determine appropriate scenarios for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_raw_transactionC
Submit signed transactions to the Algorand network
| Name | Required | Description | Default |
|---|---|---|---|
| signedTxns | Yes | Array of signed transactions to submit to the network | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose critical behavioral traits such as whether this is a write operation (likely yes, given 'submit'), potential costs/fees, network latency, idempotency, error handling, or confirmation requirements. This leaves significant gaps for an agent to understand the tool's impact.
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, direct sentence with no wasted words. It front-loads the core action ('submit') and target, making it immediately clear. Every part of the sentence contributes essential information without redundancy.
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 complexity of submitting transactions to a blockchain (a write operation with no output schema and no annotations), the description is insufficient. It lacks details on what happens after submission (e.g., returns transaction IDs, errors, or confirmations), network-specific behaviors, or error cases. This leaves the agent poorly equipped to use the tool effectively in context.
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 parameters are well-documented in the schema itself. The description adds no additional semantic context beyond implying submission to a network, which the schema already covers. This meets the baseline for high schema coverage without enhancing parameter understanding.
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 action ('submit') and target ('signed transactions to the Algorand network'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'simulate_raw_transactions' or 'sign_transaction', which handle similar transaction-related operations but with different purposes.
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 guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention prerequisites like needing signed transactions first (e.g., from 'sign_transaction') or when to use 'simulate_raw_transactions' for testing instead. The description lacks context for decision-making among related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sign_bytesC
Sign bytes with a secret key
| Name | Required | Description | Default |
|---|---|---|---|
| bytes | Yes | Bytes in hexadecimal format to sign | |
| sk | Yes | Secret key in hexadecimal format to sign the bytes with | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 states the tool signs bytes but lacks behavioral details such as the signing algorithm (e.g., Ed25519), output format (e.g., signature in hex), security implications (e.g., secret key exposure risks), or error handling. This is inadequate for a cryptographic operation with no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—it directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 complexity of a cryptographic signing tool with no annotations and no output schema, the description is incomplete. It doesn't explain the signing algorithm, output format, security considerations, or error cases, leaving significant gaps for an agent to understand and use the tool effectively.
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 schema fully documents parameters (bytes, sk, network, itemsPerPage). The description adds no additional meaning beyond the schema, such as explaining the relationship between bytes and sk or the purpose of network in signing. Baseline 3 is appropriate as the schema does the heavy lifting.
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 'Sign bytes with a secret key' clearly states the action (sign) and target (bytes), but it's vague about the cryptographic context (e.g., digital signatures for authentication/verification) and doesn't distinguish from sibling tools like 'sign_transaction' or 'verify_bytes', which are related but serve different purposes.
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 guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a secret key), exclusions, or compare it to siblings like 'sign_transaction' (for transactions) or 'verify_bytes' (for verification), leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sign_transactionC
Sign a transaction with a secret key
| Name | Required | Description | Default |
|---|---|---|---|
| transaction | Yes | Transaction object to be signed | |
| sk | Yes | Secret key in hexadecimal format to sign the transaction with | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the tool signs a transaction but doesn't mention critical details like whether this is a read-only or destructive operation, what permissions or authentication are needed, potential side effects (e.g., key exposure risks), rate limits, or the expected output format. For a security-sensitive signing tool, this is a significant gap.
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, efficient sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 complexity of a transaction-signing tool (security implications, cryptographic operations) with no annotations and no output schema, the description is incomplete. It doesn't address behavioral traits, error conditions, or return values, leaving the agent under-informed about how to use this tool safely and effectively.
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 schema fully documents all four parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain the structure of the 'transaction' object or clarify the role of 'itemsPerPage' in a signing context). Baseline 3 is appropriate when the schema does all the work.
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 action ('sign') and target ('a transaction with a secret key'), providing a specific verb+resource. However, it doesn't distinguish this tool from sibling tools like 'wallet_sign_transaction' or 'sign_bytes', which appear to offer similar signing functionality in different contexts.
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 guidance is provided on when to use this tool versus alternatives like 'wallet_sign_transaction' or 'sign_bytes'. The description lacks context about prerequisites, typical use cases, or any explicit when/when-not instructions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_raw_transactionsD
Simulate raw transactions
| Name | Required | Description | Default |
|---|---|---|---|
| txns | Yes | Array of transactions to simulate | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. 'Simulate raw transactions' gives no insight into what the simulation does (e.g., whether it validates, estimates costs, predicts outcomes, or returns detailed logs), what 'raw' implies (e.g., unprocessed, encoded), or any side effects, permissions, or rate limits. This is inadequate for a tool that likely involves complex transaction processing.
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?
While concise with only three words, this is under-specification rather than effective brevity. The description fails to provide necessary context or front-load key information, leaving the agent to guess at the tool's purpose and behavior. Every word should earn its place, but here the words are insufficient.
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 complexity of simulating transactions (likely involving validation, execution preview, or outcome analysis) and the absence of annotations and output schema, the description is severely incomplete. It doesn't explain what simulation entails, what results to expect, or how this differs from other transaction tools. This leaves critical gaps for an AI agent to use the tool correctly.
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%, with clear documentation for all three parameters (txns as base64-encoded transactions array, network as Algorand network with enum, itemsPerPage for pagination). The description adds no parameter semantics beyond the schema, so it meets the baseline of 3 where the schema does the heavy lifting.
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 'Simulate raw transactions' is essentially a tautology that restates the tool name. While it indicates the tool performs simulation on transactions, it doesn't specify what simulation entails (e.g., dry-run execution, validation, outcome prediction) or what 'raw' means in this context. It doesn't distinguish this tool from sibling tools like 'simulate_transactions' or other transaction-related tools.
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 no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, appropriate contexts, or comparison to sibling tools like 'simulate_transactions' or 'send_raw_transaction'. The agent must infer usage solely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_transactionsC
Simulate transactions with detailed configuration
| Name | Required | Description | Default |
|---|---|---|---|
| txnGroups | Yes | Array of transaction groups to simulate | |
| allowEmptySignatures | No | Allow transactions without signatures | |
| allowMoreLogging | No | Enable additional logging during simulation | |
| allowUnnamedResources | No | Allow access to resources not listed in transaction | |
| execTraceConfig | No | Configuration for execution trace output | |
| extraOpcodeBudget | No | Additional budget for TEAL program execution | |
| round | No | Round at which to simulate the transactions | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 mentions 'detailed configuration' but doesn't disclose behavioral traits like whether this is read-only (likely, as simulation), what the output includes, performance implications, or error conditions. For a tool with 9 parameters and no annotations, this is a significant gap in 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 is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, though it could be more informative. The structure is clear but minimal.
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 high complexity (9 parameters, nested objects), no annotations, and no output schema, the description is inadequate. It doesn't explain what simulation returns, how results are structured, or key behavioral aspects. For a tool with this level of configuration, more context is needed to guide effective 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?
Schema description coverage is 100%, so the schema documents all parameters thoroughly. The description adds no specific parameter semantics beyond implying configurability. Baseline 3 is appropriate as the schema does the heavy lifting, but the description doesn't enhance understanding of parameter interactions or defaults.
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 'Simulate transactions with detailed configuration' states the action (simulate) and resource (transactions), but is vague about what simulation entails and doesn't distinguish from sibling tools like 'simulate_raw_transactions' or transaction-related tools. It lacks specificity about the simulation's purpose or outcome.
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 guidance on when to use this tool versus alternatives like 'simulate_raw_transactions' or other transaction tools. The description implies configuration but doesn't specify use cases, prerequisites, or exclusions, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_addressC
Check if an Algorand address is valid
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address in standard Algorand format (58 characters) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the tool checks validity but doesn't explain what 'valid' means (e.g., format, checksum, network-specific rules), whether it performs network checks, error handling, or response format. For a validation tool with zero annotation coverage, this is a significant gap.
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, efficient sentence with zero waste. It's front-loaded and directly states the tool's purpose without unnecessary details, making it easy to parse quickly.
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's complexity (validation with network and pagination parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain the validation criteria, what the output looks like (e.g., boolean, error details), or why pagination is included. This leaves critical gaps for an agent to use the tool effectively.
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 schema fully documents the three parameters (address, network, itemsPerPage). The description doesn't add any meaning beyond the schema, such as explaining why 'itemsPerPage' is relevant for a validation tool or clarifying validation rules. Baseline 3 is appropriate when the schema does the heavy lifting.
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's purpose: 'Check if an Algorand address is valid.' It specifies the verb ('Check') and resource ('Algorand address'), making the action unambiguous. However, it doesn't differentiate from sibling tools, as none appear to perform similar validation functions, so it's not a full 5.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, typical use cases, or how it relates to other tools like 'decode_address' or 'encode_address' that might handle address formatting. This lack of context leaves the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_bytesC
Verify a signature against bytes with an Algorand address
| Name | Required | Description | Default |
|---|---|---|---|
| bytes | Yes | Bytes in hexadecimal format to verify | |
| signature | Yes | Base64-encoded signature to verify | |
| address | Yes | Algorand account address | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 of behavioral disclosure. It states the tool's function but lacks details on what it returns (e.g., success/failure, error conditions), performance traits (e.g., rate limits), or side effects (e.g., network calls). For a verification tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.
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 complexity of cryptographic verification and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a boolean result, error messages), how it handles invalid inputs, or network implications. For a tool with 5 parameters and no structured output information, more context is needed to guide effective 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?
Schema description coverage is 100%, meaning all parameters are documented in the input schema. The description doesn't add any parameter-specific details beyond what the schema provides (e.g., it doesn't explain format constraints or interactions between parameters). With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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's purpose: 'Verify a signature against bytes with an Algorand address.' It specifies the action (verify), the objects involved (signature, bytes, Algorand address), and the context (Algorand). However, it doesn't explicitly differentiate from sibling tools like 'validate_address' or 'sign_bytes', which serve different purposes but are related to Algorand operations.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a signature from 'sign_bytes'), exclusions, or related tools in the sibling list. The agent must infer usage from the purpose alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_add_accountA
Create a new Algorand account and store it securely in the OS keychain with a nickname and spending limits. Returns only address and public key.
| Name | Required | Description | Default |
|---|---|---|---|
| mnemonic | No | 25-word mnemonic to import. If omitted, a new account is generated. | |
| nickname | Yes | Human-readable nickname for this account | |
| allowance | No | Max per-transaction amount in microAlgos (0 = unlimited) | |
| dailyAllowance | No | Max daily spending total in microAlgos (0 = unlimited) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It effectively discloses key behaviors: it creates/imports accounts, stores them securely in the OS keychain, sets spending limits, and returns only address/public key (not private keys). However, it doesn't mention authentication requirements, potential rate limits, or what happens if the nickname already exists.
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 efficiently conveys purpose, storage mechanism, key features, and return value. Every element earns its place with zero wasted words. The structure is front-loaded with the core action.
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 tool with 6 parameters, 100% schema coverage, but no annotations and no output schema, the description does well by covering the core purpose, security storage, and return format. It could be more complete by mentioning authentication needs or error conditions, but given the good schema coverage, it's mostly 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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter semantics beyond the schema - it mentions 'nickname and spending limits' which aligns with parameters but doesn't provide additional context. Baseline 3 is appropriate when schema does the heavy lifting.
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 action ('Create a new Algorand account'), the storage mechanism ('store it securely in the OS keychain'), key features ('with a nickname and spending limits'), and the return value ('Returns only address and public key'). It distinguishes itself from sibling tools like 'create_account' by specifying the wallet/keychain storage aspect.
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 creating/importing Algorand accounts with security features, but doesn't explicitly state when to use this versus alternatives like 'create_account' (which appears to be a generic account creation tool) or 'wallet_list_accounts'. No explicit exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_get_assetsC
Get all asset holdings for the active wallet account.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 it's a read operation ('Get'), but doesn't disclose behavioral traits like pagination details (implied by 'itemsPerPage' but not explained), rate limits, authentication requirements, or what 'active wallet account' means in context. This leaves significant gaps for a tool with parameters.
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, efficient sentence with zero waste—it directly states the tool's purpose without fluff. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 complexity (a read operation with parameters, no annotations, and no output schema), the description is incomplete. It lacks details on behavior (e.g., pagination, auth), output format, and differentiation from siblings, making it inadequate for confident tool selection and invocation.
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 schema fully documents the parameters ('network' and 'itemsPerPage'). The description adds no additional meaning beyond implying asset retrieval, which the schema already covers through parameter descriptions. Baseline 3 is appropriate as the schema does the heavy lifting.
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 action ('Get') and resource ('all asset holdings for the active wallet account'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'api_indexer_lookup_account_assets' or 'api_algod_get_account_asset_info', which appear to offer similar asset-related functionality, preventing a perfect score.
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 guidance is provided on when to use this tool versus alternatives. With many sibling tools that might retrieve asset information (e.g., 'api_indexer_lookup_account_assets', 'api_algod_get_account_asset_info'), the description lacks context about prerequisites, differences, or specific use cases, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_get_infoB
Get the active wallet account info including address, public key, nickname, on-chain balance, and spending limits.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It describes a read operation ('Get'), which implies non-destructive behavior, but doesn't disclose authentication requirements, rate limits, error conditions, or whether this requires a pre-configured wallet session. The mention of 'active wallet' suggests some statefulness but isn't explained.
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 efficiently conveys purpose and data returned. No wasted words, front-loaded with the main action. The list of returned fields is appropriately detailed without being verbose.
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 read operation with no annotations and no output schema, the description adequately covers what data is returned but lacks behavioral context (authentication, errors, what 'active' means). The 100% schema coverage helps, but the description doesn't compensate for missing annotations about safety or operational constraints.
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 schema fully documents both optional parameters (network with enum values and default, itemsPerPage with default). The description adds no parameter-specific information beyond what's in the schema, meeting the baseline for 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 clearly states the action ('Get') and the resource ('active wallet account info'), listing specific data fields returned (address, public key, nickname, on-chain balance, spending limits). It distinguishes from sibling tools like 'wallet_list_accounts' (which lists multiple accounts) and 'api_algod_get_account_info' (which appears to be a lower-level API call), though it doesn't explicitly name these alternatives.
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 guidance is provided on when to use this tool versus alternatives like 'wallet_list_accounts' (for listing all accounts) or 'api_algod_get_account_info' (for raw account data). The description implies it retrieves the 'active' wallet, but doesn't clarify what 'active' means or prerequisites for having an active wallet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_list_accountsB
List all wallet accounts with their nicknames, addresses, and spending limits.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While 'List' implies a read-only operation, it doesn't disclose whether this requires wallet authentication, whether it returns all accounts or just active ones, what happens with pagination (implied by itemsPerPage parameter but not explained), or whether there are rate limits. The description mentions spending limits but doesn't clarify if these are per-account limits or something else.
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, efficient sentence that states exactly what the tool does. Every word earns its place - 'List' (action), 'all wallet accounts' (scope), 'with their nicknames, addresses, and spending limits' (returned attributes). There's no wasted verbiage 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?
For a read-only listing tool with 2 optional parameters and 100% schema coverage, the description is minimally adequate. However, with no annotations and no output schema, the description should ideally explain more about the return format (structure of the list, pagination behavior) and authentication requirements. The mention of 'spending limits' hints at returned data but doesn't provide enough detail for the agent to understand the full response structure.
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 schema already fully documents both parameters (network with enum values and default, itemsPerPage with default). The description adds no parameter-specific information beyond what's in the schema. The baseline score of 3 is appropriate when the schema does all the parameter documentation work.
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 verb ('List') and resource ('wallet accounts') with specific attributes ('nicknames, addresses, and spending limits'). It distinguishes from other wallet tools like wallet_add_account or wallet_remove_account by being a read-only listing operation. However, it doesn't explicitly differentiate from sibling tools like api_indexer_search_for_accounts or api_indexer_lookup_account_by_id which might also retrieve account information.
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 no guidance on when to use this tool versus alternatives. With many sibling tools that retrieve account information (e.g., api_indexer_search_for_accounts, api_indexer_lookup_account_by_id, api_algod_get_account_info), there's no indication whether this tool is for local wallet accounts versus blockchain accounts, or whether it requires authentication. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_optin_assetB
Opt the active wallet account into an asset by ID. Creates, signs, and submits the opt-in transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Asset ID to opt the active account into | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 discloses that the tool performs a write operation ('creates, signs, and submits'), implying mutation and network interaction, but lacks details on permissions, side effects (e.g., transaction fees, irreversible changes), error handling, or response format. More behavioral context is needed for a mutation tool.
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, efficient sentence with zero waste. It front-loads the core purpose and succinctly explains the transaction process. Every word earns its place.
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 annotations and no output schema, the description is incomplete for a mutation tool. It covers the basic action but lacks crucial details like what happens on success/failure, transaction confirmation, or error cases. However, it's minimally adequate for understanding the tool's intent.
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 schema fully documents all parameters (assetId, network, itemsPerPage). The description adds no additional parameter semantics beyond implying assetId is required for opt-in. Baseline 3 is appropriate as the schema does the heavy lifting.
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 specific action ('Opt the active wallet account into an asset'), identifies the resource ('asset by ID'), and distinguishes it from siblings by specifying it's for wallet opt-in (unlike other asset or transaction tools). It uses precise verbs like 'creates, signs, and submits the opt-in transaction'.
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 guidance on when to use this tool versus alternatives is provided. While it mentions 'active wallet account,' it doesn't clarify prerequisites (e.g., whether the wallet must be connected) or compare to similar tools like 'api_haystack_needs_optin' or 'api_tinyman_get_asset_optin_quote' from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_remove_accountC
Remove an Algorand account from the wallet by nickname or index.
| Name | Required | Description | Default |
|---|---|---|---|
| nickname | No | Nickname of the account to remove | |
| index | No | Index of the account to remove (0-based) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
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 the tool performs a removal operation, implying it's destructive, but doesn't disclose critical behavioral traits: whether removal is permanent, if it requires confirmation, what happens to associated assets/transactions, authentication needs, rate limits, or error conditions. The description is minimal and leaves key behavioral aspects unspecified.
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, efficient sentence that front-loads the core purpose. There's no wasted verbiage, and it directly states what the tool does. However, it could be slightly more structured by explicitly separating identification methods or adding a brief note about consequences.
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's destructive nature, lack of annotations, and no output schema, the description is incomplete. It doesn't address what the tool returns (e.g., success confirmation, error details), side effects, or safety considerations. For a mutation tool with zero annotation coverage, the description should provide more context about behavior and outcomes.
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 schema fully documents all four parameters. The description adds minimal value by mentioning 'nickname or index' as identification methods, but doesn't explain parameter relationships (e.g., that 'nickname' and 'index' are alternatives, or that 'network' and 'itemsPerPage' might be irrelevant for this operation). Baseline 3 is appropriate since the schema does the heavy lifting.
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 action ('Remove') and target ('an Algorand account from the wallet'), with specific identification methods ('by nickname or index'). It distinguishes itself from sibling tools like 'wallet_add_account' and 'wallet_list_accounts' by focusing on removal. However, it doesn't explicitly differentiate from other destructive operations like 'make_asset_destroy_txn' or 'rekey_account'.
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 guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the account must exist or be empty), nor does it specify when not to use it (e.g., if the account holds assets). The description lacks context about alternatives like 'wallet_switch_account' for deactivation without removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_sign_dataB
Sign arbitrary data with the active wallet account using raw Ed25519 (noble library, no Algorand SDK prefix). Returns hex signature.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Hex-encoded data to sign with the active account key (raw Ed25519, no Algorand SDK prefix) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return format ('Returns hex signature') but doesn't cover important aspects like required wallet state, authentication needs, error conditions, or side effects. For a signing operation with security implications, this is insufficient.
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?
Extremely concise single sentence that front-loads the core purpose and includes essential technical details. Every word earns its place with no redundancy or unnecessary elaboration.
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 security-critical signing operation with no annotations and no output schema, the description is inadequate. It doesn't explain what 'active wallet account' means, how wallet state affects operation, error conditions, or the security implications of signing arbitrary data. The presence of seemingly unrelated parameters ('itemsPerPage') further complicates 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?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema - it reinforces the 'data' parameter's hex encoding and Ed25519 context, but doesn't provide additional semantic context for the 'network' or 'itemsPerPage' parameters that appear unrelated to the core signing operation.
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 specific action ('Sign arbitrary data'), resource ('with the active wallet account'), and technical details ('using raw Ed25519, no Algorand SDK prefix'). It distinguishes from sibling tools like 'sign_bytes' and 'sign_transaction' by specifying wallet-based signing with a particular cryptographic approach.
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 guidance on when to use this tool versus alternatives like 'sign_bytes' or 'sign_transaction'. The description mentions the technical approach but doesn't provide context about appropriate use cases, prerequisites, or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_sign_transactionB
Sign a single transaction with the active wallet account. Enforces per-transaction and daily spending limits.
| Name | Required | Description | Default |
|---|---|---|---|
| transaction | Yes | Transaction object to sign with the active wallet account | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully mentions 'Enforces per-transaction and daily spending limits' which reveals important constraints. However, it doesn't describe what the tool returns (signed transaction object? success flag?), error conditions, or authentication requirements beyond the implied wallet context.
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 efficiently structured in two sentences: the first states the core purpose, the second adds important behavioral context. There's no wasted verbiage, though it could be slightly more front-loaded with key constraints.
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 transaction signing tool with no annotations and no output schema, the description is minimally adequate. It covers the core purpose and mentions spending limits, but lacks crucial information about return values, error handling, and how the 'active wallet account' is determined. The 100% schema coverage helps, but behavioral transparency gaps remain.
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 schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. The baseline of 3 is appropriate when the schema does the heavy lifting.
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 action ('Sign a single transaction') and resource ('with the active wallet account'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'sign_transaction' or 'wallet_sign_transaction_group' beyond the 'single transaction' qualifier.
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 no guidance on when to use this tool versus alternatives like 'sign_transaction' or 'wallet_sign_transaction_group'. It mentions 'active wallet account' but doesn't explain how to set or switch the active account, nor does it mention prerequisites or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_sign_transaction_groupB
Sign a group of transactions with the active wallet account. Assigns group ID automatically and enforces spending limits.
| Name | Required | Description | Default |
|---|---|---|---|
| transactions | Yes | Array of transaction objects to sign as a group with the active wallet account | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'assigns group ID automatically' and 'enforces spending limits,' which are useful behavioral traits. However, it lacks critical details such as whether this is a read-only or destructive operation, what permissions are required, error handling, or what the output looks like (e.g., signed transactions or a group ID). For a tool involving signing and potential financial implications, this is a significant gap.
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, efficient sentence that front-loads the core action and includes key behavioral notes. Every part earns its place, with no redundant or vague language. It could be slightly improved by structuring into multiple sentences for clarity, but it's appropriately sized and direct.
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 complexity of signing transactions (a potentially destructive operation with financial risks), no annotations, and no output schema, the description is incomplete. It misses essential context such as safety warnings, required wallet state, error conditions, or output format. While it mentions spending limits, it doesn't cover other critical aspects like authentication needs or what happens on failure.
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 schema already documents all parameters thoroughly. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain transaction object structure, network implications, or pagination context). Given high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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 action ('Sign a group of transactions') and the resource ('with the active wallet account'), making the purpose specific and understandable. It distinguishes from the sibling 'sign_transaction' by specifying 'group of transactions' and mentions automatic group ID assignment, though it doesn't explicitly contrast with all sibling tools like 'wallet_sign_data' or 'send_raw_transaction'.
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 context by mentioning 'active wallet account' and 'enforces spending limits,' suggesting when this tool is appropriate. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'sign_transaction' for single transactions or 'send_raw_transaction' for sending, 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.
wallet_switch_accountC
Switch the active wallet account by nickname or index. The active account is used for signing and balance queries.
| Name | Required | Description | Default |
|---|---|---|---|
| nickname | No | Nickname of the account to switch to | |
| index | No | Index of the account to switch to (0-based) | |
| network | No | Algorand network to use (default: mainnet) | |
| itemsPerPage | No | Number of items per page for paginated responses (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions the tool changes the active account for signing and queries, which implies mutation, but doesn't disclose behavioral traits like whether this affects other operations, if it's reversible, what permissions are needed, or error conditions. For a mutation tool with zero annotation coverage, this is a significant gap.
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's front-loaded with the core action and efficiently explains the purpose and consequence. Every sentence earns its place by adding necessary context.
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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after switching (e.g., confirmation, error handling), how to verify the switch, or return values. For a tool that changes state in a wallet system, more behavioral context is needed.
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 schema already documents all parameters. The description adds minimal value by mentioning nickname and index as switching methods, but doesn't explain parameter interactions (e.g., if both nickname and index are provided), defaults beyond what's in the schema, or why itemsPerPage is included. Baseline 3 is appropriate when schema does the heavy lifting.
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 verb ('switch') and resource ('active wallet account'), specifying it can be done by nickname or index. It also explains the consequence ('used for signing and balance queries'). However, it doesn't explicitly differentiate from sibling tools like wallet_list_accounts or wallet_add_account, which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing existing accounts), when not to use it, or how it relates to sibling wallet tools like wallet_list_accounts (which might be needed first to see available accounts). Usage is implied but not explicitly stated.
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. Dates show when Glama detected each change.
120 tool updates
v4.1.1- First observed
alpha_amend_order - First observed
alpha_cancel_order - First observed
alpha_claim - First observed
alpha_create_limit_order - First observed
alpha_create_market_order - First observed
alpha_get_live_markets - First observed
alpha_get_market - First observed
alpha_get_open_orders - First observed
alpha_get_orderbook - First observed
alpha_get_positions - First observed
alpha_get_reward_markets - First observed
alpha_merge_shares - First observed
alpha_propose_match - First observed
alpha_split_shares - First observed
api_algod_get_account_application_info - First observed
api_algod_get_account_asset_info - First observed
api_algod_get_account_info - First observed
api_algod_get_application_box - First observed
api_algod_get_application_boxes - First observed
api_algod_get_application_by_id - First observed
api_algod_get_asset_by_id - First observed
api_algod_get_node_status - First observed
api_algod_get_node_status_after_block - First observed
api_algod_get_pending_transaction - First observed
api_algod_get_pending_transactions - First observed
api_algod_get_pending_transactions_by_address - First observed
api_algod_get_transaction_params - First observed
api_haystack_execute_swap - First observed
api_haystack_get_swap_quote - First observed
api_haystack_needs_optin - First observed
api_indexer_lookup_account_app_local_states - First observed
api_indexer_lookup_account_assets - First observed
api_indexer_lookup_account_by_id - First observed
api_indexer_lookup_account_created_applications - First observed
api_indexer_lookup_account_transactions - First observed
api_indexer_lookup_application_box - First observed
api_indexer_lookup_application_boxes - First observed
api_indexer_lookup_application_logs - First observed
api_indexer_lookup_applications - First observed
api_indexer_lookup_asset_balances - First observed
api_indexer_lookup_asset_by_id - First observed
api_indexer_lookup_asset_transactions - First observed
api_indexer_lookup_transaction_by_id - First observed
api_indexer_search_for_accounts - First observed
api_indexer_search_for_applications - First observed
api_indexer_search_for_assets - First observed
api_indexer_search_for_transactions - First observed
api_nfd_browse_nfds - First observed
api_nfd_get_nfd - First observed
api_nfd_get_nfd_activity - First observed
api_nfd_get_nfd_analytics - First observed
api_nfd_get_nfds_for_addresses - First observed
api_nfd_search_nfds - First observed
api_pera_asset_verification_status - First observed
api_pera_verified_asset_details - First observed
api_pera_verified_asset_search - First observed
api_tinyman_get_asset_optin_quote - First observed
api_tinyman_get_liquidity_quote - First observed
api_tinyman_get_pool - First observed
api_tinyman_get_pool_analytics - First observed
api_tinyman_get_pool_creation_quote - First observed
api_tinyman_get_remove_liquidity_quote - First observed
api_tinyman_get_swap_quote - First observed
api_tinyman_get_validator_optin_quote - First observed
api_tinyman_get_validator_optout_quote - First observed
assign_group_id - First observed
bigint_to_bytes - First observed
bytes_to_bigint - First observed
compile_teal - First observed
create_account - First observed
decode_address - First observed
decode_obj - First observed
decode_signed_transaction - First observed
decode_uint64 - First observed
disassemble_teal - First observed
encode_address - First observed
encode_obj - First observed
encode_uint64 - First observed
encode_unsigned_transaction - First observed
generate_algorand_qrcode - First observed
get_application_address - First observed
get_knowledge_doc - First observed
make_app_call_txn - First observed
make_app_clear_txn - First observed
make_app_closeout_txn - First observed
make_app_create_txn - First observed
make_app_delete_txn - First observed
make_app_optin_txn - First observed
make_app_update_txn - First observed
make_asset_config_txn - First observed
make_asset_create_txn - First observed
make_asset_destroy_txn - First observed
make_asset_freeze_txn - First observed
make_asset_transfer_txn - First observed
make_keyreg_txn - First observed
make_payment_txn - First observed
mdk_to_mnemonic - First observed
mnemonic_from_seed - First observed
mnemonic_to_secret_key - First observed
ping - First observed
rekey_account - First observed
secret_key_to_mnemonic - First observed
seed_from_mnemonic - First observed
send_raw_transaction - First observed
sign_bytes - First observed
sign_transaction - First observed
simulate_raw_transactions - First observed
simulate_transactions - First observed
validate_address - First observed
verify_bytes - First observed
wallet_add_account - First observed
wallet_get_assets - First observed
wallet_get_info - First observed
wallet_list_accounts - First observed
wallet_optin_asset - First observed
wallet_remove_account - First observed
wallet_sign_data - First observed
wallet_sign_transaction - First observed
wallet_sign_transaction_group - First observed
wallet_switch_account
TDQS
The tool set has clear groupings (Alpha Arcade, API calls, core utilities, wallet operations) with distinct purposes within each group, but there is significant overlap across groups, such as multiple swap quote tools (api_haystack_get_swap_quote, api_tinyman_get_swap_quote) and redundant encoding/decoding functions (encode_obj/decode_obj, encode_uint64/decode_uint64). This can lead to confusion for agents when selecting the appropriate tool for a given task, especially without clear domain separation in naming.
Naming conventions are highly inconsistent across the tool set. There is a mix of prefixes (alpha_, api_, wallet_), inconsistent use of underscores (e.g., api_algod_get_account_info vs. make_payment_txn), and varying verb styles (e.g., create_account vs. wallet_add_account). Some tools use full words (e.g., assign_group_id), while others are abbreviated (e.g., mdk_to_mnemonic). This lack of a unified pattern makes the tool set harder to navigate and predict.
With 120 tools, the count is extremely high and feels overwhelming for a single server. This suggests poor scoping, as many tools could be consolidated or grouped into sub-servers. The sheer volume makes it difficult for agents to efficiently discover and use the right tools, indicating a significant mismatch between the number of tools and a coherent, manageable interface.
The tool set appears highly comprehensive for the Algorand ecosystem, covering core blockchain operations (transactions, accounts), API integrations (algod, indexer, NFD, Pera, Tinyman, Haystack), Alpha Arcade trading, and wallet management. There are no obvious major gaps, as it supports a wide range of actions from basic utilities to advanced DeFi interactions, though the extreme breadth may dilute focus rather than indicate incompleteness.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThis server provides a standardized framework using the Model Context Protocol (MCP) to seamlessly integrate and manage diverse tools, enabling features like Twitter automation, cryptocurrency updates, and ElizaOS interaction.2MIT
- AlicenseBqualityCmaintenanceAlchemy's official MCP Server. Allow AI agents to interact with Alchemy's blockchain APIs.971,01788MIT
- FlicenseNot gradedqualityFmaintenanceMCP server with 12 tools enabling AI agents (Claude, ChatGPT) to manage Algorand-based subscriptions, including locking funds in vaults and automated payments.4-
- AlicenseAqualityDmaintenanceMCP server for question.market prediction markets on Algorand. Enables market browsing, wallet onboarding, and trading through natural language.1316MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/GoPlausible/algorand-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server