Skip to main content
Glama

splinterlands-mcp

Connect Codex, Claude Desktop, Claude Code, or another Model Context Protocol (MCP) client to Splinterlands. Your assistant can then look up public game data to answer questions about your Land, cards, account, and transactions.

The server is read-only. It never asks for your private keys and cannot sign transactions, spend funds, move cards, or change anything in your account.

Version 1.0.0 requires a current Node.js 22 or 24 LTS patch release, with 22.13 as the minimum.

Start here

After installing the server and connecting your assistant, try questions such as:

  • Which workers are on this Land plot, and how much are they producing?

  • Which cards in my collection are currently staked on Land?

  • Show my custom avatar and tell me its level.

  • What happened in this Hive transaction?

  • How would replacing a worker affect this plot's production and food use?

Give the assistant the account name, plot, or transaction you want it to inspect. It can use the available tools to gather the relevant facts and explain the result.

Related MCP server: Splunk MCP Server

Land and worker comparisons

You can look up plots, workers, staking, DEC power, resources, projects, and liquidity pools. Plot lookups accept the familiar region-tract-plot label, such as 001-02-001, as well as internal plot and deed identifiers.

For worker comparisons, the server can gather a plot's current setup and calculate alternatives. Estimates account for supported terrain effects, production caps, abilities, Runi, Power Cores, food use, and regional DEC power. The current estimator covers Grain, Wood, Stone, and Iron worksites; Castles, Keeps, SPS, and Research are outside its scope.

These are planning tools. A production estimate does not establish that a card is available to stake or that the game will accept a proposed change. The snapshot tool checks its starting figures against the game, and reports missing information or disagreements rather than filling in guesses. Its combined snapshot-and-estimate workflow has been verified on a populated Grain plot; other setups still need an agreeing starting point.

Cards, players, and markets

Collection tools can find cards by characteristics such as element, subtype, Land power, and staking state. They can also attach verified plot references where available. A card in cooldown may still refer to its former plot, so that reference is not proof that it is working there now.

Account tools cover public profiles, balances, rewards, quests, skins, delegations, and other game records. Market tools provide sale and rental listings, prices, activity, and status. There are also reads for battles, tournaments, guilds, conflicts, proposals, and rankings.

For avatars, ask for the custom avatar-builder character. The server can compose its artwork and report the level separately, without drawing the level onto the image. The legacy profile-image tool is different and may return RUNI artwork.

Transactions and game rules

The Hive tools can look up a signed transaction, inspect its operations, and compare it with Splinterlands' record of what happened. They can also search a limited window of an account's Hive history. A transaction appearing on the blockchain does not, by itself, prove that every game operation succeeded.

The server includes reference information for Land production rules and Hive transaction limits. Each reference states its sources and scope. These references help explain results; they do not replace checks against current game data.

Understanding the results

Some Splinterlands endpoints return only part of a list, ignore paging parameters, or return different kinds of empty responses. The server reports those limits. A short result is not automatically your entire collection, history, or ranking, and an empty response is not proof that an asset or account does not exist.

Requests have time, size, and rate limits to keep reads manageable. Some results are cached, and their freshness is reported. Related reads can also happen at slightly different times, so they should not be treated as one perfectly synchronized view of the game.

The reference below lists all 185 tools. For request budgets, exact parameters, cache behavior, and recorded API quirks, see the technical capability notes and safety boundaries.

Tools and upstream routes

This table is the complete registration-to-route mapping in src/server.ts, matched to pathTemplate in src/catalogue/catalogue.json. The two knowledge tools are local and make no upstream request.

Tool

Upstream route

vapi_market_player_asset_detail_stats

GET /market/player/asset-detail-stats

vapi_market_player_all_listings

GET /market/player/all_listings

vapi_market_player_listings

GET /market/player/listings

vapi_market_player_activity

GET /market/player/activity

player_inventory

GET /players/inventory

battle_queue

GET /battle/battle_queue

battle_result

GET /battle/result

battle_status

GET /battle/status

cards_collection

GET /cards/collection/{username}

cards_find

GET /cards/find

cards_get_details

GET /cards/get_details

cards_history

GET /cards/history

cards_lore

GET /cards/lore

cards_mint_history

GET /cards/mint_history

cards_pack_data_wax

GET /cards/pack_data_wax

cards_pack_jackpot_overview

GET /cards/pack_jackpot_overview

cards_skins

GET /cards/skins

prices_current

GET /prices

ranked_draws_status

GET /ranked_draws/status

ranked_draws_prize_overview

GET /ranked_draws/prize_overview

ranked_draws_complete

GET /ranked_draws/complete

ranked_draws_entries_completed

GET /ranked_draws/entries_completed

ranked_draws_available_prizes

GET /ranked_draws/available_prizes

ranked_draws_recent_prizes

GET /ranked_draws/recent_prizes

frontier_draws_status

GET /frontier_draws/status

frontier_draws_prize_overview

GET /frontier_draws/prize_overview

frontier_draws_complete

GET /frontier_draws/complete

frontier_draws_entries_completed

GET /frontier_draws/entries_completed

frontier_draws_available_prizes

GET /frontier_draws/available_prizes

frontier_draws_recent_prizes

GET /frontier_draws/recent_prizes

cards_ca_gold_rewards

GET /cards/ca_gold_rewards

cards_trx_lookup

GET /cards/trx_lookup

collector_stickers_tradeable

GET /collector/{player}/stickers/tradeable

collector_config

GET /collector/config

collector_player

GET /collector/{player}

collector_binder

GET /collector/{player}/{binderRef}

collector_stickers

GET /collector/{player}/stickers/all

conflict_airdrop_distribution

GET /conflicts/airdrop_distribution

conflict_eligible_cards

GET /conflicts/wagon_eligible_cards

conflict_leaderboard

GET /conflicts/leaderboard

conflict_player_rank

GET /conflicts/leaderboard_with_player

conflict_players

GET /conflicts/players

conflict_seasons

GET /conflicts/seasons

conflict_status

GET /conflicts/status

conflict_wagon

GET /conflicts/wagon

describe_endpoint

Offline; reads the local endpoint catalogue

game_last_block

GET /last_block

game_maintenance

GET /maintenance_schedule

game_settings

GET /settings

game_vapi_health

GET /

guild_brawl_records

GET /guilds/brawl_records

guild_brawl_sps_rewards

GET /guilds/brawl_sps_rewards

guild_contributions

GET /guilds/contributions

guild_find

GET /guilds/find

guild_list

GET /guilds/list

guild_members

GET /guilds/members

land_deed_by_plot

GET /land/deeds/{plot_id}

land_deed_by_uid

GET /land/deeds/details/{deed_uid}

land_deeds_owned

GET /land/deeds/owned/{player}

land_deeds_search

GET /land/deeds

land_liquidity_allrewards

GET /land/liquidity/allrewards

land_liquidity_pool_by_id

GET /land/liquidity/pools/{id}

land_liquidity_pool_by_symbol

GET /land/liquidity/poolsbysymbol/{symbol}

land_liquidity_positions_no_vesting

GET /land/liquidity/pools/{player}/all-no-vesting

land_liquidity_pools

GET /land/liquidity/pools

land_liquidity_quote

GET /land/liquidity/quote/{poolId}

land_liquidity_region

GET /land/liquidity/region/{player}

land_liquidity_resources

GET /land/liquidity/resources/{player}/{token}

land_projects_active

GET /land/projects/deed/{deed_uid}/active

land_projects_count

GET /land/projects/deed/{deed_uid}/list/count

land_projects_history

GET /land/projects/deed/{deed_uid}/list

land_projects_requirements

GET /land/projects/deed/{deed_uid}/requirements

land_regions_counts

GET /land/regions/counts

land_resources_balances_history_count

GET /land/resources/balances/history/{player}/count

land_resources_balances_history

GET /land/resources/balances/history/{player}

land_resources_fragment_history

GET /land/resources/fragment_history/{trx_id}

land_resources_history

GET /land/resources/history/{trx_id}

land_resources_leaderboards

GET /land/resources/leaderboards

land_resources_liquidity_swaps

GET /land/resources/liquidity/swaps/{player}

land_resources_owned

GET /land/resources/owned

land_resources_production_region_harvestable

GET /land/resources/production/region/harvestable

land_resources_rewardactions_count

GET /land/resources/rewardactions/{deedUID}/count

land_resources_rewardactions

GET /land/resources/rewardactions/{deedUID}

land_resources_richlist

GET /land/resources/richlist

land_resources_taxes

GET /land/resources/taxes/{deedUID}

land_resources_titles_assigned

GET /land/resources/titles/assigned

land_resources_titles

GET /land/resources/titles

land_power_core_available

GET /land/stake/items/{stakeTypeUid}/available

land_power_core_grouped

GET /land/stake/items/{stakeTypeUid}/grouped

land_stake_assets

GET /land/stake/deeds/{deedUid}/assets

land_stake_dec_overall

GET /land/stake/dec/overall

land_stake_dec_region

GET /land/stake/dec/region

land_stake_dec_staked

GET /land/stake/decstaked

land_stake_deed_details

GET /land/stake/deed/details/{deedUid}

land_stake_evp_pending_claim

GET /land/stake/evp/pending-claim

land_tracts_counts

GET /land/tracts/counts

land_volume

GET /land/volume

land_plot_snapshot

Four bounded public GETs: deed by plot, active project, stake details and stake assets

land_lineup_snapshot

Bounded compound GETs; at most ten logical requests

land_lineup_estimate

Offline; calculates a supplied Land lineup

hive_account_history

Read-only RPC: condenser_api.get_account_history

hive_transaction

Read-only RPC: condenser_api.get_transaction

transaction_inspect

Read-only Hive transaction RPC + GET /transactions/lookup

list_endpoints

Offline; reads the local endpoint catalogue

market_active_rentals

GET /market/active_rentals

market_active_status

GET /market/active_status

market_completed_status

GET /market/completed_status

market_for_rent_grouped

GET /market/for_rent_grouped

market_for_sale_grouped

GET /market/for_sale_grouped

market_for_sale_packages

GET /market/for_sale_packages

market_history

GET /market/history

market_query_by_card

GET /market/market_query_by_card

market_query_grouped

GET /market/market_query_grouped

market_rental_history

GET /market/rental_history

market_status

GET /market/status

market_volume

GET /market/volume

player_archived_balances

GET /players/archived_balances

player_authorities

GET /players/authorities

player_balances

GET /players/balances

player_burn_event_player

GET /players/burn_event_player

player_burn_event_prizes

GET /players/burn_event_prizes

player_burn_event_full_leaderboard

GET /players/burn_event_full_leaderboard

player_burn_event_leaderboard

GET /players/burn_event_leaderboard

player_card_airdrop

GET /players/card_airdrop

player_current_rewards

GET /players/current_rewards

player_daily_updates

GET /players/daily_updates

player_dec

GET /players/dec

player_energy_purchase_information

GET /players/energy_purchase_information

player_last_focus_rewards

GET /players/last_focus_rewards

player_last_season_rewards

GET /players/last_season_rewards

player_leaderboard_with_player

GET /players/leaderboard_with_player

player_leaderboard

GET /players/leaderboard

player_lp_claim_history

GET /players/lp_claim_history

player_pack_purchases

GET /players/pack_purchases

player_presale_leaders

GET /players/rebellion_presale_leaders

player_avatar

GET /players/avatar/{name}

player_custom_avatar

GET /players/player_avatar/{name}

player_dyk

GET /players/dyk/{locale}

player_profile

GET /players/details

player_quests

GET /players/quests

player_recent_teams

GET /players/recent_teams

player_reward_delegation_history

GET /players/reward_delegation_history

player_reward_delegations

GET /players/reward_delegations

player_richlist_ranking

GET /players/richlist_ranking

player_richlist

GET /players/richlist

player_season

GET /season

player_skins

GET /players/skins

player_unclaimed_balance_history

GET /players/unclaimed_balance_history

player_unclaimed_balances

GET /players/unclaimed_balances

player_voucher

GET /players/voucher

players_item_details

GET /players/item_details

proposal_list

GET /proposals/

proposal_pending_count

GET /proposals/pending_proposal_count

proposal_votes

GET /proposals/votes

purchase_settings

GET /purchases/settings

purchase_stats

GET /purchases/stats

purchase_uniswap_reward

GET /purchases/check_uniswap_reward

rental_bids_lowest_price

GET /delegation-rental/v3/bids/lowest-price

rental_bids

GET /delegation-rental/v3/bids

rentals_by_player

GET /delegation-rental/rentals/player/{player}

rentals_by_bid

GET /delegation-rental/rentals/bid/{bid}

rental_offers_lowest_price

GET /delegation-rental/v3/offers/lowest-price

rental_offers_by_player

GET /delegation-rental/v3/offers/player/{player}

rental_bids_by_player

GET /delegation-rental/v3/bids/player/{player}

rentals_v3_by_player

GET /delegation-rental/v3/rentals/player/{player}

rentals_v3_by_role

GET /delegation-rental/v3/rentals/player/{player}/{role}

delegations_outgoing

GET /delegation/outgoing/{player}

delegations_incoming

GET /delegation/incoming/{player}

delegation_to_target

GET /delegation/delegation/{player}/{target}

rental_offers

GET /delegation-rental/v3/offers

tournament_battles

GET /tournaments/battles

tournament_cancelled

GET /tournaments/cancelled

tournament_completed

GET /tournaments/completed

tournament_find_brawl

GET /tournaments/find_brawl

tournament_find

GET /tournaments/find

tournament_in_progress

GET /tournaments/in_progress

tournament_mine

GET /tournaments/mine

tournament_prizes

GET /tournaments/prizes

tournament_upcoming_official

GET /tournaments/upcoming_official

tournament_upcoming

GET /tournaments/upcoming

transaction_lookup

GET /transactions/lookup

transaction_metrics

GET /transactions/metrics

vapi_market_asset_metadata

GET /market/meta/asset/{assetName}

vapi_market_estimated_price

GET /market/estimated-price

vapi_market_landing

GET /market/landing

Worked example

Question: “Show me <ACCOUNT_NAME>’s land plots, and which of them are producing the most.” This is a two-call example.

  1. Call land_deeds_owned with player: "<ACCOUNT_NAME>". Its response gives the account’s per-region plot counts.

  2. Call land_deeds_search with player: "<ACCOUNT_NAME>" and a suitable limit. Its limited response contains deeds, worksite_details, and staking_details arrays. Join rows from all three arrays on their shared deed_uid; rank the deeds by staking_details[].total_work_per_hour.

The second response is bounded by a 256 KB serialized-result limit. If it is too large, request a smaller limit; the server does not return partial data. In the recorded probes, offset=0 returned zero rows and offset=5 returned the first four rows of the omitted-offset response; no offset value tried reached later rows. This ranks the returned page, not necessarily every plot counted by the first call.

What it is, and its current boundaries

  • Read-only. Catalogue endpoint tools wrap GET requests. The isolated Hive reader permits only two read-only JSON-RPC methods over POST. The two knowledge tools make no upstream request. Nothing in this server issues a write.

  • No credentials today. This server does not ask for, store, or transmit Splinterlands account credentials, Hive keys, or other secrets. Endpoints that require login are unavailable; the server reports that boundary rather than pretending to provide their data.

  • Unsupported catalogue routes are excluded. 34 of the 211 catalogued routes are not advertised as tools because their dated probes did not produce a usable, distinct, or honestly-selected response. The first group contains three Land routes classified 2026-09-07 and six market, rental and collector routes classified 2026-09-12:

    Upstream route

    Why it is unsupported

    Classified

    GET /collector/{player}/stickers/for_sale

    Empty lists from two featured accounts; populated sale-list contract remains unverified.

    2026-09-13

    GET /collector/me

    Official specification explicitly requires authentication; not called.

    2026-09-12

    GET /collector/me/stickers

    Official specification explicitly requires authentication; not called.

    2026-09-12

    GET /collector/me/binders/{binderId}

    Official specification explicitly requires authentication; not called.

    2026-09-12

    GET /delegation-rental/v3/offers/pending/{player}

    Three public participants returned empty lists; populated pending-offer shape remains unverified.

    2026-09-13

    GET /delegation-rental/bids

    Two bounded anonymous reads timed out after 20 seconds; no usable body or auth determination. Distinct from working V3 bids.

    2026-09-12

    GET /market/debug/listing

    Diagnostic debug route outside public game-data scope; not called.

    2026-09-12

    GET /market/debug/listing-item

    Diagnostic debug route outside public game-data scope; not called.

    2026-09-12

    GET /land/deeds/details/id/{plotId}

    Probed with a real plot id, a real item id, and an implausible id; every request returned an empty success envelope rather than a deed record.

    2026-09-07

    GET /land/stake/cards/{stakeTypeUid}/available

    Across the tested query shapes, every request returned no usable rows or populated response; the route has never been observed to provide an availability result.

    2026-09-07

    GET /land/stake/cards/{stakeTypeUid}/grouped

    Across the tested query shapes, every request returned no usable rows or populated response; the route has never been observed to provide a grouped result.

    2026-09-07

    A further ten were classified 2026-09-08, across five distinct hazard kinds — gated, evidenced non-functional, functional-but-redundant, fabricates a plausible answer, and a parameter whose name misdescribes what it selects:

    Upstream route

    Why it is unsupported

    Classified

    GET /land/resources/production/overview

    Called without credentials as part of ~17 paced requests; every call returned HTTP 401. Gated.

    2026-09-08

    GET /land/resources/production/region/overview

    Called without credentials as part of ~17 paced requests; every call returned HTTP 401. Gated.

    2026-09-08

    GET /land/resources/balances/history/{player}/{regionuid}

    Called with real region uids, a numeric region number, and garbage inputs; every input returned HTTP 500, including real region uids.

    2026-09-08

    GET /land/resources/balances/history/{player}/{regionuid}/count

    Called with real region uids and invalid inputs; every input returned HTTP 500, including real region uids.

    2026-09-08

    GET /land/liquidity/landpools

    Pure duplicate of the land-resource subset of GET /land/liquidity/pools; its rows are byte-identical to rows already returned by land_liquidity_pools.

    2026-09-08

    GET /land/liquidity/voucherpool

    Pure duplicate of the voucher/SPS subset of GET /land/liquidity/pools; its rows are byte-identical to rows already returned by land_liquidity_pools.

    2026-09-08

    GET /land/resources/titles/assigned/{player}

    Functional but redundant: returns the same title, player, and created_date data as GET /land/resources/titles?player=, which is covered by land_resources_titles and enforces a better parameter contract.

    2026-09-08

    GET /land/resources/liquidity/history/swaps/{pool}/{player}

    Duplicates land_resources_liquidity_swaps, but its days parameter is inert — every tested value (including omitted, 0, negative, and non-numeric) returned the identical 682-row set.

    2026-09-08

    GET /land/liquidity/pools/{player}/{token}

    Fabricates content rather than being gated, broken, or redundant: a garbage player and garbage token are silently accepted and echoed into a synthesised VESTING-{token} entry with balance: null, indistinguishable from a genuine no-position response.

    2026-09-08

    GET /land/liquidity/pool/rewards/{token}/{poolId}

    The {poolId} path parameter's name misdescribes what it selects: it is matched against an individual reward-record id, not liquidity_pool_id — DEC/69 returned a row whose actual pool was 1. A tool built around "this pool's rewards" would misrepresent every answer.

    2026-09-08

    GET /cards/stats

    The upstream returned a functional 481 KB array with no filter, so it cannot pass through this server's 256 KB result bound. This is a distinct server-bound classification, not an upstream failure or one of the five semantic hazard kinds above.

    2026-09-08

    Full evidence for the 2026-09-08 batch is in the generated catalogue (src/catalogue/catalogue.json, notes field per entry) and in library/decisions.md. These player routes are excluded based on the dated observations above:

    Upstream route

    Why it is unsupported

    Classified

    GET /players/history

    Unauthenticated probes returned HTTP 401.

    2026-09-09

    GET /players/balance_history

    Unauthenticated probes returned HTTP 401.

    2026-09-09

    GET /players/referral_payments

    All probed accounts returned zero rows; no populated response or paging behaviour was established.

    2026-09-09

    GET /players/referral_users

    All probed accounts returned zero rows; no populated response or paging behaviour was established.

    2026-09-09

    GET /battle/history

    Unauthenticated read returned HTTP 401.

    2026-09-12

    GET /battle/history2

    Unauthenticated read returned HTTP 401.

    2026-09-12

    GET /battle/battle_teams_info

    Unauthenticated read returned HTTP 401.

    2026-09-12

    GET /battle/submit_ptr

    Submission operation; never called or exposed by this read-only server.

    2026-09-12

    GET /tournaments/frays

    HTTP 200 contained a nested authentication error in frays; public counts do not establish an accessible roster.

    2026-09-12

    GET /tournaments/crown_pot

    Captured brawl status was ineligible; no successful crown-pot contract established.

    2026-09-12

    GET /purchases/status

    Only empty objects captured; no verified populated receipt contract or purchase ID.

    2026-09-12

    GET /players/inventory

    A measured response was about 986 KB, above this server's 256 KB result bound.

    2026-09-09

    GET /players/details_by_id

    A genuine numeric player id was not available in the profile response, so a successful lookup was not established.

    2026-09-09

  • No design hook for authentication. There is no config field, no commented-out branch, and no environment variable this server reads to attach credentials to a request. Adding one is outside the current scope and contribution policy.

Not included: login-only balance history

GET /players/balance_history can return a per-transaction balance change log, including token, amount, balance before and after, transaction type, counterparty, and transaction id. It requires a logged-in player token, so this read-only server does not expose it today.

A future opt-in would require the user to supply a token for the request and would need a clear account and query scope. The design would have to explain consent, how the token is handled in transit, and logging and retention. A token must never be stored in the repository. This would require an explicit change to the server's authentication policy and a separate privacy review; it is not currently supported or a commitment to add one.

Install

This package is not published to npm. From a checkout, use a current Node.js 22 or 24 LTS patch release (minimum 22.13), install dependencies, and build the executable:

npm ci
npm run build

Claude Desktop

Add to your Claude Desktop MCP config (claude_desktop_config.json):

{
  "mcpServers": {
    "splinterlands": {
      "command": "node",
      "args": ["<checkout>/dist/index.js"]
    }
  }
}

Claude Code

claude mcp add splinterlands -- node "<checkout>/dist/index.js"

Safety toward Splinterlands' servers

The transport follows Splinterlands' official API specification and vapi specification. These defaults apply process-wide, separately for each approved API host (api.splinterlands.com, vapi.splinterlands.com, and prices.splinterlands.com):

Control

Default

Request rate

2 requests/second, burst 4; SPLINTERLANDS_MCP_RATE is capped at 5/second

Concurrent requests

2 in flight per host

Timeout

20 seconds

Retries

3 total attempts for 408, 429, 500, 502, 503, and 504 only

Retry backoff

Exponential with jitter, starting at 1 second and capped at 8 seconds

Circuit breaker

5 consecutive failures; open for 60 seconds

Response cap

2 MB, streamed

Per-call budget

1 logical upstream request; retries of that request are allowed

Cache

In-memory only; settings use a one-hour success cache, card details a 24-hour metadata cache, prices a five-minute success cache, collection pages a 60-second projected-page cache, and the auth tier a 15-minute cache

Access changes

401 is cached for 15 minutes; 403 stops traffic across all approved hosts for 60 seconds

Catalogue requests are HTTPS GETs to the three approved Splinterlands hosts, with redirects refused and URL credentials rejected. The avatar route reads the Location header and never follows it. Responses include a trace ID and retrieval freshness. Empty, malformed, upstream-error, gated, blocked, and temporarily unavailable responses remain separate outcomes so a tool can explain what happened without making claims about the account.

Maintenance posture

Nightly response checks, weekly specification comparisons and monthly fixture renewal are implemented. The four account-role secrets and complete request recipes have offline validation commands in the maintenance runbook. Hosted CI and bounded nightly, weekly, and monthly maintenance checks were verified for 1.0.0. Workflow configuration and current run status are visible in the repository Actions tab.

  • Run npm run drift:check with approved MCP_DRIFT_INPUTS to compare bounded endpoint reads. Changes update endpoint-specific issues; two blocked endpoints stop the sweep and produce one runner-blocked issue.

  • Run npm run drift:spec to compare both official API specifications without GitHub writes. The hosted job prepares specification changes in a review PR, preserving verified runtime access rules.

  • Run npm run drift:fixtures with approved MCP_FIXTURE_INPUTS to prepare sanitized captures. The hosted publish path validates changes before opening a review PR.

  • Run npm run drift:baseline to regenerate the response baseline from reviewed fixtures.

A drift issue reports a dated API change; it does not by itself mean the server is down. Review the affected contract and evidence before changing code. Unknown response-key names are withheld until reviewed because map keys can identify accounts. Setup, limits and PR review steps are in the maintenance runbook.

GitHub can disable scheduled workflows in a public repository after 60 days without repository activity. Merging reviewed maintenance PRs provides activity, but an unchanged API does not guarantee a PR. If schedules stop, open the repository's Actions tab, select each disabled workflow and choose Enable workflow, then run it manually to verify configuration. See GitHub's recovery instructions. No automatic empty commits are made.

If drift notifications prove noisy rather than useful, the maintainer can mark the repository unsupported in this README and disable its schedules.

When Splinterlands changes something

The official API specifications are linked above, and the catalogue records where each contract came from, using specification provenance and recorded observations as applicable. Observed behaviour has repeatedly differed from what a reader might expect—for example, some accepted parameters were inert. For the measured project-history route, offset=1 and limit=2&offset=2 did not reach later rows; for balance history, limit=3&offset=1, offset=2 and offset=3 returned empty arrays; and for reward actions, limit=3&offset=3 and limit=1&offset=1 returned empty arrays. This repository captures response evidence and operational observations rather than assuming declarations are complete. A changed field or response shape is surfaced as a drift signal for review; it is not automatically treated as an outage. If a route starts requiring authentication, the server reports that access change, keeps the tool in the tool list, and does not add credentials to make the request work.

Provenance and recovery

Recorded observations and decisions live in library/; request evidence lives in tests/evidence/; sanitised response fixtures live in tests/fixtures/. When an upstream change makes a contract test fail, recapture the response, review the new evidence and its classifications, and update the contract only when the evidence supports it. Never widen a contract merely to make a test pass.

Contributing

See CONTRIBUTING.md — in particular the clean-room test that every claim in this repository must pass.

License

MIT — see LICENSE.

Card mint reads

The three card-mint tools read public circulation data. cards_mint_history requires a positive card detail id and non-negative foil, preserves the upstream's optional total_minted field, and bounds the returned mints list to 100 rows and 256 KiB without fetching a continuation. Jackpot overview requires an edition and is cached for 24 hours; gold-reward count values remain strings as sent by the API. Empty arrays and the empty mint-history shape are valid answers, not errors.

Market reads

Fifteen market and purchase tools keep sale summaries, rental summaries, individual listings, grouped listings, current rentals, history and status separate. All are read-only. Status accepts exactly one of id or comma-separated ids; the upstream returns an object for a found singular ID and an array for plural IDs. Active rentals requires owner, renter or card_detail_id, observed selectors omitted from Swagger. Sale and rental grouped responses can exceed the local result bound and are explicitly truncated. Nested listing groups and card packages remain intact.

Active-rental offset and skip repeated the first page. They remain forwardable declared parameters, but do not provide working pagination. Rental-history offsets produced empty results despite a populated unoffset response; this does not establish the end of history. Seasonal listing queries used type=rent and rental_type=season. See market observations for exact limits and captures.

Battle reads

battle_queue reads an explicit username's existing queue records. battle_status and battle_result require a queue transaction id. These tools do not submit teams or join queues. Battle details, settings, team and reward fields retain their captured wire types, including JSON-encoded strings. HTTP 200 error strings from unknown IDs are errors. Oversized replays are refused without returning partial rounds. See battle observations.

Tournament reads

Ten tools cover tournament lists, details, brawls, matchups and prize aggregates. Lists are bounded without treating them as complete archives. Detail tools preserve rounds, guilds and totals while bounding the player list. The tested player_limit did not bound entrants upstream. Tournament battles require id, round and either player or swiss_group; the captured group 1 worked, while group 0 and username alone did not. The mine route is not proven to list an account's participation history. See tournament observations.

Guild reads

Six tools cover scoped guild search, details, members, building contributions, brawl records and global brawl SPS rewards. Guild search requires a name because the unfiltered response exceeded the 2 MiB transport cap. Member rows are not assumed active: status=active reduced the captured 230 rows to 30. Contributions require a building type. Reward include flags use the string 1 and select totals and cycle records independently; the total is global even when cycle filters narrow records. See guild observations.

Game metadata

Settings come from live API responses and use a one-hour success cache keyed by exact supplied query, capped at 32 entries. Freshness retains the original retrieval time and advances the reported age. Matching version/config_version returned the full body, not a delta. Block, maintenance, transaction and health reads do not use this settings cache. Transaction metrics requires explicit metric names and a from date; each series stays intact under the output bound. See metadata observations.

Conflicts and proposals

Eight conflict tools cover seasons, player reward points, recorded airdrops, rankings, status, wagons and eligible card groups. Conflict status flags use the string 1 and preserve omitted sections; wagon lists are bounded while returned totals and configuration remain intact. max_group_size limits sampled UIDs within eligible groups, not qty or total_cards. Three proposal tools read listings, counts and votes; no tool votes, claims an airdrop or stakes a wagon. Paired proposal and voter pages matched a four-row request in the capture. See conflict and proposal observations.

The land_stake_assets response includes worker_view with Base Production, Base PP after cap, Terrain Boost, Boostable Production and Total Production beside unchanged source cards/items. Values retain upstream precision and response freshness. Explicitly unpowered display values are zero; absent evidence stays unknown. The view uses no extra request and shares the result byte limit.

Collection staking filters: staked=yes selects active workers, staked=no selects explicitly unstaked cards, and staked=plot requires stake_plot_id (numeric). Optional staking dates and numeric stake_plot retain source values. Missing fields produce unknown state; cooling and pending cards are separate states. Cached pages retain staking_observed_at. Numeric references are not presented as verified padded plot labels. Field behavior is supported by public-client inspection, synthetic cases and a populated live collection check; returned staking references retain their observation time and do not establish current action eligibility.

land_lineup_estimate computes an ordered, explicitly supplied worker snapshot without API calls: Base/capped Base, Boostable, Total PP, gross resource/hour, food/hour and validity/ability checks. Core/Energized, Runi, cap order and strongest duplicate abilities are included. Supply source values, not bare UIDs. This initial estimator handles Grain/Wood/Stone/Iron worksites with neutral and dual-element selection and all 14 terrain assignments; Castles/Keeps and SPS/Research remain outstanding. Output is a dated client-preview estimate, not live ownership or backend verification. See library/observations/lineup-food-client-2026-09-12.json.

For worker-swap power estimates, supply regional_power with staked_dec, current_required_dec (including this plot) and current_plot_required_dec instead of plot.efficiency. Supply each ordinary worker’s raw land_dec_stake_needed before cap and Dark Discount. The estimator replaces this plot’s old demand, applies cap/discount/Runi rules, and reports new regional demand, efficiency and shortfall. Other plots are held fixed; moving a worker from another plot requires accounting for that change in the supplied regional snapshot. No balances are fetched. See library/observations/lineup-regional-power-2026-09-12.json.

Joined collection rows also expose normalized element/secondary_element and selected-level land_abilities with a known/level_missing status. The element filter matches either element. Raw land_dec_stake_needed is retained when supplied upstream; absent demand stays unknown. No Land-ability table means none in that definition; an unavailable level is not treated as an empty list. The estimator resolves known edition-19 abilities internally, so omit an abilities override for those cards. Other returned codes may remain unsupported by the estimator and must not be silently dropped.

The offline land_lineup_estimate tool accepts optional comparisons: up to ten uniquely labelled { label, lineup } entries alongside the ordinary baseline fields. Each lineup contains a complete independent estimator input. This evaluates several alternatives in one MCP call without HTTP; it does not gather missing card, plot or power facts. Results preserve input order and each alternative's validity. An invalid alternative marks the tool response as an error while preserving valid results. Alternatives do not update one another's regional balances, and the tool does not rank different resources.

The land_stake_deed_details response adds plot_view: the public overview's PRODUCTION / HR numeric value and separate reference values for raw/capped Base, Boostable, Total PP and resource output. Effective PP applies efficiency except with Runi. Reference labels are explanatory; they do not assert identical screen columns. Raw upstream data remains unchanged, and missing display inputs remain unknown.

player_inventory requires username and an upstream type filter. The observed Land filter still includes Token rows. Optional item_detail_id filters all received rows locally before the 100-row/256-KiB result bound; upstream_rows, matched_rows and truncated describe the scope. It does not infer staking eligibility or full holdings. See library/observations/player-inventory-2026-09-12.json.

Four account market tools read activity, per-asset listings, all-listing rows and owned/listed stats. Activity requires player, types and sort; the observed client defaults are purchase,sale and desc. A fresh sample returned buyer-matched purchases and seller-matched sales. asc returned older rows and sale selected sales. Omitted offset returned rows while explicit offset=0 and offset=1 returned none in that sample; do not assume conventional row-offset paging. The existing landing tool also returns player-specific numOwned when supplied. See library/observations/v1-0-5-public-reads-2026-09-29.md.

player_avatar resolves a legacy profile image redirect, which may return RUNI artwork rather than the custom character. It returns avatar_url, image_url and redirect_status without downloading the image.

player_custom_avatar returns saved avatar-builder settings, including numeric level as metadata. Set render=true to compose official artwork layers into a PNG image content block. The artwork contains no level numeral, badges or exemplar level frame/gem; those remain separate interface data. Unknown cosmetics and failed assets return an error instead of partial artwork. See custom avatar data and artwork.

Available Tools

185 tools
battle_queueA

Read the existing battle queue records for an explicit username. This does not join a queue or submit a team. Captured queue fields such as mana_cap and team may be null even when status returns fuller data. Settings and team values retain their JSON-encoded string wire types. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations present, the description carries the full burden and does so thoroughly: it discloses that continuation pages are not auto-fetched, arrays are truncated at 100 rows/256 KiB with reports, oversized records are refused, fields may be null, and wire types remain JSON-encoded strings. This goes far beyond a basic read description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is front-loaded with the purpose and then provides dense, useful caveats. It is slightly verbose with boilerplate such as 'Other declared filters are forwarded as supplied,' which is confusing given the one-parameter schema, and it has a missing period after 'Makes one logical GET request.'

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

Completeness5/5

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

Despite having no output schema and no annotations, the description covers nullability, wire-format behavior, request nature, pagination, local limits, truncation reporting, refusal behavior, and policy/upstream constraints. For a one-parameter read-only endpoint, an agent has enough context to call correctly and interpret results safely.

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

Parameters3/5

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

The schema only exposes username with minLength 1, and the description calls it 'explicit username' and notes that required inputs reflect tool policy/upstream requirements. It does not add much semantic detail beyond the parameter name, but for a single self-describing parameter this is adequate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Read the existing battle queue records for an explicit username.' It also clarifies what it is not ('does not join a queue or submit a team'), distinguishing it from battle-queue mutation tools and from siblings like battle_status or battle_result.

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

Usage Guidelines4/5

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

The description gives clear context: use this to read queue records for a particular username, not to perform mutations. It explicitly excludes queue-joining and team-submission behavior. It does not name a specific alternative sibling, but the negative instruction is enough to route an agent correctly.

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

battle_resultB

Read a battle result by explicit queue transaction ID. Either captured opponent queue ID returned the same battle. Details, settings and reward information retain their original wire types, including JSON-encoded strings. Unknown IDs returned an error string. Oversized results are refused without dropping rounds or player data. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose meaningful behaviors: original wire types, JSON-encoded strings, unknown-ID error strings, oversized-result refusal, one logical GET request, no continuation-page auto-fetching, and local array limits. Some boilerplate is generic and ambiguous, but overall transparency is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The description is over-long and contains repetitive statements about oversized results, vague boilerplate about declared filters, and grammatical issues. The key information is buried under generic sentences that do not clearly apply to this single-parameter tool.

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

Completeness4/5

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

For a tool with no output schema and no annotations, the description covers many important aspects: read behavior, possible ID variants, error handling, request method, pagination stance, and response-size limits. It remains somewhat unclear about the exact successful response shape, but it is reasonably complete for a simple endpoint.

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

Parameters4/5

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

Schema coverage is 0%, so the description must explain the sole 'id' parameter. It does: the id is a queue transaction ID, and either the captured or opponent's queue ID can return the same battle. That adds real meaning beyond the schema's type/minLength, though no format example is given.

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

Purpose4/5

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

The opening sentence 'Read a battle result by explicit queue transaction ID' clearly names a specific verb, resource, and key. The follow-up sentence about captured opponent queue IDs adds useful nuance but is grammatically awkward, and no sibling tool is named for differentiation.

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

Usage Guidelines2/5

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

The description states that an explicit queue transaction ID is required, but gives no guidance on when to choose this tool over siblings like battle_queue or battle_status. Statements about 'required inputs reflect tool policy' and filters being forwarded are vague and do not help an agent decide.

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

battle_statusA

Read battle status by explicit queue transaction ID. Obtain an ID from battle_queue. Team and settings are returned as upstream JSON-encoded strings. Unknown IDs returned HTTP 200 with an error string and are reported as errors, not successful battle records. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers substantial behavioral detail: unknown IDs return HTTP 200 error strings, only one logical GET is made, no continuation pages are auto-fetched, array responses are locally limited to 100 rows and 256 KiB, truncation is reported, and oversized records are refused. This is exceptionally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The main purpose is front-loaded and most sentences add behavioral value. However, boilerplate phrases like 'Required inputs reflect tool policy...' and 'Other declared filters are forwarded as supplied...' are vague and largely irrelevant for a single-parameter schema.

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

Completeness4/5

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

For a single-ID lookup with no output schema and no annotations, the description covers ID sourcing, error semantics, request behavior, and local limits. It partially describes return data by mentioning team and settings as JSON-encoded strings, but does not fully characterize the response shape, which leaves some uncertainty for the agent.

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

Parameters4/5

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

The single parameter is described as an 'explicit queue transaction ID' obtained from battle_queue, which adds meaning beyond the bare schema. Since schema description coverage is 0%, this semantic clarification is important; it could further specify format or expected length, but one well-contextualized parameter is largely covered.

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

Purpose5/5

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

The description opens with 'Read battle status by explicit queue transaction ID,' naming a specific verb, resource, and lookup key. It further points to battle_queue as the source of the ID, which differentiates it from the many sibling lookup and battle-related tools.

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

Usage Guidelines4/5

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

It gives explicit guidance to obtain the ID from battle_queue and explains how unknown IDs are handled (HTTP 200 with an error string). It does not explicitly contrast with battle_result or other siblings, but the ID-source instruction provides clear practical usage context.

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

cards_ca_gold_rewardsA

Read the public card gold-reward counts. The response is a bare array and count remains a JSON string exactly as sent by the upstream. Uses a bounded success cache keyed by exact supplied query, otherwise makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior5/5

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 an excellent job. It discloses caching behavior, response format (bare array, JSON string counts), pagination behavior, local row/size limits, truncation reporting, and refusal of oversized records. This is far beyond what annotations would typically provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is dense but well-organized, front-loading the core purpose and then covering behavioral details. Every sentence adds value, though the length is slightly high for a zero-parameter tool. It could be trimmed slightly without losing essential information.

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

Completeness5/5

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

For a zero-parameter, no-output-schema tool, the description is remarkably complete. It covers what the tool does, how it behaves, limits, truncation, and refusal behavior. An agent has everything needed to call it correctly and interpret the response.

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

Parameters4/5

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

The schema has zero parameters, so there are no parameter semantics to document. The description explains that required inputs reflect tool policy and upstream requirements, and that other declared filters are forwarded as supplied. This is a baseline 4 for a zero-parameter tool, with the description adding useful context about how inputs are handled.

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

Purpose4/5

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

The description clearly states the tool reads public card gold-reward counts, which is a specific verb and resource. It distinguishes itself from siblings by focusing on gold-reward counts, though it doesn't explicitly name a sibling alternative.

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

Usage Guidelines4/5

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

The description provides clear context: it reads public data, uses a bounded cache, makes one logical GET request, and does not auto-fetch continuation pages. It doesn't explicitly state when to use this tool versus alternatives, but the scope is clear enough for an agent to select it appropriately.

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

cards_collectionA

Optional include_plot_references adds reported_stake_plot_reference with verified padded label, numeric ID and deed UID to returned cards using at most one account-scoped deed search (limit 200); the call then permits three logical GETs instead of two. Unresolved or conflicting references remain null with explicit status and separate freshness. This is not complete holdings discovery. Cooling cards have left their old plot; a retained reference is historical. The projected collection cache is reused when only this option changes, and plot references are read afresh. Joined metadata exposes normalized element and secondary_element, plus only the selected level’s land_abilities and land_abilities_status. Missing level entries are unknown, never an invented empty ability list; absent ability tables mean no Land abilities in that definition. Raw numeric land_dec_stake_needed is retained if present. The element filter matches either normalized element. For known edition-19 cards, land_lineup_estimate resolves its dated abilities itself; omit an explicit abilities override there. Other cards can use the returned ability tuples, subject to estimator-supported codes. Optional stake_start_date, stake_end_date and numeric stake_plot are retained when present. staking_status and staking_observed_at classify one capture as staked, unstaking, unstaked, pending or unknown; cached pages preserve that classification time. Missing dates are unknown, not unstaked. Local staked=yes selects active staking, staked=no selects explicitly unstaked cards (not cooling or pending), and staked=plot requires numeric stake_plot_id. Plot labels are not inferred from an unverified numeric reference. These filters make no extra request. Stream the projected collection returned by GET /cards/collection/{username}. The upstream response has exactly {player,cards[]} and no total, count, cursor, page token or other pagination field; no narrower query was available in the measured collection evidence. The route-size and memory measurements are recorded in library/observations/collection-streaming-memory-2026-09-08.md. The server never materialises the upstream body: it parses cards[] incrementally, skips unprojected fields, counts matching cards, and retains only the projected cards in the requested page, up to 100. Each emitted card contains uid, card_detail_id, edition, gold, foil, level, xp, bcx, collection_power and card_set. The source card object carried 56 fields; this projection keeps the ten core fields plus land_base_pp when present, and makes no byte-saving claim. In the upstream wire types, land_base_pp and last_buy_price are numeric-looking JSON strings, while bcx, xp, collection_power and level are real JSON numbers; land_base_pp is retained as its original decimal string and last_buy_price is not projected. A missing land_base_pp stays absent; an observed null stays null. Both mean unknown production and never pass a min_land_base_pp filter, including a zero threshold. Malformed or non-finite production strings are refused; the latter four fields are returned as numbers. Card definitions are joined by card_detail_id, adding name, color, secondary_color when present and sub_type. Color and subtype filters are case-insensitive exact matches; color matches either primary or secondary color. Unknown definitions retain the instance without invented fields, never match metadata filters, and are counted in definition_missing_count across the full scanned collection before filtering. The complete definition catalogue is fetched under the existing 2 MiB cap and projected into one 24-hour cache; only joined page fields are returned. This tool may use two logical GET requests (definitions plus collection). Definition failure stops before reading the collection. Definition refresh invalidates the joined page cache, and metadata freshness is separate. Local filters are color, sub_type, gold, edition, foil, card_set, min_level, min_collection_power and min_land_base_pp; cursor is a zero-based filtered-result offset and limit defaults to 100 with a maximum of 100. This server's heap-occupancy guard is 128 MiB: the highest observed production-path value was 90.71 MiB of unforced heapUsed; the occupancy backstop is wider because GC timing can vary, so it needs operational slack. Production normally has no --expose-gc, so heapUsed is high-water heap occupancy including uncollected garbage, not a retention bound. If global.gc is exposed, as it may be in a diagnostic/test process, the server calls it before sampling to reduce transient garbage. Retention was measured separately at about 9.4 MiB flat under forced GC and is verified by test, not at runtime. A separate 358 MiB RSS operational ceiling is based on the highest RSS observed across the measurement rounds: 286.4 MiB in the forced-GC diagnosis, higher than the 278.08 MiB RSS maximum of the final production-path runs. RSS is a separate process-occupancy backstop, not a retention bound, and includes memory outside the V8 heap and uncollected garbage. Neither runtime number bounds retention: both are occupancy guards at different scopes, while retention is verified by measurement, not enforced at runtime. Memory is sampled every 256 parsed cards, plus once at the end when needed; on the measured 51,799-card run that means at most 203 cadence samples, and a regression is detected within 256 parsed cards without a memory call on every card. The route uses a 90-second timeout chosen by this server behind the measured 41-second fetch; a timeout is attempted once and is not retried. The global 2 MB response cap is unchanged for every other route and is not raised for this exception. One successful page is cached for 60 seconds per username, retaining at most that page; cache reuse requires the same filter, cursor and limit request. A different page or filter is a cache miss, re-streams and re-parses the full collection, and replaces that username's cached page because the upstream has no pagination; the cached page re-streams after expiry. The fixture is deliberately trimmed to three cards with representative raw fields rather than the measured 155 MiB response; the fixture declares every concrete array index and is only a contract sample. No account name is embedded in this server source.

ParametersJSON Schema
NameRequiredDescriptionDefault
foilNo
goldNo
colorNo
limitNo
cursorNo
stakedNo
editionNo
elementNo
card_setNo
sub_typeNo
usernameYes
min_levelNo
stake_plot_idNo
min_land_base_ppNo
min_collection_powerNo
include_plot_referencesNo

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations at all, the description carries the full burden, and it discloses extensively: projection, caching (60s page cache, invalidation), memory guards (128 MiB heap, 358 MiB RSS), timeouts, retry behavior, handling of missing/null fields, filter semantics, and upstream response limitations. This goes far beyond what any annotation set would typically provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The description is a single dense wall of text, not front-loaded; the central purpose appears only after several sentences about include_plot_references. Many operational details (memory sampling cadence, RSS ceiling rationale, wire type minutiae) are likely unnecessary for an agent to select and invoke the tool, making it overlong and poorly structured.

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

Completeness5/5

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

Given a 16-parameter tool with no output schema and zero schema coverage, the description is exceptionally complete: it covers response fields, absence semantics, pagination absence, caching, request counts, and error/edge behaviors. There is no obvious missing information an agent would need to invoke it correctly.

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

Parameters5/5

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

Schema description coverage is 0%, and the description compensates richly. It explains include_plot_references, staked enums ('staked=no selects explicitly unstaked cards (not cooling or pending)'), color normalization, min_land_base_pp semantics, and cursor/limit behavior. It effectively documents nearly all 16 parameters with actionable meaning.

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

Purpose4/5

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

The description clearly identifies the resource and operation: 'Stream the projected collection returned by GET /cards/collection/{username}'. It also adds a differentiator with 'This is not complete holdings discovery', which helps distinguish it from holdings-oriented tools. However, it does not explicitly name an alternative sibling or contrast with cards_get_details, cards_find, or player_inventory, so it falls just short of a 5.

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

Usage Guidelines2/5

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

The description focuses heavily on internal behavior (memory, caching, wire types) rather than when to choose this tool over siblings. The only usage guidance is 'This is not complete holdings discovery', which hints at exclusions but does not state when to use this versus other card collection or inventory tools, nor any prerequisites or non-use cases.

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

cards_findA

Look up per-instance card records through GET /cards/find. Supply ids as one comma-separated string of full per-instance card UIDs; real 2-ID and 3-ID requests returned exactly the requested UIDs in order. Repeated ids=, ids[]= and JSON-array encodings are not valid: repeated and bracketed parameters return an unable-to-parse error, while a JSON array is split as literal comma-separated text. A matched record carries player, uid, card_detail_id, xp, gold, edition, card_set, collection_power, market and rental fields, and the measured bcx and bcx_unbound fields. BCX is therefore promised for this per-instance route only; it is not a claim about definition routes. player is current-owner attribution, not donor provenance, and donor was absent in the measured record. This result is bounded by this server's 100-row and 256 KB limits and is not cached as static metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly. It discloses encoding errors, return fields, semantics of player ownership, limits (100-row, 256 KB), and caching behavior. No contradictions with annotations (none present).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is dense but every sentence adds value, front-loading the purpose, then encoding rules, then fields, then semantics, then limits. No redundant or filler content.

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

Completeness5/5

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

Given one parameter, no output schema, and no annotations, the description covers all necessary aspects: purpose, encoding, expected fields, behavioral constraints, and caching. An agent can call it correctly without additional information.

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

Parameters5/5

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

Schema coverage is 0%, but the description fully explains the single 'ids' parameter: comma-separated UIDs, invalid encodings, and what constitutes a valid request. It adds substantial meaning beyond the bare schema.

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

Purpose5/5

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

The description clearly states it looks up per-instance card records via a specific endpoint, distinguishing it from definition routes and other card-related siblings. It specifies the resource and scope precisely.

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

Usage Guidelines4/5

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

Provides clear context on when to use (per-instance records with BCX) and implicitly when not to (definition routes), but does not name specific alternative tools. The exclusion of definition routes is explicit, though no sibling is suggested.

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

cards_get_detailsA

List the card-definition rows returned by GET /cards/get_details. The type query is a real upstream filter: type=Summoner returned 107 rows versus 1101 rows from the bare route. The bare upstream response measured about 1.17 MB, so this server refuses an unfiltered call before sending it because the response exceeds this server's 256 KB result bound and would otherwise be reduced to status alone with the data dropped. That refusal is this server's size-based choice from the measured response, not an upstream rule; provide type to make a filtered call. Each returned definition carries id, name, color, type, sub_type, rarity, drop_rate, per-level stats, abilities, editions, total_printed and distribution fields. The measured route carried no BCX, donor or account-attribution field. Successful filtered metadata responses are cached for 24 hours; provenance reports the route and the original fetch time. This tool reports the filtered rows returned and does not add per-instance ownership data.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral disclosure burden and does so exceptionally well. It reveals the server-side size-based refusal, that the refusal is this server's choice rather than an upstream rule, 24-hour caching, provenance reporting, and the absence of BCX/donor/account-attribution fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is long but densely informative, and nearly every sentence contributes behavioral or exclusionary context that the schema and annotations do not provide. Some redundancy exists around the ownership-data point, but the front-loaded purpose and structured flow keep it usable.

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

Completeness5/5

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 unusually complete: it states the result fields, the filtering requirement, the refusal behavior, caching, provenance, and what the tool intentionally does not return. An agent has enough context to call it correctly and to set expectations about the response.

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

Parameters4/5

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

Schema coverage is 0%, so the description must explain what 'type' means, and it does: it is a real upstream filter, a concrete example (type=Summoner) is given, and omitting it leads to refusal. It stops short of enumerating valid type values, but the semantic and consequence of the parameter are clearly conveyed.

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

Purpose4/5

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

The first sentence names a specific verb ('List') and resource ('card-definition rows... GET /cards/get_details'), making the core action clear. It also notes the tool does not add per-instance ownership data, which partially distinguishes it from inventory-style siblings, though it never names a specific sibling.

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

Usage Guidelines4/5

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

The description gives explicit usage context: the unfiltered route exceeds the server's 256 KB result bound and is refused, so the agent is told to provide 'type' to make a filtered call. It does not name an alternative tool or state when a sibling should be used instead, so it stops short of full routing guidance.

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

cards_historyA

List the transfer records returned by GET /cards/history for one per-instance card UID. id is a card UID, not a card_detail_id: numeric ids silently returned [], while a real UID returned transfer records. A returned record carries card_id, transfer_date, transfer_type, transfer_tx, from_player, to_player, card_detail_id, xp, gold, edition, payment_amount, payment_currency and combined_cards. from_player and to_player are account-attribution fields for the transfer, not donor provenance. Donor and BCX were absent in the measured response. This route is a per-instance event lookup, not a card-definition lookup or an enumeration of history for a numeric card_detail_id. The result is limited by this server's 100-row and 256 KB bounds and is not cached as static metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
limitNo
transfer_typesNo

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries full burden and discharges it: it lists returned fields, flags that from_player/to_player are attribution not provenance, notes donor/BCX were absent, and states the 100-row/256 KB bounds and non-caching. No major behavioral trait is left undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

Dense and front-loaded with purpose and the id caveat; nearly every sentence adds value. Slightly longer than necessary due to repeating the per-instance/non-definition framing and the measured-response detail, but not padded.

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

Completeness5/5

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

Although there is no output schema, the description enumerates the record fields and clarifies the semantics of the route, limits, and cache behavior. For a required-param list endpoint, this is enough for an agent to select and call it correctly.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate; it does thoroughly for the required id parameter (UID vs numeric, empty-array behavior). However, limit and transfer_types receive no semantic explanation beyond their names/schema types, leaving their expected formats or accepted values ambiguous.

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

Purpose5/5

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

States an exact verb+resource ('List transfer records... per-instance card UID') and explicitly contrasts with card-definition lookup and enumeration by numeric card_detail_id. This clearly separates it from the many cards_* siblings.

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

Usage Guidelines4/5

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

Provides clear when-to-use context: only for per-instance card UID transfer events, and explicitly warns 'id is a card UID, not a card_detail_id'. It gives when-not conditions but does not name or route to a specific alternative sibling tool, so not a 5.

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

cards_loreA

Get the lore object returned by GET /cards/lore for one card_detail_id. The measured successful response was a bare object with numeric card_detail_id and string text. Omitting card_detail_id returned HTTP 200 with an empty body and no JSON, so this tool requires card_detail_id before making the request. The measured response carried no BCX, donor or account-attribution field. Successful lore responses are cached for 24 hours; provenance reports the route and the original fetch time. This tool returns the lore object unchanged and does not derive card attributes from its text.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_detail_idYes

TDQS

A4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: it discloses the measured response shape, the empty-body failure mode when the parameter is omitted, absence of BCX/donor/attribution fields, 24-hour caching, provenance behavior, and the fact that text is not parsed into card attributes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The purpose is front-loaded in the first sentence, and later sentences are informative rather than filler. It is somewhat verbose for a one-parameter read endpoint, with the omission behavior stated twice, but each remaining sentence earns its place.

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

Completeness5/5

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

For a simple one-parameter endpoint with no output schema, the description covers request requirements, response shape, caching, provenance, and non-derivation behavior. An agent has everything needed to call and interpret this tool correctly.

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

Parameters3/5

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

The only parameter is card_detail_id, and schema description coverage is 0%. The description adds the "one" cardinality and the omission consequence, but it does not explain what a card_detail_id represents beyond what the schema name and integer type already imply.

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

Purpose5/5

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

States the specific verb "Get", the resource "lore object", the endpoint GET /cards/lore, and the required input card_detail_id. This clearly differentiates it from sibling cards_* tools like cards_skins or cards_get_details.

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

Usage Guidelines2/5

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

The description explains that card_detail_id is required and must be supplied before making the request, but gives no guidance on when to prefer this tool over alternatives. It does not mention any sibling tools or conditions for choosing this endpoint.

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

cards_mint_historyA

Read the public mint history for one card detail and foil. The populated observation returned total, total_minted and mints; an empty card returned total and mints without total_minted. The upstream's by_date/by_date_edition form was observed separately but is not exposed because this tool binds the card_detail_id plus foil contract. Mint rows retain the upstream wire fields and account names are public upstream data, not supplied by this server. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The mints list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
foilYes
card_detail_idYes

TDQS

A4.3/5.0
Behavior5/5

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

No annotations exist, so the description carries the full burden. It discloses request count, no auto-pagination, forwarding of filters without implied effectiveness, response shape variations (total/total_minted/mints), row and size limits, and refusal behavior for oversized records. This is exceptionally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is dense but not bloated; the main purpose is front-loaded, and each sentence contributes useful details (limits, behavior, response shape). It could be slightly trimmed but remains efficient for the amount of context it provides.

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

Completeness5/5

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

For a simple two-parameter read tool with no output schema, the description covers the response shape, limits, truncation reporting, and refusal behavior. An agent has everything needed to call it correctly and interpret results.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it does not explain what card_detail_id or foil mean or how they map to the upstream contract. It only states that required inputs reflect tool policy and upstream requirements, which is not helpful for understanding parameter semantics.

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

Purpose5/5

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

States a specific verb ('Read') and resource ('public mint history for one card detail and foil'), and distinguishes itself from the upstream by_date/by_date_edition forms, making its exact scope clear. It is distinct from sibling tools like cards_history or cards_get_details.

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

Usage Guidelines4/5

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

Explicitly notes what this tool does not do (auto-fetch continuation pages) and that it binds to card_detail_id plus foil, implying when to use it. However, it does not name specific alternative tools or when-not-to-use conditions, leaving some inference to the agent.

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

cards_pack_data_waxA

List the pack metadata rows returned by GET /cards/pack_data_wax. The measured public response was a six-object bare array for ALPHA, BETA, ORB, UNTAMED, DICE and CHAOS, with symbol, template_id, max, minted and burned fields as JSON numbers. The measured response carried no BCX, donor or account-attribution field because it is WAX-bridge mint/burn metadata rather than per-card or per-owner data. Successful metadata responses are cached for 24 hours; provenance reports the route and the original fetch time. This tool returns the rows unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description fully carries the burden, and it does so richly: it reveals the measured six-object array shape, the set names, the exact fields and types, the absence of BCX/donor/account fields, the 24-hour caching, provenance behavior, and that rows are returned unchanged. This goes well beyond a generic list description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is densely informative but not bloated; every sentence provides distinct value: the endpoint, the response shape, the excluded fields, the cache behavior, and the unchanged-return guarantee. The core purpose is front-loaded.

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

Completeness5/5

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

For a parameterless list endpoint with no output schema, the description is complete enough for an agent to call it correctly and interpret results. It covers what data is returned, what is absent, and how caching/provenance behave. Nothing critical is missing.

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

Parameters4/5

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

The tool has zero parameters and an empty input schema, so there are no parameter semantics to document. Per the baseline for zero-parameter tools, a score of 4 is appropriate, and the description compensates by detailing the output structure instead.

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

Purpose5/5

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

The description names a specific verb ('List') and resource ('pack metadata rows returned by GET /cards/pack_data_wax'), and then distinguishes the data from per-card or per-owner data. This makes the tool's purpose unmistakable and differentiates it from siblings like cards_get_details or cards_collection.

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

Usage Guidelines3/5

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

The description provides useful context by stating that this is WAX-bridge mint/burn metadata and not per-card or per-owner data, implying when it should be selected. However, it does not explicitly name alternative tools or state when-not-to-use it, leaving some inference to the agent.

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

cards_pack_jackpot_overviewA

Read the public pack jackpot circulation overview for one edition. The response is a bare array of card totals with per-foil totals; an empty array is a valid upstream answer for editions with no observed rows. Uses a bounded success cache keyed by exact supplied query, otherwise makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
editionYes

TDQS

A3.6/5.0
Behavior5/5

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 so extensively: it discloses the bare-array response shape, empty-array validity, caching behavior, single logical GET, no auto-fetch of continuation pages, local row/size limits with truncation reporting, and refusal of oversized records without partial fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is a dense paragraph that front-loads purpose and response format but includes vague, partially redundant sentences such as 'Required inputs reflect tool policy...' and 'Other declared filters are forwarded as supplied...' when no filters exist in the schema, adding noise without structural headings.

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

Completeness4/5

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

For a simple one-parameter read tool with no output schema, the description covers the essential return shape, valid empty responses, cache behavior, pagination, and limits. However, it leaves the meaning of 'edition' unexplained and includes irrelevant filter commentary, so it is not fully complete.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It only repeats that the tool is 'for one edition' and vaguely says 'Required inputs reflect tool policy as well as measured upstream requirements,' without explaining what an edition is, how to obtain it, or any additional meaning beyond the integer schema.

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

Purpose4/5

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

The description states a specific action and resource: 'Read the public pack jackpot circulation overview for one edition.' The verb 'Read' and the resource name distinguish it from most sibling tools, though it does not explicitly differentiate it from similar cards_* endpoints like cards_pack_data_wax.

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

Usage Guidelines3/5

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

It implies usage context (requires an edition, read-only overview) and warns that filters are forwarded without guaranteed effectiveness, but it does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives.

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

cards_skinsA

List the skin rows returned by GET /cards/skins. The measured public response was a bare array of 74 objects, each carrying card_detail_id, skin, total, remaining, cost, set_cost and set; the captured body was 8,893 bytes. The measured response carried no BCX, donor or account-attribution field. Successful metadata responses are cached for 24 hours; provenance reports the route and the original fetch time. This tool returns the rows unchanged and does not calculate availability or prices.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden, and it does so well by disclosing that responses are cached for 24 hours, provenance includes the route and original fetch time, and rows are returned unchanged with no computed fields. It also gives concrete response-shape details such as a bare array and field names, which is meaningful behavioral context beyond a generic list description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is front-loaded with the core purpose and then adds supporting behavioral details. The byte count and 'measured public response' phrasing are slightly more specific than necessary, but no sentence is filler and the structure is logical.

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

Completeness5/5

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

For a zero-parameter, no-output-schema metadata tool, the description is complete: it states the source route, the response shape and fields, caching behavior, provenance reporting, and what the tool does not do. Nothing essential for selecting or invoking this tool is missing.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description compensates further by documenting the exact fields returned, which is the only semantic information an agent would need for this no-input tool.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'List the skin rows returned by GET /cards/skins.' It further clarifies scope by naming the exact fields in each row and explicitly noting that no BCX, donor, or account-attribution field is present, which helps distinguish it from player- or account-level tools.

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

Usage Guidelines3/5

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

Usage context is implied rather than explicit: it is a raw metadata list, and the statement that it 'does not calculate availability or prices' signals when not to use it. However, it does not name alternatives or state a concrete condition for choosing this tool over siblings such as player_skins or cards_find.

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

cards_trx_lookupA

Look up the transaction object returned by GET /cards/trx_lookup for a real trx_id. A bare call, card_detail_id alone and username alone returned the same HTTP-200 application error saying that trx_id was missing; a real trx_id returned a trx_info object with id, block_id, prev_block_id, type, player, data, success, error, block_num, created_date, result, steem_price and sbd_price. data and result are JSON-encoded strings inside the JSON response and are returned as strings; this server does not parse them a second time. player is transaction account attribution, not donor provenance. BCX and donor were absent in the measured response. This route is a single-transaction event lookup and is not cached as static metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
trx_idYes
usernameNo
card_detail_idNo

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full transparency burden, and it delivers. It exposes non-obvious behavior: a bare call or calls with only username/card_detail_id return an HTTP-200 error rather than a validation error, data and result are JSON-encoded strings that are not parsed twice, player is transaction account attribution (not donor provenance), BCX/donor fields were absent, and the endpoint is not cached. This is far beyond what a typical description does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a dense five-sentence paragraph, but every sentence adds a distinct piece of information: purpose, error behavior, response field list, JSON encoding quirk, attribution semantics, absent fields, and caching. The primary requirement (trx_id) is front-loaded in the first sentence. It is not overly verbose for the amount of behavioral detail conveyed, though it could be tightened into a list format for even faster scanning.

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

Completeness4/5

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

Given there is no output schema and no annotations, the description is notably complete: it enumerates all observed response fields, explains that data/result are JSON strings, clarifies player attribution, warns about absent BCX/donor fields, and states the caching behavior. It does not explain the semantic meaning of the transaction object or the success/error codes in depth, but for a single-object lookup endpoint this is largely sufficient for an agent to invoke it correctly.

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

Parameters3/5

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

The schema has zero parameter descriptions (0% coverage), so the description must compensate. It clearly identifies trx_id as the only required parameter and implies that username and card_detail_id are optional but cannot substitute for trx_id (using them alone yields an error). However, it never explains the purpose or allowed semantics of username or card_detail_id, leaving an agent to guess what those parameters mean or whether they can be combined with trx_id.

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

Purpose4/5

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

The description clearly states the tool looks up a transaction object for a real trx_id via a specific endpoint, immediately distinguishing it from cached or aggregate market endpoints. It also adds 'single-transaction event lookup and is not cached as static metadata,' which helps differentiate it from sibling tools. However, it does not explicitly name any sibling tool for comparison, so it falls just short of the highest clarity tier.

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

Usage Guidelines3/5

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

The description implies that the tool should be used when you have a real trx_id and need the raw transaction object, and it warns that username or card_detail_id alone are insufficient (they trigger a missing-trx_id error). There is no explicit guidance on when to prefer a sibling tool (e.g., transaction_lookup or hive_transaction) or when not to use this one, so the usage context is implied rather than explicit.

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

collector_binderB

Read one public collector binder by player and binder reference; the observed slug selected three pages and 27 card slots, plus sticker placements. Preserve original fields and relative asset paths. One GET, no card metadata fan-out, purchases or layout changes. Oversized objects are refused as a whole. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes
binderRefYes

TDQS

B3.2/5.0
Behavior5/5

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

With no annotations, the description fully carries the behavioral burden. It discloses: 'One GET, no card metadata fan-out, purchases or layout changes', 'Does not auto-fetch continuation pages', and detailed size limits ('Array responses are locally limited to 100 rows and 256 KiB, with truncation reported... Oversized records are refused without partial fields'). It also mentions preserving fields and asset paths. This is comprehensive and transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The description is verbose and has redundancies. For example, 'Makes one logical GET request Does not auto-fetch continuation pages' is a run-on, and the oversized object restriction is stated twice ('Oversized objects are refused as a whole' and 'Oversized records are refused without partial fields'). Sentences like 'Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema' are vague and clutter the message. It could be streamlined significantly.

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

Completeness3/5

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

For a 2-parameter tool with no output schema and no annotations, the description covers many operational details (size limits, no fan-out, no auto-fetch) and hints at the response (slots and stickers). However, it lacks explicit parameter descriptions, usage contexts, error behavior, and a clear statement of the return payload structure beyond the examples given. It is adequate but not fully complete.

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

Parameters2/5

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

Schema coverage is 0% and the description only mentions 'by player and binder reference' — enough to know the parameters are identifiers, but it does not explain the format of 'binderRef' (slug vs ID), constraints, or special requirements. The phrase 'Required inputs reflect tool policy' adds no semantic value. The description fails to compensate for the schema's lack of parameter documentation.

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

Purpose4/5

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

The description clearly states the verb and resource: 'Read one public collector binder by player and binder reference'. It also limits scope with 'no card metadata fan-out, purchases or layout changes', which distinguishes it from broader tools. However, it does not explicitly name sibling alternatives, so differentiation relies on the reader inferring from the 'one public collector binder' phrasing.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus siblings like collector_stickers, collector_player, or collector_config. The statement 'Required inputs reflect tool policy as well as measured upstream requirements' is vague and does not help selection. The description implies it is for a single binder read, but no conditions or alternatives are given.

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

collector_configA

Read the complete public collector configuration: page/slot limits, claim availability, shop metadata, featured accounts and cosmetic definitions. The captured response was about 15 KiB. These are upstream configuration values; reading shop or claim metadata performs no purchase or claim. Preserve relative asset paths, nullable asset URLs and every returned field. Oversized configuration is refused as a whole, not partially truncated. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

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

No annotations are present, so the description carries full responsibility for behavioral disclosure. It does this comprehensively: no side effects, one GET request, no auto-fetch of continuation pages, array limits of 100 rows and 256 KiB, truncation reporting, refusal of oversized records, and preservation of relative paths and nullable URLs. This is far beyond a typical read-only description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is longer than average, but every sentence adds operational value: size expectations, side-effect safety, request behavior, response handling, and limits. It is front-loaded with the core purpose. The only minor flaw is that it could be slightly tightened without losing information, but it remains focused and structured.

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

Completeness5/5

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

For a zero-parameter, read-only configuration tool with no output schema, this description is exceptionally complete. It covers what is returned, how much data to expect, the exact request pattern, side-effect guarantees, truncation rules, and preservation expectations. Nothing an agent needs to call and interpret this tool correctly is missing.

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

Parameters4/5

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

The tool has zero parameters and the schema is empty with 100% coverage, so there are no parameter meanings to clarify. The description still adds context by explaining that required inputs reflect tool policy and measured upstream requirements, but with no parameters this is inherently a low-effort dimension. A 4 is appropriate because the baseline for zero parameters is high and nothing is missing.

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

Purpose5/5

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

The description opens with a specific verb ('Read') and a clear resource ('complete public collector configuration'), then lists concrete contents: page/slot limits, claim availability, shop metadata, featured accounts and cosmetic definitions. This clearly distinguishes it from sibling collector tools like collector_player, collector_binder and collector_stickers, which all target narrower data.

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

Usage Guidelines5/5

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

It explicitly states that reading this configuration performs no purchase or claim, warns against assuming filters are effective, and notes that oversized configuration is refused as a whole. It also explains that exactly one logical GET is made and continuation pages are not auto-fetched. This gives an agent clear guidance on when and how to use it safely.

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

collector_playerA

Read one player collector overview with binder summaries. Preserve original fields and relative asset paths. One GET, no card metadata fan-out, purchases or layout changes. Oversized objects are refused as a whole. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes

TDQS

A4/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses preservation of original fields and relative asset paths, single logical GET, no auto-pagination, local array limits of 100 rows and 256 KiB, truncation reporting, and refusal of oversized records without partial fields. This is unusually thorough for a one-parameter read endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The lead sentence is strong, but the description is redundant: 'One GET' is repeated as 'Makes one logical GET request', and oversized record refusal is stated twice. The sentence about 'Other declared filters' appears to be generic boilerplate because the schema declares only 'player' and no other filters. It could be tightened without losing information.

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

Completeness4/5

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

For a one-parameter read endpoint with no annotations and no output schema, the description is operationally complete: it covers preservation behavior, pagination, size limits, truncation, and refusal semantics. It leaves the player value format unspecified, but that is more of a parameter-semantics gap than an overall completeness failure.

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

Parameters2/5

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

The only parameter, 'player', has no schema description and 0% schema coverage. The description only implies the player via 'Read one player' and adds a generic policy note that required inputs 'reflect tool policy as well as measured upstream requirements.' It never states the expected identifier format or meaning, leaving the agent to infer.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Read one player collector overview with binder summaries.' It then explicitly scopes the tool with 'One GET, no card metadata fan-out, purchases or layout changes', which distinguishes it from sibling collector/card/market tools. The purpose is clear without relying on the tool name alone.

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

Usage Guidelines4/5

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

The description gives a clear usage scenario: reading a single player's collector overview with binder summaries. It also states explicit exclusions such as 'no card metadata fan-out, purchases or layout changes' and 'Does not auto-fetch continuation pages.' It does not name a sibling fallback, so it stops short of directly routing to an alternative tool.

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

collector_stickersB

Read the full sticker-list route for one player; the observed four rows included ownership and trade/list flags plus cosmetic metadata. Preserve original fields and relative asset paths. One GET, no card metadata fan-out, purchases or layout changes. Lists are locally bounded; the route name does not promise complete holdings. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes

TDQS

B3.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: it discloses the single GET, local 100-row/256 KiB bounds, lack of continuation-page auto-fetching, truncation reporting, and refusal of oversized records. It is slightly undermined by the unexplained 'observed four rows' comment, but the behavioral disclosure is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The text is longer than needed and contains jargon and noise ('observed four rows', 'Required inputs reflect tool policy as well as measured upstream requirements', 'Other declared filters are forwarded as supplied' despite no declared filters in the schema). It front-loads the core purpose, but the middle is cluttered and there is a missing period in 'GET request Does not'.

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

Completeness3/5

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

For a one-parameter read tool, the description is reasonably complete about limits and behavior, and it mentions row content (ownership/trade/list flags, cosmetic metadata) and truncation metadata. It lacks an explicit return contract and any alternative routing, and with no output schema the agent still has to infer response shape.

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

Parameters2/5

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

The schema provides only the parameter name, type, and minLength, and the description does not compensate. It says 'for one player' and that required inputs reflect tool policy, but it does not define whether player is an account name, ID, or any format detail; at 0% schema description coverage, this is a clear gap.

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

Purpose4/5

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

The opening phrase 'Read the full sticker-list route for one player' gives a specific verb and resource, and the description narrows scope by saying there is no card metadata fan-out, purchases, or layout changes. It does not explicitly contrast a sibling like collector_stickers_tradeable, but the purpose is clear enough to distinguish it from nearby collector_* tools.

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

Usage Guidelines3/5

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

The description implies when it is appropriate by noting 'one GET, no card metadata fan-out, purchases or layout changes' and that the route name does not promise complete holdings. It never names an alternative tool or states a condition for choosing this one over collector_stickers_tradeable or collector_binder, so guidance is inferred rather than explicit.

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

collector_stickers_tradeableB

Read one player's tradeable collector stickers. Two public featured accounts returned 26 and 49 rows with isTradeable=true. Preserve sticker identities, trade/list flags, cosmetic metadata and relative asset paths. One bounded GET, no automatic paging; at most 100 complete rows and 256 KiB. This is not the for-sale route and does not list, transfer or buy anything. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes

TDQS

B3.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the bounded GET, no auto-paging, 100-row and 256 KiB limits, truncation reporting, and refusal of oversized records. It also clarifies it doesn't list/transfer/buy. This is thorough, though the repeated mentions are redundant and the 'preserve' phrasing is unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The description is verbose and repetitive. Key limits (bounded GET, no paging, 100 rows/256 KiB) are stated multiple times, and the 'Makes one logical GET request' sentence is repeated. It could be cut by half without losing meaning. The structure is not front-loaded; it mixes critical behavior with redundant caveats.

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

Completeness3/5

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

Given the tool is a simple read with one parameter and no output schema, the description covers operational constraints well but lacks a clear description of the return format. 'Preserve sticker identities...' hints at fields but doesn't explain the response structure or whether it's JSON, etc. It's adequate but not complete for an agent to fully anticipate the output.

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

Parameters2/5

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

Schema coverage is 0% and the description adds almost nothing about the 'player' parameter beyond the schema's name/type. It only says 'Required inputs reflect tool policy as well as measured upstream requirements,' which is unhelpful and doesn't specify what the player value should be (e.g., account name, ID). The description fails to compensate for low schema coverage.

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

Purpose4/5

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

The description clearly states the tool reads one player's tradeable collector stickers, a specific verb+resource. It differentiates itself from the for-sale route and implies distinction from sibling collector_stickers by emphasizing 'tradeable'. However, it doesn't explicitly name sibling tools, so it's not a perfect 5.

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

Usage Guidelines3/5

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

The description gives context that this is a read-only tool and not the for-sale route, but doesn't explicitly say when to use it vs alternatives like collector_stickers or market tools. The phrase 'Required inputs reflect tool policy' is vague and doesn't guide selection. No explicit when/when-not conditions are provided.

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

conflict_airdrop_distributionA

Read a player's recorded airdrop distribution for an explicit id or conflict. The conflict alias also returned conflict metadata, while id returned only distribution. No prizes are claimed; num_prizes is not recomputed. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The distribution list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
loreNo
modeNo
playerYes
conflictNo
order_byNo

TDQS

A3.8/5.0
Behavior5/5

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 so comprehensively: it discloses no prize claiming, no num_prizes recomputation, single GET request without auto-pagination, forwarding of filters without implied effectiveness, local limits (100 rows/256 KiB) with truncation reporting, and refusal of oversized records. This is exemplary transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is dense but every sentence carries essential behavioral or scoping information. It opens with purpose then systematically lists caveats, which is logical and front-loaded. Slight verbosity in the filter-forwarding warning could be trimmed, but no redundancy.

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

Completeness3/5

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

Covers purpose, behavior, and limits well, but does not describe the expected return structure or the meaning of all parameters. With no output schema and no annotations, the agent is left without knowledge of the distribution's fields or the impact of order_by, making it only partially complete for a tool of this complexity.

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

Parameters3/5

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

Adds meaningful distinction between id and conflict parameters, explaining their differing return contents, and warns that other filters are forwarded without guaranteed effectiveness. However, given 0% schema description coverage, it fails to explain the semantics of lore, mode, and order_by, leaving them under-specified.

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

Purpose5/5

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

States a specific verb (read) and resource (player's recorded airdrop distribution) and clearly distinguishes two access modes via id or conflict, noting that conflict returns metadata while id returns only distribution. This sharply differentiates it from sibling conflict_* and player_* tools.

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

Usage Guidelines2/5

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

Provides no explicit guidance on when to choose this tool over alternatives like conflict_seasons or conflict_players, nor does it state exclusions. The mention of 'explicit id or conflict' implies prerequisite context, but the absence of any when/when-not guidance leaves the agent to infer.

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

conflict_eligible_cardsA

Read eligible card groups for an explicit username. max_group_size=1 or 2 limited the UID sample inside each group, while qty and total_cards retained the full counted quantities. Do not equate returned UID count with all eligible cards. Each group remains intact and groups are locally bounded. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The groups list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
max_group_sizeNo

TDQS

A4.3/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden, and it delivers: it explains sampling semantics, warns not to equate returned UID count with all eligible cards, clarifies that qty/total_cards retain full counts, discloses no continuation-page fetching, and states row/KiB truncation limits. This is unusually rich and actionable behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The purpose is front-loaded and nearly every sentence adds behavioral value, so the length is justified. Minor grammar and punctuation issues, such as 'Makes one logical GET request Does not auto-fetch continuation pages', reduce polish without obscuring meaning.

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

Completeness4/5

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

For a read tool with no annotations and no output schema, the description covers purpose, parameter semantics, response-interpretation cautions, pagination behavior, and truncation rules. The main gap is the missing default behavior when max_group_size is not supplied, and no explicit description of the overall return shape.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It explains that username is required and that max_group_size=1 or 2 limits the UID sample per group, which gives real semantic meaning beyond the schema. It does not specify the default when max_group_size is omitted, but the core parameter intent is clear.

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

Purpose5/5

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

The description opens with 'Read eligible card groups for an explicit username', which states a specific verb, resource, and the required input. Among the many conflict_* siblings, this is the only eligible-cards tool, so the resource is differentiable even without opening the schema.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when an explicit username and eligible card groups are needed. However, it names no alternative tools and gives no exclusions or when-not-to-use guidance, so an agent gets only implied usage context.

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

conflict_leaderboardB

Read the conflict leaderboard, totals and prize metadata by id. The upstream returned 200 rows; the server returns a bounded leading portion while retaining totals and leaderboard_prizes. No working upstream pagination is established. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The leaderboard list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.4/5.0
Behavior5/5

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

With no annotations, the description fully carries the transparency burden and does so well: it discloses the 200-row upstream vs bounded server response, single logical GET, no continuation-page fetching, 100-row/256-KiB local limits, truncation reporting, and refusal of oversized records without partial fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The purpose is front-loaded and the length is tolerable, but the text has a run-on ('Makes one logical GET request Does not auto-fetch'), grammar issues ('list are'), and the vague 'Other declared filters' sentence that adds confusion. It could be trimmed without losing information.

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

Completeness4/5

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

For a one-parameter read tool with no output schema, it covers the essential runtime behaviors: data scope, truncation limits, pagination stance, and failure behavior for oversized records. Missing details are the meaning of id and explicit response shape, but these are partially covered by 'totals and prize metadata by id'.

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

Parameters2/5

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

The schema has one bare parameter (id, string) with 0% coverage, and the description only says 'by id' plus meta notes about tool policy. It never explains what the id identifies, its expected format, or how to obtain it. The reference to 'Other declared filters' is confusing because the schema has no additional filters.

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

Purpose4/5

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

The description opens with a specific verb ('Read') and names the resource ('conflict leaderboard') along with the scope ('totals and prize metadata by id'). It does not explicitly contrast with sibling leaderboard tools, so it misses the differentiator needed for a 5.

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

Usage Guidelines2/5

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

The description explains behavioral constraints (bounded rows, no pagination, no auto-fetch) but never says when to use this tool versus conflict_player_rank, conflict_status, or player_leaderboard. Usage context is implied by the name, not stated.

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

conflict_player_rankA

Read one player's conflict ranking by id and username. Despite the upstream leaderboard_with_player name, the captured response contained only player, not the whole leaderboard. Rank and contribution values retain their string wire types. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
usernameYes

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: it clarifies the response shape (player-only, not the full leaderboard), preserves string wire types for rank and contribution, states it makes one logical GET request, does not auto-fetch continuation pages, forwards declared filters without implying effectiveness, and reports truncation/refusal behavior for array responses. This goes far beyond a bare 'read' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The purpose is front-loaded and most sentences carry behavior information, but the description is dense and includes generic caveats such as 'Required inputs reflect tool policy as well as measured upstream requirements' and 'Other declared filters are forwarded as supplied' that add noise for a simple two-parameter tool. There is also a missing period between 'GET request' and 'Does not auto-fetch'.

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

Completeness4/5

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

For a simple two-parameter read tool with no output schema, the description covers the key operational facts: what is returned (player-only response), type behavior (string rank/contribution), single-request behavior, and pagination/truncation limits. It could additionally name a sibling endpoint for full leaderboards and describe error or empty-player behavior, but nothing essential for making the call is absent.

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

Parameters3/5

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

Schema coverage is 0% and the parameters are only defined as non-empty strings. The description adds that both id and username are used to look up the player's ranking, but it never clarifies what 'id' refers to (e.g. player id, season id, account id) or gives any value format beyond the schema's minLength. The mention of 'other declared filters' is also ambiguous given the schema has additionalProperties=false, so compensation is partial.

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

Purpose5/5

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

The first sentence names a specific verb ('Read'), a specific resource ('one player's conflict ranking'), and the two lookup keys ('id and username'). It also explicitly disambiguates from the upstream 'leaderboard_with_player' name by stating the captured response contains only the player, not the whole leaderboard, which distinguishes it from sibling leaderboard tools.

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

Usage Guidelines4/5

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

The description clearly states the intended use: retrieve a single player's conflict ranking by id and username. It also implies a when-not by explaining the response is not the whole leaderboard and that continuation pages are not auto-fetched. However, it never names an alternative endpoint such as conflict_leaderboard or player_leaderboard_with_player, so explicit routing guidance is missing.

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

conflict_playersC

Read a player's conflict reward-point record and reward_point_threshold with an explicit id or conflict selector. Both aliases selected the captured current conflict. Other declared mode/filter inputs are forwarded without presumed effectiveness. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The players list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
loreNo
modeNo
uidsNo
playerYes
conflictNo
order_byNo
non_zero_rpNo
airdrop_dataNo

TDQS

C2.9/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does substantial work: it discloses a single logical GET request, no automatic continuation-page fetching, a 100-row/256 KiB local limit, truncation reporting, refusal of oversized records, and filter passthrough caveats. Some behavioral statements remain unclear, and auth or error semantics are absent, but the disclosed operational constraints are genuinely useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The description repeats the same filter-passthrough warning twice and contains punctuation issues like 'request Does' without a period. Useful details are present, but they are buried under redundant disclaimers and vague meta-commentary, so the structure does not make every sentence earn its place.

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

Completeness2/5

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

The description covers operational limits and pagination well for a read endpoint, but with no output schema and no annotations, it must also clarify parameters and return shape. It leaves the required `player` parameter undefined and does not describe the response format beyond threshold and truncation metadata, so an agent cannot confidently construct a correct call.

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

Parameters2/5

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

Schema description coverage is 0% with 9 parameters, so the description must compensate heavily. It only clarifies that id/conflict are selectors and vaguely states that other filters are forwarded without implied effectiveness. The required `player` parameter and most other parameters (`mode`, `uids`, `order_by`, `non_zero_rp`, `airdrop_data`) remain essentially undefined.

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

Purpose4/5

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

The description clearly states a specific read operation: reading a player's conflict reward-point record and reward_point_threshold, and identifies id/conflict as selector inputs. However, it does not distinguish this tool from related conflict siblings and the phrase 'Both aliases selected the captured current conflict' is grammatically confusing.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as conflict_player_rank or conflict_leaderboard. The description only warns that non-primary filters are forwarded without presumed effectiveness; it offers no preconditions, exclusions, or decision rules.

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

conflict_seasonsA

Read conflict seasons. Without id the upstream returned 24 records; an explicit id returned one object, so the response shape depends on the selector. All wire values, including nullable prize settings, are preserved. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
loreNo

TDQS

A3.7/5.0
Behavior5/5

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

Despite having no annotations, the description thoroughly discloses behavior: 'response shape depends on the selector', 'Makes one logical GET request', 'Does not auto-fetch continuation pages', 'Array responses are locally limited to 100 rows and 256 KiB', and 'Oversized records are refused without partial fields'. It also notes that 'Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema', which is a critical caveat. This is an exceptionally transparent description for a tool without 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.

Conciseness4/5

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

The description is front-loaded with the core purpose and then provides a dense but valuable set of behavioral details. It is a bit long and has a minor typo ('request Does'), but each sentence adds distinct information, and the structure moves from purpose to selector semantics to request behavior to local limits. No sentence is wasted.

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

Completeness3/5

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

The description thoroughly covers request behavior, limits, and truncation, but it lacks an explanation of the actual return data: there is no output schema and no description of what fields compose a 'conflict season' beyond a passing mention of 'nullable prize settings'. It also leaves the meaning of 'lore' unexplained. For a tool with no output schema and 0% parameter coverage, this is a noticeable gap in completeness, even though other aspects are well covered.

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

Parameters4/5

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

The schema provides no descriptions for 'id' or 'lore' (0% coverage), so the description must carry the burden. It does: 'Without id the upstream returned 24 records; an explicit id returned one object' gives practical semantics for 'id', and 'Other declared filters are forwarded as supplied; their effectiveness is not implied' warns about the reliability of filters like 'lore'. This adds meaningful guidance beyond the bare schema, though it could be more explicit about the exact meaning or format of each parameter.

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

Purpose4/5

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

The opening phrase 'Read conflict seasons' clearly states a specific verb and resource, which distinguishes it from most sibling tools like conflict_status or conflict_players. However, it does not explain what a 'season' contains or explicitly differentiate from the other conflict_* tools, leaving some ambiguity for an agent unfamiliar with the domain.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The description explains that the 'id' selector changes the response shape, but it never states conditions such as 'use this to list all seasons' or 'use this when you need a specific season by id' in comparison to other conflict-related tools. Context about required inputs is vague ('Required inputs reflect tool policy') but does not help choose between tools.

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

conflict_statusA

Read conflict configuration, current conflict, player statistics and wagons for an explicit username. Flag strings use 1: only_config=1 returned config alone, only_wagons=1 returned stats and wagons, and exclude_wagons=1 omitted wagons. only_config=true did not reduce the response. Returned wagons are bounded with other requested sections unchanged. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The wagons list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
loreNo
usernameYes
only_statsNo
only_configNo
only_playerNo
only_wagonsNo
exclude_statsNo
only_conflictNo
exclude_configNo
exclude_playerNo
exclude_wagonsNo
exclude_conflictNo

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so exceptionally well. It discloses flag behavior, that only_config=true does not reduce the response, the single-GET behavior, lack of continuation-page auto-fetching, local wagon limits, truncation reporting, and refusal of oversized records without partial fields. This is far beyond typical descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is dense and information-rich, with no filler sentences. It is slightly run-on and would benefit from clearer separation, but every sentence adds meaningful operational detail and the core purpose is front-loaded.

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

Completeness4/5

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

Given the complexity (12 parameters, no annotations, no output schema), the description covers a remarkable amount: purpose, flag behavior, request count, pagination behavior, result limits, truncation, and oversize handling. It still leaves the full response shape and the semantics of several flags implicit, but it is substantially complete for an agent to invoke the tool safely.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It explains only_config, only_wagons, and exclude_wagons with concrete examples, and adds a general caveat that other declared filters are forwarded without implied effectiveness. However, most of the 12 parameters (lore, only_stats, exclude_stats, only_conflict, etc.) are not individually described, leaving an agent to infer their semantics from the naming pattern.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Read conflict configuration, current conflict, player statistics and wagons for an explicit username.' This clearly identifies the tool's scope and differentiates it from sibling conflict_* endpoints by describing a combined status read rather than a single list or rank lookup.

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

Usage Guidelines4/5

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

The description makes the intended use clear: call this when you need a bundle of conflict-related data for a specific username. It does not explicitly name alternatives or state when not to use it, but the context is strong enough that an agent can infer when it applies.

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

conflict_wagonA

Read one wagon by explicit uid, retaining its complete card list and original contribution values. An unknown uid returned an empty object, which is reported as an error rather than a fabricated wagon. This never stakes or removes cards. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description thoroughly discloses error handling (unknown uid returns error), read-only guarantee, single GET request, no auto-pagination, response limits (100 rows/256 KiB) with truncation reporting, and refusal of oversized records. It also clarifies filter forwarding semantics. This goes well beyond basic expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Description is dense but every sentence adds value, covering purpose, error behavior, safety, network behavior, pagination, limits, and filter semantics. It's front-loaded with the core purpose and structured logically.

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

Completeness5/5

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

For a simple read tool with one parameter and no output schema, the description covers return content (card list, contribution values), error handling, and limits. No gaps that would prevent correct invocation.

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

Parameters4/5

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

Schema coverage is 0%, but description clarifies that uid is the explicit identifier and required. It adds semantic meaning ('explicit uid') beyond the schema's plain string type, and notes that required inputs reflect policy. However, it doesn't specify format beyond that, but with only one param, this is sufficient.

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

Purpose5/5

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

States specific verb 'read', resource 'wagon', and scope 'by explicit uid'. Distinguishes from other conflict_* tools by specifying it's a single-wagon read, and explicitly notes it never stakes or removes cards, reinforcing read-only nature.

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

Usage Guidelines3/5

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

Implies usage when you have a uid and want wagon details, but does not mention alternative tools or when not to use. The note about 'required inputs reflect tool policy' hints at necessity but doesn't provide exclusions or alternatives.

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

delegations_incomingA

Read incoming SPSP delegation records; each returned player is a delegator to the explicitly requested player. A populated record matched the corresponding outgoing and pairwise reads. Paging is declared but not independently demonstrated on the one-row sample. Preserve amount strings, rental fields and nullable dates. No currency conversion or card-delegation inference. One bounded GET; no automatic paging. Sort effectiveness is unmeasured. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitYes
orderNo
offsetNo
playerYes

TDQS

A3.7/5.0
Behavior5/5

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

With no annotations, the description carries full burden and does so extensively: it discloses paging limitations ('no automatic paging', 'one bounded GET'), data size limits (100 rows, 256 KiB), truncation reporting, refusal of oversized records, and explicit statements about no currency conversion or card-delegation inference. This is rich 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.

Conciseness2/5

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

The description is verbose and repetitive. Statements like 'One bounded GET; no automatic paging' and 'Makes one logical GET request Does not auto-fetch continuation pages' are redundant. The text is a wall of loosely connected clauses with punctuation issues, lacking clear structure and front-loading.

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

Completeness3/5

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

The description covers behavioral limits thoroughly but leaves gaps: it does not explain parameter semantics or describe the return format (no output schema). While it hints at fields (amount strings, rental fields, nullable dates), it does not provide enough for an agent to confidently construct a correct call without additional inference.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. However, it does not explain individual parameters like player, limit, sort, order, or offset. It only generically mentions 'required inputs reflect tool policy' and 'other declared filters are forwarded as supplied' without specifying which parameters are filters or their meanings.

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

Purpose5/5

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

The description states a specific action: 'Read incoming SPSP delegation records' and clarifies that each returned player is a delegator to the requested player. This distinguishes it from siblings like delegations_outgoing and delegation_to_target, which are clearly different directions or targets.

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

Usage Guidelines3/5

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

The description implies usage for incoming delegations but does not explicitly name alternatives or conditions for when to use this tool versus delegations_outgoing or delegation_to_target. It mentions matching 'corresponding outgoing and pairwise reads' but gives no clear when-to-use guidance.

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

delegations_outgoingA

Read outgoing SPSP delegation records; each returned player is a recipient of the explicitly requested player. Two pages of two matched the first four records. Preserve amount strings, rental fields and nullable dates. No currency conversion or card-delegation inference. One bounded GET; no automatic paging. Sort effectiveness is unmeasured. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitYes
orderNo
offsetNo
playerYes

TDQS

A3.7/5.0
Behavior5/5

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 so thoroughly: it discloses no auto-paging, no currency conversion or card-delegation inference, local row and byte limits, truncation reporting, and refusal of oversized records without partial fields. This is far more behavioral context than most tool descriptions provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The description is front-loaded with the core purpose, but it becomes verbose and redundant. 'One bounded GET; no automatic paging' and 'Makes one logical GET request Does not auto-fetch continuation pages' say the same thing twice, and the odd 'Two pages of two matched the first four records' sentence adds confusion rather than value.

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

Completeness3/5

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

The description covers many operational expectations: paging behavior, size limits, truncation, and preservation of data types. However, it omits paging mechanics (how to use offset/limit to traverse results) and leaves the meaning of sort/order ambiguous, which an agent would need for correct invocation of this five-parameter tool.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate, but it only meaningfully clarifies 'player' and 'limit'. Sort, order, and offset are left uninterpreted; 'sort effectiveness is unmeasured' and 'other declared filters are forwarded as supplied' do not explain their semantics or expected formats. This is a significant gap for a five-parameter tool.

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

Purpose5/5

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

The description uses a specific verb ('Read'), names the exact resource ('outgoing SPSP delegation records'), and clarifies the directionality: 'each returned player is a recipient of the explicitly requested player.' This clearly distinguishes it from sibling tools like delegations_incoming without needing to open their schemas.

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

Usage Guidelines3/5

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

The intended use is implied by the purpose statement: call this when you need outgoing delegation records for a given player. However, it does not explicitly state when not to use it or name alternative tools such as delegations_incoming, so guidance is present but not fully developed.

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

delegation_to_targetA

Read the directed SPSP delegation from explicit player to explicit target. The positive pair matched outgoing/incoming evidence; reversing that pair returned HTTP 404. A zero-amount historical object was also observed: object presence does not imply a current positive delegation. Preserve amount strings, rental fields and nullable dates. No currency conversion or card-delegation inference. One bounded GET; no automatic paging. Sort effectiveness is unmeasured. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes
targetYes

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden, and it is exceptionally transparent. It discloses read-only nature, HTTP 404 for reversed pairs, the zero-amount historical object caveat, preservation of fields, absence of currency conversion, bounded GET, no auto-paging, forwarding of filters without effectiveness guarantee, array limits, truncation reporting, and refusal of oversized records. This goes far beyond typical descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is verbose and contains redundancy: 'One bounded GET; no automatic paging.' and 'Makes one logical GET request Does not auto-fetch continuation pages.' say essentially the same thing. The structure is a stream of clauses rather than organized sentences. However, the core purpose is front-loaded, and the extra details are useful despite the lack of polish.

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

Completeness5/5

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

For a tool with only 2 parameters and no output schema, the description covers virtually every aspect an agent needs: purpose, expected behavior, failure modes, data handling, limits, and caveats. It even hints at response fields (amount strings, rental fields, nullable dates). It is sufficiently complete for correct invocation without ambiguity.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It does clarify directionality ('from explicit player to explicit target') and states that required inputs reflect tool policy. However, it does not elaborate on the parameters' data types, formats, or additional constraints beyond what the schema already provides (strings, minLength 1). Some value is added, but it is not comprehensive.

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

Purpose5/5

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

Clearly states a specific verb and resource: 'Read the directed SPSP delegation from explicit player to explicit target.' This distinguishes it from siblings like delegations_outgoing and delegations_incoming, which imply broader or direction-based listing. The detail about reversing the pair returning 404 further differentiates it as a directed pair lookup.

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

Usage Guidelines4/5

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

Provides clear context: it is for a specific directed pair, and notes that reversing the pair fails. It also clarifies exclusions ('No currency conversion or card-delegation inference') and mentions bounded GET without paging. However, it does not explicitly name alternative tools or state 'use this instead of X when Y', so guidance is implicit rather than explicit.

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

describe_endpointA

Describe one catalogued endpoint, its parameters, result contract, evidence dimensions, and provenance. This tool is offline and makes no upstream request.

ParametersJSON Schema
NameRequiredDescriptionDefault
entryIdYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It explicitly states the tool is offline and makes no upstream request, which is a critical behavioral guarantee. It also describes the output categories, helping an agent understand what to expect. It stops short of explicitly declaring 'read-only' or discussing side effects, but the wording strongly implies a safe, non-mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is two sentences with zero waste. The first sentence front-loads the purpose and output specifics, and the second adds the key offline/no-upstream behavior. Every word contributes to the agent's understanding.

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

Completeness4/5

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

For a simple one-parameter tool with no output schema and no annotations, the description covers purpose, output content, and offline behavior. It would be slightly more complete if it pointed to list_endpoints as the source for entryId, but the tool is simple enough that an agent can still use it correctly based on this description.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It implies entryId identifies which catalogued endpoint to describe, but it does not explicitly state that entryId is the endpoint's catalogue identifier or explain how an agent should discover it (e.g., via list_endpoints). This is minimal compensation; the meaning of the parameter is only indirectly inferred.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Describe one catalogued endpoint' and enumerates exactly what it returns (parameters, result contract, evidence dimensions, provenance). This clearly separates it from list_endpoints (which lists endpoints) and from data-fetching tools like transaction_inspect. The offline statement further distinguishes it from live-query siblings.

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

Usage Guidelines3/5

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

The description implies usage for retrieving metadata about a single endpoint rather than live data, and the offline note suggests it is safe to call without network effects. However, it does not explicitly state when to use this tool versus list_endpoints or other data-fetching siblings, nor does it mention that entryId likely comes from list_endpoints. There are no explicit exclusions.

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

frontier_draws_available_prizesA

Read currently available frontier draw prizes. This static-ish metadata response is cached for 24 hours; the upstream list is unbounded and locally bounded to 100 rows and 256 KiB with an explicit truncation notice. Uses a bounded success cache keyed by exact supplied query, otherwise makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations present, the description carries the full burden of behavioral disclosure and excels at it. It discloses 24-hour caching, 100-row/256 KiB limits with truncation notices, cache keying, a single GET request, lack of auto-fetch, filter forwarding semantics, and refusal of oversized records. This is unusually thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is a dense single paragraph with several run-on constructions (e.g., missing period before 'Does not auto-fetch'). While every sentence carries useful behavioral information, the lack of structure and overwrought phrasing makes it harder to parse than necessary. It would benefit from bullet points or shorter sentences.

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

Completeness3/5

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

There is no output schema, so the description must explain return values. It states that array responses are bounded and truncation is reported, but it does not hint at the actual fields of a prize (e.g., name, rarity, quantity). For a simple no-parameter tool, this is a moderate gap; an agent knows it gets a list but not what a prize entry contains.

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

Parameters4/5

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

The input schema has zero parameters, so the baseline is 4 per the rubric. The description mentions 'required inputs' and 'declared filters' as if parameters existed, which is slightly confusing given the empty schema, but since there are no parameters, it does not need to add parameter semantics.

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

Purpose5/5

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

The description opens with 'Read currently available frontier draw prizes,' which names a specific verb, resource, and scope. It clearly distinguishes this from sibling tools like frontier_draws_recent_prizes or frontier_draws_prize_overview by focusing on 'available' prizes, which is a different concept.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives such as frontier_draws_recent_prizes or ranked_draws_available_prizes. The description focuses entirely on behavioral details (caching, bounds) but never states a selection criterion or exclusion, 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.

frontier_draws_completeA

Read completed frontier draws and their verification data. The upstream list is unbounded; this server returns at most 100 rows and 256 KiB with an explicit truncation notice. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The draws list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior5/5

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

With no annotations, the description carries the transparency burden and does so thoroughly: the upstream list is unbounded, the server caps at 100 rows/256 KiB with an explicit truncation notice, it performs one logical GET and does not auto-fetch continuation pages, and oversized records are refused without partial fields. This gives an agent realistic expectations about pagination and truncation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The key limit 'at most 100 rows and 256 KiB' and the truncation reporting are repeated almost verbatim twice. The sentence 'Makes one logical GET request Does not auto-fetch continuation pages' also has a missing period, showing poor polish. The purpose is front-loaded, but the redundancy makes it wordy.

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

Completeness3/5

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

For a zero-parameter read endpoint, the truncation and single-request behavior are well covered. However, the return data is only vaguely described as 'verification data,' the filter/input prose conflicts with the closed empty schema, and there is no guidance on how this endpoint relates to sibling draw endpoints. It is adequate but not complete.

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

Parameters3/5

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

The schema declares zero properties and additionalProperties false, so an agent needs no parameter documentation. However, the description mentions 'required inputs' and 'declared filters' despite there being none in the schema, which is vacuous and could mislead an agent into thinking inputs are accepted.

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

Purpose4/5

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

The description opens with a clear verb and resource: 'Read completed frontier draws and their verification data.' This distinguishes it from the frontier_draws_status/prize_overview/entries_completed siblings by focusing on completed draws plus verification data, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

The intended use is only implied by the opening phrase; there is no explicit when-to-use or when-not-to-use guidance, and no named alternative such as frontier_draws_status or frontier_draws_entries_completed. The rest of the description is behavioral caveats rather than usage direction.

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

frontier_draws_entries_completedA

Read completed-entry rows for one explicit numeric frontier draw id. The upstream list is unbounded; this server returns at most 100 rows and 256 KiB with an explicit truncation notice. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.4/5.0
Behavior5/5

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 explicitly states the 100-row and 256 KiB limits, the truncation notice, the lack of auto-pagination, the forwarding of filters without implying effectiveness, and the refusal of oversized records. This is exceptionally transparent and goes beyond typical tool descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is information-dense and front-loaded with the core purpose. However, it repeats the '100 rows and 256 KiB' limit twice (once for the upstream list, once for array responses), which is slightly redundant. The structure is logical, but the repetition could be trimmed without losing clarity.

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

Completeness5/5

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

For a simple read tool with one parameter and no output schema, the description covers all essential aspects: what it does, the limits, truncation behavior, pagination policy, and edge-case handling. It is complete for an agent to correctly invoke the tool and interpret the response, even without annotations or an output schema.

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

Parameters3/5

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

Only one parameter (id) exists, and the schema has no description (coverage 0%). The description clarifies that the id is numeric and refers to a frontier draw, which adds some meaning beyond the raw schema. However, it does not explain what a frontier draw id is or how to obtain it, and the statement 'Required inputs reflect tool policy' is vague. The description adds minimal value over the schema's type and range constraints.

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

Purpose5/5

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

The description clearly states the action ('Read'), the resource ('completed-entry rows'), and the scope ('for one explicit numeric frontier draw id'). This distinguishes it from sibling tools like frontier_draws_complete or frontier_draws_recent_prizes, which 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.

Usage Guidelines4/5

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

The description makes it clear this tool is for retrieving completed entries for a specific draw id. It implies the use case (when you have a frontier draw id and need its completed entries) but does not explicitly mention alternatives or when not to use it. The context from the name and sibling list is sufficient, but explicit routing would be stronger.

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

frontier_draws_prize_overviewA

Read the frontier draw prize totals and foil breakdowns. This static-ish metadata response is cached for 24 hours. Uses a bounded success cache keyed by exact supplied query, otherwise makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so thoroughly. It discloses 24-hour caching, bounded success caching keyed by exact query, single logical GET behavior, no continuation-page auto-fetch, local row/size limits, truncation reporting, and refusal of oversized records. This is rich, concrete transparency with no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The purpose is front-loaded in the first sentence, and the behavioral details are valuable. However, the second sentence is a run-on with a missing period before 'Does', and some boilerplate about required inputs and filters feels irrelevant for an empty schema. Overall compact but not polished.

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

Completeness4/5

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

For a zero-parameter read endpoint, the description covers the key operational context: caching, truncation, refusal behavior, and the high-level content returned. It does not describe the exact return shape, but no output schema exists and the endpoint's simplicity lowers the burden.

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

Parameters4/5

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

The input schema is empty, so there are no parameter semantics to explain; a baseline of 4 is appropriate. The description's remarks about required inputs and forwarded filters are somewhat generic and not fully applicable to a zero-parameter endpoint, but they do not mislead.

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

Purpose5/5

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

The description opens with a specific verb and resource — 'Read the frontier draw prize totals and foil breakdowns' — which clearly distinguishes it from sibling endpoints like ranked_draws_prize_overview and frontier_draws_status. The scope is precise and usable without opening the schema.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool over alternatives, nor any mention of when not to use it. The only adjacent statements are behavioral caveats about caching and limits, which are not selection criteria. An agent must infer the intended use case 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.

frontier_draws_recent_prizesB

Read recent frontier draw mints. The upstream mints list is unbounded; this server returns at most 100 rows and 256 KiB with an explicit truncation notice. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The mints list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose key behaviors: the 100-row/256 KiB limits, explicit truncation notice, single GET request, no auto-pagination, and refusal of oversized records. This is rich behavioral disclosure, though the repeated limit statement and confusing filter language slightly reduce clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The description repeats the 100-row and 256 KiB limit twice and includes a run-on sentence about the GET request. It also includes boilerplate-sounding phrases like 'Required inputs reflect tool policy' and 'Other declared filters are forwarded as supplied,' which add noise without value. The core information could be stated in half the length.

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

Completeness3/5

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

For a zero-parameter, no-output-schema read tool, the description covers the essential constraints and behavior adequately. However, it fails to clarify the relationship to the similarly named ranked_draws_recent_prizes, and the mention of nonexistent filters makes the context slightly muddled. The truncation and pagination behavior are well covered.

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

Parameters4/5

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

The input schema has zero parameters and 100% coverage, so the baseline for this dimension is high. The description adds little meaningful parameter semantics; the references to 'required inputs' and 'declared filters' are misleading because the schema declares no parameters. Overall, the empty schema already communicates the parameter surface completely.

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

Purpose4/5

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

The description begins with 'Read recent frontier draw mints,' which uses a clear verb and resource. It distinguishes the tool from the many sibling endpoints by naming 'frontier' specifically, though it does not explicitly contrast it with ranked_draws_recent_prizes or other related tools.

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

Usage Guidelines2/5

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

No explicit guidance is given about when to use this tool versus alternatives such as ranked_draws_recent_prizes. The statements about request behavior and truncation are operational notes, not usage-selection guidance. Mentions of 'required inputs' and 'declared filters' are vague and potentially confusing given the schema has zero parameters.

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

frontier_draws_statusB

Read the current and first-unclaimed frontier draw status. username is optional and is forwarded as an explicit account-scoped selector when supplied; no account is assumed. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and provides substantial behavior: it is a logical GET, it does not auto-fetch continuation pages, array responses are capped at 100 rows and 256 KiB, truncation is reported, and oversized records are refused without partial fields. This is strong operational transparency despite some boilerplate about 'required inputs' and 'other declared filters' that does not match the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The main purpose and key behaviors are front-loaded, but the description contains generic boilerplate sentences—'Required inputs reflect tool policy...' and 'Other declared filters are forwarded as supplied...'—that are confusing and largely irrelevant for a schema with one optional string and no additional properties. There is also a missing period after 'GET request'. It is somewhat over-built for its content.

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

Completeness3/5

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

The tool is low-complexity and the description covers input scope, optional filtering, request behavior, and response limits. However, there is no output schema, and the description does not clarify what fields or structure the draw status response contains, leaving the agent to discover the return shape at runtime.

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

Parameters4/5

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

Schema coverage is 0%, and there is only one optional parameter, username. The description compensates by explaining that username is optional, acts as an explicit account-scoped selector when supplied, and that no account is assumed when omitted. This adds meaningful semantics beyond the parameter name and type.

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

Purpose4/5

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

The description opens with a specific verb and resource: 'Read the current and first-unclaimed frontier draw status.' This clearly identifies the operation and distinguishes it from ranked draw status tools, though it does not explicitly name sibling alternatives. The mention of 'current and first-unclaimed' adds useful scope beyond the bare tool name.

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

Usage Guidelines2/5

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

The description gives some context for the optional username parameter ('forwarded as an explicit account-scoped selector... no account is assumed') but never states when to choose this tool over siblings like frontier_draws_prize_overview or ranked_draws_status. There is no when-not-to-use guidance or explicit alternative routing, so the agent must infer usage from the name.

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

game_last_blockA

Read the latest block number reported by the game API. This is not cached by the settings cache. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and covers key behaviors: not cached by settings cache, single GET, no auto-pagination, and array limits with truncation. This is strong disclosure for a simple tool, though it doesn't discuss error handling or response format beyond truncation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is tight and front-loaded with the core purpose, followed by important caveats. Each sentence adds distinct value with no redundancy, and it remains concise despite covering multiple behavioral details.

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

Completeness5/5

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

Given zero parameters, no output schema, and low complexity, the description covers all necessary operational aspects: caching, request nature, pagination behavior, and response limits. An agent can call this tool correctly without additional info.

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

Parameters4/5

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

Since there are no parameters, the schema is trivial. The description adds value by explaining that required inputs (none) reflect tool policy and upstream requirements, and that any other declared filters are forwarded as supplied. This compensates for the empty schema.

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

Purpose4/5

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

The description clearly states 'Read the latest block number reported by the game API' with a specific verb and resource. However, it does not explicitly differentiate from sibling tools like game_settings or list_endpoints, though the uniqueness of 'latest block number' makes it distinct enough.

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

Usage Guidelines3/5

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

The description implies simple usage: no inputs, one GET request, and no pagination. But it does not explicitly state when to use this tool versus alternatives or when not to use it. The context of it being a lightweight status read is clear, but exclusions are absent.

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

game_maintenanceA

Read scheduled maintenance windows and window_buffer_ms. Explicit date bounds are forwarded; the tested September range retained the same upcoming window, so complete filtering semantics are not established. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The maintenance_windows list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
start_dateNo

TDQS

A3.7/5.0
Behavior5/5

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

With no annotations, the description fully carries the behavioral disclosure burden. It explicitly notes single-GET behavior, no continuation-page auto-fetch, the local row/size limits, truncation reporting, and oversized-record refusal. It even discloses that filter effectiveness is not fully established, which is unusually honest and useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description packs in useful detail but is structurally messy, with run-on sentences and missing punctuation ('one logical GET request Does not auto-fetch'). It front-loads the purpose but then meanders into vague statements like 'Required inputs reflect tool policy as well as measured upstream requirements' which adds little. Dense but not polished.

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

Completeness4/5

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

For a two-optional-parameter read endpoint with no output schema and no annotations, the description covers the essential context: return contents, filtering caveats, pagination behavior, local limits, truncation notification, and error handling. Minor gaps like exact date formatting and the meaning of 'window_buffer_ms' prevent a perfect score.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It does add that start_date/end_date are explicit date bounds that get forwarded, and mentions a tested September range that retained the same window, implying uncertain filtering. However, it does not explain expected date format, boundary inclusivity, or how the parameters affect the returned data, leaving the caller under-informed.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Read scheduled maintenance windows and window_buffer_ms.' This clearly identifies the tool's operation and output. It also distinguishes itself from the many sibling endpoints by focusing on the maintenance domain, leaving no ambiguity about what resource it targets.

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

Usage Guidelines2/5

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

No when-to-use or alternative-selection guidance is provided. The description does not state when a caller should choose this tool over any sibling, nor does it give context for typical use cases. The filtering caveat hints at behavior but not at usage context.

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

game_settingsA

Read current public settings from the API, cached for one hour per exact query. Matching version and config_version still returned the full settings body; they are not a delta protocol. The server never transcribes configuration constants into this tool. Uses a bounded success cache keyed by exact supplied query, otherwise makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNo
config_versionNo

TDQS

A3.8/5.0
Behavior5/5

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

With no annotations at all, the description carries the full burden and does an excellent job. It discloses caching duration, non-delta behavior, bounded cache mechanics, request method, pagination handling, filter forwarding caveats, array size limits, truncation reporting, and oversized-record refusal. This is far beyond typical descriptions and gives an agent a realistic model of 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.

Conciseness3/5

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

The description is dense and information-rich, but it includes boilerplate like 'Required inputs reflect tool policy as well as measured upstream requirements' which adds little and could confuse given there are no required parameters. It is structured around behaviors but could be trimmed without losing essential information.

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

Completeness4/5

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

For a simple read tool with two optional params and no output schema, this description covers most operational aspects: caching, request pattern, pagination, limits, and error behavior. It mentions the response is the 'full settings body'. The main gap is the lack of clear parameter value guidance and response structure, but overall it is sufficiently complete for an agent to invoke correctly.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It adds the key fact that version and config_version do not trigger a delta response—they still return the full body. It also notes that filters are forwarded without effectiveness guarantees. However, it never explains what these parameters semantically represent, what formats are expected, or what happens when they are omitted. Some value is added, but significant ambiguity remains.

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

Purpose4/5

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

The description opens with 'Read current public settings from the API', which names a specific verb and resource, making the core purpose clear. It does not explicitly contrast with sibling tools like purchase_settings or game_maintenance, so it stops short of full differentiation in the same space.

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

Usage Guidelines3/5

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

Usage is implied by the purpose: call this when you need current public settings. However, there is no explicit guidance on when to prefer this over alternatives, when not to use it, or conditions that would make another tool more appropriate. The caching/behavior details add context but not decision rules.

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

game_vapi_healthA

Read the public VAPI health root, which reports status and application/version/environment metadata. This is a health read, not a claim that all game routes are available. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries full burden and goes well beyond basics: one logical GET, no continuation fetching, local array truncation limits, refusal of oversized records, and forwarding of filters without implied effectiveness. This is rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The core purpose is front-loaded, but several sentences are generic boilerplate unrelated to a no-parameter tool ('Required inputs...', 'Other declared filters...'), and there is also a missing period between 'GET request' and 'Does not'. These distract from the otherwise useful behavioral notes.

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

Completeness4/5

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

For a simple no-input health endpoint, the description covers what it returns, its read-only nature, request behavior, and local limits. The boilerplate about filters and inputs slightly muddies completeness, but the essential information an agent needs is present.

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

Parameters4/5

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

The schema has zero properties and 100% coverage, so there are no parameters to document; baseline 4 applies. The comment about required inputs and filters is generic boilerplate and doesn't add meaning for this no-input tool.

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

Purpose5/5

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

Clearly identifies a specific operation: reading the public VAPI health root and the metadata it returns (status, app/version/environment). The caveat that it is not a claim about game route availability distinguishes it from game-status siblings.

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

Usage Guidelines4/5

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

Gives clear context that this is a health read and explicitly disclaims routing availability, so an agent understands its scope. It doesn't name a specific alternative for checking individual game routes, but the limitation is enough to guide selection.

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

guild_brawl_recordsA

Read brawl records for an explicit guild. cycle selected one row; start_cycle and end_cycle selected the two captured inclusive endpoint cycles. Other tournament and date selectors remain forwarded but unverified. SPS payout quantities remain decimal strings and the bounded list does not establish a complete history. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The results list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
cycleNo
end_dateNo
guild_idYes
end_cycleNo
start_dateNo
start_cycleNo
tournament_idNo

TDQS

A3.8/5.0
Behavior5/5

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

With no annotations, the description carries full responsibility and does an excellent job: it discloses pagination behavior ('Does not auto-fetch continuation pages'), local limits (100 rows, 256 KiB), truncation reporting, refusal of oversized records, decimal-string payouts, and non-guaranteed filters. This goes well beyond typical tool descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is front-loaded with the core purpose and contains substantive caveats, but it is dense and contains redundancy ('Other tournament and date selectors remain forwarded but unverified' vs. 'Other declared filters are forwarded as supplied'). There are also grammar/punctuation issues, such as 'Makes one logical GET request Does not auto-fetch continuation pages.'

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

Completeness4/5

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

For a tool with 7 parameters, no annotations, and no output schema, the description is unusually complete: it covers limits, pagination, truncation, data formatting, and filter reliability. It stops short of describing the full response shape or error behavior, but the core operational context an agent needs is present.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning for cycle ('selected one row'), start_cycle, and end_cycle ('inclusive endpoint cycles'), and groups tournament/date selectors as forwarded but unverified. However, guild_id is only implied, and the remaining selectors are not individually explained, leaving several parameters underspecified.

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

Purpose4/5

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

The opening sentence 'Read brawl records for an explicit guild' provides a clear verb, resource, and scope. It does not explicitly differentiate from the sibling guild_brawl_sps_rewards, but 'brawl records' versus 'SPS rewards' is reasonably distinct.

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

Usage Guidelines3/5

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

The description implies usage for a known guild and warns that tournament/date selectors are 'forwarded but unverified,' which is useful context. However, it never explicitly states when to use this tool instead of related guild or brawl tools, nor does it mention alternatives.

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

guild_brawl_sps_rewardsA

Read global brawl SPS payout totals and/or cycle records. Use the string 1 for include_total or include_cycles: true returned an empty object. Each section can be selected independently. The total is global even when cycle narrows records; it is not a guild or selected-cycle sum. Cycle records are bounded while a requested total is retained. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The sps_reward_records list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
cycleNo
end_cycleNo
start_cycleNo
include_totalNo
include_cyclesNo

TDQS

A4.1/5.0
Behavior5/5

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 so thoroughly. It discloses one logical GET request, no auto-fetching of continuation pages, 100-row/256 KiB local limits, truncation reporting, refusal of oversized records without partial fields, and the important semantic that the total is not a guild or selected-cycle sum.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The description is a dense, run-on block with missing punctuation and awkward phrasing, e.g., 'Makes one logical GET request Does not auto-fetch continuation pages.' It front-loads the purpose well but the many disjointed caveats make it harder to parse than necessary.

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

Completeness4/5

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

Given no output schema and no annotations, the description covers a lot: request behavior, pagination/continuation behavior, response truncation limits, and filter semantics. It stops short of describing the actual response shape or authentication needs, but for a read-only payout endpoint the provided context is largely sufficient.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does meaningfully explain include_total/include_cycles with the string '1' convention, clarifies that cycle narrows records while the total remains global, and warns that other filters are forwarded as supplied without implied effectiveness. However, start_cycle, end_cycle, and cycle are only loosely addressed and not fully pinned down.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Read global brawl SPS payout totals and/or cycle records.' It clearly scopes the tool to global SPS payout data and distinguishes it from sibling tools like guild_brawl_records by emphasizing 'global' and 'payout totals' rather than generic brawl records.

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

Usage Guidelines3/5

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

The description provides practical usage context, such as 'Each section can be selected independently' and notes that the total is global even when a cycle narrows records. However, it never names alternative tools or gives explicit when-to-use vs. when-not-to-use guidance relative to siblings, so the guidance is implied rather than direct.

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

guild_contributionsA

Read contributions for a guild and explicit building type. guild_hall and arena each returned 50 rows, while omitted type returned empty. Amounts and cumulative fields retain their original units and wire values; no complete contribution history or working pagination is established. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
guild_idYes

TDQS

A3.8/5.0
Behavior5/5

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

The description is exceptionally detailed about behavioral traits: it states it makes one logical GET request, does not auto-fetch continuation pages, locally limits array responses to 100 rows and 256 KiB with truncation reported, refuses oversized records without partial fields, preserves original units and wire values, and clarifies that other declared filters are forwarded without implied effectiveness. Given no annotations, this fully compensates for the lack of metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is packed with information but structured as a single dense paragraph with multiple clauses. It begins with purpose (good) but then intermixes behavioral caveats, observations, and limitations without clear paragraphs or bullet points. It is not excessively long, but the lack of hierarchy makes it harder to scan. It is adequately concise but could be better organized.

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

Completeness2/5

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

Given there is no output schema, the description must explain the return shape. It mentions row counts, 'amounts' and 'cumulative fields', and truncation behavior, but does not describe the structure of a contribution record, what fields are returned, or how they map to the parameters. It also lacks details on error handling or response envelope. This is insufficient for an agent to fully understand what it will receive.

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

Parameters3/5

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

The description adds some meaning beyond the schema by providing concrete examples of the 'type' parameter ('guild_hall' and 'arena') and noting that omitting it results in empty output. It also mentions that required inputs reflect upstream requirements. However, it does not enumerate all valid type values or explain the semantics of 'guild_id' beyond the term 'guild'. It partially compensates for the 0% schema description coverage but leaves gaps.

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

Purpose5/5

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

States a specific verb ('Read') and resource ('contributions for a guild and explicit building type'), clearly distinguishing it from other guild-related tools like guild_list or guild_members. It also specifies the primary key ('guild_id' and 'type') and hints at distinct behavior for different building types, which is unambiguous.

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

Usage Guidelines3/5

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

The description implies usage by focusing on a specific resource and notes that omitting the type yields empty results, suggesting the type must be provided. However, it does not explicitly enumerate when to use this tool versus alternatives, nor does it name exclusion conditions or alternative tools. Some context is present but it is not comprehensive.

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

guild_findA

Read one guild by its explicit ID. The default capture included extra fields absent with ext=true; do not assume ext=true expands the response. Building, tournament and crest data retain their JSON-encoded string wire types. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
extNo
usernameNo

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden, and it does so richly. It discloses JSON-encoded string wire types, a single logical GET, no continuation-page auto-fetch, array row/size limits, truncation reporting, and refusal of oversized records. It also warns against assuming ext=true expands the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The core purpose is front-loaded, and nearly every sentence carries behaviorally important information. The wording is dense and occasionally awkward, with a missing period after 'request' and the confusing 'included extra fields absent with ext=true' phrase, but there is little redundancy.

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

Completeness3/5

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

For a low-complexity single-get tool, the description covers request behavior, wire types, response limits, and safety well. However, it leaves gaps around return-value shape, error behavior, and the semantics of username and ext, so an agent is still guessing about optional parameters.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies that id is the explicit lookup key, but ext is described only through an opaque warning about extra fields, and username is never semantically explained. The line about filters being forwarded as supplied does not tell the agent what these parameters actually do.

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

Purpose5/5

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

Opening sentence 'Read one guild by its explicit ID' states a specific verb, resource, and lookup key. This clearly distinguishes it from list- and member-oriented guild siblings, even though no sibling is named. The rest of the description is caveats, not purpose.

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

Usage Guidelines3/5

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

The tool is clearly positioned as a single-guild lookup, implying it should be used when the caller already has an explicit guild ID. However, it never names an alternative like guild_list for when an ID is unavailable, and it gives no explicit when-not-to-use guidance. Usage is implied rather than stated.

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

guild_listA

Search guilds by an explicit name filter. The unfiltered response exceeded the 2 MiB transport limit; a specific name returned one guild and an unmatched name returned no guilds. Other declared filters are forwarded without assuming their effectiveness. The bounded list preserves num_actionable_mail and other surrounding fields. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The guilds list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
sort_byNo
languageNo
usernameNo
membership_typeNo

TDQS

A4.2/5.0
Behavior5/5

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, and it delivers extensively. It reveals the transport limit issue, the local limits (100 rows, 256 KiB), truncation reporting, refusal of oversized records, single GET request, and no auto-fetch of continuation pages. This is comprehensive transparency beyond what annotations would normally provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is front-loaded with the core purpose, but it is verbose and repetitive. The phrase 'Other declared filters are forwarded' appears twice, and the text could be tightened. It is not a model of conciseness, though it is structured with the key constraint first.

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

Completeness4/5

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

Given the tool's complexity (5 params, no output schema, no annotations), the description covers essential operational details: required name, limits, truncation, refusal behavior, and pagination. It does not describe the return format, but for a list endpoint with no output schema, the description provides enough for an agent to call it correctly and interpret basic results. Minor gaps remain around field descriptions.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies that 'name' is required and effective, and that other filters are forwarded but not guaranteed to work. However, it does not explain the meaning or expected format of sort_by, language, username, or membership_type. The description adds some value but leaves significant gaps for the non-required parameters.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Search guilds by an explicit name filter.' It clearly distinguishes this from sibling tools like guild_find and guild_members by focusing on the name-based search and the required filter. No ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The description states the core usage: search by name filter, and explains why (unfiltered response exceeded transport limit). It also warns that other filters are forwarded without guaranteed effectiveness, guiding the agent to rely on the name filter. However, it does not explicitly name alternative tools or state when not to use this one, so it stops short of a full 5.

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

guild_membersA

Read guild membership rows for an explicit guild_id. The default capture returned 230 rows across statuses; status=active returned 30. Membership status is not inferred. Undocumented limit=2 and offset=2 did not shorten or advance active members, so no paging controls are exposed. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
guild_idYes

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full load and does so exceptionally. It reveals that membership status is not inferred, that limit/offset are ineffective and unsupported, that only one logical GET is made without auto-fetching continuation pages, and that array responses are capped at 100 rows / 256 KiB with truncation reported. It also notes that oversized records are refused without partial fields. These are concrete, non-obvious behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is dense but every sentence carries distinct information: purpose, empirical results, paging, request behavior, input policy, and array limits. It is front-loaded with the core purpose. One sentence ('Required inputs reflect tool policy...') is somewhat vague and could be cut, but overall it is well-structured for such a behaviorally complex tool.

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

Completeness4/5

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

Given there is no output schema, the description covers a lot: required input, optional filter, paging absence, request pattern, truncation, and refusal behavior. The only notable gap is that it never specifies the shape or fields of the membership rows themselves; an agent knows they are rows but not their content. Still, for a read-only lookup of this type, the description is nearly complete.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It does: it clarifies guild_id is required and explicit, explains that status is forwarded as supplied and not inferred, and documents the observed behavior of limit/offset (ineffective). It does not enumerate possible status values, but it adds meaningful semantics beyond the bare schema.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Read guild membership rows for an explicit guild_id.' This clearly distinguishes the tool from siblings like guild_list or guild_find, which target guild objects rather than membership rows for a known ID. The requirement of an explicit guild_id is stated up front.

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

Usage Guidelines3/5

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

The description implies the use case: you call this when you have a concrete guild_id and need its membership rows. It also explains the optional status filter with observed results. However, it never explicitly names alternatives or conditions when another tool (e.g., guild_find or guild_contributions) should be used instead, so the guidance remains implied rather than explicit.

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

hive_account_historyA
Read-onlyIdempotent

Search one bounded window of an explicit Hive account's authority-indexed history. Default: newest 100 records. Optional custom_json_id filter is applied locally. Returns next_start for an explicit later call, even when no matches occur. No automatic pagination; this is not complete incoming-recipient history. Oversized results are refused whole.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
startNo
accountYes
custom_json_idNo
operation_typeNo

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint false), the description adds crucial behavioral details: default limit (100), return of next_start for pagination even when no matches, no automatic pagination, local filter application, and refusal of oversized results. These are specific and useful for an agent to predict behavior, particularly around pagination and result size handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single, dense paragraph that front-loads the core purpose first, then covers defaults, filters, pagination, and caveats in order of importance. Every sentence adds value, with no filler or repetition. It is appropriately sized for the tool's complexity.

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

Completeness4/5

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

Given the tool has 5 parameters and no output schema, the description covers most critical behavior: purpose, default, filter semantics, pagination mechanism, and edge-case size limits. It does not describe the return format beyond mentioning next_start, but since there is no output schema, this is a minor gap. The description is sufficient for an agent to use the tool correctly in most cases, but a note about the response structure would have made it complete.

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

Parameters3/5

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

The schema has no parameter descriptions (coverage 0%), so the description must compensate. It mentions the default for limit ('newest 100 records') and explains the custom_json_id filter is applied locally, which adds meaning. However, it does not describe the 'start' parameter (only mentions next_start in return, implying its purpose) or the 'operation_type' parameter at all. Since over 40% of parameters (start, operation_type) are not explained in the description, this is a partial compensation, warranting a score of 3.

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

Purpose5/5

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

The description clearly states the tool searches a bounded window of an explicit Hive account's authority-indexed history, with a specific verb ('Search') and resource ('Hive account's authority-indexed history'). It also distinguishes itself from 'complete incoming-recipient history', clarifying what it is not, which helps the agent understand its scope.

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

Usage Guidelines4/5

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

The description provides important usage context: it explains the default behavior (newest 100 records), the local application of the custom_json_id filter, and the lack of automatic pagination, explicitly stating this is not a complete history. However, it does not name a specific alternative tool or explicitly say when to use this versus another, only implies that for complete history manual pagination would be needed. This is clear context but lacks an explicit exclusion.

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

hive_transactionA
Read-onlyIdempotent

Read a full signed Hive transaction by transaction ID. Preserve every operation and signature; decode custom JSON and count recognized gift-card items separately. Does not establish game processing or irreversibility. One read-only RPC.

ParametersJSON Schema
NameRequiredDescriptionDefault
trx_idYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, but the description goes beyond them by specifying what is preserved, how custom JSON is decoded, and that gift-card items are counted separately. It also clarifies a nontrivial limitation (no game-processing or irreversibility guarantee) and notes the single-RPC behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Three tightly packed sentences with the core purpose front-loaded. Every clause earns its place: preservation semantics, gift-card decoding, the processing caveat, and RPC cost. No fluff or redundant restatement of schema/annotations.

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

Completeness5/5

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

For a single-parameter tool with no output schema, the description covers what the tool reads, what it preserves, how it handles custom JSON, what it does not guarantee, and its RPC footprint. An agent has enough context to call it correctly without additional structured output information.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning. It only restates 'by transaction ID', which mirrors the property name trx_id, and adds no detail about how the ID relates to confirmed transactions, where to find it, or how the pattern should be interpreted beyond the schema's regex. The schema pattern carries the format burden, but the description adds little semantic value.

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

Purpose5/5

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

The description states a specific verb ('Read') and resource ('full signed Hive transaction by transaction ID'), then adds distinguishing behavior: preserving operations and signatures, decoding custom JSON, and counting gift-card items. It also explicitly scopes out game processing and irreversibility, which separates it from sibling tools like transaction_inspect or transaction_lookup.

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

Usage Guidelines4/5

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

The description gives clear selection context: use this when you need the raw signed transaction with all operations and signatures preserved. The caveat 'Does not establish game processing or irreversibility' is a useful negative signal, though no sibling alternative is named explicitly, so it stops short of a 5.

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

land_deed_by_plotA

Get a public deed by numeric plot_id or a region-tract-plot display label, padded or unpadded (for example 001-02-001 or 1-2-1). A label uses an observed candidate ID and verifies the returned coordinates before returning a deed. Empty or mismatched label resolution is explicitly unverified, not proof that the location does not exist. Successful populated responses include plot_reference with numeric ID, padded label and deed UID. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
plot_idNo
deed_uidNo

TDQS

A4.5/5.0
Behavior4/5

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 does well: it discloses the verification step, the two-request limit, the meaning of empty/mismatched resolution, and the contents of successful populated responses (plot_reference with numeric ID, padded label, deed UID). It does not explicitly state whether the operation is read-only, but 'Get a public deed' strongly implies a safe read. Minor gap: no mention of error formats or rate limits beyond the two-request limit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is dense but well-organized, front-loading the core purpose and then layering identifier formats, resolution behavior, and response contents. Every sentence adds information. It is slightly long, but the complexity of the identifier resolution justifies the length. No wasted words.

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

Completeness4/5

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

For a tool with 2 optional parameters, no output schema, and no annotations, the description is remarkably complete. It covers input formats, resolution behavior, response contents, and a caveat about empty results. The only missing piece is explicit error/status behavior for invalid inputs, but the description already exceeds what is typical for this API family.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does: it explains that plot_id can be a numeric ID or a display label (padded or unpadded, with examples), and that deed_uid is an alternative identifier. It also explains what the resolved output contains. It doesn't give exact regex patterns for labels, but the examples and the 'padded or unpadded' note provide enough semantic meaning for an agent to construct valid inputs.

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

Purpose5/5

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

The description states a specific verb ('Get') and resource ('public deed'), and precisely defines the accepted identifiers: numeric plot_id or region-tract-plot display label, padded or unpadded. It also distinguishes itself from the sibling land_deed_by_uid by explicitly accepting deed_uid as an alternative input, making the tool's scope clear.

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

Usage Guidelines5/5

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

The description gives explicit usage guidance: supply exactly one of plot_id (numeric or display label) or deed_uid, and notes that the original UID spelling is also accepted. It also explains the resolution behavior (one verified deed GET before the target GET, hard two-request limit) and clarifies that empty or mismatched label resolution is unverified, not proof of non-existence. This is strong when-to-use and how-to-use guidance.

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

land_deed_by_uidA

Get the public land-deed record for one deed uid. The player field is the owner at read time; market listing fields describe current listing state, not purchase history. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
plot_idNo
deed_uidNo

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does reasonably well: it discloses non-obvious semantics (player is owner at read time, market listing fields are current state not history), an internal resolution step, and a hard two-request limit. It omits auth/permission needs, but for a public read tool that is minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

Four dense but purposeful sentences, front-loaded with the core purpose. Each sentence adds distinct information (record identity, field semantics, operand rule, resolution/result behavior); the resolution sentence is jargon-heavy but earns its place.

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

Completeness4/5

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

No output schema exists, but the description compensates by describing what populated resolved results contain (all three plot identities, resolution freshness) and clarifying field semantics. An agent has enough to call and interpret it, though explicit sibling routing is the remaining gap.

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

Parameters4/5

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

Schema coverage is 0% and required params are listed as 0, so the description must compensate; it does by clarifying that plot_id accepts a numeric id or display label, that deed_uid accepts the original spelling, and that exactly one of the two must be supplied. This adds meaningful constraint beyond the bare schema.

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

Purpose4/5

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

The description states a specific verb and resource ('Get the public land-deed record for one deed uid') and scopes it to a single record. It is clear on its own, though it never names or contrasts with the obvious sibling land_deed_by_plot, instead muddying the boundary by saying plot_id may also be supplied.

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

Usage Guidelines3/5

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

It gives a usable operand rule ('supply exactly one plot_id or deed_uid') and notes an alternative spelling is accepted, which is real guidance. However, it never says when to choose this tool over land_deed_by_plot or land_deeds_owned, so sibling routing is left to inference.

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

land_deeds_ownedA

Return the per-region plot counts reported for one account; the tool name is historical, and the response contains region rows rather than individual land records. A successful response has {status, data}, where data is an array of {count, uid} rows and uid is the region identifier. data: null was observed for an unrecognised account; behaviour for a known account with no land was not captured. Query probes limit=2 and offset=5 returned bodies byte-identical to the no-query response, so those tried values had no effect.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral burden. It discloses that data:null was observed for an unrecognised account and that limit=2 and offset=5 had no effect, showing actual tested behavior. It also describes the response structure clearly, adding value beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is concise and front-loads the primary purpose. It uses three sentences to convey purpose, response format, and edge-case observations without unnecessary fluff. The inclusion of probing results is efficient and informative.

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

Completeness4/5

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

For a one-parameter tool with no output schema, the description covers the response shape, defines 'uid', and discloses a known edge case (null data for unrecognised accounts). It also notes a gap (behavior for known accounts with no land), which is honest. Minor missing details like pagination or error formats are acceptable given the simplicity.

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

Parameters3/5

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

The schema has 0% description coverage and a single 'player' parameter. The description implies 'player' is the account via 'reported for one account', which adds some meaning. However, it doesn't elaborate on expected format (e.g., username vs. ID) beyond the minLength constraint, so it only partially compensates.

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

Purpose4/5

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

The description clearly states the tool returns per-region plot counts for one account, and explicitly notes the name is historical and the response contains region rows rather than land records. This distinguishes it from related land tools that might return individual deeds, though it doesn't name a specific sibling.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives like land_regions_counts or land_deeds_search. It doesn't state conditions for selection or mention any exclusions. The agent is left to infer usage from the name and purpose.

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

land_lineup_estimateA
Read-onlyIdempotent

Optionally supply up to ten uniquely labelled comparisons, each with a complete lineup snapshot, to evaluate alternatives alongside the baseline in one offline call. Each result retains its own validity; any invalid result sets isError while valid alternatives remain available. Alternatives are independent, not sequential moves. Offline deterministic Land what-if for Grain/Wood/Stone/Iron worksites. Supply an ordered worker snapshot (UID, detail ID, level, base PP, element and bloodline), plot terrain and efficiency, Power Core, optional Runi and item boost fractions. Bare UIDs cannot be resolved offline. Known edition-19 abilities use the dated resource; other workers require explicit ability tuples or an empty array. Returns raw/capped Base, Boostable and Total PP, gross resource/hour, food/hour, cap losses, ability activation and validity checks. Five ordinary slots with Core/Energized; Runi alone powers four plus itself. No HTTP, signing, ownership or live staking validation. Supply exactly one of plot.efficiency or regional_power (staked_dec, current_required_dec including this plot, current_plot_required_dec). Regional mode also needs each worker’s raw land_dec_stake_needed before cap/discount; it replaces old plot demand with the estimated new demand and holds all other plots unchanged. Output reports per-worker/plot demand, regional efficiency and shortfall. Runi needs no plot DEC and runs at full efficiency. Neutral workers have zero terrain modifier; dual-element workers use the better modifier. Terrain eligibility is checked for all four resources. Castles/Keeps, SPS and Research are outside this current estimator. Public-client formula evidence is dated; use an agreeing land_lineup_snapshot baseline for live comparisons.

ParametersJSON Schema
NameRequiredDescriptionDefault
plotYes
runiNo
workersYes
power_coreYes
comparisonsNo
title_boostNo
totem_boostNo
regional_powerNo

TDQS

A4.1/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true and idempotentHint=true, and the description adds substantial behavior beyond that: per-result error isolation ('any invalid result sets isError while valid alternatives remain available'), independence of alternatives ('not sequential moves'), deterministic offline execution, regional-mode replacement semantics ('replaces old plot demand... holds all other plots unchanged'), and the dated-formula caveat. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

Every sentence carries real information with no fluff, but the entire description is one ~350-word wall of text with no breaks or sections. The optional comparisons feature is described before the core purpose, forcing an agent to parse several sentences before learning what the tool fundamentally does. Information density is high, but scannability and front-loading are poor.

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

Completeness5/5

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

For a highly complex tool with 8 parameters, nested objects, no output schema, and 0% schema param coverage, the description is remarkably complete: it specifies input construction requirements, regional-mode preconditions, output metrics (raw/capped Base, Boostable, Total PP, resource/hour, food/hour, cap losses, validity checks), behavioral constraints, and exclusions. An agent has enough to construct a valid call and interpret results.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does for the most complex parameters: comparisons (up to ten, complete lineup snapshots), the mutual exclusivity of plot.efficiency vs regional_power, land_dec_stake_needed requirements in regional mode, Runi's slot semantics, and power_core slot counts. Gaps remain: title_boost, totem_boost, rarity_boost, and status_boost are collapsed into 'item boost fractions' without individual meaning, and base_cap is unmentioned.

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

Purpose4/5

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

The description states a specific verb+resource+scope: 'Offline deterministic Land what-if for Grain/Wood/Stone/Iron worksites' with explicit output metrics. It distinguishes from siblings by positioning itself as offline vs. 'land_lineup_snapshot baseline for live comparisons.' However, the core purpose statement is buried mid-paragraph after two sentences about the optional comparisons feature, so the primary function is not front-loaded.

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

Usage Guidelines4/5

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

Provides clear context: offline, no HTTP/signing/ownership/live staking validation, and 'Bare UIDs cannot be resolved offline' which tells the agent when input is insufficient. It names the alternative tool (land_lineup_snapshot) for live comparisons and states scope exclusions (Castles/Keeps, SPS, Research). Missing an explicit 'use X instead when Y' routing statement, but the guidance is strong and actionable.

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

land_lineup_snapshotA
Read-onlyIdempotent

Gather an explicit player's current Grain/Wood/Stone/Iron plot and selected candidate cards for land_lineup_estimate. Supply exactly one numeric/display plot_id or deed_uid. Select up to ten card detail IDs or twenty UIDs; current workers are always included. At most ten logical GETs, including one bounded-memory full collection stream; no automatic pagination or per-card lookup loops. Fetches deed, worker/project/plot facts, regional DEC, Power Core availability, definitions and up to 200 owner deeds for verified candidate locations. At most 100 matching cards; a larger selection is refused. Returns an estimator-ready baseline only when identity and backend production checks agree, candidate eligibility caveats, verified locations where returned, and per-source freshness. Reads are not atomic. Missing, cooling-down or unsupported cards are not presented as ready to stake. No stake changes are performed; Land stake changes remain scoped per plot.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes
plot_idNo
deed_uidNo
candidate_uidsNo
candidate_card_detail_idsNo

TDQS

A4.5/5.0
Behavior5/5

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

Despite strong readOnly/idempotent annotations, the description adds substantial behavioral disclosure: reads are not atomic, no stake changes are performed, missing/cooling-down/unsupported cards are not presented as ready, at most ten logical GETs, no automatic pagination, and at most 100 matching cards with refusal beyond that. This far exceeds what annotations alone convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a long paragraph but almost every sentence adds load-bearing detail about limits, freshness, and safety. Purpose is front-loaded, and operational constraints are grouped logically. Minor redundancy exists around 'no stake changes' and 'Land stake changes remain scoped', but overall it earns its length.

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

Completeness4/5

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

For a parameter-rich snapshot tool with no output schema, the description covers input requirements, invocation prerequisites, return conditions, and exclusions. The exact shape of the 'estimator-ready baseline' is not specified, but enough is disclosed for an agent to select and call the tool correctly and to route its output toward land_lineup_estimate.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden for parameters. It explains plot_id/deed_uid exclusivity, distinguishes candidate_uids from candidate_card_detail_ids, and documents limits and inclusion rules. The 'player' parameter itself receives no explicit semantic explanation beyond its name and schema constraints, which is the main gap.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Gather an explicit player's current Grain/Wood/Stone/Iron plot and selected candidate cards.' It clearly identifies this as the input-snapshot step for land_lineup_estimate, distinguishing it from the estimator sibling and other land tools.

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

Usage Guidelines4/5

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

The description gives explicit usage constraints: supply exactly one plot_id or deed_uid, select up to ten card detail IDs or twenty UIDs, and notes that current workers are always included. It names the intended downstream consumer but does not explicitly state when to avoid this tool or use a different sibling, so it falls short of full alternative routing.

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

land_liquidity_allrewardsA

List the 12 real (token, liquidity_pool_id) reward-total pairs returned by GET /land/liquidity/allrewards. DEC appeared once for each of the six observed pools, and each pool's own resource token appeared once. reward_total and liquidity_pool_id are JSON numbers and token is a string. This tool returns the rows unchanged and does not derive totals or pool membership.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It proactively discloses that the tool 'returns the rows unchanged and does not derive totals or pool membership,' and explains the observed pool/reward pattern. This is valuable beyond the tool's name and schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is well-structured, starting with the primary action and then providing detail. A couple of sentences are somewhat verbose (e.g., the six-pool explanation), but each sentence adds meaningful context without redundancy.

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

Completeness5/5

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

Despite having no output schema and no annotations, the description fully specifies what is returned: exact row count, field types, and behavioral guarantees. For a zero-parameter list tool, this is complete and sufficient for an agent to understand the result.

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

Parameters4/5

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

There are zero parameters, so the baseline is 4. The description does not need to add parameter meaning. It does clarify the data types and row composition, which compensates for the absence of an output schema.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource: 'the 12 real (token, liquidity_pool_id) reward-total pairs' from GET /land/liquidity/allrewards. It is specific and distinct in content, though it does not explicitly compare against sibling tools.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives. While the endpoint is unique among siblings, the description does not mention selection criteria, use cases, or exclusions, 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.

land_liquidity_pool_by_idA

Get one liquidity-pool object by id, as GET /land/liquidity/pools/{id} returns it. A real id returned a single object with a narrower field set than the list route, omitting the one-day and thirty-day volume fields. An unknown well-formed id returned HTTP 200 with data:null, while a malformed id returned HTTP 400; these are distinguishable upstream outcomes. The object fields retain the mixed wire types observed on the list route: resource_quantity, dec_quantity and total_shares are JSON strings, while prices are JSON numbers. This server returns the upstream response unchanged and does not turn data:null into an error or manufacture a pool object.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries full behavioral burden and does so excellently: it discloses the narrower response shape, the data:null behavior for unknown ids, HTTP 400 for malformed ids, exact wire types for specific fields, and that the server passes upstream output through unchanged. This goes far beyond typical descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Every sentence earns its place: purpose is front-loaded, followed by field-set differences, error behavior, wire types, and passthrough semantics. Despite being longer than average, the length is justified by the absence of annotations and an output schema.

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

Completeness4/5

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

The description is unusually complete given no output schema: it covers object shape, null responses, error statuses, and field types. It leaves the full field list and the source of valid ids implicit, which prevents a perfect 5, but an agent has enough to select and invoke the tool correctly.

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

Parameters3/5

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

The schema already documents id as a required integer with bounds, and the description adds the distinction between a real id, an unknown well-formed id, and a malformed id, which the schema cannot express. It does not explain how a caller should obtain a valid id or fully characterize the domain meaning beyond 'liquidity-pool object', so the added value is moderate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Get one liquidity-pool object by id' and ties it to an explicit route. It distinguishes this tool from the list route by noting the narrower field set, so an agent can tell it apart from siblings like land_liquidity_pools.

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

Usage Guidelines4/5

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

The description makes clear this is for fetching a single pool by id and even contrasts the field set with the list route, implying when not to use this tool. It does not explicitly name alternatives such as land_liquidity_pool_by_symbol, but the usage context is clear enough to avoid major misrouting.

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

land_liquidity_pool_by_symbolA

Get one liquidity-pool object by symbol, as GET /land/liquidity/poolsbysymbol/{symbol} returns it. All five tested casings GRAIN, grain, Grain, VOUCHER and voucher returned the correct matching pool; this records five observed working casings and is not a general rule about every possible input. An unknown symbol returned HTTP 200 with data:null. The object fields retain the mixed wire types observed on the list route: resource_quantity, dec_quantity and total_shares are JSON strings, while prices are JSON numbers. This server sends the symbol as supplied, returns the upstream response unchanged and does not manufacture a pool object.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: it discloses the unknown-symbol HTTP 200 with data:null edge case, the mixed JSON wire types for fields, the pass-through behavior of the symbol, and the fact that the server does not fabricate a pool object.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is verbose but each sentence carries operational information an agent would not otherwise know. It is front-loaded with the core purpose, and the supporting observations are grouped logically, though some could be trimmed.

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

Completeness4/5

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

Given the single parameter and lack of output schema, the description covers the critical edge cases, field type expectations, and upstream behavior. It does not lay out the full object shape, but enough is present for safe invocation and interpretation of the response.

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

Parameters4/5

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

The schema only specifies a string with minLength 1, so the description adds real value by explaining that the symbol is passed through as supplied, that casing behavior is empirically observed for five values rather than guaranteed, and that unknown symbols produce a null result. It still does not enumerate valid symbol values beyond the examples.

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

Purpose5/5

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

Description clearly states a specific verb+resource: 'Get one liquidity-pool object by symbol' and anchors it to the exact upstream endpoint. This distinguishes it from sibling tools like the list route or land_liquidity_pool_by_id.

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

Usage Guidelines3/5

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

The purpose implies when to use it (single pool by symbol), but there is no explicit guidance about when to prefer this over land_liquidity_pool_by_id or the list-based land_liquidity_pools. No alternatives or exclusions are named.

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

land_liquidity_poolsA

List the six liquidity-pool rows the upstream returns, as GET /land/liquidity/pools returns them. A successful response is {status, data}, where data is an array of pool objects. The wire types are intentionally mixed: resource_quantity, dec_quantity and total_shares are JSON strings, while resource_price and the resource and DEC volume fields are JSON numbers. This server returns every field exactly as received; it does not convert the string-valued decimals, and a wire-type change would be reported as a malformed response rather than converted silently. The six observed rows had ids 1, 34, 67, 68, 69 and 100 with symbols GRAIN, VOUCHER, WOOD, STONE, IRON and SPS. This tool reports the rows returned by the upstream and does not derive prices, volumes or shares.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations present, the description carries a heavy behavioral burden and meets it well: it discloses mixed wire types, pass-through behavior, non-conversion, malformed-response handling, and non-derivation. It still lacks explicit side-effect/read-only guarantees, but the 'report' language implies read-only; the detail is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is front-loaded with the purpose but then extends into several long sentences with overlapping messages (e.g., 'as the native returns' appears twice via first and last sentences, and 'does not derive' tracks the same as earlier statement). As a result it feels a bit detailed, though mostly informative.

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

Completeness4/5

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

Given that there is no output schema and no annotations, the description covers the response shape, field types, known values and non-conversion behavior. It does not fully enumerate all pool object fields, but for a zero-parameter, read-only-list tool, it is sufficiently complete to invoke and understand the response. Minor gaps like error behavior beyond malformed-rate changes remain.

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

Parameters4/5

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

The schema has zero parameters, so the baseline is 4. The description adds the GET endpoint context and confirms the tool takes no arguments indirectly, but there is nothing else needed for parameters. It does not need to add param-level semantics since none exist.

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

Purpose5/5

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

The description explicitly states 'List the six liquidity-pool rows' and references the upstream endpoint GET /land/liquidity/pools, clearly identifying both verb and resource. This distinguishes it from siblings like land_liquidity_pool_by_id and land_liquidity_pool_by_symbol, and it further clarifies what it does not do (derivation).

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving the full list of six liquidity pools, but it never explicitly mentions it should be used over `land_liquidity_pool_by_id`/`by_symbol` for single-pool lookup, nor does it provide when/when-not guidance. The context is clear but not explicit about alternatives.

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

land_liquidity_positions_no_vestingA

Read one explicitly named player's public no-vesting liquidity positions and fee fields. This live-observed route is absent from the sampled VAPI Swagger; units and completeness are not inferred. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses one logical GET with no auto-pagination, a 100-row/256 KiB local cap, truncation reporting in text and metadata, and refusal of oversized records without partial fields. It also warns that units/completeness are not inferred and forwarded filters may be ineffective.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

Purpose is front-loaded and each subsequent sentence conveys a distinct constraint (pagination, limits, truncation, filter forwarding). The 'absent from the sampled VAPI Swagger' aside is somewhat meta and verbose, but nothing is truly wasted.

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

Completeness4/5

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

For a single-parameter read tool with no output schema, the description covers the operational envelope (request count, pagination, size limits, refusal behavior) thoroughly. What is missing is auth/permission requirements and any hint of the returned fields themselves.

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

Parameters3/5

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

There is one parameter at 0% schema description coverage, so the description must compensate. 'One explicitly named player' usefully clarifies it accepts a single player rather than a list, but it never specifies the expected identifier format (name vs. UID), leaving the schema's bare string ambiguous.

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

Purpose4/5

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

States a specific verb and resource ('Read ... player's public no-vesting liquidity positions and fee fields') with a clear scope qualifier (one explicitly named player). It does not, however, name or contrast with the many land_liquidity_* siblings, so an agent must infer the distinction.

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

Usage Guidelines3/5

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

The 'one explicitly named player' framing implies the per-player use case, and 'This live-observed route is absent from the sampled VAPI Swagger' hints at why it exists, but there is no explicit when-to-use versus when-to-use-an-alternative guidance relative to siblings like land_liquidity_pool_by_id or land_liquidity_resources.

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

land_liquidity_quoteA

Get the best route in this liquidity family: a genuine linear, pool-specific quote from GET /land/liquidity/quote/{poolId}. resource_amount and dec_amount are optional inputs and the response carries both quoted amounts. The relationship was verified arithmetically from observed pairs: at the values tested, doubling dec_amount from 100 to 200 exactly doubled resource_amount from 12144.988 to 24289.976, and the relationship held at 1e14. This is an observed relationship at those tested values, not a formula this project has verified across the whole input range. Pool ids 1, 34 and 67 returned different quotes for the same amount. Zero and negative amounts clamp to 0/0, non-numeric amounts return HTTP 400, and an unknown well-formed pool returns 0/0. The one trap is that supplying both resource_amount and dec_amount silently lets resource_amount win, so a caller providing both receives an answer to only one of their questions. This tool reports the upstream quote unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
poolIdYes
dec_amountNo
resource_amountNo

TDQS

A4.7/5.0
Behavior5/5

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, and it does so extensively. It discloses the arithmetic relationship verified at tested values, the clamping behavior for zero/negative amounts, HTTP 400 for non-numeric amounts, 0/0 for unknown pools, and the silent precedence of resource_amount when both are supplied. It also explicitly states that the relationship is observed, not verified across the whole input range, and that the tool reports the upstream quote unchanged.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is dense but not bloated; every sentence adds meaningful information. It front-loads the core purpose and endpoint, then layers behavioral details. It could arguably be trimmed slightly, but the length is justified by the amount of critical behavioral nuance it conveys. The structure is logical: purpose, relationship, edge cases, trap, and final clarification.

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

Completeness5/5

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 remarkably complete. It covers the endpoint, the optional parameters, the response contents, the arithmetic relationship, edge cases (zero/negative, non-numeric, unknown pool), the precedence trap, and the upstream passthrough behavior. An agent has everything needed to call this tool correctly and interpret results.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. It does: it explains that resource_amount and dec_amount are optional inputs, that the response carries both quoted amounts, and how the two amounts relate arithmetically. It also explains the precedence behavior when both are supplied. This is far beyond what the bare schema provides.

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

Purpose5/5

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

The description states a specific verb ('Get'), a specific resource ('the best route in this liquidity family'), and the exact endpoint (GET /land/liquidity/quote/{poolId}). It clearly distinguishes this from sibling tools like land_liquidity_pools and land_liquidity_pool_by_id by focusing on the quote/route behavior rather than pool metadata.

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

Usage Guidelines4/5

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

The description gives clear context for when to use this tool: when you need a pool-specific quote in this liquidity family. It doesn't explicitly name sibling alternatives or state when NOT to use it, but the endpoint reference and the emphasis on 'pool-specific quote' imply the usage context. It also warns about the trap of supplying both amounts, which is a form of usage guidance.

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

land_liquidity_regionA

Get one row per region from GET /land/liquidity/region/{player}, a pivot of six per-token calls to GET /land/liquidity/resources/{player}/{token}. Relative to that named per-token route, this gains plots_owned and a human-readable region name available from no other measured route, while losing each per-record id, created_date and last_updated_date. It is therefore a one-call regional summary that removes fan-out; choose the per-token route when those record metadata fields are needed. An unknown or case-mismatched player returns a genuine empty array. This tool returns the upstream rows unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes

TDQS

A4.9/5.0
Behavior5/5

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

No annotations are provided, so the description carries the burden; it discloses that an unknown or case-mismatched player returns a genuine empty array and that the tool returns upstream rows unchanged (no transformation). It also describes what fields are gained (plots_owned, human-readable region name) and lost, giving the agent an accurate behavioral model without needing the 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.

Conciseness5/5

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

About 100 words pack the purpose, route relationship, field differences, usage guidance, and edge-case behavior with no redundancy. Front-loads the main action ('Get one row per region') before extending details.

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

Completeness5/5

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

For a one-parameter tool with no output schema, the description covers the essential call semantics, differentiation from sibling, return transparency, and invalid-input behavior. Nothing crucial seems missing for an agent to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 0% for a single param; the description compensates by identifying player as the path parameter in the endpoint and noting case-mismatched values yield an empty array, implying case sensitivity. It stops short of defining whether player is a username or account ID or any normalization rules, so there's slight room for improvement.

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

Purpose5/5

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

States a specific verb ('Get'), resource ('one row per region'), and exact endpoint (GET /land/liquidity/region/{player}), and explicitly contrasts with the per-token route by listing gained/lost fields. This clearly differentiates it from sibling land_liquidity_resources and other liquidity tools.

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

Usage Guidelines5/5

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

Provides explicit guidance: use this as a one-call regional summary that removes fan-out, and choose the per-token route when record metadata (id, created_date, last_updated_date) are needed. This leaves no ambiguity about when to select this tool versus the named alternative.

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

land_liquidity_resourcesA

List per-region resource rows from GET /land/liquidity/resources/{player}/{token}. This route validates properly: a garbage player, a garbage token and both garbage returned genuine empty arrays with no synthesised entry. token matching is case-sensitive. GRAIN, WOOD, STONE, IRON, RESEARCH and AURA were observed; the set is not declared exhaustive. Each row carries id, region_name, region_number, region_uid, player, amount, resource_symbol, created_date and last_updated_date, and this tool returns those fields unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
playerYes

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden Tags It does well by revealing that invalid inputs return genuinely empty arrays, that token matching is case-sensitive, and that the observed resource set is not exhaustive. This gives the agent important expectations about failure and edge-case behavior beyond what a bare list description would provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description front-loads the main purpose and then adds useful behavioral and field-level details. Each sentence contributes distinct information: the endpoint, validation tests, case-sensitivity, resource set, and return fields. It is slightly long due to the garbage-input validation notes, but those notes are valuable for predicting response behavior in edge cases.

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

Completeness4/5

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

Given the simple two-parameter schema and absence of an output schema, the description covers the key aspects an agent needs: what the tool lists, how invalid inputs are handled, the case-sensitivity of token, the set of resource symbols, and the exact fields returned unchanged. It does not mention authentication or error statuses, but for selecting and invoking the tool, the description is substantially complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning. It names the player and token parameters in the endpoint and adds a key semantic: token matching is case-sensitive. However, it does not explain what a valid token represents, whether player is an account name or ID, or how formatting affects the request. It is minimally helpful but not fully compensating for the lack of schema documentation.

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

Purpose4/5

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

Description states a clear verb and resource: 'List per-region resource rows' from a specific endpoint path. It specifies the player/token scope and the exact resource symbols, making the tool's purpose unambiguous. It doesn't explicitly differentiate from sibling land liquidity tools, but the mention of resource rows and per-region output provides enough distinction.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus its siblings like land_liquidity_pools, land_volume, or land_resources_owned. The description validates behavior with garbage inputs but does not state the intended use case, prerequisites, or alternatives. An agent must infer when this tool is the right choice based on the resource-symbol scope.

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

land_plot_snapshotA
Read-onlyIdempotent

Read one plot's deed, active project, stake details and stake assets from four public endpoints. Supply a numeric plot_id or padded region-tract-plot label. Each call reads afresh, makes at most four GETs, and returns a whole result only when the deed identity is verified and all three follow-up reads succeed. Null active project is a valid no-project result. No account defaults, cache or inferred plot data.

ParametersJSON Schema
NameRequiredDescriptionDefault
plot_idYes

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/openWorld annotations, it discloses concrete behavior: each call reads afresh, issues at most four GETs, and returns a whole result only if deed identity verifies and all three follow-up reads succeed. It also states there are no account defaults, caching, or inferred data, which meaningfully shapes expectations about failure and completeness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

Three dense sentences that front-load what is read, then input format, then call semantics; every clause carries information. Slightly packed with semicolon-style clauses, but nothing is redundant or padded.

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

Completeness4/5

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

With no output schema and one parameter, the description carries the needed burden: it specifies the endpoint fan-out, the success/failure atomicity rule, and the null-project case. Return field details are left implicit, but for this composite read that is a minor gap.

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

Parameters4/5

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

Schema description coverage is 0%, so the schema is just an integer-or-string anyOf with no meaning attached. The description compensates by explaining the two accepted forms: a numeric plot_id or a padded region-tract-plot label, which is the key ambiguity an agent would otherwise hit.

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

Purpose5/5

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

It names a specific verb (read) and a concrete composite resource (one plot's deed, active project, stake details, stake assets) drawn from four endpoints. This clearly separates it from narrower siblings like land_deed_by_plot or land_stake_assets, which cover only one slice of the same data.

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

Usage Guidelines3/5

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

The description tells the agent what input to supply ('numeric plot_id or padded region-tract-plot label') and notes that a null active project is a legitimate result, but it never states when to prefer this aggregate over the narrower siblings (land_deed_by_plot, land_stake_details). Usage is implied by the composite scope rather than made explicit.

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

land_power_core_availableA

Read available Power Core item IDs for an explicit player and deed. Restricted to the verified STK-LND-PCR stake type. A populated public-client-shaped query was observed; earlier other-account empty results remain valid. Preserve UIDs. One bounded page; no automatic continuation. Availability is point-in-time API evidence, not a guarantee that a later stake action will succeed. No staking or bulk stake-change operation is performed. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The ids list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
limitYes
offsetYes
playerYes
deedUidNo
plot_idNo
deed_uidNo
stakeTypeUidNoSTK-LND-PCR
item_detail_idNo

TDQS

A4/5.0
Behavior5/5

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 extensively covers pagination limits, point-in-time nature, read-only behavior, request count limits, and truncation behavior, giving the agent a clear picture of side effects and constraints. This is exemplary transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is dense but well-organized, front-loading the primary purpose and then detailing constraints. Each sentence adds value, though it is lengthy. It is appropriately sized for the complexity of the tool, with no wasted words.

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

Completeness4/5

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

Given the tool's complexity and lack of output schema, the description covers most relevant aspects: input requirements, pagination, limits, and resolution behavior. It could be improved by describing the exact structure of the returned IDs, but it is largely complete for an agent to use correctly.

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

Parameters4/5

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

The schema has no descriptions for parameters, so the description compensates by clarifying the plot_id/deed_uid requirement, the stakeTypeUid restriction, and the forwarding of other filters without guaranteed effectiveness. This adds meaningful context beyond the raw schema, though not every parameter is explained in detail.

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

Purpose4/5

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

The description clearly states the tool reads available Power Core item IDs for a specific player and deed, with a specific stake type. It distinguishes itself from staking operations by explicitly stating no staking is performed. However, it does not name alternative tools for comparison, so it doesn't fully differentiate from siblings like land_power_core_grouped.

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

Usage Guidelines3/5

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

The description provides explicit constraints on usage, such as requiring exactly one plot_id or deed_uid, and notes the tool is restricted to the STK-LND-PCR stake type. It also explains that it does not auto-fetch continuation pages, implying the caller must handle pagination. However, it does not explicitly state when to use this tool over other land-related tools, lacking clear alternatives or when-not-to-use guidance.

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

land_power_core_groupedA

Read grouped available Power Core item counts for an explicit player and deed. Restricted to the verified STK-LND-PCR stake type. A populated public-client-shaped query was observed; earlier other-account empty results remain valid. Preserve item_detail_id, name, item_count and string boost. One bounded page; no automatic continuation. Availability is point-in-time API evidence, not a guarantee that a later stake action will succeed. No staking or bulk stake-change operation is performed. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The items list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
limitYes
offsetYes
playerYes
deedUidNo
plot_idNo
deed_uidNo
order_byYes
order_by_ascYes
stakeTypeUidNoSTK-LND-PCR
item_detail_idNo

TDQS

A3.6/5.0
Behavior5/5

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

No annotations exist, so the description carries the full burden of behavioral disclosure, and it does so thoroughly. It reveals one logical GET, a possible additional reference-resolution GET with a hard two-request limit, no auto-continuation, local truncation at 100 rows and 256 KiB, refusal of oversized records, and the point-in-time nature of the data. This is far more than the basic read-only behavior that might otherwise be assumed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is front-loaded with its core purpose critically. It contains dense, useful behavioral detail, but it also has redundancy: 'One bounded page; no automatic continuation' is later repeated as 'Does not auto-fetch continuation pages.' A missing period and vague statements like 'Required inputs reflect tool policy as well as measured upstream requirements' make the text feel less polished than it should be.

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

Completeness4/5

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

Considering the tool's complexityhol, no annotations, and no output schema, the description is remarkably complete. It covers request limits, truncation behavior, reference resolution, return-field hints, and data-freshness caveats. It stops short of perfect completeness because it does not fully describe the expected response shape or clarify the semantics of offset/order_by parameters.

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

Parameters2/5

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

With schema description coverage at 0%, the description must compensate, but it only explains a subset of parameters. It correctly states that exactly one plot_id (numeric or display label) or deed_uid must be supplied and that original UID spelling is accepted. However, the five required parameters player, offset, limit, order_by, and order_by_asc receive almost no semantic explanation beyond schema types, and optional fields like item_detail_id and name are not described.

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

Purpose4/5

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

The description opens with a specific verb and resource: 'Read grouped available Power Core item counts for an explicit player and deed.' It also states the restricted stake type, STK-LND-PCRched. However, it does not explicitly differentiate itself from the sibling tool land_power_core_available, so it falls just short of full clarity.

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

Usage Guidelines3/5

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

The description gives context for use: it targets grouped Power Core counts, is restricted to a verified stake type, and explicitly says no staking or bulk stake-change is performed. It also warns that availability is point-in-time and not a guarantee for later actions. Yet it never names an alternative tool or states when this tool should be preferred over a sibling, so usage guidance remains implied rather than explicit.

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

land_projects_activeA

Get the land project record the upstream reports as active for one deed uid. A deed with no active project is a successful answer with no record, not a failure. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
plot_idNo
deed_uidNo

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. This is a valuable behavioral trait that an agent needs to know for cost/latency expectations. It also discloses that populated resolved results include all three plot identities and resolution freshness. It doesn't state whether the operation is read-only, but 'Get' and the absence of any mutation language imply a read. The two-request limit and the freshness disclosure go beyond a minimal description, though it could have explicitly said 'read-only' or 'no side effects'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Four sentences, each carrying distinct information: what is returned, the empty-result semantics, input constraints, and the reference-resolution behavior. The most important scoping information is front-loaded. No filler or repetition of schema details. The description is dense but not bloated.

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

Completeness4/5

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

For a two-parameter read tool with no output schema, the description covers the key operational facts: input selection, empty-result semantics, and the extra GET behavior. It doesn't describe the exact shape of the returned record, but without an output schema that would be useful. However, the description does mention that populated resolved results include all three plot identities and resolution freshness, which gives a partial picture. The main gap is the lack of a concrete return structure example, but the description is still quite complete for an agent to call it correctly.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does: it explains that plot_id can be numeric or display label, that deed_uid is the upstream UID, and that the original UID spelling is also accepted. It also clarifies that exactly one of the two parameters should be supplied, which is not encoded in the schema (both are optional in the schema). This adds real meaning beyond the raw schema. It doesn't give examples of display labels or UID formats, but the core semantics are covered.

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

Purpose5/5

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

The description states a specific verb ('Get'), a specific resource ('the land project record the upstream reports as active'), and a specific scope ('for one deed uid'). It also distinguishes itself from siblings like land_projects_history and land_projects_count by focusing on the active project for a single deed. The phrase 'one deed uid' and the mention of plot_id/deed_uid inputs make the tool's purpose unmistakable.

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

Usage Guidelines5/5

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

The description gives explicit usage guidance: supply exactly one plot_id or deed_uid, and notes that the original UID spelling is also accepted. It also clarifies a key semantic: a deed with no active project is a successful answer with no record, not a failure. This prevents an agent from misinterpreting an empty result as an error. It doesn't name a specific alternative tool, but the sibling list includes land_projects_history and land_projects_count, and the description's focus on 'active for one deed' implicitly distinguishes it. The explicit input constraints and the no-record-is-success note are strong usage guidance.

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

land_projects_countA

Get the count of land project records the upstream reports for one deed uid. This is one call and returns the upstream's count only, not the records. Whether that count covers exactly the records the history tool returns has not been verified. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
plot_idNo
deed_uidNo

TDQS

A4.6/5.0
Behavior5/5

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 reveals important non-obvious traits: the call returns only a count, the count's equivalence to the history tool is unverified, reference resolution may add an extra GET with a hard two-request limit, and populated resolved results contain all three plot identities and resolution freshness. This goes well beyond a basic statement of function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is dense but efficient: purpose is front-loaded, followed by essential caveatsressing, input constraints, and a note on request behavior. Every sentence contributes distinct information without redundancy. The structure flows logically from what to how, making it easy for an agent to parse and apply.

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

Completeness4/5

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

Given the modest complexity (2 optional parameters, no output schema, no annotations) and the presence of many sibling land tools, the description covers the key operational details: what is returned, how to supply identifiers, and the potential extra request. It could be slightly more complete by explicitly naming the related history tool for routing, but the current text is sufficient for correct invocation.

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

Parameters4/5

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

The schema has 0% description coverage)Skip, so the description must compensate. It explains that exactly one of plot_id or deed_uid must be supplied, and clarifies accepted forms: plot_id can be numeric or display label, and the original UID spelling is accepted. This adds meaningful semantics beyond the raw schema, though it does not detail every possible nuance of the resolved output.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Get the count of land project records the upstream reports for one deed uid.' It clearly distinguishes itself from record-returning tools by stating 'returns the upstream's count only, not the records,' and references the history tool as a point of comparison. This is a precise statement of what the tool does and how it differs from related siblings.

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

Usage Guidelines4/5

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

The description provides clear usage context: it is for obtaining a count for one deed uid, and it explicitly notes this is a single call rather than a records retrieval. It does not definitively name the alternative tool to use when records are needed, though 'the history tool' is implied. The caution about unverified coverage overlap with the history tool gives useful selection guidance, but a direct when-to-use/when-not-to-use statement is missing.

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

land_projects_historyA

List the land project records the upstream returns for one deed uid. The recorded history probes were a bare request, offset=1, limit=2, and limit=2&offset=2: limit=2 narrowed from the start, while offset=1 and offset=2 did not reach later rows in those requests. This answer is additionally bounded to at most 100 rows and 256 KB by this server; if it is cut for that reason, the response reports that local bound. The project-count tool returns the count the upstream reports for this deed; whether that count covers exactly the records this tool would return has not been verified. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
plot_idNo
deed_uidNo

TDQS

A4.8/5.0
Behavior5/5

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 reveals the probe-observed offset/limit behavior, server-side bounds of 100 rows and 256 KB with a reported local cut, the possibility of an extra verified deed GET before the target GET, and the content of resolved results. This is unusually transparent and adds significant context beyond a simple capability statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

Every sentence adds distinct value and the purpose is front-loaded in the first sentence. However, the dense seven-sentence paragraph mixes pagination probes, local bounds, count-tool caveats, input rules, and resolution details, making it less scannable than a structured format with bullets or clearer separation of concerns.

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

Completeness5/5

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

Given the absence of annotations, output schema, and parameter descriptions, this description covers input constraints, server-side response bounds, pagination quirks, relationship to the count tool, and resolution behavior. Almost nothing an agent needs to call this tool correctly is missing.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It explains that plot_id can be numeric or a display label, that deed_uid accepts the original spelling, and that exactly one of them must be supplied. Limit and offset semantics are indirectly conveyed through the probe descriptions, though a more precise definition of offset would have been clearer. Overall, it adds meaningful meaning to every parameter.

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

Purpose5/5

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

The description clearly states a specific verb ('List'), a specific resource ('land project records'), and a specific scope ('for one deed uid'). It also distinguishes itself from the count tool by noting the project-count tool returns the count rather than the records.

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

Usage Guidelines5/5

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

It explicitly tells the caller to supply exactly one plot_id (numeric or display label) or deed_uid, and notes that the original UID spelling is accepted. It also names the project-count tool as the count alternative and flags the uncertainty about whether that count matches this tool's records, plus the resolution behavior with a two-request cap.

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

land_projects_requirementsA

List the work requirement rows the upstream reports for one deed uid. Some deeds return no rows at all. A row's projected hours and projected end are the upstream's own values, and they can be far in the future: this repository observed rows carrying a projected end roughly five thousand years ahead. This server does not interpret those values and does not treat them as a schedule. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
plot_idNo
deed_uidNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that some deeds return no rows, warns that projected values are upstream's own and can be far in the future and are not interpreted as a schedule, and notes the potential extra verified deed GET with a hard two-request limit. It also describes output contents (plot identities and resolution freshness). This is substantive behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single, well-structured paragraph that front-loads the main purpose, then covers caveats, parameter usage, and additional behavior. Each sentence contributes information with minimal redundancy, though the statement about 'original UID spelling' could be seen as minor extra detail.

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

Completeness4/5

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

Given the tool has no output schema and 0% parameter description coverage, the description is fairly complete. It covers purpose, parameter constraints, data quality caveats, and some output characteristics. It lacks explicit error handling or pagination info, but for a list endpoint with two identifiers, it provides sufficient guidance for correct invocation.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies that exactly one of plot_id or deed_uid is required, that plot_id accepts numeric or display label, and that original UID spelling is accepted. This adds meaning beyond the schema's type definitions, though it doesn't define what a 'display label' is.

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

Purpose5/5

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

The description states a specific verb ('List'), resource ('work requirement rows'), and scope ('for one deed uid'). It also clarifies alternative identifiers (plot_id or deed_uid), distinguishing it from sibling tools like land_projects_active or land_projects_history by focusing on requirements rows. The purpose is unambiguous and differentiates from related tools.

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

Usage Guidelines2/5

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

The description gives usage constraints (exactly one of plot_id or deed_uid) but does not explicitly compare with alternative tools or state when to prefer this over other land_projects_* endpoints. It lacks exclusions or alternative references, leaving the agent to infer the appropriate context from the tool name and sibling list.

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

land_regions_countsB

List the 150 region count rows returned by GET /land/regions/counts. The unscoped call returns {status: "success", data: []}, an empty list. When a player is named, the response still carries all 150 regions rather than only that player's regions. Each row contains region.uid, region.name, region.region_number, for_sale, owned, listed, min_price and dec_stake. owned and dec_stake are the named player's fields. An unknown name returned the 150-row shape with owned and dec_stake zero; behaviour for a known account with no holdings was not captured.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerNo
rarityNo
statusNo
geographyNo
plot_typeNo
magic_typeNo
kingdom_typeNo

TDQS

B3.3/5.0
Behavior5/5

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

No annotations are present, so the description carries the full burden, and it delivers: it discloses that an unscoped call returns an empty data array, that a named player still yields all 150 regions, that owned and dec_stake belong to the named player, and that an unknown name returns zeroed fields. It even candidly flags that behavior for a known account with no holdings was not captured.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is dense with useful information and front-loads the endpoint name, but the opening phrase 'List the 150 region count rows' sits awkwardly with the next sentence saying the unscoped call returns an empty list. It is appropriately compact but not a model of structural clarity.

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

Completeness3/5

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

Given there is no output schema and no annotations, the description does well to enumerate the row fields and edge cases. However, it leaves six of seven input parameters entirely unexplained, so an agent still lacks essential context needed to invoke the tool correctly with filters.

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

Parameters2/5

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

Schema coverage is 0%, yet the description explains only the player parameter and even then mostly its non-filtering behavior. The other six parameters — rarity, status, geography, plot_type, magic_type, kingdom_type — receive no explanation at all, leaving agents to guess their meaning or valid values.

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

Purpose4/5

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

The description states a specific operation — listing region-count rows — and names the exact endpoint, GET /land/regions/counts. It is clear that this tool returns region count data rather than being a generic 'get data' tool, though it does not explicitly distinguish itself from sibling land_* tools.

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

Usage Guidelines2/5

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

There is no explicit guidance about when to use this tool versus alternatives such as land_tracts_counts or land_deeds_owned. The player-scoping behavior is described, but the practical recommendation — call with a player to get meaningful data — is left implied rather than stated.

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

land_resources_balances_historyA

List the resource-balance history rows the upstream returns for one account and optional dates, as GET /land/resources/balances/history/{player} returns them. The player is a path segment on this route, not a query parameter. A successful response is {status, data}, where data is an array of rows carrying id, region_number, player, amount, end_balance, operation_id, resource_id, trx_id, created_date, balance_history and counterparty. The numeric fields are JSON numbers, created_date is a timestamp string, balance_history is an array and counterparty is a string; a fresh 2026-09-29 row contained nested token legs with token, amount, type, counterparty and per-leg trx_id. This server returns these fields unchanged and does not convert, round, total or compare them. Both YYYY-MM-DD and full ISO-8601 timestamps were accepted for startDate and endDate and produced identical results for the same calendar range. A malformed date returned HTTP 500, while a far-past date range returned a successful empty array, so this tool does not describe malformed dates as empty or unfiltered results. An unknown player returned HTTP 200 with an empty array; an empty result therefore does not establish that the account exists or does not exist. The default response contained 100 newest rows. limit=1000 and limit=500 returned HTTP 400; limit=3 with offset=0 returned three rows; limit=3 with offset=1, offset=2 and offset=3 returned HTTP 200 with empty arrays. No offset value tried reached rows beyond the newest 100. This tool reports the rows returned by the upstream and nothing else.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
playerYes
endDateNo
startDateNo

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: return shape, field types, malformed-date returning HTTP 500, unknown player returning HTTP 200 empty, default 100-row cap, limit=1000/500 failing with HTTP 400, and offset behavior beyond the newest 100 rows. This is exceptional disclosure of edge cases and failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

Front-loaded with purpose and route, then dense with useful behavioral detail. It runs long and repeats the 'returns fields unchanged / reports only what upstream returns' idea twice, which slightly dilutes it, but nearly every sentence carries empirically useful information.

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

Completeness5/5

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

No output schema exists, yet the description fully documents the {status, data} envelope and the row fields, plus pagination, date and error semantics. An agent has everything needed to call and interpret this tool correctly.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate and it does: player is identified as a path segment (not query param), startDate/endDate accept both YYYY-MM-DD and ISO-8601, and limit/offset semantics are demonstrated with concrete observed outcomes. Every parameter gains meaning beyond the bare schema.

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

Purpose5/5

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

States a specific verb ('List') and resource ('resource-balance history rows for one account and optional dates') and ties it to a concrete upstream route. It is clearly distinguishable from sibling land_resources_balances_history_count by promising actual rows rather than a count.

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

Usage Guidelines3/5

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

Usage context is implied through the described behavior (returns rows unchanged, does not convert/total/compare), which steers selection away from aggregation siblings. However, it never explicitly states when to prefer this over land_resources_balances_history_count or land_resources_history, and no exclusions are stated.

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

land_resources_balances_history_countA

Get the resource-balance history count the upstream reports for one account and optional dates, as GET /land/resources/balances/history/{player}/count returns it. The player is a path segment on this route, not a query parameter. A successful response is {status, data}, where data is an object carrying count, a JSON number returned unchanged; this server does not convert, round or derive it. The measured count was 721. In the paired list probes, the default returned 100 newest rows, limit=3&offset=0 returned three rows, limit=3&offset=1, limit=3&offset=2 and limit=3&offset=3 returned empty arrays, and limit=500 and limit=1000 returned HTTP 400; those tried list parameters did not expose rows beyond the 100-row default, leaving 621 rows present in the count but absent from those list responses. The count and the list do not contradict each other: the count reports more rows than those responses contain. Whether the count covers exactly what the list would return was not verified, so this tool does not assert that relationship. A far-past date range returned count 0, matching the list route's empty result for the same range, and a malformed date returned HTTP 500. An unknown player returned count 0; that response does not establish that the account exists or does not exist. This tool reports the count returned by the upstream and nothing else.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes
endDateNo
startDateNo

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations, the description carries the full burden, and it is exceptionally transparent. It discloses the exact response shape ({status, data} with count as an unchanged JSON number), explicit non-transformations ('does not convert, round or derive it'), and observed edge-case behaviors: far-past date returns 0, malformed date returns HTTP 500, and unknown player returns 0 without proving existence. It even documents the relationship between count and list results, including the unverified assumption.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is front-loaded with purpose and response shape, then organized around behavioral findings, which helps navigation. However, it is quite long and includes extensive probe-by-probe detail about list parameters (limit=3&offset=0, offset=1, offset=2, offset=3, limit=500, limit=1000) that could be summarized without losing meaning. Most sentences do add behavioral context, but the verbosity keeps it from being tightly concise.

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

Completeness4/5

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

Given no output schema and no annotations, the description covers the essential return contract, key edge cases, and the relationship to the paired list tool. The only notable omissions are concrete date-parameter semantics/format and any mention of authentication or error handling beyond HTTP 500/400 observations. For a simple count endpoint, this is a highly complete definition, though a small gap remains in date parameter guidance.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does clarify that 'player' is a path segment and that dates are optional, and it references date-range behavior in probes. However, it never explains the meaning or format of startDate versus endDate, their ordering, or expected date syntax, which an agent needs to call the tool correctly. This is only partial compensation for the schema's total lack of parameter descriptions.

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

Purpose5/5

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

The description states a specific verb and resource: 'Get the resource-balance history count the upstream reports for one account and optional dates' and ties it to the exact route GET /land/resources/balances/history/{player}/count. This clearly distinguishes it from sibling land_resources_balances_history, which is the list counterpart. No ambiguity remains about what the tool does.

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

Usage Guidelines4/5

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

The description does not name an alternative tool explicitly, but it provides strong contextual usage guidance by explaining the count's relationship to the list route, including what was probed and what the tool does not assert. It also clarifies that the player is a path segment, not a query parameter, and that the tool 'reports the count returned by the upstream and nothing else.' This gives an agent a clear sense of when and how to rely on the result, though it stops short of an explicit when-to-use vs. alternate-tool statement.

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

land_resources_fragment_historyA

List the fragment-history rows the upstream returns for one transaction id, as GET /land/resources/fragment_history/{trx_id} returns them. A successful response is {status, data}, where data is an array of rows carrying id, reward_action_id, land_work_type_id, land_project_number, tract_number, region_number, deed_uid, fragment_type, fragment_found, fragment_chance, fragment_roll, trx_id, block_num, created_date, last_updated_date, labors_luck_uid, labors_luck_chance, labors_luck_roll, labors_luck_pool_pick and labors_luck_treasures_left. The numeric fields are JSON numbers and fragment_found is a boolean; this server returns them unchanged and does not convert, round, total or compare them. The nullable fields are returned as received; the response does not state what fragment_chance or fragment_roll measures, and this tool does not interpret them. These rows are not the private history of the deed whose reward-action row supplied the input: in one captured transaction, the two measured rows carried differing deed_uid values, neither matching the source deed, so that transaction id covered records for more than one deed. The rows carried no player field, so this observation makes no claim about players. This is a bounded observation from those two rows in that one transaction, not a claim about every transaction. This route must not be described as that deed's history. A fake transaction id returned data:[] rather than an error, so an empty array establishes neither that the id exists nor that the transaction has no fragment-history rows. No measured route surfaces a trx_id except reward-action rows, so this tool is reachable only by chaining from one of those rows; otherwise a caller has no measured way to obtain its input. This tool reports the rows returned by the upstream and nothing else.

ParametersJSON Schema
NameRequiredDescriptionDefault
trx_idYes

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and succeeds: it documents the response envelope, field types, preservation of numeric/boolean values, non-interpretation of ambiguous fields, empty-array behavior for fake ids, and the multi-deed caveat. This is far more than minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The main purpose is front-loaded, but the description is very long and includes epistemic caveats such as 'this is a bounded observation' and claims about players that do not help an agent invoke the tool. Several sentences are repetitive, so it is not appropriately concise.

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

Completeness5/5

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

Given no output schema and no annotations, the description is remarkably complete: it covers the response structure, data fields, type handling, empty-array ambiguity, input provenance, and non-interpretation behavior. An agent has enough context to call it correctly and interpret its result.

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

Parameters4/5

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

The schema only specifies trx_id as a string with minLength 1. The description adds meaning by explaining it is the upstream transaction id, appears in the endpoint path, can be obtained from reward-action rows, and that a fake id returns an empty array rather than an error.

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

Purpose5/5

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

The description clearly identifies the operation: listing fragment-history rows for a single transaction id, and even names the upstream endpoint shape. It also distinguishes the route from deed-history tools by explicitly warning that these rows are not the private history of the source deed.

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

Usage Guidelines4/5

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

It gives concrete usage context: the tool is reachable only by chaining from reward-action rows because no other measured route exposes a trx_id. It stops short of naming an alternative sibling tool or stating explicit when-not-to-use cases, but the input-source guidance is actionable.

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

land_resources_historyA

List the resource-history rows the upstream returns for one transaction id, as GET /land/resources/history/{trx_id} returns them. A successful response is {status, data}, where data is an array of rows carrying id, region_number, player, amount, end_balance, operation_id, resource_id, trx_id, created_date, balance_history and counterparty. The numeric fields are JSON numbers, including signed amount values; balance_history is an array; this server returns these fields unchanged and does not convert, round, total or compare them. These rows are not the private history of the deed whose reward-action row supplied the input: in one captured transaction, both measured rows named the same player, that player was not the source deed's owner, and the rows carried no deed identifier, so nothing in the response ties them to that deed. This is a bounded observation from those two rows in that one transaction, not a claim about every transaction. This route must not be described as that deed's history. A fake transaction id returned data:[] rather than an error, so an empty array establishes neither that the id exists nor that the transaction has no rows. No measured route surfaces a trx_id except reward-action rows, so this tool is reachable only by chaining from one of those rows; otherwise a caller has no measured way to obtain its input. This tool reports the rows returned by the upstream and nothing else, and does not claim what any numeric figure means.

ParametersJSON Schema
NameRequiredDescriptionDefault
trx_idYes

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly. It discloses the exact response shape, that fields are returned unchanged without conversion or comparison, that a fake id yields an empty array, and that the observation is bounded to one transaction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is long, but every sentence contributes essential caveats about behavior, limitations, and reachability. It front-loads the core purpose and then adds necessary context, so the length is justified despite lacking brevity.

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

Completeness5/5

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

With no output schema, the description fully specifies the response structure, field types, and the meaning of an empty array. It also covers the only parameter's provenance and edge cases, making it complete for an agent to call correctly.

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

Parameters4/5

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

Schema coverage is 0%, so the description compensates by explaining the trx_id's origin (reward-action rows) and the consequence of a fake one (empty data). It adds meaning beyond the schema's mere string type.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'List the resource-history rows the upstream returns for one transaction id,' and references the exact endpoint. It clearly distinguishes this from the many sibling land_resources_* tools by scoping it to a single trx_id.

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

Usage Guidelines4/5

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

It explains that the tool is reachable only by chaining from a reward-action row that provides a trx_id, and that no other measured route surfaces one. It also warns against misusing it as the deed's private history, but does not name alternative tools explicitly.

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

land_resources_leaderboardsA

List the resource-leaderboard rows the upstream returns, as GET /land/resources/leaderboards returns them. A successful response is {status, data}, where data is an array of rows carrying rank, player, amount, amount2, resource_per_hour, guild, title_pre, data and id. The numeric fields are JSON numbers, and this server returns them unchanged; it does not convert, round, total or compare them, and a change in their wire type would be reported as a malformed response rather than converted silently. The nested data field is a JSON-encoded string, not an object; this server returns it exactly as received and does not parse it, and a change in that wire type would be reported as malformed rather than converted. The upstream matches resource case-sensitively against its exact symbol. This tool uppercases resource before making the request, but it does not enforce an enum because the observed symbols are not a declared exhaustive set. Omitting resource returned HTTP 400. Omitting region with no territory produced no HTTP response in two measurements and timed out; territory was observed to work standalone without region, so this tool refuses only when both region and territory are absent. That refusal is this server's safety choice based on the observed hang, not an upstream validation rule. Supplying player returned that player's row in addition to the normal top rows. Paging probes supplied offset=0, offset=5, page=2 and from=5; each returned parsed data equal to the limit=5 baseline. limit=50 returned 50 rows whose first five matched that baseline in the same order, and no ceiling was found at the tested limits 5 and 50. No value tried for offset, page or from produced a later slice. This tool reports the rows the upstream returned and nothing else.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
playerNo
regionNo
resourceYes
territoryNo

TDQS

A3.8/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden. It discloses response format, exact wire-type preservation for numbers and nested data, case-sensitivity and uppercasing, error behavior for missing resource, timeout for missing region with no territory, and paging behavior based on probes. This is far beyond minimal and gives an agent a precise model of what the tool will and won't do.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is exceptionally long, including detailed probe results such as 'offset=0, offset=5, page=2 and from=5' and the exact timeout observation. While nearly every sentence carries behavioral information, the level of detail is more than needed for an agent to call the tool correctly; it could be condensed without losing essential guidance.

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

Completeness5/5

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

For a tool with no output schema and no annotations, the description is remarkably complete. It specifies the response wrapper, key fields, type invariants, error cases, and paging limitations, so an agent knows exactly what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does: it explains that resource is required and uppercased, that region and territory have a mutual-absence refusal, that player adds a row, that limit controls count (tested up to 50), and that offset/page/from have no effect. However, it does not define the semantic meaning of parameters (e.g., what region or territory represent), relying on the schema's names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List the resource-leaderboard rows the upstream returns.' It clearly identifies the endpoint and what it returns. However, it does not explicitly distinguish this tool from sibling tools like land_resources_richlist or player_leaderboard, so it relies on the tool name for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description never mentions sibling tools or conditions that would route an agent to them. It only describes internal behavior, so an agent gets no 'use X when Y' or 'instead use Z' advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_resources_liquidity_swapsA

List the liquidity-swap rows the upstream returns for one player, as GET /land/resources/liquidity/swaps/{player} returns them. A real account returned 682 rows spanning all six observed pool ids. The rows carry numeric ids, quantities and pool quantities, string player/token/transaction fields and timestamp strings; this server returns each row unchanged and does not interpret or total the figures. An unknown player returned HTTP 200 with data:[], a different empty shape from the data:null used by the two pool lookup routes. An empty array therefore establishes neither that the account exists nor that it has no swaps.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly. It discloses passthrough behavior ('returns each row unchanged'), explicitly states it does not interpret or total figures, and documents the surprising unknown-player behavior (HTTP 200 with data:[] rather than data:null). It even provides a concrete example of row count and pool coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then each subsequent sentence adds a distinct, non-redundant fact: row quantity, field types, passthrough behavior, and the empty-array semantics. No sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter list endpoint with no output schema, the description covers what the rows contain, how they are returned, and how to interpret the empty-array edge case. It gives enough behavioral context for an agent to call the endpoint and correctly interpret the response without further guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, 'player', is mentioned as 'one player' in the description and its behavior for unknown values is explained, but the description does not specify player name format, case sensitivity, or how it relates to other player identifiers in sibling tools. Since schema coverage is 0%, the description only partially compensates for the lack of schema-level parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description specifies a clear verb ('List'), a precise resource ('liquidity-swap rows ... for one player'), and the exact upstream route pattern. It also differentiates this route from pool lookup routes by noting the different empty response shape.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use it when you need the raw liquidity-swap rows for a specific player, and it explicitly warns that the server does not interpret or total figures. It contrasts with pool lookup routes but does not name a specific sibling alternative for when a different tool should be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_resources_ownedA

List the resource-holding rows the upstream returns for one account and one resource, as GET /land/resources/owned returns them. A successful response is {status, data}, where data is an array of rows carrying id, region_uid, player, amount, resource_symbol, created_date, last_updated_date, region_name and region_number. All numeric fields are JSON numbers, and this server returns them unchanged; it does not convert, round, total or compare them, and a change in their wire type would be reported as a malformed response rather than converted silently. The upstream matches resource case-sensitively against its exact symbol. This tool uppercases the resource argument before making the request, but it does not enforce an enum: the observed symbols are not an exhaustive set. An unrecognised symbol returns an empty array that this server cannot distinguish from an account owning none of that resource. A missing player or resource produced data:null at HTTP 200 upstream; data:null therefore indicates a missing parameter in that observation rather than an empty holding, and this tool refuses either missing parameter rather than return that response. An empty array is a successful answer and does not establish that the account exists or that the account owns no resource beyond the request's returned rows. This tool reports the rows the upstream returned and nothing else: it does not infer holdings for symbols or regions the response does not list.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerNo
resourceNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so thoroughly: numeric wire-type preservation, case-sensitivity and uppercasing, non-enum behavior, empty-array semantics, data:null meaning, missing-parameter refusal, and non-inference of holdings. This is exemplary transparency for a tool with no structured safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place, covering response shape and edge cases that are essential given no output schema or annotations. It is front-loaded with the core action and result format before diving into caveats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 nuanced upstream behavior, the description is remarkably complete. It tells the agent the response structure, field list, error-like signals, empty-array meaning, and explicit non-guarantees, so an agent can invoke it and interpret results correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the resource parameter's capitalization behavior, case-sensitivity, and unrecognized-symbol outcome, and it clarifies that missing player/resource arguments are refused. It does not elaborate much on player identity, but the provided semantics go well beyond the minimal schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a concrete resource ('resource-holding rows... for one account and one resource'), and ties it to the exact upstream endpoint. This clearly differentiates it from the many land_resources_* sibling tools without requiring the agent to open their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly establishes the tool's scope: it returns exactly what GET /land/resources/owned returns for one account and one resource. It does not name alternatives or state when-not-to-use explicitly, but the context is clear enough to guide simple selection decisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_resources_production_region_harvestableA

List the harvestable resource rows the upstream returns for one account and one land region, as GET /land/resources/production/region/harvestable returns them. A successful response is {status, data}, where data is an array of rows carrying amount_claimable, grain_required_for_food, wood_required, stone_required, iron_required and token_symbol. All numeric fields are JSON numbers, and this server returns them unchanged; it does not convert, round, total or compare them, and a change in their wire type would be reported as a malformed response rather than converted silently. The upstream returned HTTP 400 with Invalid parameters passed when either player or region_uid was missing, and this tool requires both before making the request. A fake player or region_uid returned data:[], a successful empty answer. This tool reports the rows the upstream returned and nothing else.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes
region_uidYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden and does so thoroughly: it gives the response shape {status, data}, the exact row fields, numeric wire-type behavior, the upstream 400 on missing parameters, and the successful empty data:[] response for fake IDs. It also explicitly states the tool reports only the upstream rows and nothing else.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and response shape, and every paragraph contributes useful operational detail about edge cases and numeric handling. It is slightly dense and the final sentence restates a point already made, but there is no significant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description provides a solid output contract including field names, response wrapper, numeric behavior, and common failure modes. It could still add explicit account-name or region-uid format details and clearer sibling differentiation, but an agent has enough information to call the tool and interpret its response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not define the value semantics of player or region_uid beyond what the names imply. It usefully notes that both are required, that missing values trigger the upstream 400, and that fake values yield an empty data array, but it lacks format or domain guidance for these two string parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'List the harvestable resource rows', a specific verb and resource, and scopes it to one account and one land region. It also names the upstream endpoint, making the tool's function and read-only nature unmistakable and distinguishable from the many sibling land_resources_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when to use the tool: to retrieve harvestable production rows for a single player/region pair. It also specifies the prerequisite that both player and region_uid are required before making the request, though it does not explicitly name alternatives or when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_resources_rewardactionsA

List the reward-action rows the upstream returns for one deed uid, as GET /land/resources/rewardactions/{deedUID} returns them. A successful response is {status, data}, where data is an array of rows carrying id, plot_id, tract_id, region_uid, site_efficiency, region_number, land_worksite_id, land_project_id, resource_id, resource_symbol, working_pp, duration, deed_uid, claim_amount, grain_required, claim_amount_eaten, amount_received, tax_burnt, amount_taxed, trx_description, trx_id, block_num, created_date, last_updated_date and fragment_roll. The numeric fields are JSON numbers, and this server returns them unchanged; it does not convert, round, total or compare them, and a change in their wire type would be reported as a malformed response rather than converted silently. fragment_roll is a nested object; this server returns it unchanged and does not interpret its fields. The default response contained 100 rows. A nonzero offset was measured to return data:[] rather than advance the list: limit=3&offset=3 and limit=1&offset=1 both returned empty arrays for a deed with 313 recorded actions. This is not the repeating-offset failure measured on the deeds search; it is an empty-array failure, and no offset value tried reached rows beyond the first 100. Supplying a limit narrows the returned rows from the start, but this tool does not imply that pagination works. A fake deed uid and a real deed with no actions both returned data:[], so an empty array establishes neither that the deed exists nor that it has no reward actions. A trx_id appears in these rows; this tool reports the rows returned by the upstream and nothing else, and does not claim what any numeric figure means. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
deedUIDNo
plot_idNo
deed_uidNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, and it excels. It discloses that numeric fields are returned unchanged (no conversion or rounding), that fragment_roll is passed through without interpretation, that a nonzero offset returns an empty array rather than advancing, that an empty array is ambiguous (fake or real deed with no actions), and that the tool does not interpret numeric meanings. These are significant edge cases that are clearly documented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but each sentence carries behavioral weight, covering response shape, numeric handling, offset failure, empty-array semantics, and input requirements. It is front-loaded with purpose and then layers important details. While it could be tightened, the verbosity is justified given the tool's many quirks.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 params, no schema descriptions, no output schema, and multiple behavioral caveats), the description covers everything an agent needs: response structure with field list, numeric handling, offset failure, empty-array ambiguity, input requirements, and reference resolution. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does. It explains the key parameters: limit narrows from the start, offset yields empty arrays, and it clarifies the accepted identifiers (plot_id or deed_uid with spelling variants). While it doesn't describe each parameter exhaustively, it provides actionable guidance on how to use them, which is well above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear statement of purpose: 'List the reward-action rows the upstream returns for one deed uid, as GET /land/resources/rewardactions/{deedUID} returns them.' This specifies the verb (list), resource (reward-action rows), and the endpoint, making the tool's function unambiguous. It also implicitly distinguishes from the sibling count tool (land_resources_rewardactions_count) by focusing on row listing, so an agent can tell them apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit input requirements: 'Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted.' It also gives practical usage context, such as the note that supplying a limit narrows rows from the start and that pagination is not reliable. However, it does not name alternative tools or explicitly say when not to use this tool versus related ones, which is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_resources_rewardactions_countA

Get the reward-action count the upstream reports for one deed uid, as GET /land/resources/rewardactions/{deedUID}/count returns it. A successful response is {status, data}, where data is an object carrying count, a JSON number; this server returns it unchanged and does not convert, round or derive it. The measured count was 313 for a deed whose reward-actions list returned 100 rows by default; limit=3&offset=3 and limit=1&offset=1 both returned empty arrays, so roughly 213 counted actions were absent from those three list responses. The count and list do not contradict each other: the count reports more actions than those responses contain. Whether the count covers exactly what the list would return was not verified, so this tool does not assert equivalence. A fake deed uid returned count 0, while the list route returned data:[] for both that fake deed and a real deed with no actions; these responses do not establish what an empty deed count would be. This tool reports the count the upstream returned and nothing else, and does not claim what the count means beyond the measured response. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
deedUIDNo
plot_idNo
deed_uidNo

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and excels. It discloses that the tool returns the count unchanged, does not assert equivalence with list results, and even reports measured anomalies (count 313 vs list 100, fake deed returning 0). This is exceptionally transparent about behavior and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long and includes excessive probing details (measured counts, verified responses, empty arrays) that are tangential. Important usage is buried in a wall of text, making it hard for an agent to parse quickly. It should be front-loaded with the purpose and essential parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description covers the purpose, return format, and parameter constraints well, but it omits specifics like expected error responses or the meaning of the count beyond the measured case. Some uncertainty remains, but it's adequate for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description compensates by explaining that exactly one of plot_id or deed_uid must be supplied, and that plot_id can be numeric or display label or original UID. However, it doesn't detail the exact format of display labels or UID vs deed_uid, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the reward-action count for a deed UID, matching the REST endpoint, and distinguishes it from the list tool. However, it could more concisely differentiate from siblings like land_resources_rewardactions, but the intent is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains when to use this tool (to get the count) and mentions the parameter alternatives (plot_id or deed_uid), but does not explicitly contrast with sibling list tool or other count tools. The guidance on resolution and parameters is useful but could state 'use this instead of the list when only a count is needed'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_resources_richlistA

List the resource-richlist rows the upstream returns for one region and one resource, as GET /land/resources/richlist returns them. A successful response is {status, data}, where data is an array of rows carrying player, amount, region_uid and resource_symbol. amount is a JSON number, and this server returns it unchanged; it does not convert, round, total or compare it, and a change in that wire type would be reported as a malformed response rather than converted silently. The upstream matches resource case-sensitively against its exact symbol. This tool uppercases resource before making the request, but it does not enforce an enum because the observed symbols are not a declared exhaustive set. An unrecognised resource or region was observed to return data:[], which this server cannot distinguish from a genuinely empty ranking. Both region and resource are required by the upstream, and this tool refuses either missing parameter before making the request. This route uses region, not region_uid; other routes in this server take region_uid, and carrying that parameter name across to this route produces HTTP 400. Paging probes supplied offset=0, offset=5, page=2, cursor=5 and start=5; each returned parsed data equal to the limit=5 baseline. limit=50 returned 50 rows whose first five matched that baseline in the same order, and no ceiling was found at the tested limits 5 and 50. No value tried for offset, page, cursor or start produced a later slice. This tool reports the rows the upstream returned and nothing else.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYes
regionYes
resourceYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers richly: it discloses the exact response shape ({status, data}), that amount is returned unchanged (no conversion/rounding), case-sensitivity, the uppercasing of resource, the inability to distinguish empty results, and tested paging limits. This goes far beyond typical descriptions and leaves no behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose but is extremely verbose, listing exhaustive probe results and edge cases. While every detail adds value, the density could overwhelm an agent; a more concise summary of key behaviors (e.g., 'no paging beyond limit', 'case-sensitive', 'empty array ambiguity') would suffice. It is not inappropriately sized, but it is not concise relative to typical tool descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and zero schema parameter documentation, this description is exhaustive. It covers response format, error conditions, parameter requirements, case handling, and paging limitations. An agent has everything needed to call it correctly and interpret results without surprises.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains region/resource are required, resource is uppercased, and limit is the only paging knob (tested at 5 and 50). It also notes that offset/page/cursor/start are ignored. While it doesn't formally define each parameter, it provides sufficient behavioral context for correct invocation, though limited explicit type/format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists resource-richlist rows for one region and one resource, matching the upstream GET /land/resources/richlist endpoint. It distinguishes itself from sibling tools by emphasizing the region (not region_uid) parameter and proximity to land_resources_* siblings. The purpose is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly warns that this route uses 'region' not 'region_uid' (other routes use region_uid, and using the wrong name yields HTTP 400), and states both region and resource are required. It also clarifies paging behavior (no offset/page/cursor support) and empty-array ambiguity, giving agents clear when-to-use and when-not-to-use guidance without requiring inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_resources_taxesA

Get the resource-tax record the upstream returns for one deed, as GET /land/resources/taxes/{deedUID} returns it. A successful response is {status, data}, where data is one object carrying taxes and capacity. taxes was null on all three real deeds measured; no populated taxes array was ever observed. A fabricated deed id returned taxes:[] and capacity:0, while each of the three real deed ids returned taxes:null and capacity:1000000, so those measured real and fabricated responses are distinguishable. capacity was 1000000 on all three real deeds measured. That is either a shared cap or a field that does not vary by deed; one probe cannot tell those apart, so this description does not call it the deed's capacity. The taxes and capacity values are returned unchanged; this server does not interpret, total or compare them, and a change in their wire type would be reported as a malformed response rather than converted silently. The required deedUID is a path segment, so omitting it reaches no handler and is reported as an upstream routing failure. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
deedUIDNo
plot_idNo
deed_uidNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so extensively. It discloses the response envelope, the observed null vs empty-array behavior, capacity quirks, that values are returned unchanged, and failure modes like omitting deedUID causing routing failure. This is far beyond typical transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-organized: purpose first, then response shape, observed data behavior, parameter rules, and resolution behavior. Some hedging around capacity could be tightened, but every sentence carries useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description provides the response shape, observed examples, parameter edge cases, and resolution request limits. An agent has enough to call the tool correctly and interpret the result without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates. It explains that plot_id can be numeric or a display label, that deed_uid is an accepted UID form, and that deedUID acts as a required path segment. It also adds the 'exactly one' constraint that the schema does not express.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Get') and a specific resource ('resource-tax record for one deed'), and it pinpoints the upstream endpoint GET /land/resources/taxes/{deedUID}. This clearly separates it from the many land_resources_* sibling tools by scope and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit input rules: supply exactly one plot_id (numeric or display label) or deed_uid, and explains that reference resolution may add one verified deed GET with a hard two-request limit. However, it does not name sibling alternatives or state when not to use this tool, so it lacks explicit exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_resources_titlesA

List the public land-title rows the upstream returns for one player, as GET /land/resources/titles?player= returns them. The player is a query parameter. A successful response is {status, data}, where data is an array of rows carrying title, player and created_date; title and player are strings and created_date is a timestamp string, and this server returns them unchanged. Omitting player returned HTTP 400. An unknown player returned HTTP 200 with data:[], an honest empty result. This route is well-behaved: a missing player is rejected with HTTP 400 and an unknown player gives an empty array. This tool reports the title rows returned by the upstream and nothing else.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It clearly discloses that missing player returns HTTP 400, unknown player returns HTTP 200 with an empty array, and that response rows are returned unchanged. It does not mention auth, rate limits, or pagination, but for a simple public read endpoint the key behaviors are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is repetitive and longer than necessary. It states the missing-player HTTP 400 behavior twice and the unknown-player empty-result behavior twice, and the final sentence mostly restates the first sentence. It is front-loaded but wastes space on redundant assurances like 'This route is well-behaved'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema and no annotations, the description covers the response shape, field types, error statuses, and pass-through nature. It lacks explicit pagination or limit details, but the endpoint appears intentionally minimal and the core calling contract is sufficiently defined.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only documents the player parameter as a non-empty string with 0% schema description coverage. The description compensates by explaining that player is a query parameter and by detailing the distinct outcomes for missing and unknown player values, which is useful behavioral semantics beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List the public land-title rows the upstream returns for one player'. It also distinguishes this tool from related siblings by adding 'and nothing else', clarifying it is a thin pass-through and not, for example, land_resources_titles_assigned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to choose this tool over alternatives or when not to use it. The description explains the HTTP behavior of the endpoint but does not mention any sibling tool or selection context, 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.

land_resources_titles_assignedA

List the public title-assignment rows the upstream returns for one title, as GET /land/resources/titles/assigned?title= returns them. The title is a query parameter. A successful response is {status, data}, where data is an array of rows carrying title, player, created_date, avatar_id, league and modern_league. The title, player and created_date fields are strings or a timestamp string, and avatar_id, league and modern_league are JSON numbers; this server returns them unchanged. Warden and warden both succeeded. WARDEN returned HTTP 500, the same response as a nonexistent title and as a missing title parameter. A 500 does not establish whether the title exists. This route is not generally case-insensitive: two casings were observed to work and one failed. This tool sends the argument's case exactly as supplied and does not normalise it, because normalising toward an untested form could turn a working call into a 500. This tool reports the rows returned by the upstream and nothing else.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full behavioral burden, and it delivers: it discloses HTTP 500 behavior for nonexistent titles and missing parameters, case-sensitivity quirks, exact-pass-through casing without normalization, and that it reports only upstream rows. This is unusually rich and operationally useful transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but front-loads the core purpose and response shape before diving into edge cases. The Warden casing example is somewhat redundant with the later case-sensitivity sentence, but the information density is high and nearly every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description fully explains the success response shape, row fields and types, error semantics, case-sensitivity caveats, and the tool's intentionally narrow contract. An agent has enough context to call this correctly and interpret the result without extra structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the single title parameter. It adds that title is a query parameter, that casing is passed exactly as supplied, and that no normalization is performed beyond the schema's string/minLength constraint. It could define what a valid title value is, but for one parameter this is largely sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: it lists public title-assignment rows that the upstream returns for one title, and names the exact endpoint and query parameter. This clearly distinguishes the tool's scope from the many sibling land_resources tools, even before looking at their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for querying a single title's assignments, but it never references an alternative sibling such as land_resources_titles or states when not to use this tool. With over 170 siblings, the lack of explicit routing guidance is a meaningful gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_stake_assetsA

Read each worker’s Base Production, Base PP after cap, Terrain Boost, Boostable Production and Total Production in worker_view, alongside unchanged source cards and items. Display labels follow the public client; explicit unpowered rows display zero while missing values remain unknown. The cap preview allocates ordinary workers in ascending slot order, then adds Runi outside the cap; see splinterlands://land/rules/screen-fields for source and limits. List the cards and items staked to one land deed, as GET /land/stake/deeds/{deedUid}/assets returns them. A successful response has {status, data}, where data holds a cards array and an items array; a deed with nothing staked returns both arrays present and empty, which is a successful answer and not a failure. On this route the boost, production-point and work figures are JSON strings, not numbers, and this server returns them exactly as received: it does not convert, round, compare or combine them, and a change in that wire type would be reported as a malformed response rather than converted silently. The deed-details tool returns the equivalent deed-level figures as JSON numbers; the two routes disagree about wire type and this server does not reconcile them. Rows carry the staking account name as the upstream returns it. A deed uid the upstream rejects is answered with an HTTP error on this route and is reported as an upstream failure rather than as an empty result, so this tool and the deed-details tool do not behave alike on a bad deed uid. This tool adds only a same-response worker label view: it does not count free slots, does not infer whether a deed is powered, and makes no statement about cards the response does not list. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
deedUidNo
plot_idNo
deed_uidNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and meets it: it discloses that production figures are JSON strings returned unchanged, that empty staked arrays are a successful response, that upstream-rejected deed uids surface as HTTP errors, that resolution may add a verified deed GET with a hard two-request limit, and that the tool does not infer power or available slots. It also documents the exact worker-field contents and display-label conventions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very long and written as a single dense paragraph rather than being front-loaded or structured; the core 'list assets' purpose appears only in the fourth sentence. On the other hand, nearly every sentence conveys substantive operational detail, so the length is not padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, no annotations, and three optional-looking parameters, the description fully covers the success shape ({status, data} with cards/items arrays), empty-result semantics, wire-type behavior, error semantics, parameter cardinality, and resolution request limits. Nothing an agent needs to call and interpret the route is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: it identifies plot_id and deed_uid as alternatives, accepts the original camelCase spelling, and clarifies that exactly one identifier is required despite no schema-required fields. It does not fully define the accepted 'display label' format, but it adds enough mapping above the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description immediately names a specific GET endpoint and states the tool 'List[s] the cards and items staked to one land deed', while also specifying the worker production fields it reads. It contrasts this route with the deed-details tool on wire type and bad-uid behavior, so it is distinguishable from its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit invocation rule: 'Supply exactly one plot_id (numeric or display label) or deed_uid'. It also warns that this tool and deed-details 'do not behave alike' on a bad deed uid and that the deed-details tool returns numbers, giving an agent enough context to choose between routes, though it never says 'use this when you need assets and deed-details when you need deed-level totals'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_stake_dec_overallA

Get the single DEC staking figure the upstream returns for one account, as GET /land/stake/dec/overall returns it. A successful response is {status, data}, where data is a bare JSON number rather than an object or an array; this server returns it exactly as received and does not convert, round, scale or combine it, and a change in that wire type would be reported as a malformed response rather than converted silently. What the number counts, and over what scope, is not stated by the response and is not claimed here. This route does not enforce its declared-required player parameter: a call that omits it was measured to answer HTTP 200 with the number zero, the same zero observed for an unscoped call; whether that equals a real account with nothing staked was not tested, so this tool refuses a call with no player rather than return a plausible zero that describes nobody. A name that matches no account was measured to answer with the same kind of figure as a real account, so an answer from this tool establishes neither that an account exists nor that it does not. A zero returned for a named account is a successful answer and is not reported as no result. The per-region tool lists this account's staking rows separately; this server does not add those rows up, does not compare their total with this figure, and does not derive either from the other.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden and does so thoroughly: response shape, bare-number data type, no rounding/scaling/conversion, malformed-response behavior, omitted-player behavior, nonexistent-account behavior, and zero-as-successful-result. It also discloses the tool's own refusal behavior rather than returning a misleading zero. This is exemplary transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but every sentence adds necessary caveats that the annotations and output schema do not provide. It front-loads the core purpose and response shape before diving into edge cases. Given the number of non-obvious behaviors it must warn about, it is appropriately sized and well ordered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotations, so the description is the sole source of operational context. It covers the response envelope, data type, malformed-response handling, missing-player refusal, nonexistent-account ambiguity, valid zero results, and the distinction from per-region data. An agent has everything needed to call and interpret this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does. It explains that player identifies an account, that omitting player is refused by this tool despite producing a 200/zero upstream, and that a nonexistent player still yields the same figure type. The only minor wrinkle is calling player 'declared-required' when the schema lists no required fields, but the practical instruction is unambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Get the single DEC staking figure the upstream returns for one account.' It clearly identifies the tool's passthrough nature and explicitly contrasts it with the per-region tool, which lists staking rows separately. This gives an agent enough to distinguish it from related staking siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when this tool is appropriate: it returns one overall DEC staking figure, and it explicitly notes that the per-region tool lists rows separately and that this server does not sum them. It does not name the sibling tool directly or give an explicit 'use X instead' rule, but the comparison is concrete enough to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_stake_dec_regionA

Get the DEC staking figures the upstream reports for one account and one land region, as GET /land/stake/dec/region returns them. A successful response is {status, data}. data is an object carrying uid, dec_stake_needed, dec_staked and dec_stake_in_use when the upstream has a record for the request, including a full object of zero figures when a valid region has no stake for the account; the upstream returned an empty array for incomplete requests, but this registered tool refuses those requests before making the call. All three figures are JSON numbers, and a change in that wire type would be reported as a malformed response rather than converted silently. Removing player changed a resolved object response to an empty array; no numeric comparison was made. What each figure counts is still not stated by the response and is not claimed here. Neither declared-required parameter is enforced: a call omitting region_uid, and a call with no parameters at all, were both measured to answer HTTP 200 with an empty array, so this tool refuses a call that does not supply both player and region_uid. Different region uids were measured to return different figures. This tool reports the record the upstream returned for the request it was given and nothing else: it does not add figures across regions and does not compare them with any other route's.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerNo
region_uidNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description fully carries the transparency burden and does so thoroughly. It discloses the successful response shape, zero-figure records, upstream empty-array behavior, the tool's refusal of incomplete requests, strict JSON-number wire-type handling, and the lack of silent conversion or cross-region aggregation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded, but it is a single rambling paragraph with redundancy. For example, the empty-array behavior for incomplete requests and the resulting refusal is stated twice, and the 'does not add/compare' limitation appears in slightly different forms. It would be more concise and readable with clear structure or bullets.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, no annotations, and many sibling tools, the description is unusually complete: it explains the response object, the fields, edge-case zero records, refusal semantics, wire-type strictness, and explicit non-aggregation behavior. An agent has enough context to call this tool correctly for its intended single-account/single-region use case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it explicitly says both player and region_uid must be supplied, describes the upstream behavior when they are omitted, and notes that different region_uid values yield different figures. It adds meaning beyond the bare schema, though it does not explicitly spell out the expected format or semantic meaning of each parameter beyond their names and the 'one account/one region' framing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Get the DEC staking figures the upstream reports for one account and one land region.' It further sets scope by naming the response fields and explicitly stating it does not aggregate across regions or compare with other routes, which differentiates it from sibling tools like land_stake_dec_overall.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly establishes when this tool applies: for a single account and single land region, reporting only the upstream record. It also gives when-not behavior ('does not add figures across regions and does not compare them with any other route's'), but it does not explicitly name an alternative tool or provide a direct decision rule such as 'use X instead for totals.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_stake_dec_stakedA

List the per-region DEC staking rows the upstream reports for one account, as GET /land/stake/decstaked returns them. A successful response is {status, data}, where data is an array of rows carrying id, region_uid, player, amount, percent_claimable, last_trx, created_date and last_updated_date. Every numeric field on this route is a JSON number, and a change in that wire type would be reported as a malformed response rather than converted silently. Rows carry the account name as the upstream returns it. An empty array is a successful answer, and an unknown name and an unscoped call were observed to return an empty array; behaviour for a known account with no staked DEC was not captured, so an empty answer establishes neither that an account exists nor that it does not. This route does not enforce its declared-required player parameter — a call with no parameters at all was measured to return that same empty array — so this tool refuses a call with no player rather than return an unscoped empty answer as though it described somebody. What percent_claimable measures is not stated by the response and is not claimed here. This tool reports the rows the upstream returned and nothing else: it does not total the amounts, does not compare them with the account's overall figure, and makes no statement about regions the response does not list.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the behavioral disclosure burden. It covers response shape and fields, strict JSON number wire types, empty-array semantics for unknown or unscoped calls, the upstream route's lack of player enforcement, the wrapper's refusal of player-less calls, percent_claimable ambiguity, and the fact that no totals or region inferences are made.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Although long, the description is dense and front-loaded: purpose appears in the first sentence, and every subsequent sentence addresses a real edge case or inference hazard. With no output schema or annotations, those details are earned rather than redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter, no annotations, and no output schema, the description is self-sufficient. It documents the full response envelope, field list, empty-answer behavior, malformed-response handling, and explicit non-behaviors, so an agent has everything needed to call and interpret the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does. It explains that player identifies an account, that rows carry the account name as upstream returns it, that unknown names yield an empty array without proving nonexistence, and that the wrapper refuses calls without player even though the upstream route does not enforce it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence uses a specific verb ('List') and identifies the exact resource (per-region DEC staking rows for one account) as returned by GET /land/stake/decstaked. This clearly distinguishes the tool from aggregate or overall staking siblings such as land_stake_dec_overall.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use it to see raw per-region staking rows for a single account, and it explicitly states the tool does not total amounts or compare against an account's overall figure. It does not name a specific sibling alternative for aggregate figures, so it stops short of full when-to-use/alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_stake_deed_detailsA

Includes plot_view with the public overview PRODUCTION / HR value (Total PP times efficiency, or unscaled with Runi; zero when explicitly unpowered), plus separately labelled reference PP and resource-output values. Missing inputs remain unknown; raw response and provenance are preserved. Get the staking summary the upstream reports for one land deed, as GET /land/stake/deed/details/{deedUid} returns it. A successful response has {status, data}, where data is one flat record of the deed's staking flags, worker counts, boosts and totals. A deed with nothing staked returns that record fully present, with its numeric fields zero and its boolean flags false, so an empty answer on this route is a populated record rather than an absent one. On this route the boost and total figures are JSON numbers; the deed-assets tool returns the equivalent per-card figures as JSON strings. The two routes disagree about wire type, this server returns each exactly as received, and a change in that wire type would be reported as a malformed response rather than converted silently. The record carries a manager string as returned by the upstream; its role is not stated. A deed uid the upstream does not recognise was measured to return a successful response holding no record rather than an error, so an answer holding no record establishes neither that the deed exists nor that it does not: this server cannot tell it apart from a deed that exists and has no staking record. The one deed with nothing staked that this repository observed returned the zeroed record described above rather than no record, which is a single observation and not a rule. The deed-assets tool answers a rejected deed uid with an upstream error instead, so the two tools do not behave alike on a bad deed uid. This tool reports only what the record states: it does not compute free slots, does not derive which cards are staked, and does not treat a total as evidence about any individual card. Supply exactly one plot_id (numeric or display label) or deed_uid; the original UID spelling is also accepted. Reference resolution may add one verified deed GET before the target GET, with a hard two-request limit. Populated resolved results include all three plot identities and resolution freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
deedUidNo
plot_idNo
deed_uidNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses wire type differences (JSON numbers vs strings), behavior on empty records (populated zeros vs no record), the manager string's unstated role, preservation of raw response, and limitations (does not compute slots, does not derive staked cards). This is thorough and honest about edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and lengthy, covering many caveats and comparisons. While each sentence adds value, there is redundancy (e.g., repeated mentions of zeroed record) and the front-loading is not optimal—the core purpose appears only after several technical details. It is structured but not concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and 0% schema coverage, the description provides extensive context: response shape, edge cases, differences from siblings, and parameter usage. It misses a precise field list of the returned record but covers nearly all operative aspects needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It clarifies the one-of requirement and that plot_id can be numeric or display label, and that original UID spelling is accepted. However, it does not elaborate on the meaning of each parameter beyond these usage notes, which is adequate given the simple parameter set.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb and resource precisely: 'Get the staking summary the upstream reports for one land deed, as GET /land/stake/deed/details/{deedUid} returns it.' It clarifies the response structure and separates it from the sibling deed-assets tool, making its unique role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs to 'Supply exactly one plot_id (numeric or display label) or deed_uid' and notes reference resolution may add a request. It contrasts behavior on a bad deed uid with the deed-assets tool. However, it does not explicitly state when to prefer this tool over the sibling, leaving some inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_stake_evp_pending_claimA

Get the pending EVP claim figure the upstream reports for one account, as GET /land/stake/evp/pending-claim returns it. A successful response is {status, data}, where data is an object carrying a single pending_claim_amount field, a JSON number returned exactly as received; this server does not convert, round or accumulate it, and a change in that wire type would be reported as a malformed response rather than converted silently. What EVP is, what makes an amount claimable, and over what period the figure accrues are not stated by the response and are not claimed here. A zero is a successful answer. This server has observed zero for both a real account and a name that matches no account, while the real account's pending amount was also zero; whether this route distinguishes those cases is untested, so no answer from this tool may be read as saying that an account exists or that it does not. A call with no parameters at all was measured to answer HTTP 200 with a figure, so this tool refuses a call with no player rather than return a figure that describes nobody. This tool reports the figure the upstream returned and nothing else: it does not accumulate it, compare it with any DEC figure, or treat it as a balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and compensates richly. It discloses the response shape, that zero is successful, the lack of account existence semantics, the refusal to accept no player, and the non-normalization of values. This goes beyond typical transparency, though it doesn't cover all possible failure modes (e.g., network errors).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very long, exceeding typical length with multiple clauses on edge cases. While each sentence adds useful nuance, the verbosity could be trimmed: e.g., the piece about testing ambiguous cases could be shortened. The initial sentence clearly states the purpose, but the density may reduce readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one param, no output schema) and lack of annotations, the description covers the expected return format, the meaning of zero, the non-existence ambiguity, and the parameter requirement. It doesn't discuss error handling beyond the no-player rejection or pagination (irrelevant). It is sufficiently complete for a low-complexity endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given schema description coverage is 0%, the description must compensate, and it does: it explains the 'player' parameter indirectly as 'one account' and explains the no-player refusal. It doesn't detail the format or constraints (e.g., length, special characters), but the schema already specifies type and minLength. The description adds meaning by clarifying the parameter's role in identifying the account.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a pending EVP claim figure for one account, specifically the GET /land/stake/evp/pending-claim response. It distinguishes itself from other land/stake tools by focusing on 'pending claim' and explicitly disclaims accumulation, comparison with DEC, or balance semantics. While it doesn't name a sibling alternative, the specific resource and endpoint make 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage is for querying a specific pending EVP figure, and notes that a call with no parameters is refused (requires a player). However, it doesn't explicitly state when to use this tool over related ones like land_stake_dec_overall or land_stake_dec_staked, nor does it provide explicit exclusions. The instructions are inferred from context rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_tracts_countsB

List the tract count rows returned by GET /land/tracts/counts. The unscoped call returns {status: "success", data: []}, an empty list. A captured named-player response returned 36 rows, one per (region, tract_number) combination for which the account holds a deed. Each row contains region.uid, region.name, region.region_number, tract_number, owned and listed; all six row fields were present and non-null in every captured row. Whether any field is player-wide or player-scoped beyond this captured row shape is unmeasured, so this description makes no further absence claim.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden of behavioral disclosure. It transparently states that the unscoped call returns an empty list, that a named-player response returned 36 rows, that all six fields were present and non-null, and it explicitly declines to make unmeasured absence claims. This is honest and useful, though it omits auth/rate-limit details that might matter 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, then presents behavioral details and a cautionary scope note. Each sentence earns its place: endpoint identification, empty-case behavior, observed response shape, and uncertainty caveat. It is slightly longer than minimal, but the length is justified given the absence of annotations and output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description usefully explains the return shape, field names, non-null behavior, and both observed cases. It is reasonably complete for a read-only list endpoint. The main gaps are explicit parameter usage and exclusion criteria, which were covered in other dimensions, so the overall contextual picture is strong but not flawless.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the player parameter, but it only refers indirectly to a 'captured named-player response' and 'the account holds a deed.' It never states that player is optional, what format it should take, or how it scopes results. This is insufficient compensation for an undocumented parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List the tract count rows returned by GET /land/tracts/counts.' It clearly identifies the endpoint and the data shape, and the phrase 'tract count rows' distinguishes it from the broader land count endpoints. However, it does not explicitly contrast it with siblings like land_regions_counts or land_deeds_owned, so the differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no conditions for choosing it over land_regions_counts or land_deeds_owned, and no explanation of when to provide the player parameter. The contrast between 'unscoped call' and 'captured named-player response' hints at usage, but the agent is left to infer when and how to invoke the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_volumeA

Get the two land volume figures the upstream returns for GET /land/volume: a sum and a count. This route takes no parameters. Both figures are the upstream's own values. They were observed to change between two captures about an hour apart, and to decrease, so this server does not present them as a cumulative total. When this server observed the route, both figures were returned as JSON strings rather than numbers; that was true of every observation so far, not a guarantee about every response. This server passes the response through unchanged and does not convert, round or combine the figures, and a change in that wire type would be reported as a malformed response rather than converted silently. What the two figures measure, and over what period, is not stated by the response and is not claimed here.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior5/5

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 so thoroughly. It discloses that figures are passed through unchanged, not converted, rounded, or combined; that wire types were observed as strings but are not guaranteed; and that wire-type changes would surface as malformed responses. It also warns against interpreting the figures as cumulative totals based on observed decreases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but every sentence contributes meaningful caveats about pass-through behavior and data reliability. It is front-loaded with the core purpose, followed by necessary behavioral warnings. It could be slightly tightened, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless pass-through endpoint with no output schema, the description is remarkably complete. It covers the return values (sum and count), the lack of parameters, the non-cumulative nature, the observed wire type, and the malformed-response behavior. An agent has everything it needs to invoke the tool and interpret the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty and schema coverage is 100%, so there is no parameter semantics burden. The baseline for 0-parameter tools is 4, and the description states 'This route takes no parameters,' confirming the call signature explicitly. No further parameter meaning is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Get the two land volume figures the upstream returns for GET /land/volume: a sum and a count.' This precisely identifies the endpoint and what is returned. It distinguishes this tool from siblings by its unique route and no-parameter nature, rather than conflating it with market_volume or other land-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states 'This route takes no parameters,' which tells the agent how to call it, but it does not provide explicit guidance on when to choose this tool over alternatives or when it would be inappropriate. The intended use is implied by the resource name and description, but no sibling comparison or exclusion criteria are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_endpointsA

List every catalogued endpoint and the evidence-backed dimensions known about it. This tool is offline and makes no upstream request.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full burden. It discloses the key behavioral trait that the tool is offline and makes no upstream request, which strongly signals a non-mutating, network-free operation. It does not mention caching, pagination, or performance, but for a simple list catalog this is a notable level of transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, dense sentences. The primary purpose is stated first, and the important offline/no-upstream-resource constraint is added second. There is zero filler or redundant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given it has no parameters, no output schema, and no annotations, the description is mostly complete: it says what the tool lists and that it is offline. The phrase 'evidence-backed dimensions known about it' is a little vague about the return structure, but for a catalog endpoint with no arguments it does not materially block an agent from invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

A parameterless tool has a 100% schema coverage by definition, and the description correctly does not need to explain parameters. With zero params, a baseline of 4 is appropriate; there is no parameter semantics to add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('every catalogued endpoint') and adds what is known about it ('evidence-backed dimensions'). This clearly distinguishes it from siblings such as describe_endpoint, which target a single endpoint, and other data tools that hit a specific domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is the go-to for a catalog overview and notes it makes no upstream request, which suggests it is cheap or offline. However, it does not explicitly name when to prefer this over describe_endpoint or any alternative, nor does it provide any when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_active_rentalsA

Read current card rentals scoped by owner, renter or card_detail_id. These selectors were observed independently of Swagger. limit and take bound leading rows; offset=2 and skip=2 repeated the first two rows, these declared selectors remain forwardable for inspection but are not working pagination. This is not complete rental history. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNo
takeNo
limitNo
ownerNo
offsetNo
renterNo
card_detail_idNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers: it discloses that pagination selectors are non-functional, that it makes one logical GET request, does not auto-fetch continuation pages, enforces local limits of 100 rows and 256 KiB, reports truncation, and refuses oversized records. This is exceptional transparency about actual measured behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries information: scope, pagination caveat, request behavior, limits, and truncation handling. It is front-loaded with the core purpose. It could be slightly more concise, but the density is justified given the behavioral caveats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only query tool with no output schema and no annotations, the description covers what the tool does, how to scope it, what pagination behavior to expect, and what local limits apply. An agent has enough to invoke it correctly and interpret results. The only minor gap is not describing the exact response shape, but the truncation and refusal behavior compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the scoping parameters (owner, renter, card_detail_id) and explicitly warns that limit/take bound leading rows while offset/skip are non-functional. It also notes that other declared filters are forwarded as supplied without implied effectiveness. This adds meaning beyond the bare schema, though it doesn't detail every parameter's format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Read current card rentals scoped by owner, renter or card_detail_id.' This clearly distinguishes it from rental history tools and other market tools. It could be slightly stronger by explicitly naming a sibling alternative, but the scope is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it reads current rentals, not complete history, and notes that pagination selectors are not working. It doesn't explicitly name alternative tools for history, but the 'not complete rental history' exclusion helps an agent decide when not to use it. Slightly more explicit routing to siblings would push this to 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_active_statusA

Read active market status by one listing sell transaction id or comma-separated ids. Singular and plural selectors have distinct object and array response shapes. Supply exactly one selector; this route is separate from completed status. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
idsNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses one-logical-GET behavior, no auto-pagination, array response limits (100 rows, 256 KiB), truncation reporting, and refusal of oversized records without partial fields. This is strong behavioral disclosure for a read tool, though it does not mention authentication or error semantics beyond oversized records.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Information-dense but somewhat verbose and includes vague boilerplate like 'Required inputs reflect tool policy as well as measured upstream requirements' and 'Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema.' There is also a grammatical run-on: 'Makes one logical GET request Does not auto-fetch continuation pages.' Front-loading is good, but some sentences add limited actionable value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with no output schema and no annotations, the description covers the essential call contract: selector semantics, active-vs-completed routing, response shape variation, pagination, local limits, truncation, and refusal behavior. It lacks a dedicated mention of the completed-status sibling nameicky and detailed error behavior, but is otherwise sufficiently complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain the two parameters. It does: 'id' is a single listing sell transaction id, 'ids' is comma-separated ids, and exactly one selector should be supplied. It also notes the singular/plural response-shape difference. This compensates well for the bare schema, though it could be more explicit about accepted formats or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read'), a specific resource ('active market status'), and the key selector ('one listing sell transaction id or comma-separated ids'). It also distinguishes itself from the completed-status route and explains that singular and plural selectors return different response shapes. This clearly separates it from siblings like market_completed_status and other market tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit usage constraints: 'Supply exactly one selector', 'this route is separate from completed status', and it warns about pagination behavior ('Does not auto-fetch continuation pages'). It does not name the exact sibling alternative to use for completed status, but the separation is stated clearly enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_completed_statusA

Read completed market status by one listing sell transaction id or comma-separated ids. Singular and plural selectors have distinct object and array response shapes. Supply exactly one selector; returned payment quantities remain strings. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
idsNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it delivers extensively. It discloses response shape differences, that payment quantities remain strings, that it makes one logical GET request, no auto-fetching of continuation pages, array limits (100 rows, 256 KiB), truncation reporting, and refusal of oversized records without partial fields. It also notes that declared filters are forwarded as supplied. This is comprehensive behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each sentence contributes useful information. It front-loads the core purpose and then covers response shapes, selection rules, request behavior, and limits. There is minor redundancy (e.g., repeated mention of selector shapes) but overall efficiently structured for an agent to parse key constraints quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters, no output schema, and no annotations, the description covers many operational details: selection, pagination, limits, and error behavior. However, it omits any description of the actual response fields (what 'completed market status' contains), and the sentence 'Other declared filters are forwarded as supplied' is confusing since the schema allows no additional properties. This leaves the agent without a clear picture of the return structure, making it less complete than it could be.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only type and minLength for id and ids, with zero description coverage. The description compensates by explaining that id is singular and ids is a comma-separated list, that exactly one must be used, and that the response shape differs between singular and plural. It adds meaningful semantics beyond the schema, though it does not provide format examples or detail how the comma separation works beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read completed market status' by transaction ID(s). It explicitly distinguishes singular and plural selectors and their response shapes, making it clear how this differs from siblings like market_status or market_active_status. The phrase 'completed' and 'by one listing sell transaction id' precisely scopes the tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the context of use: it is for reading completed market status by transaction ID(s), and it tells the agent to supply exactly one selector (id or ids). It does not explicitly name alternative tools or exclusions, but the purpose is specific enough that an agent can infer when to use it over siblings. Lacks an explicit 'when not to use' or alternative recommendation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_for_rent_groupedA

Read grouped card-rental price and quantity summaries, including season_qty and daily_qty. The observed response had 1710 groups; only a bounded leading portion is returned. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior5/5

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 thoroughly covers pagination (no auto-fetch, bounded leading portion), response limits (100 rows, 256 KiB), truncation reporting, and refusal of oversized records. This gives the agent a clear and complete picture of runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph that front-loads the purpose and then details limitations. Each sentence adds value, but the density might be slightly overwhelming. It is appropriately sized for the complexity and does not waste words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description covers all essential aspects: what it does, pagination behavior, limits, truncation, and failure handling. An agent can invoke it correctly without needing additional context. The note about forwarded filters and their effectiveness is particularly useful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is nothing to explain. The description mentions 'required inputs' but that appears to refer to upstream requirements rather than schema parameters. Baseline for 0 params is 4, and the description adds no conflicting or redundant info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read') and resource ('grouped card-rental price and quantity summaries'), and names the included fields (season_qty, daily_qty). This clearly distinguishes it from sibling tools like market_for_sale_grouped and market_active_rentals, which target different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but provides no explicit guidance on when to use it versus alternatives such as market_active_rentals or market_query_grouped. There is no mention of conditions that would favor this tool, nor any exclusions. The purpose implies a use case, but the agent is left to infer the selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_for_sale_groupedA

Read grouped card-sale price and quantity summaries. The observed response had 2321 groups; only a bounded leading portion is returned. No working paging selector is established. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite lacking annotations, the description provides extensive behavioral disclosure: it notes that only a bounded leading portion is returned, that no paging selector exists, that it makes a single GET request without auto-fetching, that array responses are limited to 100 rows/256 KiB with truncation reported, and that oversized records are refused. This goes well beyond a basic description and gives the agent critical operational expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense paragraph where every sentence contributes meaningful information about limits, behavior, or expectations. It is not overly verbose, but it could benefit from structured bullets for readability. The main purpose is front-loaded. It earns a 4 for efficiency, losing a point for format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters, no annotations, and no output schema, the description is quite thorough. It covers what the tool does, its limitations (bounded results, no paging, truncation, refusal of oversized records), and the nature of the response. It does not describe the exact structure of the grouped summaries, but given the lack of an output schema, more detail might be expected. Nevertheless, it is complete enough for an agent to call it correctly and set expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is trivially 100%. The description adds context about inputs: "Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema." This is useful even though there are no explicit parameters, as it warns about potential input limitations. Since there are no parameters, baseline is 4, and the description does not harm.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: "Read grouped card-sale price and quantity summaries." It specifies a verb (read), a resource (grouped card-sale summaries), and implies a grouping by sale. It does not explicitly differentiate from sibling tools like market_for_rent_grouped or market_query_grouped, but the name and wording are unambiguous enough for selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 conditions, comparisons, or recommendations. The only hint is the name, which suggests sale-focused grouping, but no explicit routing or exclusions are given. An agent would have to infer usage from context or 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.

market_for_sale_packagesA

Read listed card packages, retaining each package's cards intact. Only complete packages within the local result bound are returned; a package too large to fit is refused without dropping its cards. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, and it does so well. It explicitly discloses that oversized packages are refused without dropping cards, that it makes a single GET request without auto-paginating, and that arrays are limited to 100 rows and 256 KiB with truncation reported. This goes beyond a simple read operation and gives the agent essential operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but every sentence adds distinct value: purpose, integrity guarantees, request behavior, filter caveat, and response limits. It is well-structured and front-loaded with the core purpose. No redundant or filler sentences are present, earning a strong conciseness score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool takes no parameters and there is no output schema, the description covers the critical behavioral context: completeness guarantees, pagination behavior, size limits, and truncation reporting. It does not describe error codes or response format, but for a parameterless read tool, the provided information is sufficient for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty, so there are no parameters to document. However, the description confusingly references 'Required inputs' and 'declared filters' despite the schema having none. This contradicts the schema and adds no meaningful parameter information. Since schema coverage is technically 100% (vacuously), the baseline is 3, but the misleading mention of required inputs lowers the score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads listed card packages and preserves their card sets intact. It specifies the resource ('card packages') and the action ('read'), and the mention of 'retaining each package's cards intact' differentiates it from grouped market tools that may aggregate or split data. It is unambiguous about what it returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool over alternatives like market_for_sale_grouped or market_query_by_card. It mentions 'Required inputs reflect tool policy' but provides no concrete guidance on selection criteria or exclusions. The lack of a clear 'use this for X, not Y' reduces its usefulness for an agent deciding between siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_historyB

Read card market history for one player. include_sets is forwarded only when explicitly supplied; its effect has not been established. The capture had 126 rows and no proven paging selector. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes
include_setsNo

TDQS

B3.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden and does so thoroughly: it states that the call makes one logical GET request, does not auto-fetch continuation pages, limits arrays to 100 rows/256 KiB, reports truncation, and refuses oversized records. It also flags include_sets as unverified, giving an agent realistic expectations about upstream behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with its purpose and then gives tight, useful behavioral caveats. It loses a point for opaque or awkward phrasing such as 'the capture had 126 rows' and the run-on 'Makes one logical GET request Does not auto-fetch...'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It covers important operational constraints (no pagination, response limits, truncation reporting) and the include_sets uncertainty, so an agent can mostly predict behavior. However, with no output schema it never describes the expected response shape, and it leaves the player parameter format unexplained, so invocation still relies on unstated conventions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needs to compensate, but it only vaguely explains the player parameter as 'one player' and gives include_sets a non-semantic caveat (forwarded only when supplied; effect not established). It does not state the accepted player identifier format or what include_sets values look like.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence, 'Read card market history for one player,' states a specific verb and resource with clear per-player scope, so an agent can tell it is a market-history lookup. It stops short of a 5 because it does not explicitly differentiate it from sibling market-history tools such as market_rental_history or market_query_by_card.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to choose this tool over the many market_* siblings or what kinds of lookups it is best suited for. The caveats about include_sets and pagination describe behavior, not selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_query_by_cardB

Read individual listings for one card definition using id or card_detail_id. The captured sale query returned flat listing rows. type=rent with rental_type=season returned seasonal listings; omitting rental_type returned empty for the same card. Limit is a leading-row bound; no page-two control is established. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
goldNo
sortNo
typeNo
levelNo
limitNo
editionNo
max_levelNo
min_levelNo
rental_typeNo
card_detail_idNo

TDQS

B3.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full behavioral disclosure burden and does so well: it reveals one logical GET request, no auto-fetching of continuation pages, local array limits of 100 rows and 256 KiB, truncation reporting, refusal of oversized records, and that filter effectiveness is not guaranteed. These are precisely the hidden traits an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but poorly structured, mixing useful operational facts with a debugging-like note ('The captured sale query returned flat listing rows'), an incomplete sentence ('Makes one logical GET request Does not auto-fetch continuation pages'), and vague policy statements. The useful content could be reorganized into a clear, front-loaded explanation without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 11-parameter tool with no annotations and no output schema, the description provides substantial operational context, including limits, truncation, and non-guaranteed filters. However, it does not clarify which of id/card_detail_id is truly required, what the returned 'flat listing rows' look like, or what happens when required inputs are missing, leaving an agent to infer key calling conventions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and no parameters have enums, so the description must compensate. It adds meaning for id, card_detail_id, type, rental_type, and limit, but the remaining seven parameters (gold, sort, level, edition, max_level, min_level) receive no individual explanation, only the generic statement that 'other declared filters are forwarded as supplied.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence identifies a specific verb ('Read'), a resource ('individual listings for one card definition'), and the intended lookup keys ('id or card_detail_id'). It is clear enough to distinguish a card-specific listing reader from the many market/query siblings, though it does not name an alternative or set explicit boundaries against similar tools such as market_query_grouped.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives practical context, such as the type=rent/rental_type=season behavior and the lack of a page-two control, but it never states when to prefer this tool over a sibling or when not to use it. 'Required inputs reflect tool policy' is vague and does not tell the agent which inputs are actually required for a successful call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_query_groupedA

Read listing groups for explicitly supplied comma-separated card definition IDs. Each group has card_detail_id, foil and a nested result list. With two card IDs, limit=1 returned one listing inside each group. This is different from a global row limit. type=rent with rental_type=season returned seasonal listings. Groups are returned intact or refused if a group cannot fit the result bound. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
goldNo
sortNo
typeNo
levelNo
limitNo
editionNo
card_idsYes
max_levelNo
min_levelNo
rental_typeNo

TDQS

A3.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full disclosure burden and does so extensively. It reveals that groups are returned intact or refused, that limit applies per group, that the call is a single logical GET, that continuation pages are not auto-fetched, that array responses are truncated at 100 rows and 256 KiB with truncation reported, and that oversized records are refused without partial fields. This is strong behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the description contains many valuable operational details. However, it is dense and somewhat disjointed, with fragments like 'Makes one logical GET request Does not auto-fetch continuation pages' lacking punctuation, and vague filler such as 'Required inputs reflect tool policy as well as measured upstream requirements.' It earns a middle score: informative but not tightly structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers result-group shape, per-group limits, pagination behavior, local truncation, and refusal semantics, which is substantial given no annotations and no output schema. Yet it does not define most filter parameters, and without an output schema it leaves the full return structure under-specified beyond card_detail_id, foil, and a nested result list. It is reasonably complete operationally but not fully complete contextually.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does clarify card_ids (comma-separated), limit (per-group), and type/rental_type (rental season behavior), plus a caveat that other declared filters are forwarded without implied effectiveness. However, gold, sort, edition, level, min_level, and max_level receive no semantic explanation, leaving most of the 10 parameters effectively undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read listing groups for explicitly supplied comma-separated card definition IDs.' It clearly conveys what the tool does and the core input. However, it does not explicitly differentiate itself from closely named siblings like market_for_sale_grouped or market_for_rent_grouped, so it stops short of full sibling-level clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: call it with explicit comma-separated card IDs, and type=rent with rental_type=season is demonstrated. It also clarifies that limit is per-group, not a global row limit. But it never states when to prefer this tool over alternatives such as market_query_by_card or market_for_sale_grouped, and gives no exclusions or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_rental_historyA

Read card rental history with an explicit player or username. Both account aliases returned the same two rows; limit and take bounded leading rows. offset=1 and skip=1 returned empty even though limit=2 without offset returned two rows. An empty offset result does not prove the end of history. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNo
takeNo
limitNo
offsetNo
playerNo
usernameNo

TDQS

A3.7/5.0
Behavior5/5

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 and does so exceptionally well. It documents pagination quirks (offset/skip empty behavior, limit/take bounding), the fact that it does not auto-fetch continuation pages, local array limits (100 rows, 256 KiB) with truncation reporting, and refusal of oversized records. This goes far beyond what the schema alone could convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy and packed with technical behavioral notes. While every sentence contributes useful information, the overall length and density could be trimmed for easier consumption. The core purpose is front-loaded, but the detailed edge-case explanations might be better placed in a separate notes section.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, no annotations, and six parameters, the description covers a substantial amount of necessary context: what it does, how pagination behaves, output limits, and error handling. It does not describe the shape of returned data, but that is partially mitigated by the mention of array responses and truncation. Overall, it is well above minimal viability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given 0% schema description coverage, the description compensates by explaining the semantics of key parameters: it ties 'player' and 'username' to the requirement, and explains limit, take, offset, and skip behavior through concrete examples. It does not detail every parameter exhaustively, but it adds enough functional meaning for an agent to reason about pagination and required inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with 'Read card rental history with an explicit player or username,' which clearly states the verb, resource, and a key requirement. While it differentiates from generic market history by specifying card rental history, it does not explicitly distinguish itself from closely related siblings like rentals_by_player or market_active_rentals, so it lacks explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 conditions for choosing this over other rental or history tools, nor does it state any exclusions or prerequisites. The only hint is that a player or username is required, but that is implicit from the schema and not framed as a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_statusA

Read market status by one listing sell transaction id or comma-separated ids. Singular id returns one record when found, plural ids returns an array. An unmatched id returned an empty array. Supply exactly one selector; no record does not establish why it is absent. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
idsNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers: singular vs. array returns, empty-array behavior, exactly-one-selector constraint, single logical GET, no auto-pagination, row/byte limits, truncation reporting, and refusal of oversized records. This is unusually rich behavioral disclosure for a data-read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded and most sentences add value, but the description is padded with vague boilerplate such as 'Required inputs reflect tool policy...' and 'Other declared filters are forwarded as supplied...' which do not clearly apply to this two-parameter schema. There is also a run-on sentence and a grammar slip, making it less crisp than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter lookup with no output schema, the description covers invocation, return container shape, empty results, truncation, and oversized-record handling. It is not fully complete because it does not describe the actual market-status fields or explicitly differentiate itself from market_status-like siblings, but an agent has enough to call it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the two parameters on its own. It does: 'id' maps to singular lookup, 'ids' to comma-separated plural lookup, and it explicitly requires exactly one selector. This adds meaning well beyond the bare schema properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states a specific verb ('Read'), a resource ('market status'), and the key input type ('one listing sell transaction id or comma-separated ids'). It is unambiguous about what the tool does, but it does not explicitly contrast itself with related siblings like market_active_status or market_completed_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear operational guidance — supply exactly one selector, use singular id for one record, plural ids for an array — so usage is implied and mostly explicit. However, it never states when to reach for this tool over alternatives, nor any exclusion conditions relative to the many market siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_volumeA

Read the upstream market transaction, USD volume and current rental aggregate figures. Preserve the wire values and units; this endpoint is not an individual player's history. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses meaningful traits: one logical GET, no continuation-page auto-fetch, 100-row/256 KiB local array limits, truncation reporting in text and metadata, and refusal of oversized records without partial fields. This is strong transparency, though it does not cover authentication, rate limits, or exact error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and then delivers dense, useful behavioral caveats. It is somewhat long and contains generic boilerplate about required inputs and filters, but nearly every sentence contributes operational information that an agent would need.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema endpoint, the description is reasonably complete: it states the data domain, clarifies it is aggregate rather than player-specific, and explains pagination and truncation behavior. It could be more complete by describing the response envelope shape, but the main operational concerns are covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the schema needs no additional explanation, and the 0-param baseline is 4. The description does add cautionary notes about required inputs and declared filters being forwarded as supplied, though those notes feel slightly inconsistent with an empty, additionalProperties-false schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read the upstream market transaction, USD volume and current rental aggregate figures.' It clearly conveys aggregate market scope and explicitly says it is 'not an individual player's history,' but it does not differentiate from relevant sibling tools like market_history or market_rental_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear sense of what the endpoint is for and notes that it is a single logical GET with no auto-fetching of continuation pages, which helps set expectations. However, it never explicitly states when to choose this tool over sibling market tools or when not to use it, so usage guidance is implied rather than direct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_archived_balancesA

Read archived token balances for the explicitly supplied players. Use players: the upstream error message asks for username, but that alias returned HTTP 500 in the recorded probes. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playersYes
usernameNo
token_typeNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so thoroughly: one logical GET, no auto-fetching of continuation pages, filters forwarded without implied effectiveness, 100-row/256 KiB local array limits, truncation reporting, and refusal of oversized records without partial fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence delivers operational value; there is no filler. The most important parameter guidance is front-loaded, and response-limit details are packed into compact, scannable sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with three parameters, no output schema, and no annotations, the description covers purpose, required input selection, request behavior, pagination, and array truncation/refusal. Nothing essential for calling this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description directly resolves the critical players-vs-username ambiguity by explaining that the username alias returned HTTP 500 in probes. It also warns that other declared filters are forwarded as supplied without implying effectiveness. It does not enumerate possible token_type values, leaving a small semantic gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Read archived token balances for the explicitly supplied players,' naming a specific verb, resource, and scope. The word 'archived' differentiates it from nearby siblings such as player_balances without needing to inspect the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context: the tool is for archived balances and requires explicit players, and it instructs the agent to use 'players' instead of 'username' based on measured upstream failures. It does not explicitly name an alternative tool or state when not to use it, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_authoritiesA

Read public purchase, delegation and rental authority assignments for the explicitly supplied players. These are public account names, not credentials; this tool never changes authorities. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playersYes

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so richly: it explicitly says the tool never changes authorities, makes one logical GET request, does not auto-fetch continuation pages, and documents 100-row/256 KiB truncation plus refusal of oversized records without partial fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main purpose is front-loaded and the behavior notes are dense but relevant. Minor structural issues, such as the run-on 'Makes one logical GET request Does not auto-fetch continuation pages' and vague policy boilerplate, keep it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with no output schema, the description covers scope, input semantics, safety, pagination behavior, and result-size limits. It lacks an explicit response-shape description but otherwise gives an agent enough to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only a required 'players' string with no description, so the description must compensate. It adds that players are public account names, not credentials, and must be explicitly supplied. It does not specify whether multiple names are supported or their delimiter/format, and the generic 'other declared filters are forwarded as supplied' phrase is not actionable for a one-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Read public purchase, delegation and rental authority assignments' for explicitly supplied players, making the tool's function clear. It also emphasizes 'never changes authorities', confirming a read-only scope. It does not explicitly name sibling alternatives, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The read-only purpose and 'public ... authority assignments for explicitly supplied players' imply when to use it: to inspect authorities for given players. However, it never states when not to use it or names alternatives among the many delegation/rental siblings, leaving routing partially to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_avatarA

Resolve one player's legacy profile image link, which may be a round RUNI portrait rather than card artwork and is not the avatar-builder character. RUNI card and square artwork variants are documented in library/avatar-artwork.md; this tool resolves only the selected profile link. Reads the official avatar endpoint once logically, inspects its HTTP 302 Location without following it, and returns avatar_url, image_url and redirect_status. Only HTTPS Splinterlands-domain image destinations are accepted. No image bytes are downloaded; the current image URL may change. A returned avatar does not prove the account exists. No credentials or game writes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description fully carries behavioral disclosure and does so richly. It details the single logical HTTP read, the 302 Location inspection without following it, the returned fields, HTTPS domain restrictions, no image download, URL volatility, non-proof of account existence, and no credentials/game writes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and each sentence adds a useful caveat or behavioral detail. It is longer than strictly necessary for a one-parameter tool, but the extra sentences earn their place given there is no output schema and no annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with one parameter and no output schema, the description covers the main behavioral, security, and side-effect concerns well. It names the three return fields, but does not fully define redirect_status values or error behavior, which is a minor completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only defines name as a string with minLength 1, and schema coverage is 0%. The description implies that the name identifies the player whose legacy profile link is resolved, and even notes that a returned avatar does not prove the account exists, which adds behavioral meaning to the parameter. It does not specify account-name format or case sensitivity, but for a single obvious string parameter this is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: "Resolve one player's legacy profile image link." It explicitly distinguishes the tool from RUNI card artwork and the avatar-builder character, so an agent can tell it apart from related player/image tools without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for use: it is for legacy profile image links, not avatar-builder characters or card artwork variants, and points to documentation for those variants. It does not explicitly name sibling tools like player_custom_avatar, but the exclusions are clear enough for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_balancesA

Read current token balances for the explicitly supplied players. The players selector can contain a comma-separated list; token_type is an upstream filter. No balances are totalled or converted. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playersYes
usernameNo
token_typeNo

TDQS

A4.6/5.0
Behavior5/5

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, and it does so thoroughly. It discloses that no balances are totalled or converted, that it makes one logical GET request, does not auto-fetch continuation pages, that array responses are locally limited to 100 rows and 256 KiB with truncation reported, and that oversized records are refused without partial fields. This is exceptional transparency for a read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured, front-loading the core purpose and then adding behavioral caveats. Every sentence adds information, but the density of caveats (truncation, refusal, forwarding filters) makes it slightly harder to parse than necessary. Still, it earns its length by covering critical operational details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with no output schema and no annotations, the description is remarkably complete. It covers input semantics, request behavior, pagination, response limits, truncation reporting, and error handling for oversized records. An agent has everything needed to call this tool correctly and interpret its results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. It explains that 'players' is a comma-separated list selector, 'token_type' is an upstream filter, and that other declared filters are forwarded as supplied without implying effectiveness. This adds meaningful semantics beyond the bare schema, though it doesn't detail the exact format of 'username' or provide examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads current token balances for explicitly supplied players, with a specific verb ('Read'), resource ('token balances'), and scope ('explicitly supplied players'). It distinguishes itself from siblings like player_archived_balances and player_unclaimed_balances by focusing on current balances and explicitly supplied players.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool: when you have explicit player identifiers and need current token balances. It notes that the players selector can be a comma-separated list and that token_type is an upstream filter. However, it doesn't explicitly name alternative tools for different scenarios (e.g., archived balances, unclaimed balances), leaving some routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_burn_event_full_leaderboardA

Read the upstream full burn-event ranking route, whose captured response had 3344 compact rank/player/points rows. This server returns only a bounded leading portion, not the full ranking. The tested limit=2 and offset=2 query did not shorten or advance the response; no paging controls are exposed. Rank and points retain their string wire types. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The leaderboard list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden and meets it in detail: bounded response, ignored limit/offset, no pagination, string wire types, one logical GET, no auto-fetching, 100-row/256 KiB caps, truncation reporting, and refusal of oversized records without partial fields. This is exceptionally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the purpose and then lists one significant warning per sentence, so it is structured and easy to scan. It is verbose for a zero-parameter tool and includes the historical '3344 compact rank/player/points rows' detail that is not needed for invocation, but nearly every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description covers the most important invocation facts: what the request reads, how many rows are returned, how truncation is signaled, and how oversized records fail. It does not specify exact output field names or explicitly route the agent to the sibling that serves the true full ranking, but it is otherwise sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty, so the 0-param baseline applies, but the description still adds useful input-related context: it states that limit/offset do not advance or shorten the response, that no paging controls are exposed, and that declared filters are forwarded as supplied though not guaranteed effective. It does not enumerate actual filter names, which is the main gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and resource: 'Read the upstream full burn-event ranking route.' It also clarifies the server 'returns only a bounded leading portion, not the full ranking,' which tells an agent what the tool really does. The label 'full' makes this slightly confusing, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives behavioral caveats—'no paging controls are exposed' and 'forwards filters as supplied'—but never states when to prefer this endpoint over player_burn_event_leaderboard or any other leaderboard sibling. There is no explicit when-to-use, exclusion, or alternative, so an agent must infer selection from the route name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_burn_event_leaderboardA

Read the burn-event leaderboard and its totals. The captured upstream list had 200 detailed rows; this server returns a bounded leading portion while retaining totals. Points and burn quantities are decimal strings returned unchanged. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The leaderboard list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior5/5

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 an excellent job: it discloses that points and burn quantities are decimal strings returned unchanged, that exactly one logical GET request is made, that no continuation pages are fetched, that the list is capped at 100 rows / 256 KiB, that truncation is reported in text and metadata, and that oversized records are refused without partial fields. This is rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than needed and contains vague filler sentences such as 'Required inputs reflect tool policy as well as measured upstream requirements' and 'Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema.' These add length without clarity, while the genuinely useful behavioral details are buried in the middle.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no parameters and no output schema, the description covers the core behavioral contract well: what is returned, the limits, truncation reporting, and refusal of oversized records. The confusing parameter statements slightly detract from completeness, but overall the agent has enough to call and interpret the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema declares zero properties and additionalProperties=false, yet the description references 'Required inputs' and 'Other declared filters are forwarded as supplied' without defining any. This introduces confusion and implies parameters exist that the schema forbids, adding no useful meaning and actively misleading an agent about the tool's interface.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific verb+resource: 'Read the burn-event leaderboard and its totals.' It further distinguishes this tool from the full-leaderboard sibling by noting it returns only a 'bounded leading portion' while retaining totals, so an agent can tell it apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when a bounded leading portion is acceptable, since it does not auto-fetch continuation pages and is limited to 100 rows. However, it never explicitly names an alternative tool or states when to prefer the full leaderboard, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_burn_event_playerA

Read the public burn-event player record for an explicit username. A missing username was rejected by the upstream; this is not account-existence proof. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does a lot: one logical GET, no auto-pagination, 100-row / 256 KiB local limits with reported truncation, refusal of oversized records, and that a missing username is an upstream rejection rather than account-existence proof. It omits auth requirements and rate limits, so it is not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is correctly front-loaded, but several sentences are boilerplate or irrelevant: 'Required inputs reflect tool policy as well as measured upstream requirements' and 'Other declared filters are forwarded as supplied' refer to filters that do not exist in the schema. That noise dilutes an otherwise tight description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-param read tool with no output schema, the description covers request count, pagination behavior, size limits, truncation reporting, and failure semantics well. Auth/scoping and the shape of the returned record remain unspecified, which keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that the username must be explicit and that a missing value is rejected upstream, but it adds no format or origin detail (e.g., Hive account name) and the note about 'other declared filters' is vacuous since additionalProperties is false with only one param.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Read the public burn-event player record for an explicit username.' This is distinguishable from the family of sibling burn-event tools (player_burn_event_prizes, player_burn_event_leaderboard, player_burn_event_full_leaderboard) as the per-player record. It does not explicitly name those siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'For an explicit username' implies the caller must already know the username, which hints at the usage condition. However, no alternative tool is named and no when-not-to-use guidance is given (e.g., leaderboards vs record). Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_burn_event_prizesA

Read the public burn-event prize summary for an explicit username without inferring a claimable balance. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A3.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers rich behavioral detail: single logical GET request, no auto-fetch of continuation pages, array responses locally limited to 100 rows and 256 KiB with truncation reported, oversized records refused without partial fields, and filters forwarded as supplied without implied effectiveness. This is comprehensive transparency for a read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and then systematically lists behavioral constraints. Each sentence adds a distinct piece of information, though some phrasing like 'Required inputs reflect tool policy as well as measured upstream requirements' is slightly verbose. Overall efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter and no output schema, the description covers return limitations (row/size caps, truncation reporting) and pagination behavior. It does not detail the structure or fields of the prize summary, but that is likely inferable from the tool name and output schema absence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the single required parameter 'username'. The description only says 'explicit username' without adding format, constraints, examples, or validation rules beyond what the schema already provides (a non-empty string). With low coverage, the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read') and resource ('public burn-event prize summary') scoped to an explicit username, and explicitly distinguishes it from balance-related tools by stating 'without inferring a claimable balance.' However, it does not name or differentiate from other burn-event siblings like player_burn_event_leaderboard or player_burn_event_player.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose statement and the caution against inferring a claimable balance, but there is no explicit guidance on when to choose this tool over alternatives or what prerequisites exist. The agent must infer the appropriate context 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.

player_card_airdropA

Read card-airdrop eligibility and recorded claim information for one player. This tool never claims an airdrop. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
categoryNo
usernameYes
include_transactionNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does so thoroughly: one logical GET request, no auto-fetching of continuation pages, no implicit filter effectiveness, 100-row/256 KiB array limits, reported truncation, and refusal of oversized records. This gives an agent a detailed, realistic model of tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence adds distinct operational information, and the core purpose is front-loaded in the first sentence. The behavioral caveats are compactly grouped and not redundant with schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-player read tool with no annotations and no output schema, the description covers the main operational concerns: scope, read-only nature, pagination behavior, filtering caveats, and response size limits. The main gap is the lack of concrete detail on parameter values and return content, but the description is otherwise remarkably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only treats parameters as a class ('Required inputs reflect tool policy... Other declared filters are forwarded as supplied'), without explaining the meaning or expected values of mode, category, or include_transaction. This is useful context but insufficient for an agent to know how to populate the optional parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'Read card-airdrop eligibility and recorded claim information for one player.' It is clearly distinguished from claim-related tools by the explicit disclaimer, 'This tool never claims an airdrop.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the read-only use case clear and explicitly says it never claims an airdrop, which rules out using it for claiming. However, it does not name alternative sibling tools or provide explicit when-to-use/when-not-to-use guidance beyond that single exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_current_rewardsA

Return the current season's glint totals for one account from GET /players/current_rewards. The measured public response carried a season_reward_info object with the season number and a glint figure per format. Some per-format glint fields were observed null on the captured account and carry no declared type; the wild and survival figures were observed as numbers. A missing figure is not evidence that the account earned nothing. One account and one season were captured; no claim is made about which formats carry a figure in general.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavior disclosure. It does this well: it describes the observed response shape (season_reward_info), notes field nullability and missing type declarations, distinguishes observed numeric fields (wild and survival), and explicitly warns that a missing value is not evidence of zero earnings. This is far more candid than typical descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence, and every subsequent sentence adds meaningful caveats about observed response behavior. The description is detailed but compact, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema, the description provides a useful picture of the response object and its uncertainties. It lacks a few practical details, such as exact field names and error behavior for an unknown username, but it is reasonably complete for invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It partially does by saying the tool returns totals 'for one account,' which implies the `username` parameter identifies that account. However, it never explicitly links the required `username` parameter to the account selection, and it does not describe expected username format beyond the schema's minLength.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Return the current season's glint totals for one account from GET /players/current_rewards.' The 'current season' qualifier clearly differentiates it from sibling tools like player_last_season_rewards, and the object of the operation is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'current season' wording implies this tool is for current-season rewards rather than historical ones, but the description never explicitly contrasts this tool with player_last_season_rewards, player_last_focus_rewards, player_unclaimed_balances, or other reward-related siblings. Usage context is implied, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_custom_avatarA

Read the saved custom avatar-builder settings from the official player_avatar endpoint. Returns numeric level separately as data alongside appearance selections and badges. Set render=true to compose the official artwork layers into a PNG; metadata-only calls download no images. Rendered art excludes level text, badges and exemplar level frame/gem overlays. Level text must not be automatically added to artwork; any client level label is separate. Use this for the custom character, not the legacy RUNI/profile image redirect. No credentials or game writes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
renderNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations being provided, the description fully discloses behavior: metadata-only calls download nothing, rendered art omits level text, badges, and exemplar overlays, clients must not add level text, and the operation requires no credentials and performs no game writes. This exceeds typical transparency and leaves very little behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense with no filler. It leads with the core action, then details rendering behavior, exclusions, client policy, and safety properties. Every sentence earns its place while keeping the full description manageable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no output schema and no annotations, this description is remarkably complete. It covers the returned data shape (numeric level, appearance selections, badges), render options, image-exclusion behavior, legacy vs custom scoping, credential requirements, and side effects. An agent has enough information to make the correct call, including how to handle the returned data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate for both parameters. It does explain `render` thoroughly: 'Set render=true to compose the official artwork layers into a PNG; metadata-only calls download no images.' However, it never explicitly explains the `name` parameter; an agent must infer that it is a player or avatar identifier. The semantics are adequate for one parameter but incomplete overall.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read the saved custom avatar-builder settings from the official player_avatar endpoint.' It further differentiates the tool by directing agents to use it 'for the custom character, not the legacy RUNI/profile image redirect,' making its scope unambiguous relative to siblings such as player_avatar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear situational guidance: 'Set render=true to compose the official artwork layers into a PNG; metadata-only calls download no images.' It also states an exclusion: use this for the custom character, not the legacy RUNI/profile redirect. However, it does not explicitly compare with sibling tools like player_avatar beyond referencing the same endpoint, leaving some selection nuance to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_daily_updatesB

Read the public daily-update object, including its upstream enabled flag, announcement and did-you-know data. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full burden and does substantial work: it discloses that it makes one logical GET, does not auto-paginate, caps arrays at 100 rows / 256 KiB, reports truncation in text and metadata, and refuses oversized records without partial fields. It loses a point for boilerplate about 'required inputs' and 'declared filters' that do not correspond to anything in the empty schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the paragraph mixes genuinely useful limit/truncation facts with generic boilerplate about inputs and filters that do not apply here. Roughly a third of the text does not earn its place for this particular tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read with no output schema and no annotations, the description covers the important behavioral ground an agent needs: request count, pagination stance, result-size limits, truncation reporting, and refusal semantics. The only incompleteness is the confusing references to nonexistent inputs and filters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4, but the description actively discusses 'Required inputs' reflecting tool policy and 'other declared filters forwarded as supplied' when the schema has no properties and additionalProperties=false. That mismatch can mislead an agent into expecting parameters that do not exist, so it is scored below the zero-param baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read') and a specific resource ('the public daily-update object'), then enumerates its content (enabled flag, announcement, did-you-know data). This lets an agent identify the tool without opening the schema, though it never differentiates itself from the overlapping player_dyk sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use/when-not-to-use guidance and no named alternative, despite a closely related sibling (player_dyk) appearing in the tool list. The only routing-adjacent statement is a behavioral note about not auto-fetching pages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_decA

Read the global DEC accounting figures. This endpoint has no declared player selector and does not report a player's DEC balance; use player_balances for that question. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly: it discloses pagination behavior ('Does not auto-fetch continuation pages'), truncation limits ('100 rows and 256 KiB'), and failure semantics ('Oversized records are refused without partial fields'). It also clarifies filter forwarding limitations, which is useful 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and each sentence contributes behavior or distinction. Some phrases like 'Required inputs reflect tool policy as well as measured upstream requirements' and 'Other declared filters are forwarded as supplied' are vague and generic, slightly reducing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-input read-only endpoint with no output schema, the description covers purpose, key exclusions, pagination, truncation, and error behavior. Nothing critical is missing for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and the schema is empty, so the baseline is 4. The description adds a relevant clarification that no player selector is declared, which prevents an agent from expecting player-filter inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read the global DEC accounting figures.' It distinguishes itself from player_balances by stating it has no player selector and does not report a player's DEC balance, which is sufficient to differentiate it from a similarly named sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly routes player-balance questions to player_balances, an alternative tool, and notes the absence of a player selector. It does not discuss other alternatives, but for a no-input global figures endpoint this is adequate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_dykB

Read public did-you-know tips and lore for an explicit locale. This does not establish coverage of every locale. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeYes

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so reasonably: it discloses single GET semantics, no auto-pagination, a 100-row/256 KiB local limit, truncation reporting, and refusal of oversized records. It omits auth requirements and rate-limit behavior, but the pagination/limit disclosure is genuinely useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is correctly front-loaded, but the body is padded with boilerplate caveats, including 'Other declared filters are forwarded as supplied' when the schema declares no other filters. A missing period in 'Makes one logical GET request Does not auto-fetch' shows sloppy structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema and no annotations, the description covers the material behaviors (request count, pagination, size cap, truncation). Only the locale format and error behavior remain unaddressed, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single required param (locale) is never explained beyond 'an explicit locale' — no format, casing, or example. The line 'Required inputs reflect tool policy as well as measured upstream requirements' is meta-commentary that adds no actionable meaning for filling the field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read public did-you-know tips and lore') plus a scope constraint ('for an explicit locale'). The resource is distinctive enough to separate it from most siblings, though it never names the adjacent alternatives (e.g. cards_lore) it could be confused with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage-adjacent statement is 'This does not establish coverage of every locale,' which is a caveat, not a when-to-use rule. There is no guidance on when to prefer this tool over siblings, no prerequisites, and no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_energy_purchase_informationA

Read purchased-energy and purchase-tier information for one player. This tool never purchases energy. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It comprehensively discloses behavior: 'never purchases energy,' 'Makes one logical GET request,' 'Does not auto-fetch continuation pages,' 'Array responses are locally limited to 100 rows and 256 KiB,' 'truncation reported in text and metadata,' and 'Oversized records are refused without partial fields.' This is exceptional behavioral detail for a read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and safety but includes two boilerplate sentences ('Required inputs reflect tool policy...' and 'Other declared filters are forwarded as supplied...') that add little value for this specific tool and may confuse given the schema allows no other filters. These could be trimmed without losing meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema, the description covers key operational behaviors: read-only, pagination, response limits, truncation, and refusal policy. It does not describe the shape of purchased-energy/tier data, but that is acceptable without an output schema. The core calling constraints are fully covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, username, is not explicitly defined beyond the schema's minLength. The phrase 'for one player' implies it identifies a player, but no format, example, or additional semantics are provided. The boilerplate about 'Other declared filters' is misleading because additionalProperties is false, so no other filters exist. Schema coverage is 0%, so the description should compensate more.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Read purchased-energy and purchase-tier information for one player.' It also explicitly says 'This tool never purchases energy,' which distinguishes it from any mutation tool and clarifies the read-only intent. This differentiates it well from sibling tools like player_pack_purchases or player_balances.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives context that this is a read-only informational tool, but it does not explicitly state when to use it over alternatives or name any sibling tools. The 'never purchases energy' statement is a constraint rather than usage guidance, and there are no exclusions or selection criteria beyond that.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_inventoryA
Read-onlyIdempotent

Read one account's inventory with an explicit upstream type filter. Land reduced the observed response but retained Token rows, so type is not an exact row-type predicate; other type values are not verified. Optional item_detail_id filters the entire returned array locally before the 100-row/256-KiB result bound, without another request. Reports upstream and matched counts; truncation is explicit and no continuation is fetched. Preserves records, quantities and wire types. Inventory presence or absence does not establish eligibility to stake an item or complete holdings. Power Core item detail ID 322 was absent from the observed inventory response. Separate land_power_core_available and land_power_core_grouped tools expose the dated populated STK-LND-PCR contracts; availability is not a guarantee of staking eligibility. No credentials or mutations. Makes one logical GET with a 2-MiB transport bound.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
usernameYes
item_detail_idNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses many behaviors beyond the annotations: type is not an exact row-type predicate, item_detail_id filters locally before truncation, counts are reported, truncation is explicit with no continuation fetched, one logical GET is made, a 2-MiB transport bound applies, and no credentials or mutations are involved. This is rich, non-contradictory context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and packed with useful detail, but it includes the highly specific and tangential 'Power Core item detail ID 322 was absent' observation and somewhat repeats the staking-eligibility caveat in the later power-core-tool sentence. Not every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no output schema, the description covers invocation-critical details: result bounds, truncation behavior, local filtering, counts, transport limit, GET semantics, and authentication posture. It does not describe the exact response shape, but it supplies enough behavioral detail for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates meaningfully: it explains type's upstream-filter semantics and the Land/Token caveat, and explains that item_detail_id filters the returned array locally without another request. It does not elaborate on username or enumerate valid type values, so it falls short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb ('Read'), a clear resource ('one account's inventory'), and a distinct scoping constraint ('explicit upstream type filter'). This differentiates the tool from sibling tools like player_balances and players_item_details without requiring schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context about when to use the tool (reading one account's inventory with a type filter) and provides an explicit when-not/alternative for staking eligibility: 'Separate land_power_core_available and land_power_core_grouped tools expose...' It does not broadly compare to other inventory-related siblings, but the main exclusion is well covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_last_focus_rewardsB

Return one account's last completed focus from GET /players/last_focus_rewards. The measured public response carried a quest_data object with an id, the account, creation date and block, a name, item counts, a reward quantity and claim details. quest_data.name carries a format such as wild; it does not name an account. quest_data.rewards is a JSON-encoded STRING inside the JSON response and is returned exactly as received; this server does not parse it. Two fields were null on the captured account, so no type is claimed for them. One account was captured.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does substantial work: it warns that quest_data.rewards is a JSON-encoded string returned unparsed, that quest_data.name is not an account name, and that no type is claimed for two null fields. It stops short of disclosing empty/no-reward behavior, errors, or explicit read-only guarantees, but for a GET endpoint this is strong transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and then adds useful response caveats, but the 'measured public response' framing and the sample-size remark ('One account was captured') add uncertainty and are not clearly actionable for an API consumer. It is reasonably sized but could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotation to fill gaps, so the description must serve as the contract. It gives a partial field inventory and important type caveats, but it omits exact JSON key names, empty-result behavior, and any parameter semantics, leaving an agent with incomplete ground truth for response handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema's only parameter, username, has no description (0% schema coverage), and the tool description never explicitly maps 'username' to the account whose focus rewards are returned. The phrase 'one account's' is only an indirect hint, leaving the required parameter's meaning and expected format largely inferred.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence clearly states a specific action and resource: 'Return one account's last completed focus from GET /players/last_focus_rewards.' This is specific enough to identify the endpoint, but it does not explicitly differentiate it from sibling reward tools such as player_current_rewards or player_last_season_rewards.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the intended use case: retrieving a single account's last completed focus. However, it gives no explicit guidance on when to choose this tool over alternatives, no exclusions, and no mention of related reward tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_last_season_rewardsA

Return the previous season's glint totals for one account from GET /players/last_season_rewards. The measured public response carried the same season_reward_info shape as the current-season route, with the season number and a glint figure per format. Three per-format glint fields were observed null on the captured account and carry no declared type; only the wild figure was observed as a number. A missing figure is not evidence that the account earned nothing. One account and one season were captured. This tool is a separate route from the current-season one and no equivalence between them was tested.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A4.1/5.0
Behavior5/5

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, and it does so exceptionally well. It warns that null glint fields were observed, that a missing figure does not mean zero earnings, that only one account and one season were captured, and that no equivalence with the current-season route was tested. This is unusually honest and useful 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main purpose is front-loaded in the first sentence, and every subsequent sentence adds relevant caveats about response shape, nulls, and sample size. It is slightly longer than typical, but the extra length is justified by the unusual uncertainty the description communicates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter GET tool, the description provides route, response-shape context, and important caveats. There is no output schema, so it partially explains return values and field types, but it stops short of listing exact field names or a response example, which would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the single required username parameter, and the description only loosely refers to 'one account' without explaining the username parameter's meaning, format, or constraints beyond what the property name already implies. The description does not meaningfully compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Return the previous season's glint totals for one account from GET /players/last_season_rewards.' It clearly distinguishes this from the current-season route by emphasizing 'previous season' and 'separate route,' so an agent can tell it apart from player_current_rewards and other reward-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this is for previous-season glint totals, and it explicitly says this is a separate route from the current-season one. It does not name the exact sibling tool to use for current-season data or explicitly state when not to use this tool, but the path and season framing make the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_leaderboardA

Read the ranked leaderboard rows for the selected season, leaderboard and format. The default capture returned 20 rows; an explicit modern-format capture returned 26. The undocumented limit=2 and offset=2 probe returned the unchanged default rows, so no pagination controls are exposed. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
seasonNo
leaderboardNo

TDQS

A3.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior, and it does so exceptionally. It states that the tool 'Makes one logical GET request,' does not auto-fetch continuation pages, explicitly reports pagination probe results, and details array limits (100 rows and 256 KiB) plus truncation/refusal behavior. This is rich, specific, and beyond what a typical description offers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the primary purpose, then adds useful behavioral caveats. However, it contains a clunky run-on ('Makes one logical GET request Does not auto-fetch continuation pages.') and could be tightened. Still, every sentence contributes unique information, so it earns a strong score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description covers the essential operational aspects: what data is read, pagination absence, response limits, truncation handling. It omits authentication/rate-limit details, but for a read-only GET-style endpoint these are less critical. The vague remark 'Required inputs reflect tool policy' is a minor gap, but the overall context is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverageiones for its three parameters (format, season, leaderboard). The description only mentions them as a group ('selected season, leaderboard and format') without explaining value formats, defaults, or constraints. The note 'Other declared filters are forwarded as supplied' is too vague to compensate for the lack of parameter-level detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Read the ranked leaderboard rows for the selected season, leaderboard and format.' This is a specific verb+resource pair that conveys the core operation. However, it does not explicitly contrast with closely related siblings like player_leaderboard_with_player or player_richlist, so it lacks explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 mentions filters and pagination but never names a sibling or states the conditions under which one should choose this tool over another. Given the large sibling list (especially player_leaderboard_with_player), this omission leaves selection ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_leaderboard_with_playerA

Read the selected season's leaderboard together with the requested player's separate rank record. Both season and username are required. The upstream returned HTTP 200 with an error object when season was omitted. The separate player record is retained even when the leaderboard list is locally shortened. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The leaderboard list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
seasonYes
usernameYes
leaderboardNo

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so thoroughly: it discloses the one-logical-GET behavior, no auto-fetch of continuation pages, local 100-row/256 KiB limits, truncation reporting, refusal of oversized records, and upstream HTTP 200 error behavior when season is omitted. It also notes the player record is retained even when the leaderboard is shortened. These details go well beyond a simple read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads purpose and packs in many constraints, but it has grammatical issues and missing punctuation ('request Does'), awkward phrasing ('list are'), and some redundancy around required inputs. It could be tightened without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers many operational behaviors (limits, truncation, no continuation fetching) and identifies required inputs. However, it does not describe the response structure or the semantics of the optional format and leaderboard parameters, leaving an agent with gaps for a 4-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It confirms season and username are required and says other declared filters are forwarded as supplied, but it does not define 'format' or 'leaderboard' values or behavior. This leaves significant parameter meaning undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence clearly states the tool reads a season leaderboard plus the requested player's separate rank record, distinguishing it from player_leaderboard and similar leaderboard tools. The verb 'Read' and the resource 'selected season's leaderboard... requested player's separate rank record' are specific. No sibling is named, but the unique combination is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states required inputs and notes that other filters are forwarded as supplied, implying this tool is used when both leaderboard and a player's rank are needed. It does not explicitly contrast with sibling tools like player_leaderboard or state when not to use it, leaving usage to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_lp_claim_historyA

Read liquidity-provider claim history for one player. In paired probes limit=1 returned one leading row; limit=2 with offset=1 repeated the two rows returned without offset. No working page-two cursor is established. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
tokensNo
usernameYes
addressesNo
claim_txsNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it delivers rich behavioral disclosure: it reports observed pagination behavior, states that it makes one logical GET request, does not auto-fetch continuation pages, and explains local truncation at 100 rows/256 KiB with truncation reported in text and metadata, plus refusal of oversized records without partial fields. This is far beyond what a typical description provides and directly informs an agent about side effects and limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose, pagination caveat, request behavior, filter caveat, and truncation policy. It is front-loaded with the core purpose. It could be slightly more structured, but it is not bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only history tool with no output schema and no annotations, the description covers the essential operational context: pagination limitations, request count, truncation, and filter reliability. It doesn't describe the return shape, but without an output schema that would be a larger omission; still, the description is unusually complete for this tool family.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does clarify that username is a required input reflecting tool policy and upstream requirements, and it explains that other declared filters are forwarded as supplied without implied effectiveness. It doesn't define each parameter's format or meaning, but it gives the most important semantic guidance: which inputs are meaningful and which are not guaranteed to filter. Given the 0% coverage, this is strong compensation, though not exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb and resource: 'Read liquidity-provider claim history for one player.' This distinguishes it from the many player_* siblings by specifying the claim-history resource and the single-player scope. It doesn't explicitly name a sibling alternative, but the scope is specific enough to orient an agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete usage context: it notes that limit=1 returned one leading row, limit=2 with offset=1 repeated rows, and that no working page-two cursor is established. This tells an agent that pagination is unreliable and that they should not rely on offset for multi-page reads. It also states that other declared filters are forwarded as supplied but their effectiveness is not implied, which is honest guidance about when not to assume filtering works. It doesn't explicitly name an alternative tool, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_pack_purchasesA

Read the upstream pack-purchase summary for one player and optional edition. This is a read operation and never purchases packs. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
editionNo
usernameYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly. It discloses read-only behavior ('never purchases packs'), request characteristics ('Makes one logical GET request', 'Does not auto-fetch continuation pages'), parameter policy ('Required inputs reflect tool policy...', 'filters are forwarded as supplied; effectiveness not implied'), and response limits ('locally limited to 100 rows and 256 KiB, with truncation reported...', 'Oversized records are refused'). This is extensive and specific.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries a distinct operational fact: purpose, safety, request behavior, pagination, parameter policy, and response limits. It is front-loaded with the core purpose (first sentence) and then lists caveats. There is a minor typo ('GET request Does' missing punctuation), but no wasted words. Slightly verbose, yet justified by the number of behavioral disclosures.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters, no annotations, and no output schema, the description covers safety, request behavior, pagination, parameter effectiveness, and response limits. The main gap is the lack of explicit return-structure detail – it says 'Array responses' but doesn't state what fields/objects the summary contains. Still, the operational context is strong enough for an agent to call and interpret the tool safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It maps parameters to roles: 'one player' (username) and 'optional edition' (edition). It adds critical caveats: required inputs reflect tool policy and measured upstream requirements, and declared filters are forwarded without implying effectiveness. This goes beyond the bare schema (minLength strings) to explain intent and limitations, though it doesn't detail expected value formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Read the upstream pack-purchase summary for one player and optional edition' – a specific verb, resource, and scope. This clearly distinguishes it from sibling tools like purchase_stats, player_inventory, and player_balances, which serve different data needs. An agent can identify the tool's function without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use it when you need a player's pack-purchase summary, and explicitly notes it 'never purchases packs' (so not for purchase actions). However, it does not name alternative tools or provide explicit when-to-use/when-not-to-use guidance relative to siblings like purchase_stats or cards_pack_data_wax. The context is enough for basic routing but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_presale_leadersA

Read presale leader rows and upstream total pack figures. Optional username adds a separate curr_player record, retained outside the bounded leaders list. The full upstream capture had 300 rows and exceeded 256 KiB, but a bounded list can be returned without dropping totals or the requested-player record. The tested limit=2 and offset=2 query had no effect; there is no exposed page-two control. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The players list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo

TDQS

A3.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: single logical GET, no auto-fetch of continuation pages, local row and size limits, truncation reporting, refusal of oversized records, and pagination ineffectiveness. This comprehensive disclosure exceeds what the schema provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and includes very specific test observations (e.g., 'tested limit=2 and offset=2 query had no effect') and upstream capture details that may be unnecessary for an agent. It is front-loaded with the core purpose, but could be tightened significantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description gives a solid sense of the response (leader rows, total pack figures, optional player record) and important behaviors (truncation, refusal, pagination). Missing error scenarios, but adequate for a read-only tool with a single optional parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter, username, is explained as adding a separate curr_player record retained outside the bounded leaders list. Although schema coverage is 0%, the description compensates by providing functional meaning beyond the bare string type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reads presale leader rows and upstream total pack figures, with an optional username to add a separate player record. It is specific about the verb and resource, though it does not explicitly differentiate from sibling leaderboard tools like player_leaderboard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 instead of alternatives. The description mentions policy and parameter forwarding, but does not outline use cases or exclusions, leaving agents to infer applicability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_profileA

Return one account's profile from GET /players/details. This route is ABSENT from the main host's published declaration and was found by probing; it answered publicly with no token, and its selector is name, not username. The captured response was about 4.7 KB and carried the account name, join date, ranked figures, collection power, league, a public guild record, a player_uuid and a season pass flag. Ranked figures appear per format: the wild figures are unprefixed, with modern_, survival_ and foundation_ fields alongside. player_avatar is a JSON-encoded string inside the JSON response and is returned as a string; this server does not parse it a second time. Four fields were null on the captured account, so no type is claimed for them. One account was captured, so which fields are always present is not established beyond the name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly: it discloses the route is absent from the published declaration, was found by probing, requires no token, and reports response size, field prefixes, avatar double-encoding, null fields, and the fact that only one account was captured so presence of fields is not established.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but each sentence adds non-redundant caveats or response details that matter because there is no output schema. It is front-loaded with purpose and endpoint, and the following detail is grouped logically, though it could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schemaFrances, the description fully covers return value shape, encoding quirks, missing fields, and reliability limitations. It also gives a clear parameter meaning and auth expectation, so an agent has enough information to correctly call and interpret the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain the parameter and does: it clarifies the selector is 'name', not 'username'. It does not expand on valid formats beyond the schema's minLength, but for a single string parameter this is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the exact endpoint and states it returns one account's profile. It also distinguishes the tool from sibling player lookups by explicitly noting the selector is 'name, not username'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus the many sibling player_* tools, and there is no explanation of exclusions or alternative routes. The intended use is implicit from the verb and endpoint, but not stated as a decision rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_questsA

Read the quest rows returned for one player. JSON-encoded rewards strings are passed through unchanged. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility, and it delivers: it discloses that rewards strings are passed through unchanged, that it makes one logical GET request, that it does not auto-fetch pages, that filters are forwarded without guaranteed effectiveness, that arrays are capped at 100 rows/256 KiB with truncation reported, and that oversized records are refused without partial fields. This is exceptionally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence adds value: purpose, passthrough behavior, request nature, pagination, policy, filter disclaimer, and limits. It is front-loaded with the core purpose and then details constraints. It is not overly verbose given the amount of behavioral context packed in.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description covers essential operational details: it is a read operation, it has limits, it does not paginate, and it handles oversized records. It does not describe the structure of 'quest rows' or the exact return format, but that may be implied by the name and is not critical for invocation. It is complete for safe and correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. The only parameter is 'username,' and the description does not add much beyond the schema—it merely notes that required inputs reflect tool policy, which is generic. The semantics of 'username' are obvious, but no extra guidance or format is provided. This is a baseline-3 situation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Read') and a specific resource ('quest rows') scoped to 'one player.' This is specific enough to distinguish it from sibling tools like player_inventory or player_balances, and the verb+resource pattern is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives. The description mentions behavioral constraints (e.g., no auto-fetch) but does not say 'use this for quest data, use player_inventory for items' or any similar routing. With many sibling tools, this lack of usage guidance is a clear gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_recent_teamsB

Read the public recent team compositions for one player. The credential-bearing decrypt_key parameter is not exposed; this tool never accepts a decryption key. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
playerYes

TDQS

B3.4/5.0
Behavior3/5

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 several important behaviors: the tool never accepts a decryption key, makes one logical GET request, does not auto-fetch continuation pages, limits arrays to 100 rows/256 KiB, and refuses oversized records. This is valuable, but it omits details such as caching, rate limits, or what 'truncation reported' means exactly in the response. No contradictions with annotations since none exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a solid paragraph of six sentences, each providing unique information. It front-loads the core purpose ('Read the public recent team compositions') and then covers security, request behavior, and limits. No fluff, but it could be slightly more concise by trimming redundant phrasing like 'as supplied' and 'their effectiveness is not implied'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description covers the essential behaviors: public data, no decryption key, single GET, no pagination, response limits, and truncation handling. It does not mention the exact response format (e.g., JSON structure) but that is not required given no output schema. It is largely complete for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains that the 'decrypt_key' parameter is not exposed, clarifies that required inputs reflect tool policy and upstream requirements, and notes that other filters are forwarded but effectiveness is not implied. However, it does not explain the 'format' parameter or provide details on the 'player' parameter beyond the schema's minLength. Still, the description adds significant context beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read') and resource ('public recent team compositions for one player'), which is clear and distinguishes it from siblings like player_inventory. However, it does not explicitly name a sibling as an alternative, and the phrase 'recent team compositions' could benefit from more specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some context (public data, one player, required 'player' parameter) but does not explain when to use this tool versus other player-related tools. There is no mention of alternatives or exclusions, 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.

player_reward_delegation_historyA

Read reward-delegation history for one player. In paired probes limit=1 returned one leading row, but limit=2 with offset=1 returned an empty array despite a populated response without offset. An empty offset result does not establish the end of history. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
tokenNo
typesNo
offsetNo
trx_idsNo
usernameYes
delegate_to_playerNo
delegate_to_playersNo

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and delivers extensive disclosures: single logical GET request, no auto-pagination, local array limits of 100 rows and 256 KiB, truncation reporting, refusal of oversized records, and the limit/offset probe observation that an empty result does not prove end of history. This is unusually transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence contributes unique behavioral information, and the purpose is front-loaded. Minor grammatical issues ('Makes one logical GET request Does not auto-fetch') and a dense single paragraph slightly reduce readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the rich behavioral detail, there are still gaps: the description never explains the meaning of the eight parameters (beyond a generic filter-forwarding note), the exact return shape, or how token-based pagination works. For an 8-parameter tool with no output schema, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description needed to compensate. It offers only general notes that required inputs reflect tool policy and that other filters are forwarded as supplied with no implied effectiveness. It does not explain what username, limit, offset, token, types, trx_ids, delegate_to_player, or delegate_to_players mean or how they combine.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence 'Read reward-delegation history for one player' provides a specific verb and resource, and the qualifier 'for one player' distinguishes it from global or multi-player endpoints. However, it does not explicitly contrast with the sibling player_reward_delegations, so the differentiation is implicit rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for reading reward-delegation history for a single player, but gives no explicit when-to-use or when-not-to-use guidance and names no alternatives. The behavioral notes about pagination and filters are operational, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_reward_delegationsA

Read current reward-delegation rows for one player. Percent values are returned with their original wire types. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that percent values preserve original wire types, that it makes one logical GET request, does not auto-fetch continuation pages, forwards filters without guaranteeing effectiveness, limits array responses to 100 rows/256 KiB with truncation reporting, and refuses oversized records without partial fields. This is exceptionally transparent about behavior beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with the core purpose, then elaborates on behavioral details. It is not overly verbose, each sentence adds value. However, the last sentence about oversized records could be considered an edge case detail, but it is still relevant. Slightly long but well structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 param, no output schema) and the absence of annotations, the description covers all necessary aspects: what it does, how it behaves (pagination, limits, errors), and what inputs are required. It is complete for an agent to call it correctly without surprising behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'required inputs reflect tool policy as well as measured upstream requirements' but does not detail the username parameter semantics beyond the schema's minLength. However, with only one parameter, the description adds context that required inputs are policy-bound, though it could explain what 'username' means (e.g., player account name). Slight gap but adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads current reward-delegation rows for one player, specifying the resource ('reward-delegation rows') and scope ('for one player'). It is distinct from siblings like player_reward_delegation_history (historical) and lists the required input. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading current delegation rows and notes required inputs reflect tool policy, which helps an agent understand constraints. However, it does not explicitly contrast with the sibling player_reward_delegation_history or other delegation tools, but clear context is given for when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_richlistA

Read token-holder rankings and the upstream's total_accounts and total_quantity figures. token_type is required; player optionally adds player_rank. The observed limit parameter returns leading rows. Offsets 0, 2 and 4 repeated the same two leading accounts with limit=2, so offset is not exposed and this is a top-N query, not a complete holder listing. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The richlist list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
playerNo
token_typeYes

TDQS

A4.1/5.0
Behavior5/5

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, and it does so thoroughly. It discloses top-N semantics, no offset support, no auto-fetch of continuation pages, local 100-row and 256 KiB truncation with reporting, and refusal of oversized records without partial fields. This goes well beyond a typical read-tool description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but information-dense, with each sentence contributing a meaningful constraint or behavior. It is front-loaded with the core purpose. Minor grammar issues and a missing period are present, but they do not significantly hurt comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must carry return and edge-case behavior. It covers the returned aggregate figures, top-N rows, truncation, non-pagination, and oversized-record refusal. It could still be clearer about the exact response fields and the meaning of the player parameter, but overall it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does explain that token_type is required and that limit returns leading rows, and it warns that filters may be forwarded without guaranteed effect. However, 'player optionally adds player_rank' is confusing because player_rank is not a schema parameter, and the exact semantics of the player parameter are not clearly stated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific read operation: token-holder rankings plus upstream total_accounts and total_quantity figures. It is not a tautology and gives the required token_type. However, it does not explicitly distinguish itself from the closely named sibling player_richlist_ranking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives strong usage context: limit returns leading rows, this is a top-N query rather than a complete holder listing, and continuation pages are not auto-fetched. It also warns that declared filters are forwarded without implying their effectiveness. It stops short of naming an alternative tool for complete or paginated listings, so it is not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_richlist_rankingA

Read one player's token rank and balance as the upstream reports them. token_type and player are required by this tool; without player the upstream returned only token_type, which is not an account ranking. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes
token_typeYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full burden. It discloses one logical GET request, no auto-fetch continuation pages, local truncation at 100 rows/256 KiB with reporting, and refusal of oversized records without partial fields. This is unusually specific behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and requirements, then packs behavioral caveats into the remaining sentences. It is dense rather than padded, though several edge-case sentences could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only tool with no output schema, the description covers invocation requirements, upstream behavior, pagination, and truncation. It is mostly complete; only return formatting and potential error cases beyond oversized records are left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description only states that both parameters are required and explains why player is needed. It doesn't define accepted token_type values or player identifier format, but the names plus the 'token rank and balance' context are self-explanatory enough for basic invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb and resource: 'Read one player's token rank and balance as the upstream reports them.' This clearly distinguishes it from the sibling player_richlist by emphasizing single-player scope, and avoids tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states that token_type and player are required and explains the upstream consequence of omitting player: 'without player the upstream returned only token_type, which is not an account ranking.' This gives clear usage context, though it does not explicitly name an alternative tool or when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_seasonA

Read one season record by its explicit id, including its end time and reset block value. Omitting id returned HTTP 400. This is GET /season on the main API host, not /players/season; obtain a season id from a leaderboard response if needed. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears the full burden of behavioral disclosure, and it excels. It discloses error behavior ('Omitting id returned HTTP 400'), request semantics ('Makes one logical GET request'), pagination behavior ('Does not auto-fetch continuation pages'), filter reliability ('Other declared filters are forwarded as supplied; their effectiveness is not implied'), and response limits with truncation reporting ('Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata'). This is comprehensive for a simple read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence adds value: it covers purpose, error, endpoint, id sourcing, pagination, filter caveat, and response limits. The main purpose is front-loaded in the first sentence, and the rest is efficient. It is not overly verbose given the amount of operational detail an agent needs. A slight reorganization could improve readability, but overall it's well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema and no annotations, the description is remarkably complete. It specifies the exact endpoint, the parameter's origin, error conditions, pagination behavior, response limits, and truncation reporting. The only minor gap is a lack of explicit mention of authentication or rate limits, but those may be handled at the tool policy level. Given the tool's simplicity, this is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single parameter, 'id', with no description coverage per the signal. However, the description adds substantial meaning: it explains that the id is an explicit identifier for a season record, and instructs the agent on how to obtain one ('obtain a season id from a leaderboard response if needed'). It also notes the consequence of omitting it. This compensates well for the lack of schema-level documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Read one season record by its explicit id, including its end time and reset block value.' This is a specific verb-resource pair that distinguishes it from sibling tools focused on players, transactions, markets, etc. It also explicitly disambiguates from the /players/season endpoint, eliminating confusion with a related but different path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides practical guidance on when to use the tool by explaining how to obtain the required id ('obtain a season id from a leaderboard response if needed') and clarifies the correct endpoint path. While it doesn't explicitly enumerate alternative tools or exclusions, the id-source hint and endpoint correction serve as adequate usage context for an agent. The instruction about omitting id returning HTTP 400 further signals the required precondition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

players_item_detailsA

List the full item-type catalogue returned by GET /players/item_details. The measured public response contained 320 items and was about 134 KB, with id, name, type, nullable sub_type, data, transferable, consumable, inventory, nullable print_limit, total_printed, nullable image_filename, nullable icon_filename, nullable description, nullable rarity and stake_type_id. The id parameter is inert: the no-id response and id=1 response were byte-identical, so this tool does not advertise id as an item lookup filter. The measured response carried no BCX, donor or account-attribution field. Successful metadata responses are cached for 24 hours; provenance reports the route and the original fetch time. This server applies its general 100-row and 256 KB result bounds to the returned array; it does not claim that the bounded response is the full upstream catalogue.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers richly: measured response size, field inventory, inert id behavior verified by byte-identical responses, absence of attribution fields, 24-hour caching, provenance reporting, and result-bound limitations. This is exemplary disclosure beyond a one-line tool description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place: the purpose is front-loaded, the field list substitutes for a missing output schema, and the caveats about id inertness, attribution, caching, and bounds all support correct invocation. There is no filler or tautology.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, this is nearly complete: it tells the agent what data is returned, the field names, response size, caching behavior, provenance, and the limits that prevent treating the result as the full upstream catalogue. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero parameters and 100% coverage, so the baseline is 4. The description usefully explains that the id parameter is not advertised as a lookup filter, which adds meaning around the absence of parameters, but there is no parameter semantics to elaborate further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource ('List the full item-type catalogue returned by GET /players/item_details') and clarifies that the endpoint is not an id lookup. However, the word 'full' is later qualified by the 100-row/256 KB bounds, and it does not explicitly name a sibling tool to sharpen differentiation, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context and explicit exclusions: the id parameter is inert, there is no BCX/donor/account attribution, and the server applies bounded results. It does not name alternative tools or state an explicit 'use this when...' condition, so it is strong but not maximal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_skinsA

Read owned skins with their upstream active flag and public card name by card_detail_id. Missing names have an explicit status. Optional skin and active selectors filter this player's inventory locally before start_index continuation; skin matches the exact upstream name. Results fit within 256 KiB or use local continuation. Fetches the inventory and looks up public card names through the shared 24-hour definition cache (one additional GET on a cold cache). Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The array response is limited to complete rows within 256 KiB. Local filters run before pagination. Use start_index from nextPosition in metadata to continue the same filtered query; each invocation fetches the current inventory. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
skinNo
activeNo
usernameYes
start_indexNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so thoroughly. It discloses that the tool does not auto-fetch continuation pages, fetches the current inventory on each invocation, uses a shared 24-hour definition cache that may cause an extra GET on a cold cache, limits responses to 256 KiB, refuses oversized records without partial fields, and runs local filters before pagination. This is rich, useful behavioral disclosure far beyond what structured metadata provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the core purpose, but it becomes repetitive around the response-size and pagination behavior: 'Results fit within 256 KiB or use local continuation,' 'The array response is limited to complete rows within 256 KiB,' and 'Oversized records are refused without partial fields' all restate similar limits. Every sentence has value, but trimming the redundancy would improve structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no annotations, the description covers the essential invocation context: response constituents, filtering behavior, pagination semantics, cache behavior, and failure handling for oversized records. Some details remain vague, such as the exact status representation for missing names and the meaning of 'by card_detail_id', but the description is sufficiently complete for an agent to use the tool correctly in most cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it largely does. It explains that 'skin' matches the exact upstream namechery, 'active' filters the player's inventory, and 'start_index' is the continuation cursor from nextPosition. The required 'username' parameter is only implied through 'this player's inventory', not explicitly defined, leaving some ambiguity. Overall, the description adds substantial parameter meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read owned skins with their upstream active flag and public card name by card_detail_id.' This clearly identifies the tool's purpose and scope, and the 'owned skins' framing differentiates it from generic skin/card metadata tools. The phrase 'by card_detail_id' could be clearer since that is not a schema parameter, but the overall purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear operational context: optional filters select from the player's inventory, local filters run before pagination, and start_index from nextPosition in metadata should be used for continuation. It also warns that other declared filters are forwarded as supplied without guaranteed effectiveness. It does not name alternative sibling tools or explicitly state when not to use this tool, but the usage guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_unclaimed_balance_historyA

Return one account's unclaimed-balance history for one token from GET /players/unclaimed_balance_history. Both username and token_type are required, and omitting token_type returns HTTP 200 carrying the message that player and token are required rather than an HTTP failure. The response is a bare array; each row carried a reward action, an id, the account, token, type, a string amount, a block number, a transaction id, dates, a destination account and a status. On the captured account SPS returned rows while DEC returned an empty array. Only DEC and SPS were tried on this route. This server applies its general 100-row and 256 KB result bounds to the array and does not claim the bounded answer is the full upstream history.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
token_typeYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and does so thoroughly: it discloses the non-obvious HTTP 200 error response, the exact array structure with field names, observed behavior for SPS vs DEC, scope of testing, and server-side row/size limits that affect completeness. This exceeds typical transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, front-loading the main purpose, then layering essential behavioral details. Every sentence adds value (error behavior, response shape, limits), though some meta commentary (e.g., 'Only DEC and SPS were tried') could be trimmed without losing critical guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description covers required inputs, error behavior, response format, and result limits. It gives enough for an agent to call the tool correctly and interpret the results, including the bounded nature of the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must define parameters. It notes both are required and gives token examples (SPS/DEC), but does not explicitly explain that username is the player account name or that token_type is a token symbol. It partially compensates but leaves semantic definition incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Return') and resource ('one account's unclaimed-balance history for one token'), and ties it to a concrete endpoint. It is unambiguous and distinct from sibling tool 'player_unclaimed_balances' (which likely covers current balances, not history).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states that both username and token_type are required and describes the error behavior when token_type is omitted. However, it does not explicitly differentiate this tool from the closely named sibling 'player_unclaimed_balances', leaving the selection context implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_unclaimed_balancesA

Return one account's unclaimed balances for one token from GET /players/unclaimed_balances. Both username and token_type are required: omitting token_type returns HTTP 200 carrying the message that player and token are required, which is an application error inside a success status rather than an HTTP failure. The measured response carried one row per reward type, each with the account, token, type, a string balance and a last-updated date, alongside a last_claim_date. On the captured account SPS returned rows while DEC and CREDITS returned an empty array, so an empty array means no unclaimed rows for that token, not an error. Only DEC, SPS and CREDITS were tried, so the accepted token_type set is not established.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
token_typeYes

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral disclosure burdencars. It reveals a non-obvious HTTP 200 application error, describes the response row structure ('account, token, type, a string balance and a last-updated date, alongside a last_claim_date'), clarifies that an empty array means no unclaimed rows rather than an error, and honestly admits the accepted token_type set is not established. This is thorough 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every one of the four sentences earns its place: endpoint and purpose, parameter requirement with error behavior, response shape, then empty-array semantics and token-type uncertainty. The most critical information is front-loaded, and there is no filler or repetition of schema contents.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers the essentials: required parameters, error semantics, response row shape, and empty-array interpretation. It does not cover every potential failure mode (e.g., invalid token_type, unknown username), but its honest note that the token set is not established shows awareness of limits and makes this fairly complete for a simple two-parameter endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is minimal (only type and minLength for two parameters, 0% coverage). The description compensates by explaining that both parameters are required, demonstrating the consequence of omitting token_type, and providing observations about limited token_type values (DEC, SPS, CREDITS) while noting the accepted set is unconfirmed. It adds meaning beyond the schema, though it does not fully resolve the possible token_type universe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation: 'Return one account's unclaimed balances for one token' and anchors it to a specific endpoint. This is a specific verb + resource construction, but it does not explicitly distinguish itself from the sibling 'player_unclaimed_balance_history' tool, so it stays 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete operational guidance such as 'Both username and token_type are required' and explains the error behavior when token_type is omitted. However, it never explicitly says when to choose this tool over alternatives or provides exclusion conditions; usage is implied from the purpose rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_voucherA

Read the upstream voucher balance and available figures for one player. Values, including negative values, are returned unchanged without interpretation. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers extensively: values are returned unchanged including negatives, one logical GET request, no auto-pagination, local row/size limits, truncation reporting, and refusal of oversized records. This goes well beyond what the schema alone provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the behavioral caveats are organized, but the description is wordy for a one-parameter read tool and includes boilerplate about 'other declared filters' that do not exist in the schema. Every sentence does not clearly earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers input, pagination, limits, truncation, and refusal behavior thoroughly for a simple read tool with no output schema. It could be more explicit about the response structure beyond 'voucher balance and available figures,' but the essential calling context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to explain the username parameter. It only ties the tool to 'one player' and makes meta statements about required inputs and forwarded filters, while the schema has no declared filters. The username's accepted format or error behavior is not described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: 'Read the upstream voucher balance and available figures for one player.' This clearly identifies the tool's purpose and its single-player scope, and the 'voucher' resource differentiates it from the many player_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The first sentence states the use case explicitly: read voucher balance/available figures for one player. It does not name alternative tools or provide when-not conditions, so it stops short of a 5, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prices_currentA

Read the current public token-to-USD price object from the official price feed. The observed key set is open-ended and may change upstream; values are returned as received. Uses a bounded success cache keyed by exact supplied query, otherwise makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does so exceptionally. It discloses open-ended keys, upstream changes, pass-through values, cache behavior, single-GET semantics, no continuation fetching, row/size limits, truncation reporting, and refusal of oversized records. These are behaviors an agent could not infer from the empty schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is front-loaded and the caveats are transparent, but the description is lengthy and includes generic statements about continuation pages, declared filters, and array limits that seem irrelevant to a zero-parameter price-object endpoint. There is also a wording/line-join error after 'GET request'. It could be tighter while retaining the important cache and truncation details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-input, no-output-schema read, the description covers most behavioral essentials: source, open-ended key set, value pass-through, cache, truncation, and oversized-record refusal. The main gap is that it never sketches the returned object shape, so the agent must infer from the tool name and runtime response what the price object actually looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero parameters, so the schema fully documents inputs and the no-param baseline is high. However, the description contains boilerplate about 'required inputs' and 'other declared filters' that are not present in the schema; this adds noise and could mislead an agent into thinking parameters are accepted. It adds no valuable parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Read'), a precise resource ('current public token-to-USD price object'), and a source ('official price feed'). This clearly separates it from the many sibling tools, none of which claim this price-feed purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes clear context: this is the tool for current public token prices, with no pagination and a bounded cache. It does not name an alternative or explicitly say when not to use it, but no price-feed sibling exists, so the provided context is sufficient for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proposal_listB

Read public proposal rows. limit=2 with offsets 0 and 2 returned distinct pages which concatenated exactly to limit=4,offset=0 in the capture. Each call fetches one page only; vote weights and thresholds remain decimal strings. Other filters are forwarded as supplied. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
filterNo
offsetNo
playerNo
sort_byNo

TDQS

B3.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and succeeds. It discloses one-page-per-call behavior, no continuation fetching, decimal-string representation for vote weights and thresholds, local response limits with truncation reporting, and refusal of oversized records without partial fields. It also honestly warns that filter effectiveness is not guaranteed by the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded, but the description is repetitive: 'Other filters are forwarded as supplied' appears twice, and 'Each call fetches one page only' overlaps with 'Does not auto-fetch continuation pages' and 'Makes one logical GET request.' Tightening these redundancies would make it more scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no output schema and no annotations, the description leaves critical gaps. It never explains what filter, player, or sort_by actually do, what a proposal row contains, or what the response looks like. Pagination and size limits are well covered, but the missing parameter semantics prevent an agent from confidently invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented limit, offset, filter, player, and sort_by parameters. It only explains limit/offset pagination and says other filters are 'forwarded as supplied' without explaining their meaning, accepted values, or effects. 'Required inputs reflect tool policy' is vague and does not help an agent construct correct parameter values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read public proposal rows.' The 'public' qualifier and 'rows' help differentiate it from siblings like proposal_votes and proposal_pending_count, though it doesn't name those alternatives explicitly. This is clear and selectable, but stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives solid pagination usage context: each call fetches one page only and continuation pages are not auto-fetched, so an agent knows to issue repeated calls for more data. However, it does not state when to use this tool versus alternative proposal endpoints, and the filter caveat doesn't clarify which filters are appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proposal_pending_countA

Read the pending-proposal count for an explicit username. This is a read of the reported value, not a vote or proposal submission. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly. It discloses the operation type (read), single GET request, no pagination, array limits with truncation, refusal of oversized records, and clarification that other filters are forwarded without implied effectiveness. This is exceptionally transparent for a tool 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense with useful behavioral details, but each sentence earns its place. The core purpose is front-loaded, followed by relevant constraints and limitations. It is longer than average but remains focused and clear, so it earns a high score without being wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read endpoint with no output schema, the description covers the essential context: operation type, request behavior, data limits, and edge-case handling. It does not explicitly state the return format (e.g., integer count), but that is a minor gap given the simplicity and the breadth of other covered aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate for the only parameter, username. It merely says 'explicit username,' which minimally clarifies it must be specific, but gives no format, domain, or validation details. The note about policy/upstream requirements adds meta-information but not semantic meaning. Overall, it fails to sufficiently enrich the parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb ('Read'), resource ('pending-proposal count'), and scope ('for an explicit username'). It also explicitly disambiguates from vote or proposal submission, making the purpose immediately clear and distinguishable from sibling tools like proposal_votes or proposal_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives some context: it is a read of a reported value, not a submission, and requires an explicit username. However, it does not explicitly name alternative tools or state when not to use this tool. It implies usage (when you need a pending count for a specific user) but lacks explicit when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proposal_votesA

Read recorded votes for an explicit proposal_id. Two pages of two voters matched the first four-row page exactly. Vote weights remain strings and approval remains boolean. This tool never casts or changes a vote. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
proposal_idYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the schema by disclosing that the tool never casts or changes a vote, makes one logical GET request, does not auto-fetch continuation pages, limits array responses to 100 rows and 256 KiB, reports truncation in text and metadata, and refuses oversized records without partial fields. This is rich behavioral context that the annotations (none provided) and schema do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each sentence adds value: scope, pagination behavior, safety guarantee, response limits, and truncation handling. It is front-loaded with the core purpose. Slightly longer than necessary, but every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no annotations, the description covers the essential behavioral contract: what it reads, what it never does, pagination behavior, response limits, and truncation reporting. It doesn't describe the exact return shape, but for a read-only vote lookup with explicit proposal_id, the description is sufficiently complete for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains that proposal_id is the explicit required input, that limit/offset are pagination-related (implied by 'does not auto-fetch continuation pages'), and that other declared filters are forwarded as supplied. It doesn't detail the format of limit/offset, but the core parameter semantics are covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read recorded votes for an explicit proposal_id.' This clearly distinguishes it from sibling tools like proposal_list or proposal_pending_count, and the explicit proposal_id requirement makes the tool's scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states that the tool requires an explicit proposal_id and notes that other declared filters are forwarded as supplied without implying effectiveness. It doesn't explicitly name alternative tools for when to use them, but the context of reading votes for a specific proposal is clear enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

purchase_settingsA

Read public purchase price and fee settings. This makes no purchase and changes no setting. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior5/5

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 clearly states it makes one logical GET request, does not auto-fetch continuation pages, limits array responses to 100 rows and 256 KiB with truncation reporting, and refuses oversized records without partial fields. It also clarifies that declared filters are forwarded as supplied without implying effectiveness. These are specific behavioral traits that an agent needs to know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but every sentence adds value. It front-loads the core purpose, then details safety, request behavior, and response limits. It is structured logically and avoids redundancy, though it could be slightly more concise by merging some clauses. Overall, it is well-organized and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description is exceptionally complete. It covers what the tool does, its side-effect-free nature, request behavior, pagination, response limits, truncation handling, and refusal of oversized records. There is nothing an agent needs to know to call it correctly that is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is 100% vacuously. The description adds a note about 'Other declared filters are forwarded as supplied' which is behavioral context rather than parameter semantics. Since there are no parameters to describe, the baseline is 4, and the description does not need to compensate for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb and resource: 'Read public purchase price and fee settings.' It immediately distinguishes itself from purchase-execution tools by stating 'This makes no purchase and changes no setting,' which differentiates it from siblings like purchase_stats or purchase_uniswap_reward. The purpose is unambiguous and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading settings without side effects, but it does not explicitly state when to use this tool versus alternatives. It says 'This makes no purchase and changes no setting,' which hints at read-only usage, but there is no mention of alternative tools or conditions for selection. This is adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

purchase_statsB

Read public pack and promotional-card statistics. Pack editions may have different fields and nested types; all wire values are retained. This makes no purchase. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior4/5

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 covers several key behaviors: makes no purchase, makes one logical GET request, does not auto-fetch continuation pages, limits array responses to 100 rows and 256 KiB with truncation reported, and refuses oversized records without partial fields. It also notes data structure variability. This is substantial transparency, though it does not detail error handling or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but all sentences contribute relevant information. It front-loads the purpose and then lists behavioral constraints. It is not overly verbose, though it could be slightly tightened by removing the ambiguous filter mention. Overall, it is well-structured and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only stats tool with no parameters and no output schema, the description covers many important aspects: public scope, no purchase, request behavior, pagination, response limits, truncation, refusal, and data structure variability. It is fairly complete. The only gap is the misleading filter reference, which detracts from completeness, and it does not describe the response shape beyond mentioning arrays.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the baseline is 4. However, the description mentions 'Required inputs' and 'Other declared filters are forwarded as supplied,' implying that parameters exist, which directly contradicts the empty schema with additionalProperties:false. This introduces confusion and undermines parameter clarity. The description does not add meaningful parameter semantics and instead conflicts with the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads public pack and promotional-card statistics, with a specific verb and resource. It also clarifies it makes no purchase, which helps distinguish it from purchase-related tools. However, it does not explicitly name sibling tools or contrast its scope, so it falls short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It mentions 'Required inputs reflect tool policy' and 'Other declared filters are forwarded as supplied,' but these are about inputs, not usage context. There is no mention of alternative tools or conditions that would select this one over others, leaving 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.

purchase_uniswap_rewardB

Read public liquidity reward rows for an explicitly supplied blockchain address. Decimal quantities are returned as strings. This never claims rewards and accepts no wallet credentials. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

TDQS

B3.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Given that annotations are entirely absent, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It explicitly states that rewards are never claimed, no wallet credentials are accepted, exactly one logical GET request is made, continuation pages are not auto-fetched, responses are limited to 100 rows and 256 KiB, truncation is reported, and oversized records are refused without partial fields. This is comprehensive and transparent, leaving no ambiguity about the tool's safety and operational characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense block of text containing multiple clauses and qualifiers. It front-loads the core purpose but then dives into many behavioral caveats. Some sentences, such as 'Required inputs reflect tool policy as well as measured upstream requirements' and 'Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema,' are vague and arguably irrelevant given the schema only has one parameter. It is not concise, though it is not excessively long either, earning a middle score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single parameter and no output schema, the description is quite complete in explaining what the agent can expect: read-only behavior, return type for decimal values (strings), response size limits, pagination behavior, and refusal of oversized records. It covers most operational aspects the agent needs to know. However, it does not describe the structure of the returned rows beyond 'liquidity reward rows', nor does it mention how to handle errors beyond truncation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has only one parameter, 'address', with no description in the schema (0% coverage). The description merely restates 'explicitly supplied blockchain address', which adds no meaning beyond the property name. It does not specify address format (e.g., 0x-prefixed), validation rules, or any additional context that would help an agent correctly populate the parameter. With such low schema coverage, the description should compensate, but it fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads public liquidity reward rows for a specific blockchain address, with a specific verb (read) and resource (liquidity reward rows). It distinguishes itself from the misleading 'purchase' prefix by clarifying it is a read operation. However, it does not explicitly differentiate from similar sibling tools like land_liquidity_allrewards, which might also read liquidity reward data, so it stops 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.

Usage Guidelines2/5

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 sibling tools or conditions that would select this one. While it states that it never claims rewards and accepts no credentials, that is behavioral rather than usage routing. There is no 'use this when X, otherwise use Y' guidance, so the agent must infer usage from the 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.

ranked_draws_available_prizesB

Read currently available ranked draw prizes. This static-ish metadata response is cached for 24 hours; the upstream list is unbounded and locally bounded to 100 rows and 256 KiB with an explicit truncation notice. Uses a bounded success cache keyed by exact supplied query, otherwise makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior5/5

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 excellently details caching (24h), local limits (100 rows, 256 KiB), truncation notices, single GET request behavior, no auto-pagination, and refusal of oversized records. This is exceptionally transparent and leaves little ambiguity about side effects or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is approximately 120 words and covers many points, but it repeats the 100-row/256 KiB limit twice ('locally bounded to 100 rows and 256 KiB' and 'Array responses are locally limited to 100 rows and 256 KiB'). The phrase 'Does not auto-fetch continuation pages' is awkwardly appended without a period. It is front-loaded with the core purpose, but could be tightened by removing redundancy and clarifying the input statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with no parameters, the description covers the essential behavioral context: caching, size limits, truncation, and lack of pagination. It does not describe the return format, but no output schema is present. The main gap is the misleading statement about required inputs and filters, which undermines completeness by introducing a false expectation. Otherwise, it is quite thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and 100% coverage trivially. However, the description states 'Required inputs reflect tool policy as well as measured upstream requirements' and mentions 'declared filters are forwarded as supplied,' which strongly implies parameters exist. This directly contradicts the empty schema and misleads the agent into expecting inputs. Since there are no params to explain, the description adds confusion rather than value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads currently available ranked draw prizes, using a specific verb and resource. It is distinct from siblings like frontier_draws_available_prizes and ranked_draws_recent_prizes by the 'ranked' and 'available' qualifiers, though it doesn't explicitly name alternatives. The phrase 'static-ish metadata response' adds useful context about the nature of the data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 its many siblings (e.g., ranked_draws_recent_prizes, frontier_draws_available_prizes). It does not mention when not to use it or what alternatives exist. The caching and truncation details are behavioral, not usage guidance, leaving the agent to infer selection 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.

ranked_draws_completeA

Read completed ranked draws and their verification data. The upstream list is unbounded; this server returns at most 100 rows and 256 KiB with an explicit truncation notice. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The draws list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does so well: it discloses the 100-row and 256 KiB limit, explicit truncation notice, no auto-fetching of continuation pages, forwarding of filters without implied effectiveness, and refusal of oversized records without partial fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is repetitive: the 100-row/256 KiB cap and truncation behavior are stated twice. It also contains grammar issues and a run-on sentence ('Makes one logical GET request Does not auto-fetch'), making it harder to parse than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read endpoint, the description covers the main invocation concerns: limits, truncation reporting, pagination behavior, and oversized-record handling. A minor gap is not explaining the shape of the returned verification data, but the low complexity and absence of an output schema make this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and 100% coverage, so the baseline is 4 and there are no parameters for the description to clarify. The reference to 'declared filters' is somewhat confusing given the empty schema, preventing a higher score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and object: 'Read completed ranked draws and their verification data.' This clearly identifies the resource and differentiates it from sibling tools like ranked_draws_status or ranked_draws_available_prizes, even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance or mention of alternatives. The description gives operational caveats about pagination and truncation, but does not help an agent choose this tool over the many similar ranked_draws_* or frontier_draws_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ranked_draws_entries_completedA

Read completed-entry rows for one explicit numeric ranked draw id. The upstream list is unbounded; this server returns at most 100 rows and 256 KiB with an explicit truncation notice. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral disclosure. It explicitly discloses the 100-row / 256 KiB limit, truncation notice, lack of auto-pagination, one logical GET request, forwarding of declared filters, and refusal of oversized records without partial fields. This is thorough and genuinely useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the description is padded with repetition: the 100-row / 256 KiB limit and truncation notice are stated twice. The sentence about 'Other declared filters' is confusing because the schema has only one required id and no other declared filters. There is also a missing period in 'Makes one logical GET request Does not auto-fetch continuation pages.'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter endpoint with no output schema, the description covers limits, truncation, pagination behavior, and record-size handling. However, it does not describe the shape or fields of the returned completed-entry rows, and the 'other declared filters' sentence creates uncertainty given the minimal schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning by identifying the single 'id' as a numeric ranked draw id and noting that required inputs reflect tool policy and upstream requirements. This exceeds the bare integer schema, though it could have stated the semantics of 'completed-entry' more explicitly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Read'), a precise resource ('completed-entry rows'), and an explicit scope ('for one explicit numeric ranked draw id'). This clearly distinguishes it from broader draw endpoints like ranked_draws_complete or ranked_draws_status without needing to open the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies when to use the tool: when you have one numeric ranked draw id and want completed entries. However, it does not explicitly contrast against sibling tools such as frontier_draws_entries_completed or ranked_draws_recent_prizes, nor does it state 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.

ranked_draws_prize_overviewA

Read the ranked draw prize totals and foil breakdowns. This static-ish metadata response is cached for 24 hours. Uses a bounded success cache keyed by exact supplied query, otherwise makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden. It discloses caching (24h), bounded success cache, not auto-fetching continuation pages, row limits, and truncation behavior. This is transparent and useful, but lacks details on what happens on failure or whether any side effects exist. It also mentions 'static-ish' which is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise and front-loaded with the core purpose. It includes important caveats in later sentences, but without excessive verbosity. Each sentence earns its place, though some technical jargon ('bounded success cache') might be simplified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there are no parameters and no output schema, the description covers the key behavioral aspects an agent needs: caching, page fetching, row limits, and truncation reporting. It is complete for a read-only metadata tool. Minor gaps include lack of example usage or error semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, so there is no schema to describe. The description explains that required inputs reflect tool policy and upstream requirements, and that other filters are forwarded as supplied. This adds meaning beyond the empty schema, ensuring the agent knows there are no parameters to pass.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool reads ranked draw prize totals and foil breakdowns, which is a specific resource. It is somewhat distinct from siblings like ranked_draws_available_prizes, but doesn't explicitly contrast with them. The purpose is clear enough for an agent to know what data this returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions caching and pagination behavior but does not specify when to use this tool vs. alternatives like ranked_draws_recent_prizes or frontier_draws_prize_overview. It implies usage for reading prize overview data but no explicit exclusions or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ranked_draws_recent_prizesA

Read recent ranked draw mints. The upstream mints list is unbounded; this server returns at most 100 rows and 256 KiB with an explicit truncation notice. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The mints list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses critical behaviors: unbounded upstream list, local limits (100 rows, 256 KiB), truncation notice in text and metadata, no auto-fetch of continuation pages, refusal of oversized records, and that filters are forwarded as-is. This is exemplary transparency for a read tool with no schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a bit verbose with redundant statements about limits (mentioned twice), but it front-loads the core action and immediately states key constraints. It could be trimmed, but it's organized and each sentence adds behavioral context. Slightly over-explained but not bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no parameters, and no annotations, the description is remarkably complete: it covers limits, truncation behavior, policy, and refusal of oversized records. An agent knows exactly what to expect and how to handle edge cases. Nothing critical is missing for a tool with no inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there's no schema to add meaning. The description explains what inputs exist (none directly, but mentions 'required inputs' and 'other declared filters' as policy) – but with 0 parameters, the description's role is to clarify that inputs are not accepted in this schema, which it does implicitly. It gets a high score because there's nothing to compensate, but it could be clearer about how filters are supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states it reads recent ranked draw mints, with a clear verb and resource. It distinguishes itself by mentioning the unbounded upstream list and local limits, which is unique among siblings like ranked_draws_status or ranked_draws_available_prizes, but it doesn't directly name a sibling or contrast with frontier_draws_recent_prizes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description clearly states when to use it (to read recent ranked draw mints) and explains the server-side constraints (100 rows, 256 KiB, truncation notice). It implies that this is the read endpoint for mints, and that other filters are not guaranteed effective, providing useful usage context. However, it does not explicitly say when not to use it or point to an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ranked_draws_statusA

Read the current and first-unclaimed ranked draw status. username is optional and is forwarded as an explicit account-scoped selector when supplied; no account is assumed. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does substantial work: it states this is a single logical GET request, does not auto-fetch continuation pages, limits array responses to 100 rows and 256 KiB, reports truncation, and refuses oversized records. This is far clearer than typical tool descriptions, though authentication and exact return shape are not covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence)Skip. Later statements are mostly informative, but 'Required inputs reflect tool policy as well as measured upstream requirements' is vague, and 'Other declared filters are forwarded as supplied' is boilerplate that does not apply to the single-parameter schema. There is also a missing period after 'GET request'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read endpoint with one optional parameter and no output schema, the description covers the key invocation concerns: username handling, single request behavior, pagination policy, and response limits. It does not describe the shape or semantics of the returned status object, which would be needed to fully use the result without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only the parameter name and type for username, with no description (0% coverage). The description compensates by explaining that username is optional, forwarded as an explicit account-scoped selector, and that no account is assumed otherwise. For a single optional parameter, this is adequate semantic guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Read') and a precise resource ('current and first-unclaimed ranked draw status'), which distinguishes it from sibling draw tools like ranked_draws_available_prizes or ranked_draws_complete. It also clarifies that no account is assumed, adding scope specificity beyond the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when the optional username should be supplied and explicitly says no account is assumed, which is useful usage context. However, it does not name alternative tools or state when to prefer this over a sibling such as ranked_draws_complete or frontier_draws_status, leaving the choice to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rental_bidsA

Read public SPSP delegation rental bids with an explicit limit of 1 to 100. Two pages of two transaction IDs matched the first four rows. Quantity bounds worked, including a 10000 exact range. Price filters accepted integer 1 but rejected decimal 0.001 with HTTP 400; values are forwarded without rescaling. A combined player, amount-ascending, maxPrice=1 and quantity-range probe returned only the selected player and in-range quantities. Other combinations remain unmeasured. These are token delegation offers/bids, not card-worker rentals. Quantities, prices and escrow retain their wire string types. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitYes
orderNo
offsetNo
playerNo
maxPriceNo
minPriceNo
maxQuantityNo
minQuantityNo

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden and does so thoroughly. It reveals GET behavior, no automatic continuation-page fetching, local 100-row and 256 KiB limits, truncation reporting, refusal of oversized records, wire string types, and measured upstream quirks such as decimal price rejection with HTTP 400. This is unusually transparent about edge cases and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense and front-loads the core purpose, but it is organized as a stream of empirical notes rather than a clean specification. It has grammatical issues such as 'Makes one logical GET request Does not auto-fetch continuation pages' and 'The data list are locally limited'. Every sentence adds value, but the overall structure could be tighter and clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers a wide range of operational concerns: required inputs, pagination behavior, filter validation, data-size limits, truncation, and refusal of oversized records. It still leaves response field structure mostly unspecified and acknowledges that 'Other combinations remain unmeasured', so it is not fully complete, but it is strong for a tool with this much behavioral nuance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does for several parameters: limit is explicitly bounded, price filters are shown to reject decimals and forward values without rescaling, quantity bounds are noted as functional, and player plus sort ordering appear in a tested combined probe. However, offset and minPrice are not individually explained, and only one sort/order value is hinted at, leaving some parameter semantics unresolved.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: 'Read public SPSP delegation rental bids', which makes the tool's function immediately clear. It also disambiguates the domain by stating 'These are token delegation offers/bids, not card-worker rentals', helping distinguish it from the many rental-related sibling tools. The explicit mention of the 1-to-100 limit further sharpens what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a use case but does not state when to choose this tool over the closely related siblings such as rental_bids_by_player or rental_bids_lowest_price. It warns that these are token delegation bids, not card-worker rentals, but offers no explicit alternative routing or condition-based guidance. An agent still has to infer when this tool is the right one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rental_bids_by_playerA

Read public SPSP delegation bids for an explicit player. Require limit 1-100; one bounded GET, no automatic paging. Two pages of two matched four rows; amount asc/desc changed the observed ordering. Preserve numeric strings and all original fields. These are token delegations, not card-worker rentals. Status filled selected zero-available rows; do not infer filled state from the numeric offer status alone. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitYes
orderNo
offsetNo
playerYes
statusNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers extensively: single bounded GET, no auto-paging, observed ordering quirks, numeric string preservation, status-field caveats, local 100-row/256 KiB truncation with reporting, and refusal of oversized records. This far exceeds typical behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is valuable but poorly organized: the no-auto-paging behavior is stated twice ("no automatic paging" and "Does not auto-fetch continuation pages"), which violates the every-sentence-earns-its-place rule. There are also grammar and punctuation issues ("Require limit 1-100", "Makes one logical GET request Does not auto-fetch", "The data list are", and the cryptic "Two pages of two matched four rows"). A single dense paragraph without structure hurts scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no annotations, the description covers the high-risk operational aspects well: paging behavior, filter effectiveness, status semantics, truncation reporting, and oversized-record handling. It does not explicitly describe the overall return shape or error/success codes, but the field-preservation and truncation notes bring it close to complete for a read-only endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does: it reinforces limit bounds (1-100), explains the status semantics (do not infer filled state), and broadly warns that extra filters like sort/order/offset are forwarded without guaranteed effectiveness. It does not individually document every parameter's exact meaning, but it covers the critical ones and manages expectations for the rest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb+resource+scope: "Read public SPSP delegation bids for an explicit player." It also disambiguates from confusing domains with "These are token delegations, not card-worker rentals," which separates it from the many rental/delegation sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this reads only public bids for an explicit player, requires limit 1-100, and performs a single bounded GET with no paging. It also warns that "Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema" and cautions against inferring filled state from status. It stops short of explicitly naming a sibling alternative, but the "not card-worker rentals" exclusion is strong contextual direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rental_bids_lowest_priceA

Read the public V3 delegation rental bids lowest-price endpoint. Preserve its price string, or nullable price allowed by the official schema. No unit conversion, annualization, quote execution or card-rental inference is performed. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses preservation of the price string, absence of transformations, single GET request, no auto-fetching of continuation pages, local row/size limits with truncation reporting, and refusal of oversized records. It does not mention authentication or rate limits, but as a public endpoint this is acceptable. The disclosure is detailed and goes beyond a generic read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph with no wasted words; each sentence adds a specific behavioral constraint or clarification. It front-loads the main purpose and then lists limitations. It is efficient and well-structured, though slightly long due to the number of caveats, but each is relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter read endpoint, the description covers the essential behavioral aspects: what it does, what it avoids, pagination behavior, response limits, and truncation reporting. The only gap is the confusing mention of 'required inputs' and 'declared filters' that do not align with the empty schema. There is no output schema, so the description need not explain return structure. Overall, it is sufficiently complete for an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero properties, so there are no parameters to document. However, the description mentions 'Required inputs reflect tool policy' and 'Other declared filters are forwarded as supplied', implying the existence of inputs/filters that are not present in the schema (which also has additionalProperties: false). This is confusing and potentially misleading, as the schema explicitly disallows any parameters. The description does not clarify what these inputs are, so it fails to add meaningful parameter semantics and introduces ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads the 'public V3 delegation rental bids lowest-price endpoint', specifying a precise verb, resource, and scope. It distinguishes itself from sibling tools like 'rental_bids' and 'rental_offers_lowest_price' by explicitly mentioning 'lowest-price' and 'delegation rental bids', making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading lowest-price rental bids but does not explicitly contrast with alternatives or state when to prefer this tool over siblings. It mentions what it does not do (no unit conversion, no pagination) but lacks clear when-to-use/when-not-to-use guidance. The absence of explicit alternatives leaves the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rental_offersA

Read public SPSP delegation rental offers with an explicit limit of 1 to 100. Two pages of two transaction IDs matched the first four rows. Quantity bounds worked, including a 10000 exact range. Price filters accepted integer 1 but rejected decimal 0.001 with HTTP 400; values are forwarded without rescaling. A combined player, amount-ascending, maxPrice=1 and quantity-range probe returned only the selected player and in-range quantities. Other combinations remain unmeasured. These are token delegation offers/bids, not card-worker rentals. Quantities, prices and escrow retain their wire string types. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitYes
orderNo
offsetNo
playerNo
maxPriceNo
minPriceNo
maxQuantityNo
minQuantityNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations to lean on, the description takes on the full burden and does it well. It discloses the single-GET behavior, absence of auto-pagination, local row/size limits, refusal of oversized records, wire string types, and forwarding behavior for filters. This is unusually rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The tool's purpose and key limitations are front-loaded, and most sentences contain useful information. However, several empirical probe anecdotes ('Two pages of two transaction IDs matched the first four rows', 'A combined player... probe returned only...') are verbose and could be condensed into a single caution without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, no output schema, and no annotations, the description covers many critical operational details: pagination, truncation, filter caveats, type handling, and size limits. It falls short only in not clarifying sort/order/offset usage or response structure, but it is far more complete than a typical MCP tool description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning, and it does for limit, quantity bounds, price filters, player, and sort direction. It does not fully define sort/order/offset semantics, but it adds substantial value beyond the raw schema, especially the note that values are not rescaled and that other filters are forwarded without implied effectiveness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Read public SPSP delegation rental offers' which names the verb, resource, and scope precisely. It further distinguishes itself with 'These are token delegation offers/bids, not card-worker rentals,' which helps an agent tell it apart from related rental tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: explicit limit range, no auto-fetching of continuation pages, and a strong caveat that filters are forwarded without implied effectiveness. It does not explicitly name sibling alternatives like rental_offers_by_player or rental_offers_lowest_price, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rental_offers_by_playerA

Read public SPSP delegation offers for an explicit player. Require limit 1-100; one bounded GET, no automatic paging. Two pages of two matched four rows; amount asc/desc changed the observed ordering. Preserve numeric strings and all original fields. These are token delegations, not card-worker rentals. Status filled selected zero-available rows; do not infer filled state from the numeric offer status alone. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitYes
orderNo
offsetNo
playerYes
statusNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and provides substantial detail: one GET, no auto-paging, 100-row/256 KiB limits, truncation reporting, oversized-record refusal, numeric-string preservation, filter pass-through caveats, and a status interpretation warning. However, some clauses are cryptic, such as 'Two pages of two matched four rows,' which reduces clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense, rambling block with redundancy: 'one bounded GET, no automatic paging' is repeated as 'Makes one logical GET request Does not auto-fetch continuation pages.' The cryptic 'Two pages of two matched four rows' reads like test-observation debris rather than useful guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, it gives strong request, limit, and truncation behavior, but it never clearly states the response shape or field list. Optional parameter semantics are incomplete, and the unclear 'Two pages...' clause adds confusion instead of completing the context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It adds meaning for player, limit, status, and sort/order ordering, and warns that filters are forwarded without implied effectiveness. However, offset is left unexplained, and accepted values for sort, order, and status are absent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and target: 'Read public SPSP delegation offers for an explicit player.' It also explicitly distinguishes this from 'card-worker rentals,' which helps separate it from the many rental/delegation sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly signals explicit-player lookups and explains the required limit and bounded single-request behavior. It gives a when-not signal ('not card-worker rentals'), but it does not name alternative sibling endpoints or state when a broader rental/offers tool is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rental_offers_lowest_priceA

Read the public V3 delegation rental offers lowest-price endpoint. Preserve its price string, or nullable price allowed by the official schema. No unit conversion, annualization, quote execution or card-rental inference is performed. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and excels. It discloses exact response limits (100 rows, 256 KiB), truncation reporting, refusal of oversized records, no auto-fetch of continuation pages, preservation of price strings, and lacks inference. This is exceptionally transparent and beyond typical descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and covers many behavioral specifics, but every sentence adds meaningful information. It is front-loaded with the main purpose and then details limitations. While not terse, it avoids redundancy and earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only endpoint with no output schema and no annotations, the description covers crucial operational details (limitations, truncation, refusal policy). It does not describe the full response structure, but it highlights key fields like price string. Given the tool's simplicity (zero parameters), the description is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero parameters, so the baseline is 4, but the description mentions 'Required inputs' and 'declared filters' which could mislead an agent into thinking parameters exist. It does not clarify that the input schema accepts no properties, creating ambiguity. This reduces value; the description does not add meaning beyond the empty schema and may cause confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource ('public V3 delegation rental offers lowest-price endpoint') with a specific verb ('Read'). It distinguishes from siblings by naming 'lowest-price' and 'V3 delegation', which is enough to differentiate from tools like rental_offers or rental_bids_lowest_price.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating what it does not do (no unit conversion, annualization, quote execution, or inference), which suggests using this only for raw lowest-price data. However, it does not explicitly name alternatives or provide when/when-not conditions, leaving the agent to infer from the purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rentals_by_bidA

Read legacy SPSP delegation rental records for an explicit bid transaction ID and limit of 1 to 100. A populated bid response matched the corresponding player rental record. Preserve numeric wire strings. Paging and sort effectiveness are not established; one bounded response, no automatic continuation. These are token delegation rentals, not worker-card rentals. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
bidYes
sortNo
limitYes
orderNo
offsetNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and meets it: it discloses one logical GET, no auto-continuation, unreliable paging/sort, 100-row/256 KiB local cap, truncation reporting, refusal of oversized records, and preservation of numeric wire strings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description repeats the same behavioral ideas: 'no automatic continuation', 'one bounded response', 'Makes one logical GET request', and 'Does not auto-fetch continuation pages' are near-duplicates. It is front-loaded but not tightly written.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameter-rich endpoint with no annotations or output schema, the description covers invocation inputs, limits, truncation behavior, and pagination reality. It does not specify the response object shape, but that is partially offset by the explicit mention that truncation is surfaced in text and metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description compensates for bid ('explicit bid transaction ID') and limit (1-100), plus a blanket warning that other declared filters are forwarded with no implied effectiveness. However, sort, order, and offset receive no individual semantic explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear verb and resource: 'Read legacy SPSP delegation rental records' for 'an explicit bid transaction ID'. It also explicitly disambiguates from sibling endpoints with 'These are token delegation rentals, not worker-card rentals,' which lets an agent distinguish this from rental_bids, rentals_by_player, and similar tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool is scoped to a bid transaction ID, and the description includes a when-not signal ('not worker-card rentals'). It does not name an alternative endpoint to prefer in other cases, but the bidding context and exclusion are clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rentals_by_playerA

Read legacy SPSP delegation rental records for an explicit player and limit of 1 to 100. One populated record was observed. Paging and sort behavior are not yet independently established. Preserve quantity, paymentAmount and pricePerToken as wire strings; these are token delegation rentals, not worker-card rentals. Returns one bounded response without automatic continuation. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitYes
orderNo
offsetNo
playerYes

TDQS

A4.6/5.0
Behavior5/5

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, and it does so thoroughly. It discloses that paging and sort behavior are not yet independently established, that the response is bounded without automatic continuation, that it makes one logical GET request, that data is locally limited to 100 rows and 256 KiB with truncation reported, and that oversized records are refused without partial fields. It also warns that other declared filters are forwarded as supplied without implied effectiveness. This is exemplary transparency for a read 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized, front-loading the core purpose and constraints. Every sentence adds information, and the warnings about paging, truncation, and wire strings are valuable. It is slightly long but justified given the lack of annotations and the need to disclose behavioral nuances. The structure is logical: purpose, constraints, observed behavior, data handling, and request behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 params, no annotations, no output schema), the description is remarkably complete. It covers the resource type, required inputs, limit bounds, paging behavior, truncation limits, refusal behavior, and data preservation requirements. An agent has enough information to call this tool correctly and interpret the response appropriately. The only minor gap is not naming sibling tools for alternative rental types, but the description's own clarity compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains that 'player' and 'limit' are required inputs reflecting tool policy and measured upstream requirements, and that other declared filters are forwarded as supplied without implied effectiveness. It also clarifies that quantity, paymentAmount, and pricePerToken should be preserved as wire strings. However, it doesn't add detail on the exact meaning of 'sort', 'order', or 'offset' beyond what the schema provides, though the schema itself is fairly self-explanatory for those. The description adds meaningful context for the required parameters and the filter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads legacy SPSP delegation rental records for an explicit player with a limit of 1 to 100. It distinguishes this from worker-card rentals and names the resource type. The verb 'Read' plus the specific resource and constraints make 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.

Usage Guidelines4/5

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: for legacy SPSP delegation rental records, with a limit of 1 to 100, and notes that paging/sort behavior is not yet established. It doesn't explicitly name alternative tools for other rental types, but the distinction from worker-card rentals and the explicit player requirement imply the usage context. It could be stronger by naming sibling tools like rentals_v3_by_player or rental_offers_by_player as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rentals_v3_by_playerA

Read public SPSP delegation rental records for an explicit player. Require limit 1-100; one bounded GET, no automatic paging. Two pages of two matched four rows; amount asc/desc changed the observed ordering. Preserve numeric strings and all original fields. These are token delegations, not card-worker rentals. Borrower/lender roles were checked in both directions. Pending and active selected numeric status 0 and 1 in the sample. Counterparty partial matching was verified on the player route only; other sort/status values remain unmeasured. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNo
sortNo
limitYes
orderNo
offsetNo
playerYes
statusNo
counterpartyNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It discloses pagination behavior (one GET, no auto paging), limits (100 rows, 256 KiB) and truncation/refusal handling, preserves numeric strings, and warns that some filters may be ineffective. Includes some noisy test observations (e.g., 'Two pages of two matched four rows'), but overall gives useful 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long and rambling, mixing testing observations ('Two pages of two matched four rows; amount asc/desc changed the observed ordering') with operational details. Repeats the no-paging fact twice. Not front-loaded beyond the first sentence; much of the content is tangential or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no annotations, and no output schema, the description should provide full parameter semantics and return expectations. It covers pagination and limits but omits explanation for offset, sort, order, and counterparty, and never describes the return structure. The warning that filters may be ineffective is not a substitute for documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all 8 parameters. It only vaguely addresses role and status (e.g., 'Borrower/lender roles were checked', 'status 0 and 1'), and explicitly states that other filters are 'forwarded as supplied; their effectiveness is not implied'. Offset, sort, order, and counterparty semantics are largely unexplained or dismissed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read'), resource ('public SPSP delegation rental records'), and scope ('for an explicit player'). Clearly distinguishes from siblings like rentals_v3_by_role and clarifies it is token delegations, not card-worker rentals. An agent can tell what this tool does and what it does not cover.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies when to use it: when querying rentals for a specific player. Mentions it is token delegations, not card-worker rentals, providing a distinction. However, it does not explicitly name alternative tools like rentals_v3_by_role or give a when-not-to-use condition, only indirect context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rentals_v3_by_roleA

Read public SPSP delegation rental records for an explicit player and borrower/lender role. Require limit 1-100; one bounded GET, no automatic paging. Two pages of two matched four rows; amount asc/desc changed the observed ordering. Preserve numeric strings and all original fields. These are token delegations, not card-worker rentals. Borrower/lender roles were checked in both directions. Pending and active selected numeric status 0 and 1 in the sample. Counterparty partial matching was verified on the player route only; other sort/status values remain unmeasured. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
sortNo
limitYes
orderNo
offsetNo
playerYes
statusNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it delivers extensively: no automatic paging, one bounded GET, local truncation at 100 rows and 256 KiB, oversized records refused, numeric strings preserved, status sample values 0 and 1, and sort/order effects on observed ordering. It also discloses that other declared filters are forwarded as supplied without implied effectiveness, which is transparent about measured limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense and front-loaded with purpose, but it is written as a run-on block with repetition: 'no automatic paging' and 'Does not auto-fetch continuation pages' say the same thing twice. Some phrasing is cryptic, such as 'Two pages of two matched four rows,' and the lack of structure makes key caveats harder to parse. It earns a middle score because every sentence carries some useful information, but the organization is poor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and seven parameters, the description is unusually thorough: it covers request boundaries, local limits, truncation reporting, field preservation, route-specific verification limits, and effectiveness caveats. It does not enumerate output fields or fully specify all parameter value formats, so it is not perfect, but it provides enough behavioral context for an agent to invoke the tool and interpret results with reasonable confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the schema's lack of meaning. It explains the required inputs (player, role, limit), enforces limit 1-100, gives observed status values, and notes how sort/order affected ordering. It also clarifies that declared filters are forwarded as supplied but their effectiveness is not guaranteed. It does not fully define every parameter like offset or exact role values, but it adds substantial semantic value beyond raw schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read public SPSP delegation rental records for an explicit player and borrower/lender role.' It also explicitly distinguishes the tool from card-worker rentals, which helps disambiguate it from other rental/delegation endpoints 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.

Usage Guidelines4/5

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 the tool: it applies to SPSP token delegation rentals, requires explicit player and role, and explicitly states what it is not ('not card-worker rentals'). It also notes measured caveats such as counterparty partial matching being verified only on the player route, which helps set expectations. However, it does not explicitly name alternative sibling tools or give a direct when-not-to-use statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tournament_battlesA

Read tournament matchups by id and round, scoped to a player or swiss_group. The captured group number 1 returned 21 matchups, and an explicit player returned six. Omitting both, group 0, or username alone returned empty; username is not a substitute for player. Nested battle references and participant records remain intact. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
roundYes
playerNo
reverseNo
usernameNo
swiss_groupNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that it makes one logical GET request and does not auto-fetch continuation pages, plus array limits and truncation behavior, and that omitted filters may return empty. This is good but doesn't cover all edge cases like what happens with invalid ids.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is dense but well-structured, with important scoping info first, then behavioral notes. Each sentence adds new information, though it's a bit long, it remains concise for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 params, 2 required, and no output schema, the description covers the key usage constraints and response behaviors, but could explain what a 'nested battle reference' is and how results are formatted. However, it touches on most essentials.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must add meaning. It explains that player and swiss_group are scoping filters, and username is not a substitute for player. However, it doesn't explain reverse or other filters, leaving some params undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it reads tournament matchups by id and round, with optional scoping to player or swiss_group, which is a specific verb+resource and distinguishes it from general battle tools. However, it doesn't name a specific sibling to differentiate from, though the scope is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context on required inputs (round, id) and notes that username alone is insufficient, suggesting it should be used with player. It implies when to use it (to get matchups) but doesn't explicitly mention when not to use it or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tournament_cancelledA

Read cancelled tournament summaries. The capture had 200 rows; no working pagination has been established. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it is unusually specific. It discloses no working pagination, one logical GET request, no auto-fetching of continuation pages, local array limits (100 rows/256 KiB), truncation reporting, and refusal of oversized records without partial fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and mostly actionable, with the purpose sentence front-loaded and limitations listed compactly. It loses a point for the missing period between 'Makes one logical GET request' and 'Does not auto-fetch continuation pages' and for the vague 'Required inputs reflect tool policy' sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema and no annotations, the description explains pagination behavior, truncation, refusal policy, and upstream filter forwarding. It does not describe the shape of returned summaries or how username filters results, but 'summaries' and the schema cover the essentials.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, username, is self-explanatory, but schema coverage is 0% and the description does not define its role, format, or optionality beyond saying inputs 'reflect tool policy' and that filters are forwarded as supplied. It partially compensates for the missing schema documentation but leaves the main parameter's semantics implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read cancelled tournament summaries.' The 'cancelled' qualifier distinguishes this tool from sibling tournament endpoints like tournament_upcoming, tournament_in_progress, and tournament_completed, though it does not name or explicitly contrast those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended usage context is clear: use this tool when you need cancelled tournament summaries. It does not explicitly list alternatives or when-not-to-use conditions, but the qualifier 'cancelled' plus the sibling list makes the appropriate selection unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tournament_completedA

Read completed tournament summaries. The captured upstream list had 200 rows. An undocumented limit=2 and offset=2 request returned the unchanged 200 rows, so no paging controls are exposed and the bounded result is not a complete archive. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers: one logical GET, no paging controls, no auto-fetch of continuation pages, array results capped at 100 rows/256 KiB with truncation reported, and oversized records refused without partial fields. It even documents probe results (limit=2/offset=2 returned 200 unchanged), which the schema alone could never convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is strong, and behaviors are grouped in a sensible order. But the text is wordy and somewhat repetitive, e.g., the 200-row probe detail could be compressed to 'no paging; the result is a fixed bounded set.' There is also a missing period after 'request.'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is thorough about boundaries: no paging, no auto-fetch, truncation, and refusal of oversized records. However, with no output schema, it leaves return-shape information vague, and it does not clarify how username affects results or what a completed tournament summary contains. An agent can call it cautiously but cannot fully predict the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter, username, with 0% description coverage, and the description never explains what username means, whether it is optional, or how it filters completed summaries. Phrases like 'Required inputs reflect tool policy' and 'effectiveness is not implied by the schema' are caveats rather than semantic guidance, and may confuse an agent deciding whether to send username.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with 'Read completed tournament summaries.' — a specific verb, resource, and completion state. This clearly distinguishes it from sibling tools like tournament_upcoming, tournament_in_progress, and tournament_cancelled without needing their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear scope (completed tournaments) and implies that the bounded 200-row result is not a complete archive, so an agent knows not to use it for exhaustive history. However, it never names alternatives or gives explicit when-to/not-to-use conditions, leaving some routing burden on the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tournament_findA

Read tournament details by explicit id. Players are locally bounded while rounds, num_players and other fields are retained. The tested player_limit=2 still returned all 19 players, so it is not an effective upstream bound. No credentials are accepted. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The players list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
usernameNo
last_roundNo
swiss_groupNo
player_limitNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden and does so thoroughly. It discloses that no credentials are accepted, that it makes one logical GET request without auto-fetching continuation pages, that player_limit is not an effective upstream bound, that other filters are forwarded without guaranteed effectiveness, and that local truncation limits and refusal behavior apply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and purposeful, front-loading the core purpose before behavioral caveats. Each sentence contributes unique information, such as pagination behavior, truncation thresholds, and filter caveats. Minor structural issues like the run-on 'Makes one logical GET request Does not auto-fetch continuation pages' and slightly cryptic policy wording keep it from a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description covers the main invocation risks: auth requirements, pagination, parameter effectiveness, local limits, truncation signaling, and oversized-record handling. It does not describe the full return structure or give per-parameter explanations for all optional filters, but the delivered context is sufficient for safe use in most cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does add meaningful value by identifying id as the required lookup key and by explicitly calling out player_limit as ineffective based on a measured test. It also clarifies that other declared filters are forwarded as supplied. However, it does not explain username, last_round, or swiss_group beyond their schema names, leaving their exact meaning and format to inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence 'Read tournament details by explicit id' names the exact verb, resource, and lookup key. This differentiates the tool from list/status siblings like tournament_upcoming and tournament_completed, and the 'explicit id' wording separates it from tournament_find_brawl-style variants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than explicit: an agent can infer it is for retrieving tournament details when an id is already known. However, the description gives no explicit when-not guidance or alternative endpoints, and does not mention siblings such as tournament_find_brawl or tournament_in_progress that might be relevant in related contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tournament_find_brawlA

Read brawl details for an explicit tournament id and guild_id. Omitting guild_id returned an error. Players are locally bounded while guilds and brawl rules remain intact. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The players list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
guild_idYes
usernameNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full transparency burden. It discloses that the tool makes one logical GET request, does not auto-fetch continuation pages, limits the players list to 100 rows/256 KiB, reports truncation in text and metadata, and refuses oversized records without partial fields. Some phrasing is vague, but the behavioral coverage is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with its primary purpose, which is good. Yet it includes meta commentary ('Required inputs reflect tool policy as well as measured upstream requirements') and confusing phrasing ('Players are locally bounded while guilds and brawl rules remain intact'), and contains a missing period. It could be tightened without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotation support, so the description must provide enough context to call the tool correctly. It covers required inputs, pagination behavior, truncation reporting, and oversized-record handling, but it never explains the shape of returned brawl details beyond player-list limits, leaving some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that id is a tournament id, guild_id is required, and optional filters are forwarded as supplied with no implied effectiveness. However, it does not explicitly define the username parameter or provide format/value examples, leaving part of the semantic burden unmet.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Read brawl details for an explicit tournament id and guild_id,' which clearly identifies the verb, resource, and required parameters. It distinguishes this exact-lookup from search-style siblings like tournament_find and tournament_upcoming, though it stops short of explicitly naming an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (with explicit tournament id and guild_id) and warns that omitting guild_id returns an error. However, it gives no explicit when-not-to-use guidance or references to alternatives, leaving the agent to infer selection among the large sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tournament_in_progressA

Read in-progress tournament summaries. Optional username is forwarded only when supplied. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and exceeds it: it states this is one logical GET, does not auto-fetch continuation pages, applies 100-row/256 KiB array limits, reports truncation in text and metadata, and refuses oversized records without partial fields. It also discloses that filters are forwarded without implying their effectiveness. No annotation contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and uses dense, mostly single-purpose sentences. Some boilerplate phrases like 'Required inputs reflect tool policy...' and 'Other declared filters are forwarded...' add little when the schema has no required inputs and only one optional filter, and there is a missing period between 'logical GET request' and 'Does not'. Still, nearly every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with one optional parameter, no annotations, and no output schema, the description is unusually complete: it covers request semantics, filtering caveats, pagination, truncation, and oversized-record refusal. An agent has enough information to call it correctly and interpret non-standard responses.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, username, is documented in the schema only by name and type, and schema description coverage is 0%. The description adds useful facts: the parameter is optional and forwarded only when supplied, and filters are passed through without implied effectiveness. However, it does not explain how username affects the returned summaries, leaving the agent to infer its semantic impact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Read'), a specific resource ('in-progress tournament summaries'), and a status filter that distinguishes it from siblings like tournament_upcoming, tournament_completed, and tournament_cancelled. It expands meaningfully beyond the bare tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'in-progress' gives a clear contextual trigger, and the optional username sentence indicates one conditional use case. However, it does not explicitly name alternative tools or state when to prefer a sibling such as tournament_completed, tournament_cancelled, or tournament_upcoming.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tournament_mineA

Read the upstream mine listing for an explicit username. A tournament creator returned 200 rows; two player accounts, including a known entrant, returned empty arrays. Do not present this route as a player's complete participation history. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral burden and excels. It discloses that results vary by user role (creator returns 200 rows, players returned empty arrays), that it makes one logical GET request, does not auto-fetch continuation pages, locally limits arrays to 100 rows and 256 KiB, reports truncation, and refuses oversized records. This is far beyond typical tool descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded, starting with the core purpose. Every sentence adds valuable caveats or behavioral details without fluff. The structure flows logically from purpose to observations to limitations to error handling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single parameterjá no output schema and no annotations, the description covers the main call context: response truncation, final state, pagination, and refusal behavior. However, it never describes the shape or meaning of the returned array beyond 'mine listing', and the exact content structure is left vague, which is a minor gap for agents that need to process results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents username with minLength 1)Skip, and schema description coverage is 0%, so the description must add meaning. It only says 'for an explicit username' and that 'required inputs reflect tool policy', which adds almost nothing beyond the parameter name and required flag. The statement about 'other declared filters' is ambiguous and not tied to the actual parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Read the upstream mine listing for an explicit username', identifying the specific resource and action. It also distinguishes itself from other tournament tools by emphasizing that it is not a complete participation history and by targeting a username-based listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: you use this when you need a mine listing for a specific username mind. It explicitly warns not to present it as a complete participation history, which serves as a negative usage guideline. It does not name alternative tools, but the role-based behavior (creator vs player) and pagination notes also inform when it is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tournament_prizesA

Read upstream awarded and upcoming tournament prize aggregate figures without recomputing them. This does not claim any prize. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly. It discloses read-only nature, no prize claim, single GET request, no auto-fetch of continuation pages, array limits (100 rows, 256 KiB), truncation reporting, and refusal of oversized records. This is comprehensive behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense with seven sentences, some redundant (e.g., 'Makes one logical GET request' and 'Does not auto-fetch continuation pages' both concern request behavior). It is front-loaded with the main purpose, but could be tightened to reduce verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter read tool, the description covers request behavior, limits, truncation, and error handling, which is sufficient. It lacks return format details, but since there is no output schema, this is an acceptable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema coverage is 100%. The description mentions 'required inputs' and 'declared filters' but none exist, so it adds little beyond the schema. Baseline 4 for a zero-parameter tool is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read') and resource ('upstream awarded and upcoming tournament prize aggregate figures'), and clarifies it does not recompute them. It distinguishes itself from sibling tournament tools by focusing on prize aggregates and explicitly noting it does not claim prizes, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides some usage context: it is a read operation, does not claim prizes, and notes about pagination and filter forwarding. However, it does not explicitly name alternative tools or conditions for when to use this over others, leaving guidance implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tournament_upcomingA

Read upcoming tournament summaries. The observed public response had 58 rows. Optional username is forwarded; its effect is not established. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers: single logical GET request, no continuation page auto-fetching, array row/size limits, truncation reporting, oversized-record refusal, and honest uncertainty about the username parameter's effect. This is unusually transparent about runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the purpose and is organized into short sentences, but includes filler like 'Required inputs reflect tool policy as well as measured upstream requirements' and the confusing 'Other declared filters' phrase, which do not clearly earn their place for a one-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple optional-parameter GET endpoint, the description covers purpose, parameter behavior, pagination, limits, and truncation. It is less complete on return-value shape, but no output schema exists and the phrase 'tournament summaries' plus row-count/truncation metadata is reasonably sufficient for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the only parameter, username, gets only 'Optional username is forwarded; its effect is not established.' The description does not explain what the username represents, what value to pass, or how it affects results, so an agent cannot determine correct usage beyond knowing it is optional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb and resource: 'Read upcoming tournament summaries.' This clearly separates it from tournament_in_progress/tournament_completed siblings, though it does not explicitly differentiate it from tournament_upcoming_official.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose ('read upcoming tournament summaries'), and the description gives useful invocation caveats like optional username forwarding and no auto-fetching of continuation pages. However, it never states when to choose this tool over sibling tournament endpoints or 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.

tournament_upcoming_officialA

Read the official upcoming tournament route. It returned exactly the same 58 rows as upcoming in the capture; do not infer permanent equivalence or a distinct complete dataset. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo

TDQS

A3.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so thoroughly: it states it makes one logical GET request, does not auto-fetch continuation pages, locally limits arrays to 100 rows and 256 KiB, reports truncation, refuses oversized records, and notes that filter effectiveness is not guaranteed. This is exemplary disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then lists relevant behavioral caveats in a logical order. Most sentences earn their place, though the 'Required inputs reflect tool policy' sentence is cryptic and adds limited actionable value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool, the description covers dataset identity, pagination, limits, and truncation behavior well. However, with no output schema, it does not describe the shape or fields of the returned tournament rows, and it omits username semantics, leaving an agent partially under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one optional username with 0% description coverage, and the description never explains what username means or how it affects the response. The vague statements about 'required inputs' and 'other declared filters' are confusing because the schema declares no required inputs and only one property, so they add no real parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read the official upcoming tournament route.' It also distinguishes itself from the sibling 'upcoming' by noting the identical 58-row capture and warning against inferring permanent equivalence, which clarifies its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied through the name 'official' and the comparison to 'upcoming', but the description never explicitly says when to choose this tool over tournament_upcoming or other tournament siblings. The 'do not infer permanent equivalence' caveat provides interpretation guidance but no direct when-to-use/when-not-to-use statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transaction_inspectA
Read-onlyIdempotent

Inspect one transaction using a full Hive read and the existing Splinterlands game-result lookup. Returns independent chain/game outcomes, decoded game JSON, and gift-card agreement where provable. A game record does not prove processing of every operation in a multi-operation transaction. At most two logical reads.

ParametersJSON Schema
NameRequiredDescriptionDefault
trx_idYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: it discloses the dual-read mechanism, the limitation that a game record does not prove processing of every operation in a multi-operation transaction, and the 'at most two logical reads' cost bound. This is meaningful transparency for an agent deciding whether to call this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler. The core purpose is front-loaded, the return contents are listed, the key limitation is stated, and the cost bound is given. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with rich annotations, the description is nearly complete. It covers what the tool does, what it returns, its key limitation, and its cost. The only minor gap is that it doesn't explicitly state what happens when the transaction is not found or when the game-result lookup fails, but the openWorldHint annotation and the 'where provable' qualifier partially cover this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. The description does not explicitly explain the trx_id parameter, but the tool name and description ('Inspect one transaction') make it clear that trx_id identifies the transaction. The pattern in the schema already constrains the format. The description could add a note about Hive transaction ID format, but the schema pattern and tool name carry most of the meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Inspect'), a specific resource ('one transaction'), and the method ('full Hive read and the existing Splinterlands game-result lookup'). It also distinguishes itself from sibling tools like transaction_lookup and hive_transaction by describing its unique dual-source behavior and return contents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you need independent chain/game outcomes, decoded game JSON, and gift-card agreement for a single transaction. It does not explicitly name alternatives or exclusions, but the phrase 'At most two logical reads' and the single-transaction scope provide clear context. It could be improved by explicitly contrasting with transaction_lookup or hive_transaction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transaction_lookupA

Read one game transaction by explicit trx_id. Transaction data and result retain their JSON-encoded string wire types. An unknown ID returned an error object. This never submits or retries a game transaction. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
trx_idYes
usernameNo
card_detail_idNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations to carry the burden, the description fully discloses behavioral traits: it is read-only, makes one GET request, does not auto-fetch continuation pages, returns an error for unknown IDs, imposes local array limits, reports truncation, and refuses oversized records. This is unusually thorough and gives the agent a complete safety and behavior profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: it opens with purpose, then covers behavior, filter semantics, and limits. Every sentence contributes a distinct detail, and nothing feels redundant. It could be slightly tightened, but the front-loaded purpose and logical flow keep it effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and output schema, the description is remarkably complete. It covers error behavior, side effects, pagination, size limits, and parameter caveats. The only gap is a more explicit description of the return payload structure, though the mention of 'JSON-encoded string wire types' offers some guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It assigns meaning to trx_id as the explicit lookup key and clarifies that the optional parameters (username, card_detail_id) are 'forwarded as supplied' without guaranteed effectiveness. This adds practical semantic guidance beyond the bare schema, even if it doesn't fully define each parameter's domain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence, 'Read one game transaction by explicit trx_id,' combines a specific verb, resource, and identifier, making the tool's purpose unmistakable. Additional statements like 'This never submits or retries a game transaction' further differentiate it from write-oriented tools without naming siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool (when a transaction ID is available and a single read is needed) and even states a when-not ('never submits or retries'). However, it does not explicitly reference any sibling alternatives (e.g., cards_trx_lookup, transaction_inspect) or provide routing criteria, leaving usage guidance implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transaction_metricsC

Read named transaction metric series from an explicit date. Comma-separated battles,battles-modern selected both series and from narrowed the captured history to two recent points each. The unfiltered capture was about 1 MiB; each returned metric series remains intact under the result bound. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYes
metricsYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that it makes one logical GET request, does not auto-fetch continuation pages, and imposes local limits on array responses (100 rows, 256 KiB) with truncation reported. However, it lacks other behavioral details like error handling, what happens on invalid dates, or the exact output structure, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and includes a confusing test-specific example ('Comma-separated battles,battles-modern selected both series...') which is not a general usage instruction. The purpose is front-loaded, but the subsequent statements are scattered and not well organized, making it harder to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete usage of this tool requires understanding what metric series are available, the date format, and the output structure. The description does not specify valid metric names, the date format, or how the returned data is structured. It also references 'declared filters' without defining them. Overall, it is insufficient for an agent to confidently call this tool with valid inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description gives a hint that 'metrics' is a comma-separated list (via the example 'battles,battles-modern'), but it does not define the expected format for 'from' (e.g., timestamp vs date string). Since schema coverage is 0%, the description must fully compensate, but it only partially does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb and resource: 'Read named transaction metric series from an explicit date.' This clearly states the action and object, and distinguishes it from sibling tools like transaction_lookup or hive_transaction which handle individual records rather than aggregated metric series.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternative tools or conditions for selection, leaving the agent to 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.

vapi_market_asset_metadataA

Read asset metadata by assetName. All 13 landing-page categories were captured. detailIds accepts comma-separated IDs, not a JSON array string; omission returns all available details, locally bounded. SKINS returned 788 records. Additional per-asset fields are preserved. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The details list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNameYes
detailIdsNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and succeeds: it discloses one logical GET request, no auto-fetching of continuation pages, local limits of 100 rows and 256 KiB, truncation reporting, refusal of oversized records, and the policy-based nature of required inputs. This is rich, honest behavioral disclosure beyond minimal expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the description then becomes a rambling list of technical caveats and sample observations ('All 13 landing-page categories were captured', 'SKINS returned 788 records') that are not clearly tied to agent decision-making. The content is valuable but could be more compact and organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no annotations and no output schema, the description covers pagination, result limits, truncation, filtering caveats, and refusal behavior. The main gap is an unexplained reference to '13 landing-page categories' and example data that could confuse rather than clarify. Overall, enough context is present for correct invocation of this simple 2-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must add meaning. It does for detailIds, explicitly explaining the comma-separated format, what omission does, and the bounded local result set. AssetName is only described as the lookup key without format details, but the critical parameter receives significant clarification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence, 'Read asset metadata by assetName,' is a specific verb+resource statement that clearly identifies the tool's primary operation and input. It distinguishes itself from sibling market tools by focusing on metadata retrieval rather than listings, prices, or activity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context for detailIds (comma-separated, omission returns all details) and notes that filters are forwarded as supplied, but it does not explicitly compare this tool to alternatives or state when to prefer it over a sibling. Usage guidance is implied rather than directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vapi_market_estimated_priceB

Read estimated market prices for an explicit asset and detailId. PACKS/ALPHA returned minPrice as a string; wire types and currencies are preserved. This is an estimate, not an executable quote. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The prices list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
detailIdYes

TDQS

B3.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden, and it does: read-only intent, minPrice string nuance for PACKS/ALPHA, wire type/currency preservation, single logical GET, no continuation-page fetching, local row/size limits, truncation reporting, oversized-record refusal, and filter-forwarding caveats. This is thorough and valuable beyond the bare schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is well front-loaded and the description is compact for the amount of behavior it conveys. However, there are grammatical/structural issues ('Makes one logical GET request Does not auto-fetch continuation pages') and at least one boilerplate sentence about filters that is irrelevant to the provided schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description does a good job covering pagination, limits, truncation, refusal behavior, and a key response type nuance. It still leaves the full response shape unstated, but for a simple read tool the practical calling context is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should define asset and detailId. It merely repeats their names and says they are 'explicit' and required. The policy note about required inputs adds rationale but not meaning, and the 'other declared filters' sentence does not apply to the actual two-parameter schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific operation and resource: 'Read estimated market prices for an explicit asset and detailId.' This is clear and unambiguous. It does not name or contrast any sibling endpoint (e.g., vapi_market_player_listings, market_history), so the agent is left to infer which similar market tool to choose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance tied to an alternative. 'This is an estimate, not an executable quote' is a useful exclusion, but it names no replacement tool for executable quotes. The rest is behavior rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vapi_market_landingC

Read public market asset summaries. assets accepts comma-separated asset names; PACKS, LAND and DEEDS were accepted in fresh public reads. PACKS and PACKS,LAND selected 15 and 18 rows. Unfiltered reads returned 979 rows and are locally truncated, not a complete inventory. An authorized player-specific PACKS read returned numOwned on all 15 rows; counts are passed through without inferring how listed items are counted. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The assets list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsNo
playerNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: one logical GET, no auto-fetch of continuation pages, local truncation at 100 rows / 256 KiB with truncation reported in text and metadata, oversized records refused without partial fields, and counts passed through without inference. It stops short of stating auth/permission requirements beyond the passing mention of an 'authorized player-specific' read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a dense run-on of measured observations with a missing period ('Makes one logical GET request Does not auto-fetch continuation pages'). The purpose is buried under experimental telemetry, and the most decision-relevant facts (truncation limits) sit at the end rather than being front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with no output schema, no annotations and two undocumented params, the description covers behavior and limits thoroughly but never describes the shape of a returned 'asset summary' (fields beyond numOwned) or permission requirements. It is operationally detailed but leaves the response contract underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It documents 'assets' as comma-separated asset names with observed accepted values (PACKS, LAND, DEEDS) and row counts, which is genuinely additive, but the 'player' parameter is only implied by the phrase 'player-specific PACKS read' and never explicitly described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence 'Read public market asset summaries' gives a verb and a resource, but 'market asset summaries' is vague about what is actually returned, and nothing distinguishes it from the many market siblings (vapi_market_asset_metadata, vapi_market_player_listings, market_for_sale_grouped). The remaining sentences are operational telemetry rather than purpose clarification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives. It explains mechanics (comma-separated assets, filters forwarded as supplied, no auto-pagination) but never names a sibling or a condition that selects this endpoint over the other market read tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vapi_market_player_activityB

Read account market purchases and sales. A fresh sample returned buyer-matched purchases, seller-matched sales and both for types=purchase,sale. Rows included trxId, itemId, detailId and usdValue. The public client uses types=purchase,sale and sort=desc; limit bounded returned rows. Omitted offset returned rows while explicit offset=0 and offset=1 returned none. Do not infer complete history or working pagination. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortYes
limitYes
typesYes
offsetNo
playerYes

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose meaningful behavior: local caps of 100 rows and 256 KiB, truncation reported in text/metadata, oversized records refused without partial fields, single logical GET with no continuation fetching, and odd offset behavior. This is rich beyond the schema, though the offset observation is vaguely worded.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense run-on of many clauses with at least one missing period ('Makes one logical GET request Does not auto-fetch...'). Key purpose is buried behind sample-anecdote and caveat sentences rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema the description usefully names returned fields (trxId, itemId, detailId, usdValue) and covers limits and request behavior, which is a lot for a 5-param tool. Still, required inputs and filter semantics are under-explained, so it is adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it partially does by giving example values for types=purchase,sale and sort=desc, plus offset quirks. But 'player' and 'limit' get only passing mention ('limit bounded returned rows'), leaving substantial parameter meaning undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Read account market purchases and sales.' An agent knows it fetches a player's transaction activity. However, it never names or contrasts with siblings like vapi_market_player_listings or vapi_market_player_all_listings, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit statement of when to use this tool versus the many market/history siblings. The only guidance is a caution ('Do not infer complete history or working pagination'), which warns about limits rather than routing among alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vapi_market_player_all_listingsB

Read account listing items across assets, locally bounded. The observed response mixed PACKS, CONSUMABLES, SKINS and MUSIC. The route name does not override local truncation or establish completeness for every account. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYes

TDQS

B3.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and does an excellent job. It discloses single GET request, no auto-pagination, local limits (100 rows, 256 KiB), truncation reported in text and metadata, oversized records refused without partial fields, and that forwarded filters may not be effective. These are specific behavioral traits beyond basic schema, showing high transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph with many clauses, mixing purpose with caveats. It is not front-loaded effectively; the main action is stated first but the rest reads as a run-on of qualifications. While no sentence is wasted, the structure lacks clear separation between the purpose and behavioral notes, making it less scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter, the description covers key limitations (truncation, refusal, no pagination) and hints at response content. It lacks an output schema, but the description itself describes what to expect (asset types). It could be more explicit about the 'player' parameter format and any authentication requirements, but overall it is sufficient for an agent to call it correctly and interpret truncation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter 'player' has zero schema description coverage (0%), and the description adds no semantic meaning. It only says required inputs reflect tool policy, without explaining what the player value should be (e.g., account ID, format, or example). The description fails to compensate for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reads account listing items across assets and lists the observed asset types (PACKS, CONSUMABLES, SKINS, MUSIC). It distinguishes from the broader 'vapi_market_player' siblings by noting it is locally bounded and may not be complete for every account. However, it does not explicitly name a sibling alternative, leaving some ambiguity about when this is distinct from vapi_market_player_listings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides behavioral caveats (local truncation, no pagination) but does not explicitly state when to use this tool versus alternatives. No sibling references or 'if you need X, use Y' guidance exists. The only hint is that the tool is locally bounded, implying it is for quick reads, but this is not framed as usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vapi_market_player_asset_detail_statsA

Read the upstream owned and listed counts for one account and asset/detailId. PACKS/RIFT returned owned=0 and listed=2. Counts are returned unchanged; their arithmetic relationship is not inferred. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. Array responses are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
playerYes
detailIdYes

TDQS

A4.1/5.0
Behavior5/5

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, and it excels: it states that counts are returned unchanged without inferring relationships, makes one logical GET request, does not auto-fetch continuation pages, forwards filters without implying effectiveness, and details response limits (100 rows, 256 KiB) with truncation reporting and refusal of oversized records. These are all behavioral traits beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient, front-loading the core purpose in the first sentence, then providing an example, followed by a series of behavioral notes. Every sentence adds value, and the structure is logical, though it could be slightly more concise by grouping related behaviors.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers a wide range of contextual details: response limits, truncation reporting, refusal behavior, no auto-fetch, and the nature of counts. It does not specify the exact response format or error handling beyond oversized records, but the provided information is substantial and likely sufficient for an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only parameter names and minLength, with 0% description coverage. The description adds meaningful context: 'player' is the account, and 'asset' and 'detailId' together identify the asset. It also notes that required inputs reflect tool policy and upstream requirements. However, it does not fully define each parameter's format or allowed values, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Read'), a specific resource ('upstream owned and listed counts'), and a precise scope ('for one account and asset/detailId'). It distinguishes this from siblings like vapi_market_player_listings by specifying it returns counts rather than listings. The example 'PACKS/RIFT returned owned=0 and listed=2' further clarifies the output nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when one needs owned/listed counts for a specific asset/detailId, but it does not explicitly state when to use this tool over alternatives or mention any exclusions. No sibling tools are referenced for comparison, so the agent must infer the appropriate context 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.

vapi_market_player_listingsA

Read the account listing items for one asset/detailId. PACKS/RIFT matched the corresponding row in all_listings. Preserve listing/item identities, currencies, prices and remaining quantities; this does not create or change listings. Makes one logical GET request Does not auto-fetch continuation pages. Required inputs reflect tool policy as well as measured upstream requirements. Other declared filters are forwarded as supplied; their effectiveness is not implied by the schema. The data list are locally limited to 100 rows and 256 KiB, with truncation reported in text and metadata. Oversized records are refused without partial fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
playerYes
detailIdYes

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly: read-only behavior, one logical GET request, no auto-fetching, 100-row/256 KiB local limits, truncation reporting, and refusal of oversized records. This is unusually transparent and gives an agent concrete expectations about side effects and boundaries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded, but it contains unclear phrasing ('PACKS/RIFT matched...'), grammatical run-ons ('GET request Does not auto-fetch'), and vague meta-sentences about forwarded filters and tool policy. It is compact but not as clean or purposeful as it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description tells the agent what data is preserved (identities, currencies, prices, remaining quantities), how truncation is communicated, and what limits apply. The main gaps are the meaning of the all_listings relationship and how continuation pages would be requested, which keep it from full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description does not define the three required parameters individually. 'Asset/detailId' and 'account' give partial context, but the description never explains what values are expected for asset, detailId, or player, and the note about tool policy adds no semantic guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence identifies a specific operation: reading account listing items for one asset/detailId, and the description explicitly says it does not create or change listings. However, it does not clearly distinguish itself from sibling tools like vapi_market_player_all_listings, and the 'PACKS/RIFT matched...' phrasing is ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys a clear narrow scope ('for one asset/detailId') and notes that it does not auto-fetch continuation pages, implying when it might be used. But it never explicitly says when to choose this tool over alternatives or what conditions would make another market/player listing tool more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.0.5
    • Addedland_liquidity_positions_no_vesting
    • Addedland_plot_snapshot
    • Addedplayer_burn_event_player
    • Addedplayer_burn_event_prizes
    • Addedplayer_daily_updates
    • Addedplayer_dyk
    • Changedvapi_market_player_activity1 field changed
      • changedInput schema / required
        Previous value: -[
        -  "player",
        -  "types",
        -  "sort",
        -  "limit",
        -  "offset"
        -]New value: +[
        +  "player",
        +  "types",
        +  "sort",
        +  "limit"
        +]
  2. 1 tool updatev1.0.4
    • Changedplayer_skins3 fields changed
      • addedInput schema / properties / active
        Added value: +{
        +  "type": "boolean"
        +}
      • addedInput schema / properties / skin
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / start_index
        Added value: +{
        +  "default": 0,
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
  3. 16 tool updatesv1.0.3
    • Addedcards_ca_gold_rewards
    • Addedcards_mint_history
    • Addedcards_pack_jackpot_overview
    • Addedfrontier_draws_available_prizes
    • Addedfrontier_draws_complete
    • Addedfrontier_draws_entries_completed
    • Addedfrontier_draws_prize_overview
    • Addedfrontier_draws_recent_prizes
    • Addedfrontier_draws_status
    • Addedprices_current
    • Addedranked_draws_available_prizes
    • Addedranked_draws_complete
    • Addedranked_draws_entries_completed
    • Addedranked_draws_prize_overview
    • Addedranked_draws_recent_prizes
    • Addedranked_draws_status
  4. 66 tool updatesv1.0.2
    • Changedcards_collection5 fields changed
      • addedInput schema / properties / cursor / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / edition / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / foil / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / min_level / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / stake_plot_id / maximum
        Added value: +9007199254740991
    • Changedcards_find1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedcards_get_details1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedcards_history3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / limit / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / limit / minimum
        Added value: +-9007199254740991
    • Changedcards_lore3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / card_detail_id / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / card_detail_id / minimum
        Added value: +-9007199254740991
    • Changedcards_trx_lookup3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / card_detail_id / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / card_detail_id / minimum
        Added value: +-9007199254740991
    • Changeddelegations_incoming1 field changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changeddelegations_outgoing1 field changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changeddescribe_endpoint1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedhive_account_history1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedhive_transaction1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_deed_by_plot1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_deed_by_uid1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_deeds_owned1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_deeds_search1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_lineup_estimate67 fields changed
      • removedInput schema / properties / comparisons / items / properties / lineup / properties / plot / $ref
        Removed value: -"#/properties/plot"
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / plot / additionalProperties
        Added value: +false
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / plot / properties
        Added value: +{
        +  "base_cap": {
        +    "default": 100000,
        +    "maximum": 100000,
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "efficiency": {
        +    "maximum": 1,
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "rarity_boost": {
        +    "default": 0,
        +    "maximum": 10,
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "resource": {
        +    "enum": [
        +      "GRAIN",
        +      "WOOD",
        +      "STONE",
        +      "IRON"
        +    ],
        +    "type": "string"
        +  },
        +  "status_boost": {
        +    "default": 0,
        +    "maximum": 10,
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "terrain": {
        +    "enum": [
        +      "badlands",
        +      "bog",
        +      "caldera",
        +      "canyon",
        +      "desert",
        +      "forest",
        +      "hills",
        +      "jungle",
        +      "lake",
        +      "mountain",
        +      "plains",
        +      "river",
        +      "swamp",
        +      "tundra"
        +    ],
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / plot / required
        Added value: +[
        +  "terrain",
        +  "resource"
        +]
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / plot / type
        Added value: +"object"
      • removedInput schema / properties / comparisons / items / properties / lineup / properties / power_core / $ref
        Removed value: -"#/properties/power_core"
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / power_core / type
        Added value: +"boolean"
      • removedInput schema / properties / comparisons / items / properties / lineup / properties / regional_power / $ref
        Removed value: -"#/properties/regional_power"
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / regional_power / additionalProperties
        Added value: +false
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / regional_power / properties
        Added value: +{
        +  "current_plot_required_dec": {
        +    "maximum": 1000000000,
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "current_required_dec": {
        +    "maximum": 1000000000,
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "staked_dec": {
        +    "maximum": 1000000000,
        +    "minimum": 0,
        +    "type": "number"
        +  }
        +}
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / regional_power / required
        Added value: +[
        +  "staked_dec",
        +  "current_required_dec",
        +  "current_plot_required_dec"
        +]
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / regional_power / type
        Added value: +"object"
      • removedInput schema / properties / comparisons / items / properties / lineup / properties / runi / $ref
        Removed value: -"#/properties/runi"
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / runi / additionalProperties
        Added value: +false
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / runi / properties
        Added value: +{
        +  "base_pp": {
        +    "maximum": 1000000000,
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "bloodline": {
        +    "maxLength": 100,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "terrain_modifier": {
        +    "maximum": 0.1,
        +    "minimum": -0.5,
        +    "type": "number"
        +  },
        +  "uid": {
        +    "maxLength": 100,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / runi / required
        Added value: +[
        +  "uid",
        +  "base_pp",
        +  "terrain_modifier",
        +  "bloodline"
        +]
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / runi / type
        Added value: +"object"
      • removedInput schema / properties / comparisons / items / properties / lineup / properties / title_boost / $ref
        Removed value: -"#/properties/title_boost"
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / title_boost / default
        Added value: +0
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / title_boost / maximum
        Added value: +10
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / title_boost / minimum
        Added value: +0
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / title_boost / type
        Added value: +"number"
      • removedInput schema / properties / comparisons / items / properties / lineup / properties / totem_boost / $ref
        Removed value: -"#/properties/totem_boost"
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / totem_boost / default
        Added value: +0
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / totem_boost / maximum
        Added value: +10
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / totem_boost / minimum
        Added value: +0
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / totem_boost / type
        Added value: +"number"
      • removedInput schema / properties / comparisons / items / properties / lineup / properties / workers / $ref
        Removed value: -"#/properties/workers"
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / workers / items
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "abilities": {
        +      "items": {
        +        "description": "Ability tuple: [ENERGIZED|LL], [DD|RATIONING|RATIONING_LITE, negative fraction], [GRAIN|WOOD|STONE|IRON|AURA, positive fraction], or [BLOODLINE, positive fraction, bloodline].",
        +        "items": {
        +          "anyOf": [
        +            {
        +              "maxLength": 100,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            {
        +              "maximum": 10,
        +              "minimum": -1,
        +              "type": "number"
        +            }
        +          ]
        +        },
        +        "maxItems": 3,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "maxItems": 20,
        +      "type": "array"
        +    },
        +    "base_pp": {
        +      "maximum": 1000000000,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "bloodline": {
        +      "maxLength": 100,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "card_detail_id": {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    },
        +    "element": {
        +      "enum": [
        +        "fire",
        +        "water",
        +        "life",
        +        "death",
        +        "earth",
        +        "dragon",
        +        "neutral"
        +      ],
        +      "type": "string"
        +    },
        +    "land_dec_stake_needed": {
        +      "maximum": 1000000000,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "level": {
        +      "maximum": 100,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "secondary_element": {
        +      "enum": [
        +        "fire",
        +        "water",
        +        "life",
        +        "death",
        +        "earth",
        +        "dragon",
        +        "neutral"
        +      ],
        +      "type": "string"
        +    },
        +    "uid": {
        +      "maxLength": 100,
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "uid",
        +    "card_detail_id",
        +    "level",
        +    "base_pp",
        +    "element",
        +    "bloodline"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / workers / maxItems
        Added value: +5
      • addedInput schema / properties / comparisons / items / properties / lineup / properties / workers / type
        Added value: +"array"
      • removedInput schema / properties / plot / properties / status_boost / $ref
        Removed value: -"#/properties/plot/properties/rarity_boost"
      • addedInput schema / properties / plot / properties / status_boost / maximum
        Added value: +10
      • addedInput schema / properties / plot / properties / status_boost / minimum
        Added value: +0
      • addedInput schema / properties / plot / properties / status_boost / type
        Added value: +"number"
      • removedInput schema / properties / regional_power / properties / current_plot_required_dec / $ref
        Removed value: -"#/properties/workers/items/properties/base_pp"
      • addedInput schema / properties / regional_power / properties / current_plot_required_dec / maximum
        Added value: +1000000000
      • addedInput schema / properties / regional_power / properties / current_plot_required_dec / minimum
        Added value: +0
      • addedInput schema / properties / regional_power / properties / current_plot_required_dec / type
        Added value: +"number"
      • removedInput schema / properties / regional_power / properties / current_required_dec / $ref
        Removed value: -"#/properties/workers/items/properties/base_pp"
      • addedInput schema / properties / regional_power / properties / current_required_dec / maximum
        Added value: +1000000000
      • addedInput schema / properties / regional_power / properties / current_required_dec / minimum
        Added value: +0
      • addedInput schema / properties / regional_power / properties / current_required_dec / type
        Added value: +"number"
      • removedInput schema / properties / regional_power / properties / staked_dec / $ref
        Removed value: -"#/properties/workers/items/properties/base_pp"
      • addedInput schema / properties / regional_power / properties / staked_dec / maximum
        Added value: +1000000000
      • addedInput schema / properties / regional_power / properties / staked_dec / minimum
        Added value: +0
      • addedInput schema / properties / regional_power / properties / staked_dec / type
        Added value: +"number"
      • removedInput schema / properties / runi / properties / base_pp / $ref
        Removed value: -"#/properties/workers/items/properties/base_pp"
      • addedInput schema / properties / runi / properties / base_pp / maximum
        Added value: +1000000000
      • addedInput schema / properties / runi / properties / base_pp / minimum
        Added value: +0
      • addedInput schema / properties / runi / properties / base_pp / type
        Added value: +"number"
      • removedInput schema / properties / title_boost / $ref
        Removed value: -"#/properties/plot/properties/rarity_boost"
      • addedInput schema / properties / title_boost / maximum
        Added value: +10
      • addedInput schema / properties / title_boost / minimum
        Added value: +0
      • addedInput schema / properties / title_boost / type
        Added value: +"number"
      • removedInput schema / properties / totem_boost / $ref
        Removed value: -"#/properties/plot/properties/rarity_boost"
      • addedInput schema / properties / totem_boost / maximum
        Added value: +10
      • addedInput schema / properties / totem_boost / minimum
        Added value: +0
      • addedInput schema / properties / totem_boost / type
        Added value: +"number"
      • addedInput schema / properties / workers / items / properties / card_detail_id / maximum
        Added value: +9007199254740991
      • removedInput schema / properties / workers / items / properties / land_dec_stake_needed / $ref
        Removed value: -"#/properties/workers/items/properties/base_pp"
      • addedInput schema / properties / workers / items / properties / land_dec_stake_needed / maximum
        Added value: +1000000000
      • addedInput schema / properties / workers / items / properties / land_dec_stake_needed / minimum
        Added value: +0
      • addedInput schema / properties / workers / items / properties / land_dec_stake_needed / type
        Added value: +"number"
      • removedInput schema / properties / workers / items / properties / secondary_element / $ref
        Removed value: -"#/properties/workers/items/properties/element"
      • addedInput schema / properties / workers / items / properties / secondary_element / enum
        Added value: +[
        +  "fire",
        +  "water",
        +  "life",
        +  "death",
        +  "earth",
        +  "dragon",
        +  "neutral"
        +]
      • addedInput schema / properties / workers / items / properties / secondary_element / type
        Added value: +"string"
    • Changedland_lineup_snapshot2 fields changed
      • addedInput schema / properties / candidate_card_detail_ids / items / maximum
        Added value: +9007199254740991
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_liquidity_pool_by_id2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / maximum
        Added value: +9007199254740991
    • Changedland_liquidity_pool_by_symbol1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_liquidity_quote2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / poolId / maximum
        Added value: +9007199254740991
    • Changedland_liquidity_region1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_liquidity_resources1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_power_core_available2 fields changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_power_core_grouped2 fields changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_projects_active1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_projects_count1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_projects_history1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_projects_requirements1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_regions_counts1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_balances_history1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_balances_history_count1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_fragment_history1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_history1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_leaderboards1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_liquidity_swaps1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_owned1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_production_region_harvestable1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_rewardactions1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_resources_rewardactions_count1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_resources_richlist1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_taxes1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_resources_titles1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_resources_titles_assigned1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_stake_assets1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_stake_dec_overall1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_stake_dec_region1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_stake_dec_staked1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_stake_deed_details1 field changed
      • changedInput schema / properties / plot_id / anyOf
        Previous value: -[
        -  {
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
    • Changedland_stake_evp_pending_claim1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedland_tracts_counts1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedplayer_current_rewards1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedplayer_inventory1 field changed
      • addedInput schema / properties / item_detail_id / maximum
        Added value: +9007199254740991
    • Changedplayer_last_focus_rewards1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedplayer_last_season_rewards1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedplayer_richlist1 field changed
      • addedInput schema / properties / limit / maximum
        Added value: +9007199254740991
    • Changedplayer_unclaimed_balance_history1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedplayer_unclaimed_balances1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedrental_bids1 field changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedrental_bids_by_player1 field changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedrental_offers1 field changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedrental_offers_by_player1 field changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedrentals_by_bid1 field changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedrentals_by_player1 field changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedrentals_v3_by_player1 field changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedrentals_v3_by_role1 field changed
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedtransaction_inspect1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  5. 163 tool updatesv0.0.0
    • First observedbattle_queue
    • First observedbattle_result
    • First observedbattle_status
    • First observedcards_collection
    • First observedcards_find
    • First observedcards_get_details
    • First observedcards_history
    • First observedcards_lore
    • First observedcards_pack_data_wax
    • First observedcards_skins
    • First observedcards_trx_lookup
    • First observedcollector_binder
    • First observedcollector_config
    • First observedcollector_player
    • First observedcollector_stickers
    • First observedcollector_stickers_tradeable
    • First observedconflict_airdrop_distribution
    • First observedconflict_eligible_cards
    • First observedconflict_leaderboard
    • First observedconflict_player_rank
    • First observedconflict_players
    • First observedconflict_seasons
    • First observedconflict_status
    • First observedconflict_wagon
    • First observeddelegation_to_target
    • First observeddelegations_incoming
    • First observeddelegations_outgoing
    • First observeddescribe_endpoint
    • First observedgame_last_block
    • First observedgame_maintenance
    • First observedgame_settings
    • First observedgame_vapi_health
    • First observedguild_brawl_records
    • First observedguild_brawl_sps_rewards
    • First observedguild_contributions
    • First observedguild_find
    • First observedguild_list
    • First observedguild_members
    • First observedhive_account_history
    • First observedhive_transaction
    • First observedland_deed_by_plot
    • First observedland_deed_by_uid
    • First observedland_deeds_owned
    • First observedland_deeds_search
    • First observedland_lineup_estimate
    • First observedland_lineup_snapshot
    • First observedland_liquidity_allrewards
    • First observedland_liquidity_pool_by_id
    • First observedland_liquidity_pool_by_symbol
    • First observedland_liquidity_pools
    • First observedland_liquidity_quote
    • First observedland_liquidity_region
    • First observedland_liquidity_resources
    • First observedland_power_core_available
    • First observedland_power_core_grouped
    • First observedland_projects_active
    • First observedland_projects_count
    • First observedland_projects_history
    • First observedland_projects_requirements
    • First observedland_regions_counts
    • First observedland_resources_balances_history
    • First observedland_resources_balances_history_count
    • First observedland_resources_fragment_history
    • First observedland_resources_history
    • First observedland_resources_leaderboards
    • First observedland_resources_liquidity_swaps
    • First observedland_resources_owned
    • First observedland_resources_production_region_harvestable
    • First observedland_resources_rewardactions
    • First observedland_resources_rewardactions_count
    • First observedland_resources_richlist
    • First observedland_resources_taxes
    • First observedland_resources_titles
    • First observedland_resources_titles_assigned
    • First observedland_stake_assets
    • First observedland_stake_dec_overall
    • First observedland_stake_dec_region
    • First observedland_stake_dec_staked
    • First observedland_stake_deed_details
    • First observedland_stake_evp_pending_claim
    • First observedland_tracts_counts
    • First observedland_volume
    • First observedlist_endpoints
    • First observedmarket_active_rentals
    • First observedmarket_active_status
    • First observedmarket_completed_status
    • First observedmarket_for_rent_grouped
    • First observedmarket_for_sale_grouped
    • First observedmarket_for_sale_packages
    • First observedmarket_history
    • First observedmarket_query_by_card
    • First observedmarket_query_grouped
    • First observedmarket_rental_history
    • First observedmarket_status
    • First observedmarket_volume
    • First observedplayer_archived_balances
    • First observedplayer_authorities
    • First observedplayer_avatar
    • First observedplayer_balances
    • First observedplayer_burn_event_full_leaderboard
    • First observedplayer_burn_event_leaderboard
    • First observedplayer_card_airdrop
    • First observedplayer_current_rewards
    • First observedplayer_custom_avatar
    • First observedplayer_dec
    • First observedplayer_energy_purchase_information
    • First observedplayer_inventory
    • First observedplayer_last_focus_rewards
    • First observedplayer_last_season_rewards
    • First observedplayer_leaderboard
    • First observedplayer_leaderboard_with_player
    • First observedplayer_lp_claim_history
    • First observedplayer_pack_purchases
    • First observedplayer_presale_leaders
    • First observedplayer_profile
    • First observedplayer_quests
    • First observedplayer_recent_teams
    • First observedplayer_reward_delegation_history
    • First observedplayer_reward_delegations
    • First observedplayer_richlist
    • First observedplayer_richlist_ranking
    • First observedplayer_season
    • First observedplayer_skins
    • First observedplayer_unclaimed_balance_history
    • First observedplayer_unclaimed_balances
    • First observedplayer_voucher
    • First observedplayers_item_details
    • First observedproposal_list
    • First observedproposal_pending_count
    • First observedproposal_votes
    • First observedpurchase_settings
    • First observedpurchase_stats
    • First observedpurchase_uniswap_reward
    • First observedrental_bids
    • First observedrental_bids_by_player
    • First observedrental_bids_lowest_price
    • First observedrental_offers
    • First observedrental_offers_by_player
    • First observedrental_offers_lowest_price
    • First observedrentals_by_bid
    • First observedrentals_by_player
    • First observedrentals_v3_by_player
    • First observedrentals_v3_by_role
    • First observedtournament_battles
    • First observedtournament_cancelled
    • First observedtournament_completed
    • First observedtournament_find
    • First observedtournament_find_brawl
    • First observedtournament_in_progress
    • First observedtournament_mine
    • First observedtournament_prizes
    • First observedtournament_upcoming
    • First observedtournament_upcoming_official
    • First observedtransaction_inspect
    • First observedtransaction_lookup
    • First observedtransaction_metrics
    • First observedvapi_market_asset_metadata
    • First observedvapi_market_estimated_price
    • First observedvapi_market_landing
    • First observedvapi_market_player_activity
    • First observedvapi_market_player_all_listings
    • First observedvapi_market_player_asset_detail_stats
    • First observedvapi_market_player_listings

TDQS

B3.4/5.0

Scored across 185 tools

Disambiguation2/5

Many tools have overlapping purposes that even their verbose descriptions struggle to separate: eight-plus rental tools (rental_offers, rental_bids, rentals_v3_by_player, rentals_v3_by_role, rentals_by_bid, rentals_by_player, rental_offers_by_player, rental_bids_by_player), three market status tools (market_status, market_active_status, market_completed_status), and parallel ranked_draws_* vs frontier_draws_* sets with nearly identical names. An agent choosing between these will routinely misselect without reading pages of caveats.

Naming Consistency4/5

The overwhelming majority use snake_case with a domain prefix (land_, player_, market_, guild_, tournament_, cards_, rental_, conflict_), which is predictable. A few outliers exist (transaction_inspect, list_endpoints, describe_endpoint) and the domain prefixes vary (player_, vapi_market_, rentals_ vs rental_), but the convention is broadly readable.

Tool Count1/5

185 tools is an extreme mismatch for any single server's purpose, far beyond the typical 3-15 well-scoped range. Even a comprehensive read-only API wrapper does not justify this volume, and the redundancy (multiple tools per underlying route or near-equivalent route) shows many tools do not earn their place.

Completeness4/5

The surface covers a very wide domain set — accounts, balances, land, market, rentals, guilds, tournaments, battles, cards, collectibles, draws, proposals — with mostly read-only lifecycles fully represented. Gaps are minor (mostly mutation/claim operations deliberately omitted), and coverage is arguably over-, not under-, complete.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Splunk Enterprise and Splunk Cloud instances through standardized MCP interface. Supports executing SPL queries, managing indexes and saved searches, listing applications, and retrieving server information with flexible authentication options.
    -
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to search and retrieve Magic: The Gathering card data through the Scryfall API. Supports card searches, random card generation, autocomplete, set listings, and rulings lookup.
    22
    471 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides comprehensive access to Axie Infinity data, including detailed Axie stats, marketplace listings, land information, and player leaderboards. It allows users to query real-time game info and market statistics through natural language.
    15
    10 npm
    2
    MIT