GnoPulse MCP
OfficialUse this server as a read-only GnoPulse data and analytics MCP endpoint for gno.land; the supplied schema exposes no signing, swap, deploy, or confirmation tools.
Query chain/RPC state: status, blocks, transactions, events, accounts, balances, package files/functions, read-only eval/render, search, health, sparklines.
Explore realms, governance, validators, bridges, GPAO queue/status, libraries, failed calls, import graphs, and discoveries.
Analyze tokens, prices, OHLCV, holders, CVD, wallets, PnL, DeFi positions, transfers, clusters, labels, whales, smart money, and wallet flows.
Analyze GnoSwap/DEX activity: pools, depth, LP providers, pool OHLCV/trades, volume series, routes, quotes, swap signals, MEV and wash-trade heuristics.
Inspect NFTs/GRC721 holdings and collections, launchpad markets/quotes/snipers/radar, and API quota headers.
Check agent status/identity and policy info, but execution is disabled/forbidden in this schema; per README, transaction signing requires explicit local signer configuration and is not available here.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GnoPulse MCPcheck my wallet status and show my GNOT balance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GnoPulse MCP
A Model Context Protocol server that lets AI agents read, analyze and transact on gno.land.
Chain and analytics tools: chain reads, wallets, tokens, NFTs, pools, and on-chain analytics from GnoPulse.
Local signing: keys stay in
gnotx, a local signer process. The model and the MCP server never see them.Signing disabled by default: agent identity, service execution permission and an explicit signer mode are separate from API access. Interactive mode requires trusted client approval.
Quick start
Hosted: read and analyze
No install. Get an API key at gnopulse.xyz, then add:
{
"mcpServers": {
"gnopulse": {
"url": "https://mcp.gnopulse.xyz/mcp",
"headers": { "X-API-Key": "YOUR_KEY" }
}
}
}The hosted server holds no wallet keys. HTTP never registers execution or confirmation tools. Simulation is advertised only when an explicitly configured healthy backend declares unsigned simulation support. A listed tool can still become unavailable during a later outage; failures never fall back to signing.
Let your agent act on-chain
The agent gets its own small wallet on your computer. What it may do is chosen in the server's settings when your app starts it; no tool call can change that.
Mode |
| What happens |
Data only (default) |
| Reads and simulations. Nothing is signed. |
Approve each transaction |
| The agent proposes; you approve each one in a system window on your computer or in your app's approval form. |
Autonomous |
| The agent acts without asking, inside limits you set: which realms and functions, how much per transaction, and until when. |
The quickest way is to run this in a terminal and answer a few questions; it writes your app's settings (after showing them and backing up the file) and creates the wallet:
npx -y @gnopulse/mcp setupOnly setup creates a wallet, because it saves the recovery phrase first. With no wallet, the server still starts with its data tools and signing off, and gno_agent_status says to run setup. A server or CI machine with no terminal can opt out with GNOPULSE_ALLOW_NO_BACKUP=1, which creates a wallet that has no phrase.
To change the settings by hand after setup:
Edit your app's MCP settings (Claude Code, Codex, Cursor, VS Code, Claude Desktop):
{ "mcpServers": { "gnopulse": { "command": "npx", "args": ["-y", "@gnopulse/mcp"], "env": { "GNOPULSE_API_KEY": "YOUR_KEY", "GNOPULSE_AGENT_ID": "my-agent", "GNOPULSE_SIGNER": "user-approval" } } } }For autonomous mode, use
"GNOPULSE_SIGNER": "microservice"and add limits, for example:"GNOPULSE_POLICY_ALLOW_REALMS": "gno.land/r/gnoland/wugnot,gno.land/r/gnoswap/router", "GNOPULSE_POLICY_ALLOW_FUNCS": "Deposit,Withdraw,Approve,ExactInSwapRoute", "GNOPULSE_POLICY_MAX_SEND_UGNOT": "1000000", "GNOPULSE_POLICY_MAX_FEE_UGNOT": "3000000", "GNOPULSE_POLICY_MAX_GAS": "300000000", "GNOPULSE_POLICY_EXPIRES_IN": "86400"Autonomous mode will not start without all six; the error names any that are missing.
GNOPULSE_POLICY_EXPIRES_INcounts from each start of the server, so a restart renews it; useGNOPULSE_POLICY_EXPIRES_AT(unix seconds) for a fixed end, assetupdoes.Restart the app and ask the agent for its wallet.
gno_agent_statusreports the address, the balance, what it may do, and how you approve.Send it GNOT. Treat it like a prepaid card: fund only what you are willing to lose. A first GnoSwap swap also locks about 2 GNOT as a storage deposit.
Ask it to act. If something is outside your limits, the agent is told to stop and ask whether you want to allow it, naming the setting that would. If you do, change that setting (or ask the agent to) and restart the app.
Back it up before you fund it:
npx @gnopulse/mcp setupshows a new wallet's 24-word recovery phrase once, on a temporary terminal screen, and creates the wallet only after you confirm two of the words. The phrase is not saved anywhere and can't be shown again.A wallet with no saved phrase, such as one made before 0.3.9 or with
GNOPULSE_ALLOW_NO_BACKUP=1, has no phrase to show.npx @gnopulse/mcp backupwrites its key to a file locked with a passphrase you choose. Restore it withgnokey import. You can also move the funds to a new wallet made bysetup.Both commands run only in a real terminal, and no MCP tool can reach them. Never paste a phrase or passphrase into a chat. Anyone holding them controls the wallet, and your limits do not apply to them.
gno_agent_statusreportsrecovery_backupassavedornone.savedmeans you completed one of these steps, not that your copy still exists.
Things to know:
Using GnoPulse means agreeing to its terms, refund policy and privacy notice.
Limits apply to the GnoPulse tools. An agent with unrestricted shell access on your computer could read the wallet key in
~/.gnopulse-agent, so keep your app's own approval for file edits and shell commands on when an agent wallet is funded. The signer's access token is new at each launch and never saved, and the signer's secrets reach it through a pipe, not environment variables, but this does not stop an agent that can read the key files.Limits are per transaction, not daily budgets, and the send cap covers GNOT only, not GRC20 tokens. Allowing
Approveor a token transfer function grants what those calls permit.Gnosh has its own signing, where you type a key's password for each signature. Add GnoPulse to it for data (the hosted server, or the local package with
GNOPULSE_SIGNER=none) and sign with Gnosh'sgnokeytool.Web chat apps (claude.ai, ChatGPT) can only use the hosted server, which reads data and cannot sign. Claude's chat apps may decline to make transactions even with signing on; Claude Code does not.
OpenAI models see at most 128 tools, so run one GnoPulse server at a time in ChatGPT or Codex.
Local setup details
Use matching MCP and native binary versions; do not mix them with an older signing backend.
With no agent ID, the default launcher runs data tools without creating a wallet. To create a persistent wallet for one agent, run npx @gnopulse/mcp setup. It writes a config like this:
{
"mcpServers": {
"developer": {
"command": "npx",
"args": ["-y", "@gnopulse/mcp"],
"env": {
"GNOPULSE_API_KEY": "YOUR_KEY",
"GNOPULSE_AGENT_ID": "developer",
"GNOPULSE_SIGNER": "none"
}
}
}
}Give every logical agent a distinct lowercase GNOPULSE_AGENT_ID. Its keybase is stored under ~/.gnopulse-agent/agents/<chain>/<agent-id> (or the same suffix beneath GNOPULSE_AGENT_HOME). An agent ID reuses its wallet on restart; different IDs and chains have separate wallets. API keys authenticate data access and do not grant wallet execution authority. Do not reuse another agent's ID or copy its keybase.
For an agent whose wallet exists, the launcher starts its own authenticated loopback service with execution disabled. A named agent can inspect its address and simulate ordinary realm calls using public key metadata, without signing. Without an ID and with signing disabled, no keybase or service is created. Funding a wallet does not enable execution.
The owner can explicitly select GNOPULSE_SIGNER=user-approval. Proposals return an unsigned preview and single-use token. gno_confirm asks the person in this order: a native approval window on this computer (macOS, Windows, or Linux with zenity or kdialog), then the client's MCP elicitation form, or an authenticated host approval when one is attached. The window works in any client, including ones too old to show forms; set GNOPULSE_APPROVAL_DIALOG=off to skip it. With no way to ask (no desktop, as over SSH, and a client without forms), gno_agent_status and the proposal itself say so, naming the client and how to update it, and no token is issued. The client chooses the presentation, such as an in-chat confirmation or approval card. A token or model-supplied tool argument is insufficient. Cancellation, refusal and expiry fail closed. An agent with unrestricted shell access and macOS Accessibility permission could in principle drive the approval window, so do not grant those to an agent you do not trust. Elicitation waits only until the proposal expires and follows tool-call cancellation; an expired, cancelled or failed approval cannot be revived by a late response. Clients must present these requests to the human, not automatically accept them.
The launcher uses the bundled native binary, isolates service ports, and stops its own child service on exit. An occupied configured port is refused. Legacy ~/.gnopulse-agent keys are not moved, deleted or silently reused: back them up and explicitly plan migration before funding a new agent address.
Examples for ElizaOS, LangChain, the OpenAI Agents SDK and the Vercel AI SDK are in adapters/.
Related MCP server: WETH
How execution works
agent ──▶ gno_call / gno_swap / gno_approve
│ simulate + policy check
▼
preview + approval token (nothing broadcast)
│ client requests human consent
▼
gno_confirm ──▶ consent accepted + policy rechecked
└─▶ gnotx re-simulates unsigned, then signs and broadcastsSet GNOPULSE_SIGNER=microservice to execute without per-transaction confirmation. This is an explicit standing execution grant. Startup requires both realm and function allowlists, explicit native-send, fee and gas caps, and a future expiry. GNOPULSE_SIGNER=tee uses the same grant rules with an external signer. EXPIRES_IN is relative to startup; use EXPIRES_AT for a fixed cutoff across restarts. These are per-transaction bounds, not cumulative budgets; native-send caps do not restrict GRC20 token amounts. Allowing a token transfer or approval function grants whatever token authority that call and its arguments permit.
Client-native human confirmation
MCP does not provide a universal proof that a user said yes in chat. A trusted host integration can turn authenticated user confirmation into a transaction-bound Ed25519 authorization. Set GNOPULSE_APPROVAL_PUBLIC_KEY_FILE to the host authorization public-key PEM. Keep the matching private key in the host's separate secret store, outside model tools, prompts and the agent wallet. This is an authorization key, not the blockchain wallet key.
An interactive proposal includes approval_challenge when a host key is configured. The host presents the exact challenge intent and simulation to its user, obtains consent through its own interface, then uses signClientApproval and attaches the receipt to the gno_confirm request's _meta["io.gnopulse/approval"]. The server checks the configured key, wallet, chain, agent, transaction, preview digest, gas/fee bounds, token and expiry. Receipts are single-use. Invalid supplied receipts never fall back to another approval method. See adapters/trusted-client-approval.mjs.
Without a signed receipt, a client supporting MCP form elicitation can collect approval using that standard mechanism. Its presentation need not be a separate form. Unsupported clients refuse execution. A native tool-approval event from another platform is not automatically a receipt: the trusted host adapter must connect it to this challenge. Codex can use native MCP elicitation directly; see adapters/codex.toml. Custom host receipt adapters are optional. This package does not configure ChatGPT or Claude approval integrations, and hosted HTTP still exposes no execution tools.
The host must not sign receipts based on the model claiming approval or expose its signing helper as an agent tool. Either approval path trusts the host to obtain real consent. To revoke a configured host authorization key, remove or replace its public-key configuration and restart the local MCP process; pending proposals are in memory and do not survive restart.
Tools
Area | Tools |
Chain |
|
Explorer |
|
Governance and bridges |
|
Tokens |
|
Wallets |
|
Akkadia |
|
NFTs |
|
DEX |
|
Analytics |
|
Execution |
|
Data and analytics tools call the GnoPulse API with GNOPULSE_API_KEY.
gno_nft_holdings accepts address, optional limit (1 to 1000, default 500), and
optional cursor. Pass the returned next_cursor until it is null. total and
by_collection cover the whole owner's holdings, not the loaded page. Ownership
can change between requests. The tool requires an API with NFT cursor support and
reports an incompatibility instead of silently repeating page one on an older API.
Configuration
Data access needs no wallet configuration. Execution requires an explicit agent identity, wallet address and enabled signing service. The launcher supplies the wallet address after reading public metadata.
Variable | Default | |
| GnoPulse API key | |
|
| GnoPulse API base URL |
| public gnoland-1 RPCs | Comma-separated RPC endpoints, tried in order |
|
| Also passed to the signer by the launcher |
|
| GRC20 registry realm |
|
|
|
|
| Maximum native ugnot sent per transaction. Does not cover GRC20 approve or swap amounts |
| Only these realms (comma-separated) | |
| Never these realms | |
| Only these functions (comma-separated) | |
| Never these functions | |
|
|
|
|
| |
| Trusted host Ed25519 authorization public-key PEM file | |
| Maximum gas plus storage ceiling per transaction (refunds excluded) | |
| Maximum simulated gas per transaction | |
| Session expiry in seconds, or a unix time | |
| none | Required for a wallet; unique lowercase ID per logical agent |
| launcher sets it | Expected service wallet, required when running an execution server directly |
|
| Root for |
| allocated loopback port | Exclusive local signer address; an occupied fixed address is refused |
| bundled binary | Use your own |
|
| Signing service URL (the launcher sets it) |
| Signing service bearer token for a service you run yourself (the launcher pipes its own instead) | |
| Open file descriptor to read that token from (the launcher sets it, and it wins over | |
| Set to | |
| File whose presence makes | |
|
|
|
|
| HTTP listen host |
|
| HTTP listen port |
|
| |
|
| API and RPC request timeout |
Malformed numeric policy values stop the server with an error naming the variable.
To self-host the HTTP transport, set GNOPULSE_MCP_TRANSPORT=http (see the Dockerfile). It refuses every configured execution signer. To add simulation, explicitly configure a matching unsigned-only gnotx serve -caller <public-address> backend. This mode holds no keys and accepts a caller per request; it cannot enable execution. Hosted simulation requires a caller address and, before its first on-chain transaction, its compressed public key. Only ordinary MsgCall previews are supported; read-only/non-crossing functions should use qeval. Code-bearing deployment/run messages can require signatures and are not supported by this unsigned hosted preview.
Development
npm ci
npm test # unit tests
npm run test:e2e # stdio and HTTP end-to-end tests against local mocksgnotx is a Go module in gnotx/. See its README.
Security
Report vulnerabilities privately, see SECURITY.md.
License
The MCP server is MIT. gnotx is licensed under the GNO Network General Public License because it links gno.land packages, and runs as a separate process.
Built on gno.land.
Testing on Onyx
Use a dedicated unfunded test wallet and explicitly set all three chain pointers before integration testing:
GNO_CHAIN_ID=onyx-1 \
GNO_RPC_URLS=https://rpc.onyx.testnets.gno.land \
GNOPULSE_API_BASE=https://gnopulse.xyz/onyx \
GNOPULSE_AGENT_HOME=/path/to/private/onyx-test-wallet \
GNOPULSE_AGENT_ID=onyx-developer \
GNOPULSE_SIGNER=none \
npx -y @gnopulse/mcpThe API key must belong to the Onyx service. Verify gno_status and gno_agent_status report onyx-1 before continuing. Funding and transaction broadcasts are separate actions requiring approval. HTTP exposes status and, only with a verified backend, unsigned simulation. Execution, deployment and confirmation tools are absent.
Data contracts
Bounded list tools (events, holders and pools) accept offset; results retain limit,
offset, next_offset, total and has_more. Cursor feeds continue to use next_cursor.
gno_api_usage performs one standard block-list read and returns that response's quota
headers. It consumes the normal request cost. List responses also include their own quota
headers. No usage is inferred from a separate session or client.
gno_mev returns same-pool, same-block sandwich-pattern candidates, not arbitrage or general
MEV detection. gno_wash_trades returns transaction-netted round-trip activity with evidence,
not proof of wash trading or common ownership. Both accept supported windows of 1, 7 and
30 days and an offset. These tools require the matching v2 API release and its rollups.
Application-level errors inside HTTP-200 responses are returned as MCP tool errors.
For data-only local use, omit GNOPULSE_AGENT_ID and set GNOPULSE_SIGNER=none: no binary, keybase, secrets or child service is needed. With an ID and an existing wallet, the same setting starts an execution-disabled service for it. With an ID and no wallet, the server runs data tools only until setup makes one.
For an externally managed per-agent signing service, explicitly run gnotx serve -allow-execute with a private bearer token. Run node dist/index.js with the matching GNOPULSE_AGENT_ID, GNOPULSE_AGENT_ADDRESS, service URL/token and signer mode. Never share a signing identity between unrelated agents or attach a production settlement key to hosted MCP. Its lifetime belongs to your service manager.
The trusted local operator controls configuration and keybase access. These controls isolate MCP tool authority, not hostile processes with the same operating-system account, a compromised client that forges consent, or an extracted private key. Policies are local configuration, not on-chain signed delegation grants. Cumulative token budgets and delegated session accounts remain separate capabilities.
Settled swap signals page with gno_swap_signals using the previous result's
next_cursor as cursor. Keep the same filters between pages. Offset remains a deprecated
compatibility option; do not combine it with a cursor. Cursor calls fail explicitly against
older APIs that do not return the cursor contract, rather than silently repeating page one.
Deploy the supporting API before updating MCP clients. Roll back affected MCP clients before
rolling an API back to a release without cursor support.
Wallet status and funding instructions use the configured agent address and chain after verifying the backend identity. A mismatch is an error, with no funding instructions. An unavailable balance is not reported as an empty wallet. Unconfigured data-only and hosted clients do not adopt the service's default caller as an agent wallet.
Swap policies check the concrete gno.land/r/gnoswap/router.ExactInSwapRoute call. The same target, arguments and fixed deadline are used for preview, consent and execution; metadata cannot substitute a different policy target.
Transaction review and storage limits
Human approval shows a deterministic plain-language summary before technical details: action, network, agent wallet, amount sent, gas fee ceiling, estimated storage deposit, authorized storage ceiling, estimated refund and maximum native debit. Known swap/allowance/wrapped-GNOT intents have specific descriptions. Unknown realm functions show their exact target and ordered arguments with effects explicitly undecoded; token decimals and contract outcomes are never invented. The native client's Accept button submits the form. The separate signing checkbox must also be checked; it remains false by default.
Unsigned previews retain estimated_fee_ugnot as the gas component and add estimated_storage_deposit_ugnot, storage_deposit_limit_ugnot, estimated_storage_refund_ugnot and estimated_total_fee_ugnot. The last field is gas plus the authorized storage ceiling, without subtracting refunds. GNOPULSE_POLICY_MAX_FEE_UGNOT bounds that combined amount; the separately configured native send cap still applies. These limits do not cap GRC20 movements or every possible contract effect.
The proposal binds total fee, gas and storage ceilings. /execute requires max_gas_wanted, max_fee_ugnot (gas plus storage) and max_storage_deposit_ugnot together. The signing service re-simulates, rejects cost growth beyond consent, and writes the approved storage ceiling into the signed MsgCall.MaxDeposit. On-chain enforcement protects against storage growth after the final simulation; a rejected transaction can still consume its authorized gas fee. A zero MaxDeposit invokes the chain default, so a zero-storage estimate reserves and discloses one ugnot instead. Missing, malformed, inconsistent or overflowing cost estimates cannot authorize signing. Gas-only older backends must be upgraded with the MCP client.
Hosted chain/simulation tools require a successful usage-authorization response before execution. Timeouts, network failures, malformed allowances and explicit denials stop the tool. Local stdio public-RPC reads preserve their no-key and metering-outage behavior; an intentionally keyless hosted deployment must set its key requirement off explicitly.
Token-holder distribution tools retain the complete REST distribution bundle in items, including holders, summary metrics and partial. Page with the outer has_more and next_offset using the tool offset parameter. total is the API-reported holder_count, not the current page length; the retained partial flag still describes source completeness. Launch radar and LP-provider tools also retain their summary bundles in items and are not generic array pages. Use token_path values from the registry/prices feed, including the qualified token name (for example a realm.Token identifier), rather than assuming a bare realm identifies one token.
Coordinated accounting and data candidate
The unpublished candidate adds hosted reserve/finish accounting with a service credential kept only by operators. Customer API keys cannot attest tool completion. REST wrappers are charged by REST once; local public-RPC tools remain independent of hosted credits. Upgrade the API and hosted service together before enabling the new accounting epoch. Failed or refused tools release reservations; a committed result does not prove network delivery to the client.
The matching API serves holder pages from worker projections with raw integer amounts and observation ages. Read freshness, partial and per-holder balance_observed_at; balances are observations at different times, not a census at one current block. Missing or stale required projections return explicit errors. LP contribution estimates retain unpriced events and distinguish historical contributors from separately verified current position owners. Follow the cursor returned for events and offset for contributor bundles. These changes require the matching API producers and readers before a package rollout.
The versioned capabilities.json describes registered tools and their transports. REST has additional routes without dedicated MCP wrappers. Token registry, balance and metadata reads distinguish provider failure from verified empty data. Onyx has no GnoSwap trading analytics; its test-only payment configuration is not a market exchange rate.
For the LP tool, outer has_more and next_cursor describe event history; send the cursor as before. Contributor paging is independent: use contributors_has_more and next_offset with offset. The items bundle retains both source flags. A completed contributor page does not imply that all events were fetched.
Available Tools
73 toolsgno_agent_statusAgent status (who am I / can I act)A
The agent's own on-chain identity: the address this MCP signs with (use it as your caller or recipient), its ugnot balance and sequence, the chain, whether execution is enabled, and the active policy bounds. Call this first, before acting, to learn your address and whether you can pay gas.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description bears full burden. It reveals that the tool returns the signing address, balance, chain info, and policy bounds, and that it indicates whether execution is enabled. However, it doesn't specify exact fields or format, but given the simplicity and no params, it is adequate. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the most critical information (use this first, learn your address) front-loaded. Every phrase adds value: identity, usage, gas-paying ability. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter self-status tool, the description fully covers what an agent needs: what it returns, why to call it, and when to call it. No missing information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to document. The description adds value by explaining what the output will contain, which compensates for the lack of schema detail. Baseline 4 for no params is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports the agent's own on-chain identity, including address, balance, sequence, chain, execution status, and policy bounds. It distinguishes itself from sibling tools like gno_status (network status) and gno_get_account (account lookup) by emphasizing it is self-referential. The verb 'learn' and resource 'agent's own identity' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call this tool first before acting, to discover the address and gas-paying ability. It implies when not to use (before acting) and implicitly contrasts with alternatives like gno_get_account for other accounts. Clear guidance on when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_api_usageAPI quotaB
Read current quota headers through one standard block-list request. This request consumes its normal cost units.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that the request consumes its normal cost units and that it is a read operation, but it omits auth requirements, rate-limit implications, whether the call itself counts against quota, and what the returned quota headers represent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences and front-loads the action. The phrase 'standard block-list request' is somewhat jargon-heavy, but overall there is little wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool this is close to sufficient, but there is no output schema, so the description should say more about what 'quota headers' contain or what the response looks like. It also does not clarify whether the quota is account-level, API-key-level, or request-level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to explain. The schema is empty and fully described; the description does not need to add parameter details. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Read current quota headers.' It also clarifies that the read is performed via one standard block-list request. It does not explicitly distinguish this tool from any sibling, though no sibling appears to cover API quota usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use guidance, no when-not-to-use guidance, and no alternatives. An agent can infer it is for checking quota, but the definition does not state the conditions that should select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_blocksRecent blocksA
Recent blocks, newest first, cursor-paginated. One block: gno_get_block.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | next_cursor from the previous page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses sort order (newest first) and the pagination contract, but says nothing about what a block object contains, the default page size, or read safety (implied, not stated). Adequate, not rich, for a read-only list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, and the purpose/pagination facts are front-loaded before the sibling hand-off. The clipped, fragment-style phrasing is efficient though slightly telegraphic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-optional-parameter read tool with no output schema and no annotations, the description covers ordering, pagination and sibling routing, but leaves return shape, default limit and empty-page termination behavior unaddressed. Reasonable for the tool's complexity, with visible gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'cursor' is documented in the schema as the next_cursor from the previous page, while limit has no guidance on defaults or practical sizing. The description's phrase 'cursor-paginated' reinforces the loop but adds no syntax or limits beyond the schema. Baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (blocks), the ordering (newest first) and the pagination model (cursor) in a compact clause, which is enough to distinguish it from the single-block sibling it explicitly names. The implicit verb 'list' is obvious from context, though never written.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The routing is explicit: 'One block: gno_get_block' tells the agent exactly when to switch siblings. It doesn't spell out the inverse condition ('use this when you want many blocks') or mention paging until exhaustion, but the alternative pointer is the main thing an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_bridgesBridgesA
Every bridge stack (IBC, Union, Hyperlane): connected chains, clients, vouchers and escrow.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It implies an exhaustive read-only enumeration ('Every bridge stack') and names what data is included, but never states that it is a full snapshot, whether results are paginated, or how large the response may be.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the scope ('Every bridge stack') front-loaded and the protocol list plus data categories following. Nothing is wasted or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of telling the agent what comes back: chains, clients, vouchers, escrow. That is enough to call a zero-parameter snapshot tool correctly; only return shape and size remain unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description adds the useful scope note that all three bridge protocols are included, which the empty schema cannot convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource precisely (bridge stacks across IBC, Union, Hyperlane) and enumerates the content dimensions: connected chains, clients, vouchers, escrow. The verb is only implied by 'Every', i.e. a full listing, and the nearest sibling gno_bridge_transfers is not referenced, so the boundary between 'bridges' and 'bridge transfers' has to be guessed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, and no mention of alternatives such as gno_bridge_transfers for individual transfer flow. An agent must infer that this is the configuration/state overview and the other is the activity feed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_bridge_transfersBridge transfersB
Cross-chain transfers across all bridge stacks, newest first, cursor-paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | next_cursor from the previous page |
TDQS
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 disclose two useful traits: results are ordered newest first and retrieval is cursor-paginated. It omits authentication requirements, result envelope, what a transfer record contains, and whether failed/pending transfers are included – substantial gaps for a bare tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource front-loaded and the ordering/pagination traits packed in afterward. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-output-schema read tool, the description covers identity, ordering, and pagination, which is the minimum needed. It leaves the agent unsure how this differs from gno_bridges and what a returned transfer record actually looks like, which matters given the large sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: cursor is documented in the schema, but limit has no description anywhere. The description mentions 'cursor-paginated' and ordering but adds no syntax, defaults, or bounds beyond what the schema already states, and never explains the undocumented limit parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (cross-chain transfers) and scope ('across all bridge stacks'), which distinguishes it reasonably well from siblings like gno_bridges or gno_wallet_transfers. It never explicitly contrasts with those siblings, so an agent must infer the distinction, keeping it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance and never names an alternative such as gno_bridges or gno_wallet_transfers. Scope ('all bridge stacks') implies this is an unfiltered global feed, but that is the only implied usage signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_cvdCumulative volume deltaC
Buy minus sell pressure over time for one token. Costs expensive units.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| token | Yes | ||
| interval | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It adds a vague cost warning ('expensive units') but does not clarify whether the operation is read-only, what permissions are needed, how the cumulative window behaves, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no wasted language. The core computation is front-loaded before the cost caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter analytics tool with no output schema and no annotations, the description is too sparse. It omits key details such as interval semantics, time-window behavior, return format, and what 'expensive units' actually means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate for three undocumented parameters. It only loosely implies a token scope and a time dimension ('over time'), without explaining the token format, days meaning, interval choices, or defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific metric (buy minus sell pressure, i.e. cumulative volume delta) scoped to one token. It is clear what the tool computes, but it does not explicitly distinguish itself from siblings such as gno_ohlcv or gno_dex_series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like gno_ohlcv or gno_dex_series. 'Costs expensive units' is a cost warning, not usage guidance about appropriate contexts or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_dev_activityDev activityB
Recent launches with creator holdings and creator-sell (rug) signals.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It states the type of data returned but does not mention whether the operation is read-only, whether pagination or limits exist, whether authentication is required, or what the output format looks like. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose ('Recent launches') and immediately specifies the key attributes. There is no wasted wording, and the structure is direct and efficient. It earns top marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is reasonably complete but leaves some ambiguity. It does not specify the output structure (e.g., whether it returns a list, the format of holdings or signals, or any time window for 'recent'). Given the tool's simplicity, these gaps are moderate, but with no annotations or output schema, a bit more detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there is nothing for the description to clarify. The baseline for zero parameters is 4, and the description adds no parameter information because none is needed. It focuses on the output, which is appropriate. No additional value is required in this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool provides 'Recent launches with creator holdings and creator-sell (rug) signals.' It identifies a specific resource (launches) and two key attributes (creator holdings and rug signals), making the purpose understandable. However, it does not explicitly differentiate from sibling tools like gno_launch_radar or gno_whales, so it falls short of a perfect clarity score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description implies it is for checking recent launches with creator holdings and rug signals, but it does not state when it should be preferred over similar tools or when it should not be used. This leaves the agent to infer usage context from the description alone, which is insufficient given the large set of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_dex_analyticsDEX analyticsB
Venue and per-pool TVL, 24h/7d volume, fee and emission APR, and per-token volume. Costs expensive units.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose a genuinely useful behavioral trait — that calls consume expensive units — which is real value beyond structured fields. It says nothing about read-only nature, data freshness/snapshot timing, result size, or caching, which matter for an analytics aggregate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences: the returned metrics come first, the cost caveat second. No filler, no redundancy, and the highest-value warning is not buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the metric list usefully stands in for a return-value description, which is a real strength. However, scope remains unspecified (all venues? all pools? which chains/timeframes besides 24h/7d?) and no annotations exist to fill the gap, so an agent still cannot predict result boundaries or granularity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is an empty object, so there is nothing to disambiguate; baseline 4 applies. The description correctly frames the tool as a fixed, no-argument aggregate rather than implying missing filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates concrete resources returned (venue and per-pool TVL, 24h/7d volume, fee and emission APR, per-token volume), so an agent knows exactly what data this yields. It does not, however, distinguish itself from near-siblings like gno_dex_series, gno_pools, or gno_pool_ohlcv, leaving overlap ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus the many related DEX/pool tools in the sibling list, and no alternatives are named. The only downstream signal is a cost warning ('Costs expensive units'), which implies caution but gives no routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_dex_quoteSwap quoteA
Read-only GnoSwap router quote for a known route, fee included once. Find a route with gno_dex_route.
| Name | Required | Description | Default |
|---|---|---|---|
| in | Yes | input token path | |
| out | Yes | output token path | |
| route | Yes | route string from gno_dex_route | |
| amount | Yes | raw integer amount in the token's smallest unit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It does disclose the key behavioral traits: read-only (no state change) and 'fee included once' (no double fee accounting), which is genuinely useful. However it says nothing about staleness/liveness of the quote, error behavior on an invalid route, or what the caller gets back, leaving material gaps for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the read-only/route-scoped nature front-loaded and the prerequisite after it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Four required params with no output schema and no annotations mean the description should sketch the return value (amounts out, fee, price impact) and whether routing is simulated. It covers fee semantics but not the response shape or failure modes, so it is adequate but incomplete for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four params are self-documented (including the raw-integer amount pattern), so the baseline is 3. The description only reinforces that 'route' must come from gno_dex_route; it adds no unit or format semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('GnoSwap router quote') plus scope ('for a known route'), and disambiguates from the sibling route tool by name. An agent can tell this apart from gno_dex_route or gno_price_list 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite: find a route with gno_dex_route first, which effectively names the alternative for route discovery. It lacks an explicit when-not (e.g., don't use for executing the swap), 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.
gno_dex_routeSwap routeB
Best route between two tokens from bounded direct and two-hop discovery; discloses its search scope.
| Name | Required | Description | Default |
|---|---|---|---|
| in | Yes | input token path | |
| out | Yes | output token path | |
| amount | Yes | raw integer amount in the token's smallest unit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a real behavioral trait — the search is bounded to direct and two-hop paths, so a null result does not prove no route exists — which is genuinely useful. However, it says nothing about whether this is a read-only simulation, what permissions or rate limits apply, or whether the route is executable, leaving significant gaps for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted clauses. The trailing 'discloses its search scope' is mild self-referential meta-commentary that a reader could do without, but it costs almost nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Three required params and no output schema, so the agent has no structured view of what a 'route' returns — path, hops, expected output amount, price impact — and the description does not fill that gap. It is adequate to trigger the call but not to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (in, out, amount) are already documented including the raw-integer amount constraint. The description adds only the loose mapping of 'two tokens' to in/out, which is already obvious; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('best route between two tokens') and narrows it with 'bounded direct and two-hop discovery', so an agent knows this is a route-finding tool rather than a raw quote or hop listing. It does not explicitly distinguish itself from close siblings like gno_dex_quote or gno_swap_hops, which keeps it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'bounded direct and two-hop discovery' implies a usage constraint (routes longer than two hops are out of scope) but never states when to prefer this over gno_dex_quote or gno_swap_hops. Usage is inferable rather than instructed, which is the definition of a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_dex_seriesDEX volume seriesC
DEX volume over time for the whole venue or one pool.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| pool | No | pool key from gno_pools | |
| interval | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it omits whether this is a read-only query, what the return format or aggregation is, what the default time window or interval behavior is, and whether volume is denominated in USD or tokens. The scope clause adds a little context, but the behavioral disclosure is thin for a data-query tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of filler. Its terseness is more an under-specification problem than a conciseness problem, but the structure itself is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three parameters, no annotations, no output schema, and low schema coverage, the description is too thin to call the tool correctly without opening the schema and guessing parameter semantics. It does not explain the time-series output or the interval/days interaction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%: the pool parameter is documented in the schema, but days and interval are not. The description does not compensate—it mentions 'over time' and 'one pool' but never explains the meaning of days, the interval enum units, or the default behavior when those parameters are omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific metric and resource ('DEX volume') and a time-series presentation ('over time'), plus its scope ('whole venue or one pool'). It is clear enough to distinguish from generic pool listings, but it does not differentiate itself from close siblings such as gno_pool_ohlcv or gno_dex_analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus gno_pool_ohlcv, gno_dex_analytics, or gno_sparklines. The phrase 'whole venue or one pool' hints at scope but does not tell an agent which conditions select this series tool over the alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_discoveriesNewly found packagesC
Packages discovered on chain, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | next_offset from the previous page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses ordering ('newest first'), which is useful, but says nothing about what counts as 'discovered', whether results are capped, how pagination interacts with the ordering, or whether the data is cached/live.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words, and the ordering constraint is stated early. Brevity is appropriate, though it borders on under-specification for a feed endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list/feed tool with no annotations, no output schema, and only half the parameters documented, the description is too thin. An agent cannot tell the shape of returned items, size limits, or how 'discovered' is determined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema coverage, only offset is documented in the schema as 'next_offset from the previous page' and limit is undocumented. The description adds no parameter information, so the paging contract for limit and the interaction with ordering remain unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (packages discovered on chain) and the ordering (newest first), which is more than the tautological title 'Newly found packages'. It implicitly distinguishes listing from single-package retrieval like gno_get_package, but never names a sibling to sharpen the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives such as gno_get_package or gno_gpao_package. The agent must infer from the name that this is a feed of recent deployments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_evalEval (read-only)A
Evaluate a read-only Gno expression against a realm via ABCI vm/qeval, e.g. TotalSupply() or BalanceOf("g1…"). Returns the raw typed result string. Never mutates state.
| Name | Required | Description | Default |
|---|---|---|---|
| expr | Yes | a Go call expression on the realm, e.g. `TotalSupply()` or `BalanceOf("g1…")` | |
| pkgpath | Yes | realm pkgpath, e.g. gno.land/r/gnoswap/gns |
TDQS
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 the key traits: the operation is read-only, it never mutates state, it routes through ABCI vm/qeval, and it returns a raw typed result string. What is missing is failure behavior (invalid expression, unknown pkgpath) and any rate-limit or latency expectation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what the tool does, followed by an example, the return shape, and the safety constraint. No sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter query tool with no output schema, the description usefully states the return form ('raw typed result string') and the non-mutating guarantee. Only error/edge-case behavior is omitted, which is a small remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented with the same examples used in the description. The description adds only the framing 'against a realm' for pkgpath, which the schema's example already conveys, so it is a baseline case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Evaluate') plus resource ('a read-only Gno expression against a realm') and the underlying mechanism (ABCI vm/qeval). The 'read-only ... never mutates state' framing implicitly separates it from the gno_call/gno_simulate/gno_swap siblings, but no sibling is named explicitly, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description's emphasis on 'read-only' and 'Never mutates state' implies the usage context (querying realm state without a transaction), but it never states when to prefer this tool over gno_call, gno_simulate, or gno_render, nor any prerequisites such as the realm needing to exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_failed_callsFailed transactionsB
Failed transactions with the raw chain error and an error class; filter by realm or class.
| Name | Required | Description | Default |
|---|---|---|---|
| class | No | error class | |
| limit | No | ||
| realm | No | package path | |
| offset | No | next_offset from the previous page | |
| since_height | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return payload shape at a high level (raw error + class), but says nothing about ordering, result volume, pagination behavior, or whether the call is read-only — leaving most behavioral traits unrevealed for a 5-parameter tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the resource and the return content front-loaded and no filler. The semicolon-separated filter clause is slightly clipped but stays efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and five optional parameters, the description should explain defaults, result ordering, and the meaning of since_height / pagination. It covers only the two self-documenting filters, so an agent still lacks what it needs to page through results or scope by height.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description adds meaning for two filters (realm, class) but is silent on since_height, limit, and offset. The two filter semantics are already fully documented in the schema, so the description contributes little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (failed transactions) plus the payload it returns (raw chain error and error class), which distinguishes it from the generic gno_get_transactions sibling. No explicit sibling reference is made, but the failure-focused scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'filter by realm or class' implies how to narrow results but gives no when-to-use vs when-not guidance, and never names the alternative transaction tool for successful/normal transaction lookups. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_functionsFunction call statsC
How often each realm function is called, filterable by app label or a text match on the name.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| app | No | ||
| limit | No | ||
| offset | No | next_offset from the previous page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies an aggregate read of counts but says nothing about ordering, whether results are paginated (limit/offset exist), how many rows a default page returns, or whether the count is per-realm or global.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the core metric front-loaded and the filter options trailing. Nothing is wasted, though the terseness leaves obvious questions unanswered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and four parameters at 25% schema coverage, the description is too thin. An agent cannot tell what the returned statistics contain or how pagination behaves, which matters for an analytics endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%, but the description partially compensates by explaining 'app' as an app label filter and 'q' as a text match on the function name. 'limit' is left unexplained beyond its bounds, and the interaction between q and app filters is unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific metric and resource: call frequency per realm function. It distinguishes itself implicitly from gno_failed_calls and gno_realms by focusing on per-function call counts, though it never names those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions the available filters but gives no when-to-use guidance, no exclusions, and no pointer to alternatives such as gno_failed_calls for error analysis or gno_realms for realm-level stats. The agent must infer the selection criteria from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_get_accountAccount / wallet statsC
Wallet overview for a g1… address: activity, counts, labels.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | g1… bech32 address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden, and it discloses almost nothing: no statement that it is a read-only lookup, no indication of whether labels are user-set or protocol-derived, no pagination or rate-limit note. "Overview" implies a composite read but that is inference, not disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clause with no filler, and the scoping phrase (the address) comes first. It is efficient, though it reads as a fragment rather than a structured sentence, and brevity here shades into under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description should at minimum enumerate what the overview returns, and "activity, counts, labels" is too abstract to substitute for a return description. The core invocation is unambiguous, so it is adequate rather than insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and the schema documents it fully at 100% coverage ("g1… bech32 address"), so the schema does the heavy lifting. The description only echoes the address format and adds no meaning beyond it, which matches the baseline 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Wallet overview for a g1… address" names a resource and a loose verb, and "activity, counts, labels" hints at contents, but it never says what an overview actually contains or how it differs from near-neighbors like gno_get_balances or gno_wallet_pnl. An agent can guess it's an account summary but cannot confidently pick it over siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives, and no prerequisites. With siblings such as gno_get_balances, gno_wallet_tokens, and gno_wallet_pnl covering overlapping ground, the absence of any routing hint is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_get_balancesGet balancesB
Native coin balances (ugnot etc.) and account number/sequence for an address, via ABCI auth/accounts.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | g1… address |
TDQS
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 the data source (ABCI auth/accounts) and implies a read-only lookup, but it does not explicitly state safety, permissions, rate limits, or side-effect behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It efficiently names the return content and data source.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool, the description names the main return values and source. Without an output schema it could say more about response shape, but the core information needed to call it correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single address parameter, and the schema already documents the expected g1… address format. The description only reinforces that the address is the target and adds no syntax or filtering semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and scope: native coin balances plus account number/sequence for an address. It also distinguishes native coin balances from token balances, though it does not explicitly contrast itself with siblings like gno_get_account or gno_token_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool returns but gives no guidance on when to use it versus alternatives. There are no exclusions, prerequisites, or sibling-routing instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_get_blockGet blockB
Block detail by height: transactions, proposer, time.
| Name | Required | Description | Default |
|---|---|---|---|
| height | Yes | block height |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does add value by naming the return contents (transactions, proposer, time), which matters since there is no output schema, but it says nothing about failure behavior for a nonexistent or future height, or how the embedded transaction list is bounded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short fragment with the key idea and return shape front-loaded; nothing is wasted. The terseness borders on under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description gives the essentials of what is returned. It falls short on error/edge-case context and on how it relates to the many sibling lookup tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100% ("block height"), so the schema already documents it fully. The description's "by height" merely restates the schema without adding format, range, or edge-case meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (block), the lookup key (height), and the fields returned (transactions, proposer, time), so an agent knows exactly what comes back. It is telegraphic rather than verb-led, and it does not distinguish itself from siblings like gno_get_transactions or gno_get_events, which also surface transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus gno_get_transactions, gno_get_events, or gno_search. No prerequisites, no mention of valid height ranges or whether the block must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_get_eventsGet eventsC
Emitted Gno events grouped by realm and type, with filters.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | free-text (realm/pkgpath) | |
| app | No | app label | |
| type | No | event type/name | |
| limit | No | ||
| offset | No |
TDQS
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 and largely drops it. It does not disclose that results are paginated (limit/offset exist only in the schema), what the default of 50 implies, ordering of the returned events, or whether events are indexed historically or only recent — all material for a read tool an agent will call repeatedly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight fragment with no filler, and the grouping behavior is front-loaded. It is terse to the point of under-specification, but that is a completeness problem rather than a conciseness one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters, zero annotations, and no output schema, the description needed to clarify the result shape and pagination contract. It hints at grouping by realm and type but leaves the pagination defaults, ordering, and event age/coverage entirely unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 60%: q, app, and type are documented, while limit and offset have no descriptions beyond numeric bounds. The description's 'with filters' adds no meaning — it does not say whether filters combine with AND, whether q matches realm vs package path, or how app maps to a realm label.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names the resource (emitted Gno events) and adds a useful structural detail — results are grouped by realm and type — plus the existence of filters. But it never states the verb or scope explicitly (chain-wide? single block? live vs historical?), and with 40+ siblings like gno_get_transactions and gno_search, nothing distinguishes when this event feed is the right source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance. The phrase 'with filters' implies querying, but an agent gets no signal on whether to reach for this versus gno_get_transactions or gno_get_block to inspect on-chain activity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_get_packageGet realm/packageC
Realm or package detail: metadata, deployer, functions.
| Name | Required | Description | Default |
|---|---|---|---|
| pkgpath | Yes | e.g. gno.land/r/gnoswap/router |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It implies a read operation and lists output categories, but does not state permissions, failure behavior, or how this differs from mutating or rendering tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact phrase with no wasted words. It is front-loaded, though being a noun fragment rather than a full sentence makes it slightly less clear than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with a fully documented input schema, the description gives enough to know it returns package metadata, deployer, and functions. However, with no annotations or output schema, and with near-neighbor siblings, it is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the sole pkgpath parameter already has an example in the schema. The description adds no parameter meaning beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (realm/package detail) and enumerates the kind of content returned (metadata, deployer, functions). It is clear what the tool retrieves but does not explicitly distinguish it from closely related siblings such as gno_package_files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. With many sibling tools covering packages, calls, evaluation, and rendering, the agent receives no routing signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_get_transactionsTransaction feedA
Recent classified transactions, newest first, cursor-paginated. Filter by app label or success. For a specific wallet's activity use gno_wallet_transfers.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | filter by app label, e.g. GnoSwap | |
| limit | No | ||
| cursor | No | next_cursor from a previous page | |
| success | No | 1=successful, 0=failed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden; it does disclose ordering (newest first) and pagination style (cursor), which are the key behavioral traits for a feed. It omits freshness/lag, result cap interaction with limit, and error behavior, which leaves meaningful gaps for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: what it returns and how it's ordered first, then the disambiguation. Zero filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-required-param list tool with no output schema, the description covers scope, ordering, pagination, and the main filtering surfaces. It would be stronger if it sketched the returned record shape (since there's no output schema) or noted the default page size, but it is sufficient to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so app, cursor, and success are already documented in the schema; the description only restates that you can filter by app label or success. The limit parameter (default 50, max 200) is not characterized at all in prose, though the schema handles it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('Recent classified transactions') plus ordering ('newest first') and pagination ('cursor-paginated'), and explicitly names the sibling it is not (gno_wallet_transfers). An agent can distinguish it from gno_wallet_transfers and gno_get_events without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative for wallet-scoped activity ('For a specific wallet's activity use gno_wallet_transfers') and implies use for a global recent feed with app/success filters. It stops short of an exhaustive when-not list (e.g., vs gno_get_events or how to page), but the primary routing decision is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_governanceGovDAO proposalsB
GovDAO proposals, newest first, with per-tier voting power. Votes per proposal: gno_governance_votes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose two behavioral traits beyond the schema: results are sorted newest-first and carry per-tier voting power. It omits read-only confirmation, default result count, pagination, and return shape, which leaves meaningful gaps for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with resource and ordering, with zero filler. The sibling pointer is telegraphic ('Votes per proposal: ...') and could be phrased more plainly, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should say more about what a proposal record contains and how the limit behaves. It covers ordering and cross-tool navigation but leaves the return structure and default paging behavior to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter (limit, 1-50) exists and schema description coverage is 0%, so the description must compensate but does not mention it at all — no default, no max, no effect on result set. A 3 reflects the minor scope of the gap rather than adequacy of coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource (GovDAO proposals), the ordering (newest first), and an included field (per-tier voting power), which is far more than a restatement of the name. It also implicitly separates itself from gno_governance_votes by deferring vote data to that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'Votes per proposal: gno_governance_votes' routes the agent to the sibling for vote detail, which is genuine usage guidance. However, it never states when this tool should be chosen versus gno_gpao_queue or other governance-adjacent siblings, and gives no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_governance_votesProposal votesC
Votes cast on one GovDAO proposal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | proposal id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden and delivers almost none of it. It does not state that this is a read-only lookup, whether votes include abstentions, whether voter addresses or weights are returned, or whether results are paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Six words with no waste, but it is a noun phrase rather than a front-loaded statement of action and scope, so the brevity comes at the cost of information rather than from efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must explain what comes back, and it does not — the shape of a vote record (voter, option, weight, timestamp) is entirely undisclosed. For a tool whose whole value is its return payload, this is a substantial gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single 'id' parameter is already documented as 'proposal id' in the schema. The description adds only the confirmation that the id refers to a GovDAO proposal; the baseline 3 applies when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment identifies the resource (votes) and narrows scope to a single GovDAO proposal, which is marginally more than the title. But there is no verb and no differentiation from the sibling gno_governance, which an agent could easily mistake for the same data at a different granularity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to use this versus gno_governance, nor any prerequisite (e.g. that a proposal id must first be obtained). An agent must guess 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.
gno_gpao_packageGPAO package statusB
One package's GPAO approval record; tracked=false when GPAO never saw it.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | gno.land/... package path |
TDQS
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 disclose one meaningful behavioral trait: tracked=false when GPAO never saw the package, which is exactly the edge case an agent would otherwise misread. It says nothing about read-only safety, errors, or what the record otherwise contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the resource up front and the edge case trailing. Slightly telegraphic, but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Input is fully covered and the tracked=false note addresses the main ambiguity, but with no output schema the description never says what fields the approval record actually returns, leaving an agent guessing about the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the only parameter is documented there as a gno.land package path. The description adds nothing about the path format or filtering behavior, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource: one package's GPAO approval record. The singular scope implicitly distinguishes it from the list-oriented gno_gpao_queue, but it stops short of explicitly naming that sibling or using a clear verb like 'fetch'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternatives. An agent must infer that this is the per-package lookup counterpart to gno_gpao_queue from the singular phrasing alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_gpao_queueGPAO deploy queueA
Mainnet package-approval queue: waiting, enabled and blocked packages. Other networks answer unsupported_query.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose real behavior: it is mainnet-scoped and returns an error result on other networks. It does not say whether this is a read-only view, whether the queue is paginated or truncated, or how large the result typically is — gaps that matter for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what the tool returns and followed by the network constraint. Nothing is wasted and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description conveys the shape of the result (three package states) and the network scope. It stops short of describing the record fields or ordering, but that is a minor residual gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline the description needs only to justify the absence of inputs, which it does by framing this as a network-wide queue listing rather than a targeted query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (mainnet package-approval queue) and enumerates its contents (waiting, enabled, blocked packages), which is more informative than the title alone. It does not distinguish itself from the sibling gno_gpao_package, which covers similar ground, leaving the agent to infer the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mainnet-only caveat ('Other networks answer unsupported_query') is genuinely useful scoping guidance an agent would otherwise have to learn by failure. However, there is no explicit statement of when to prefer this over gno_gpao_package or when a queue view is the right choice, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_grc721GRC721 NFT (best-effort)A
Best-effort read of a GRC721 NFT realm via its standard getters. Null fields mean the realm does not expose that getter. Pass owner for a balance and/or tokenId for owner and URI. To list the NFTs an address owns, use gno_nft_holdings.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | No | g1… address → NFT balance | |
| pkgpath | Yes | NFT realm pkgpath | |
| tokenId | No | a token id → owner + tokenURI |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description still discloses the key behavioral trait: it is best-effort and "Null fields mean the realm does not expose that getter," which tells the agent how to read partial results rather than treating nulls as errors. It does not cover permission requirements, rate limits, or the full returned field set, so it falls short of exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: what it does, how to interpret nulls, what to pass, and where to go instead. Front-loaded and zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does so partially by naming balance, owner, and URI and explaining null semantics. It stops short of enumerating the full getter set (e.g., name, symbol) an agent might receive, which is the only remaining gap for a three-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline applies. The description restates what the schema already declares (owner → balance, tokenId → owner and URI) and adds only the "and/or" combinability hint; it contributes little beyond the structured field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (best-effort read of a GRC721 NFT realm via standard getters) and immediately distinguishes itself from the closest sibling, gno_nft_holdings. An agent knows this is a per-realm getter probe, not a holdings enumerator, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly maps arguments to outcomes: "Pass owner for a balance and/or tokenId for owner and URI," and names the alternative for a different task ("To list the NFTs an address owns, use gno_nft_holdings"). Both the when and the when-not are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_healthIndexer healthA
Indexer and classifier health, chain tip versus indexed tip, and data freshness.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden; the diagnostic framing implies a safe read, but that is inference rather than disclosure. It does not say whether the call is expensive, rate-limited, or whether stale results are possible, though for a zero-parameter health probe the disclosure need is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with zero filler, and the most important signal (indexer/classifier health) is front-loaded. Nothing in it is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-argument diagnostic with no output schema, the description usefully enumerates the three return dimensions (health, tip lag, freshness), which partially compensates for the missing output schema. It stops short of describing the response shape or how to interpret a degraded result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so there is nothing for the description to disambiguate; baseline is 4. The description correctly implies no input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete things the tool reports: indexer and classifier health, chain tip versus indexed tip, and data freshness. That is more specific than a tautology, but it is a noun fragment with no verb, and it does nothing to distinguish itself from the sibling diagnostic tools gno_status, gno_agent_status, or gno_api_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The metrics listed (chain tip vs indexed tip, freshness) imply the diagnostic use case — check before trusting other data — but the description never says when to call this versus gno_status or gno_api_usage, and gives no exclusions or prerequisites. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_holder_seriesHolder-count seriesC
Holder-count time series for a token.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | canonical token_path returned by gno_prices or gno_token_registry |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the entire burden, and it discloses almost nothing: no statement of read-only behavior, time range, granularity, pagination, or rate limits. 'Time series' weakly implies historical data, but nothing tells the agent the window, interval, or response shape for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero waste, which is structurally sound. However, the brevity here is under-specification rather than discipline — nothing meaningful is packed into the sentence beyond the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool this could be adequate, but with no annotations and no output schema, the agent still has no idea what time range, granularity, or units the series returns. The description leaves the most decision-relevant behavior undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is fully documented there, including that it must be a canonical token_path from gno_prices or gno_token_registry. The description's 'for a token' merely echoes the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('Holder-count time series') and its subject ('for a token'), so the agent knows roughly what data comes back. But it is essentially the title restated, with no verb, no scope, and no differentiation from the close sibling gno_token_holders (current holders) or gno_whales — an agent cannot tell from the text why it would pick this over those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this instead of gno_token_holders or any other holder-related sibling, and no stated prerequisites or exclusions. The only usage hint is implicit in the word 'series', which the agent must interpret on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_known_entitiesKnown entitiesC
Labeled entities such as whales, arbitrageurs and distributors.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it only enumerates example entity types. It says nothing about whether the result is a fixed taxonomy or dynamically computed, whether it includes counts or addresses, or whether the categories are stable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no wasted words and the key examples up front. It earns its place, though it is so terse that structure barely applies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter enumeration tool with no annotations and no output schema, the description should state what the caller receives (a list of labels? a mapping to addresses?) and how it relates to gno_label. None of that is present, leaving the agent to invoke blind.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter semantics gap exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('labeled entities') and gives concrete examples (whales, arbitrageurs, distributors), so an agent can guess it enumerates a label taxonomy. But it's a noun phrase with no verb — it never says whether it lists, counts, or describes entities, and it overlaps ambiguously with siblings like gno_label, gno_whales and gno_smart_money without differentiating itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. With ~70 siblings including gno_label and gno_whales, the agent gets no help deciding between this tool and those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_labelLabel addressB
Resolve an address to known entity and app labels (e.g. GnoSwap, faucet).
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | g1… address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Resolve' implies a read, but the description doesn't say what happens for an unlabeled address (empty result vs. error), whether results are cached, or what the response shape is. For a zero-annotation tool this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb, the input, and the payoff, plus examples that anchor what a 'label' is. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the definition is minimally adequate but leaves the return value (label structure, multiple labels, miss behavior) entirely unspecified. An agent can call it, but cannot predict or interpret the result confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema coverage is 100%, with the schema already documenting it as a 'g1… address'. The description adds no format, validation, or accepted-input detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Resolve') plus resource (an address) and named output class (entity and app labels), with concrete examples (GnoSwap, faucet). This distinguishes it from data-returning siblings like gno_get_account or gno_get_balances, though it doesn't explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to reach for this tool versus gno_get_account or gno_search, and no exclusions or prerequisites. The agent must infer usage from the one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_launchpadLaunchpad marketsC
Launch venue markets: bonding-curve launches with graduation progress and zDex pools.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It hints that results include graduation progress and zDex pool data, but says nothing about read-only nature, pagination, default page size, ordering, or what a market record contains. For a list endpoint with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, so nothing is wasted. But the brevity is under-specification rather than economy: it omits the verb and the filtering behavior that would make it actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two undocumented parameters, no annotations, and no output schema, the description is the only source of behavioral detail and it supplies almost none. An agent would have to guess at default limit, valid status values, and result shape before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters. The description does not explain what 'limit' caps (rows? markets? 500 max is only in the schema) or which values 'status' accepts, even though the free-form string with no enum most needs explanation. 'Graduation progress' is the closest hint, but it does not map explicitly to the status filter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (launchpad/venue markets) and enumerates three content types: bonding-curve launches, graduation progress, and zDex pools. However, it never states a verb ('list', 'fetch', 'query') and gives no differentiation from the several sibling launch tools (gno_launch_quote, gno_launch_radar, gno_launch_snipers), so an agent cannot be certain whether this returns a collection or a single market.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus gno_launch_radar, gno_launch_quote, gno_launch_snipers, or gno_pools. The only implied usage is 'launch markets', which leaves the agent to infer the selection condition from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_launch_quoteLaunch quoteB
Read-only bonding-curve quote. Unsafe curve states answer quote_unavailable instead of a number.
| Name | Required | Description | Default |
|---|---|---|---|
| side | No | ||
| token | Yes | ||
| amount | Yes | raw integer amount in the token's smallest unit |
TDQS
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 disclose two non-obvious traits: it is read-only and returns a sentinel value 'quote_unavailable' for unsafe curve states instead of a number. However, 'unsafe curve states' is undefined and the response shape is never described, leaving the agent unsure what a successful quote actually contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, and the read-only/quote framing is front-loaded. It is arguably too terse rather than too verbose, but nothing present is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should explain what a quote returns (price, output amount, fees, curve state), yet it only mentions a failure sentinel. Combined with undocumented token/side parameters, an agent cannot confidently call this or interpret the result beyond the error case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% — only 'amount' is described in the schema. The description adds nothing about 'token' (address? symbol? id?) or about 'side' (enum buy/sell), including the fact that 'side' is optional and presumably defaults to buy. The gap the schema leaves is not compensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('quote') and resource ('bonding-curve'), which separates it from the DEX-oriented siblings like gno_dex_quote and gno_dex_route. It never explicitly names the launchpad siblings it complements (gno_launchpad, gno_launch_radar), so differentiation is implied 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'bonding-curve quote' implies the context (launchpad tokens pre-DEX), but there is no explicit when-to-use, no prerequisites, and no named alternative such as gno_dex_quote for tokens that have graduated to a pool. An agent must infer the routing decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_launch_radarLaunch radarC
Newly launched tokens and pools.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers almost nothing: no recency window, sort order, refresh cadence, pagination, or return shape. Only 'newly launched' hints at recency ordering, which is thin for a discovery/monitoring tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but short by under-specification rather than economy — a four-word fragment with no complete sentence. There is nothing to front-load because no verb or scope boundary is stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and undocumented parameters mean the description must explain result contents and behavior, and it does not. An agent cannot tell what fields come back or how 'newly launched' is bounded in time.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'limit' has 0% schema description coverage and is never mentioned in the description. The 1-200 range and default behavior are undocumented in natural language, so the description adds nothing over the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase names the resource (tokens and pools) and a distinguishing scope qualifier ('newly launched') that separates it from siblings like gno_pools and gno_token_registry. However it is a bare noun fragment with no verb, so it never states what the tool actually does (list? rank? stream?).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus gno_pools, gno_token_registry, or gno_swap_signals, and no mention of prerequisites or exclusions. The only implicit cue is 'newly launched', leaving the agent to infer the use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_launch_snipersLaunch snipersC
Sniper activity on one launch pool.
| Name | Required | Description | Default |
|---|---|---|---|
| pool | Yes | launch pool key from gno_launch_radar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and discloses almost nothing: read-only is merely implied, and it never states the time window, aggregation, limits, or shape of the response. For a data tool with zero annotation coverage this leaves the agent guessing about behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no padding, so nothing is wasted. But the brevity is under-specification rather than efficient density — front-loaded meaningful content is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and no statement of return structure or timeframe. For a tool whose entire job is returning sniper activity data, the description does not give enough for an agent to know what it will get back or when to prefer it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema coverage, so the schema already explains the pool key and its origin in gno_launch_radar. The description's 'one launch pool' merely restates the schema rather than adding format or constraint detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Sniper activity on one launch pool' names the resource (sniper activity) and its scope (a single pool), but offers no verb or framing of what is returned or performed. Against siblings like gno_launch_radar, gno_launchpad, and gno_launch_quote it gives no positive differentiation beyond the word 'sniper'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative named. The only implicit workflow hint is the schema's 'from gno_launch_radar', which the description itself never repeats or builds on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_librariesLibrariesC
Pure packages (gno.land/p/...) with how many realms import them.
| Name | Required | Description | Default |
|---|---|---|---|
| include_audit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys that results pair packages with realm import counts, but it does not state whether the operation is read-only, how results are ordered or paginated, or what the include_audit toggle changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or repetition. It is slightly cryptic as a fragment and omits important details, but it is efficiently sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is structurally simple, but the only optional parameter is completely unexplained and there is no output schema. An agent cannot determine what include_audit does, how results are shaped beyond 'packages with import counts,' or when this should be chosen over gno_library.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has one parameter, include_audit, with 0% schema description coverage. The description never mentions this parameter, so it adds no meaning beyond the schema and fails to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource (pure packages under gno.land/p/...) and a specific metric (how many realms import them), so the core purpose is understandable. However, it lacks an explicit verb such as 'list' and does not differentiate itself from the singular sibling gno_library or from gno_package_files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like gno_library or gno_package_files. The resource mention implies it is for browsing library packages and their import popularity, but no conditions or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_libraryLibrary detailA
One library: event breakdown, the realms that call it and its deployment. Unknown paths are not_found.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | gno.land/p/... path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It helpfully discloses that unknown paths return not_found, but it does not explicitly state that the tool is read-only or describe permission/auth considerations. The detail-view framing implies a safe read operation, but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted language. The resource and returned data are front-loaded, followed by the relevant error behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with no output schema, the description gives a useful high-level account of what is returned and how unknown paths are handled. It does not detail the output structure, but it is complete enough 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the path parameter is already documented in the schema. The description adds only the not_found behavior for unknown paths, which is useful but does not add substantial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a single library detail lookup and names the main contents returned: event breakdown, caller realms, and deployment. It implicitly contrasts with the plural sibling gno_libraries, though it does not explicitly name that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'One library' and the required path parameter, suggesting this is for detail retrieval on a specific library. However, it gives no explicit guidance on when to use this instead of gno_libraries or other package-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_mevMEV activityB
Same-pool, same-block sandwich-pattern candidates. Not general MEV or arbitrage detection.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full burden, yet it discloses almost nothing beyond the detection pattern. It does not say the result set is heuristic/scored, does not describe the time window implied by `days`, pagination behavior around `limit`/`offset`, defaults, or cost/latency, all of which matter for an unannotated query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences, front-loaded with the positive definition followed by the exclusion. Nothing is redundant and every clause carries signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter analytical query with zero annotation coverage and no output schema, the description is too thin: return shape, time-window semantics, and pagination are all unaddressed. What it does say about detection scope is good, but the operational picture an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions `days`, `limit`, or `offset`. The constrained enum of 1/7/30 days and the 1000-row cap are discoverable only from the schema itself, and the description adds no interpretation of what a window or page means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States concretely what is detected: "same-pool, same-block sandwich-pattern candidates," which is a specific pattern rather than a vague 'MEV activity' restatement. The explicit negative clause ("Not general MEV or arbitrage detection") further sharpens the boundary, though the verb is implicit — the agent must infer this returns a list of candidate entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an exclusion ("not general MEV or arbitrage") which helps rule out misuse, but offers no positive guidance on when to reach for this tool and never names an alternative sibling (e.g. gno_swap_signals or gno_wash_trades) for related analyses. The routing value is one-sided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_nft_collectionNFT collectionC
A GRC721 collection's holders, supply, and distribution.
| Name | Required | Description | Default |
|---|---|---|---|
| pkgpath | Yes | full collection ID from gno_nft_holdings.by_collection, including the qualified token suffix |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It mentions the returned data categories but says nothing about read-only behavior, authentication, rate limits, response shape, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is efficiently sized for a one-parameter tool, though it is arguably too terse to be complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should do more to explain what is returned. It lists the high-level data categories but does not describe return format, aggregation level, or response structure. Given the tool's simplicity, it is adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter and the schema description is fully covered at 100%, including a precise instruction to use the full collection ID from gno_nft_holdings.by_collection. The description adds no parameter information, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (a GRC721 collection) and the data dimensions it surfaces (holders, supply, distribution), but it is a noun phrase with no verb such as 'get' or 'fetch.' It also does not differentiate this tool from nearby siblings like gno_nft_holdings or gno_grc721.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when not to use it, or which sibling to choose instead. The only contextual hint is in the parameter schema, not the description, and it merely says where to obtain the collection ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_nft_holdingsNFT holdingsA
Cursor-paginated GRC721 NFTs a wallet owns across all collections. Includes GnoSwap LP positions (each is an NFT). Prefer this over gno_grc721 for 'what does X own'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | next_cursor from the previous page for this wallet | |
| address | Yes | g1… address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It usefully discloses two behavioral traits: results are cursor-paginated, and LP positions are returned as NFTs (a non-obvious semantic that could otherwise skew counts). It says nothing about data source freshness, whether unrevealed/empty collections appear, or per-item return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the resource and scope, then the LP caveat, then the routing rule. Every clause carries information; nothing is restated from the name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does a solid job of what an agent needs to select and page through it. The remaining gap is the shape of each holding (contract address, token ID, collection name), which an agent must discover by calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% — address and cursor are documented in-schema, limit has only min/max bounds. "Cursor-paginated" reinforces that cursor is a continuation token, but the description adds no meaning about what limit counts (NFTs vs collections) or pagination edge behavior, so it does not compensate for the partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (GRC721 NFTs), owner scope (a wallet owns), and breadth (across all collections), plus a notable inclusion rule (GnoSwap LP positions count as NFTs). This clearly separates it from gno_grc721 and gno_nft_collection without needing the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: "Prefer this over gno_grc721 for 'what does X own'", naming the alternative and the query pattern that selects this tool. No when-not condition or mention of adjacent siblings like gno_wallet_tokens/gno_nft_collection, so it stops short of full routing coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_ohlcvToken candles (OHLCV)C
OHLCV candles for a token.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| token | Yes | canonical token_path returned by gno_prices or gno_token_registry | |
| interval | No | e.g. 1h, 1d |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and provides almost none: it doesn't say whether this is a read-only query, what the default interval or limit is, what time range is covered, or how candles are ordered. 'OHLCV candles for a token' only restates the title.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no filler, so nothing is wasted, but it is under-specified rather than truly concise — the brevity comes at the cost of any actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter time-series tool with no annotations and no output schema, the description should explain the return shape, defaults, and relationship to gno_prices. None of that is present, leaving the agent to guess at interval/limit behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 67% schema coverage, the schema documents token and interval but leaves limit (1-1000) undescribed, and the description adds no parameter meaning at all — no default interval, no note that limit caps returned candles, no guidance that token must be a canonical token_path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific data resource (OHLCV candles) scoped to a token, so an agent knows roughly what data comes back. But it has no verb and does nothing to distinguish it from nearby siblings such as gno_prices or gno_holder_series, which also return token time series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives like gno_prices (spot price) or gno_holder_series (holder time series). The only implied guidance is that a token is required, which the schema already states.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_package_filesPackage files & functionsA
List a package's source files (vm/qfile) and exported function signatures (vm/qfuncs).
| Name | Required | Description | Default |
|---|---|---|---|
| pkgpath | Yes | package pkgpath |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'List' implies a read-only, non-destructive operation, and the parenthetical names the two result categories, which is genuine behavioral signal. However, it says nothing about behavior when pkgpath is unknown or invalid, whether results are paginated/truncated, or how large packages are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and the resource, with no filler. The parenthetical adds concrete detail rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema and no annotations, the definition is adequate but thin: it does not describe the return structure (file paths vs. full source, signature formatting) or failure behavior for bad paths, both of which an agent must guess before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the single pkgpath parameter is documented, albeit tersely as 'package pkgpath'), so baseline 3 applies. The description adds no format guidance — e.g. whether pkgpath is a fully-qualified path like 'gno.land/r/demo/boards' — which would be the one place extra value was possible with only one parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'List a package's source files ... and exported function signatures', and it even names the underlying query paths (vm/qfile, vm/qfuncs), which tells an agent exactly what data surfaces. It is distinguishable from the nearer siblings gno_get_package and gno_eval, though it never names them to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the tool for inspecting a package's source/exported API once it has a pkgpath. There is no explicit when-to-use versus gno_get_package (package metadata) or gno_eval (function evaluation), and no stated prerequisites such as the package needing to exist on chain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_pool_depthPool depthC
Liquidity depth profile for a GnoSwap pool.
| Name | Required | Description | Default |
|---|---|---|---|
| pool | Yes | pool path/id |
TDQS
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, and it discloses almost nothing: it doesn't say whether the read is a point-in-time snapshot or historical, whether it is expensive/rate-limited, or what the response shape looks like. Read-only semantics are only implied by 'profile', never stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single eleven-word sentence with zero waste, but that is concision by omission rather than by discipline. It is front-loaded with the resource but never gets to scope, format, or usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is the only place an agent can learn what a 'depth profile' actually contains (bins, ranges, cumulative liquidity, units). None of that is present, so an agent cannot predict the return value or judge whether this tool fits its question.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage ('pool path/id'), so the schema already does the documentation work. The description adds only the contextual hint that the pool is a GnoSwap pool, with no guidance on path formatting or ID forms beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('Liquidity depth profile') and the domain ('GnoSwap pool'), so an agent knows roughly what data comes back. But it is a bare noun phrase with no verb, and 'profile' is ambiguous — snapshot vs. time series, order-book bins vs. tick ranges. It also gives no signal to distinguish it from siblings like gno_pools or gno_pool_lp_providers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reach for this tool versus gno_pools (pool listing) or gno_pool_lp_providers (LP composition). No prerequisites, no exclusions, no alternative named — the agent must 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.
gno_pool_lp_providersPool liquidity contributions and ownersC
Indexed contributions, raw amounts and nullable current-price estimates, with separately verified current position owners. Events page by before; contributors page by offset.
| Name | Required | Description | Default |
|---|---|---|---|
| pool | Yes | pool path/id | |
| limit | No | ||
| before | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the safety/behavior burden. It usefully flags indexed data, nullable price estimates, separately verified owner status, and split pagination modes, but omits read-only-ness, permissions, error behavior, and response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, no filler, and pagination guidance is placed where it is needed. Slightly packed but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations mean the description should explain returned structure and operational constraints more fully. It gives a rough data summary and pagination modes, but an agent still lacks field-level return expectations or read-only assurance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 25% (only 'pool' documented), so the description must do work. It clarifies that 'before' pages events and 'offset' pages contributors, but leaves 'limit' and the exact semantics of 'pool path/id' to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as indexed pool contributions and verified current position owners, but opens with a noun phrase rather than a verb and never says explicitly whether it lists, aggregates, or resolves providers. It is distinguishable from gno_pool_depth and gno_pool_trades by its owner/contribution focus, but the action remains implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternative is named. The only routing-like statement is pagination mechanics ('Events page by before; contributors page by offset'), which does not tell an agent when this tool should be chosen over pool-depth or holder tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_pool_ohlcvPool candlesB
OHLCV candles for one pool's pair. For a token's candles across pools use gno_ohlcv.
| Name | Required | Description | Default |
|---|---|---|---|
| pool | Yes | pool key from gno_pools | |
| limit | No | ||
| interval | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it only states the data type and scope. It does not disclose read-only semantics, pagination limits, default interval, rate limits, or return format beyond the OHLCV label.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero wasted words. The primary scope is front-loaded and the sibling alternative follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for tool selection but thin for invocation given the lack of annotations, no output schema, and low schema description coverage. An agent still lacks default interval/limit behavior and return-shape details, though the OHLCV naming and pool-key schema help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate for undocumented parameters. It adds no meaning for 'limit' or 'interval' (e.g., defaults, units, or how the candle window is chosen), and only indirectly hints at the 'pool' parameter via 'one pool's pair'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as OHLCV candles scoped to one pool's pair, and explicitly contrasts this with gno_ohlcv for token-level candles. It is specific enough to distinguish from the sibling, though it does not use an explicit retrieval verb like 'list' or 'get'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It directly names the alternative tool (gno_ohlcv) and the condition that selects it: token-level candles across pools. It does not list exclusions or prerequisites, but the primary routing guidance is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_poolsDEX poolsA
GnoSwap pools: token pair, fee tier and creation details, with each pool's market figures under market (TVL, 24h/7d volume, fee, emission and total APR, swaps). market is null when not yet computed; meta.market_as_of dates it. For a single pool use gno_pool_depth, gno_pool_lp_providers, or gno_ohlcv.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description does useful work by disclosing that market can be null and that meta.market_as_of dates the snapshot. However, it says nothing about read-only nature, pagination behaviour, or rate limits, so the behavioral picture is only partly filled in.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero waste: payload contents first, the null/meta nuance second, the alternative tools last. Every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no annotations or output schema, the description covers the return shape, the null case and the timestamp field, which is most of what an agent needs. The missing piece is pagination guidance for limit/offset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for limit and offset, and the description never mentions them, so the agent gets no semantics for either parameter. With two undocumented params, the description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (GnoSwap pools) and the fields returned (token pair, fee tier, creation details, market figures), which is specific enough to distinguish it from generic DEX tools. It stops short of an explicit verb like 'list all pools', but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes the agent away for single-pool lookups: 'For a single pool use gno_pool_depth, gno_pool_lp_providers, or gno_ohlcv.' That is a clear alternative with a stated condition. It does not address when to prefer gno_dex_analytics or gno_pool_trades, so it is not a full routing guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_pool_tradesPool tradesC
Recent settled swaps for one pool (the tape) plus whole-pool stats.
| Name | Required | Description | Default |
|---|---|---|---|
| pool | Yes | pool key from gno_pools | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that swaps are 'settled' and 'recent' and that stats are included, but it does not explain ordering, freshness window, pagination behavior, rate limits, or what 'whole-pool stats' contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every phrase contributes to identifying the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a DEX trade/statistics tool with no annotations and no output schema, the one-line description leaves important context unstated: return shape, stats definition, ordering, and limit behavior. It identifies the subject but is not complete enough to call confidently without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the pool parameter is documented as coming from gno_pools, but limit has no schema description and the tool description never explains its meaning, default, or maximum. The phrase 'one pool' reinforces the required pool parameter but adds nothing beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource and scope: recent settled swaps for a single pool, plus whole-pool stats. It is distinguishable from broad DEX tools, though it does not explicitly name which sibling to use instead of gno_swap_hops or gno_pool_ohlcv.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as gno_swap_hops, gno_pool_ohlcv, or gno_dex_series. The only implied usage is that a pool key is required, which is already evident from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_price_listAll token pricesA
Every token's price (VWAP with oracle cross-check). One token: gno_prices. Costs expensive units.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the pricing methodology and the cost warning, but it does not describe return shape, refresh cadence, or other operational details an agent might need.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short fragments front-load the purpose, alternative, and cost warning with no wasted words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema price listing, the description covers purpose, method, alternative, and cost. It could say more about the returned structure, but the low complexity keeps the gap minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain. The baseline of 4 applies because the schema already fully describes the empty input object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool returns every token's price using VWAP with an oracle cross-check, and it distinguishes this from the single-token sibling by naming gno_prices. The resource and scope are immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes the agent to gno_prices for a single token and warns that this tool consumes expensive units, which gives clear usage context. It does not explicitly say when not to use the tool beyond that alternative, so it falls just 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.
gno_pricesToken pricesA
Token prices sourced from GnoSwap. Pass a token for one price, or omit it for all.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | token pkgpath; omit for the whole feed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral-disclosure burden. It adds useful context that prices come from GnoSwap and that omitting the token returns the whole feed, but it does not disclose freshness, caching, rate limits, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted wording. The source is stated first and the parameter behavior follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter price lookup, the description is adequate for invocation. However, with no output schema and no annotations, it omits return-value details such as price format, freshness, and whether all-token responses include metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the optional token parameter and its meaning. The description reinforces that passing a token returns one price while omitting it returns all, but it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource and source: token prices from GnoSwap. It also explains the single-token versus full-feed behavior. It does not explicitly differentiate this tool from nearby siblings such as gno_ohlcv or gno_swap_signals, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains how to choose between one token and the whole feed, which gives implied invocation guidance. However, it does not say when to use this tool instead of related tools like gno_ohlcv, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_realm_graphRealm import graphB
Which realms and packages import which. scope=overview for the whole chain, ego with root for one package's neighbourhood.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | package path for scope=ego | |
| depth | No | ||
| scope | No |
TDQS
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 implies a read-only graph query but does not disclose permissions, output shape, graph direction, depth effects, pagination, or any other behavioral traits beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with the purpose front-loaded and no obvious filler. The phrasing is terse but efficient; slightly more clarity around parameter syntax would improve it, but it is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a graph-query tool with no annotations and no output schema, the description is incomplete. It omits depth semantics, return structure, and graph direction, so an agent cannot fully predict what the tool will return or how depth affects the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description compensates partially by explaining scope values and the root parameter for ego mode. The depth parameter remains undocumented in both schema and description, leaving a meaningful semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and relationship: realms and packages import relationships. It does not explicitly distinguish this tool from nearby siblings such as gno_realms, gno_libraries, or gno_get_package, but the import-graph purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit scope-level guidance: overview for the whole chain and ego with root for a single package neighbourhood. However, it does not say when to use this tool instead of related package/realm tools, so the alternative-selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_realmsRealms and packagesA
Indexed realms and packages with activity counts, offset-paged. For one package use gno_get_package.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | next_offset from the previous page |
TDQS
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 two useful traits: results include activity counts, and paging is offset-based. But it is silent on ordering, what 'activity' measures, and whether realms and packages are mixed in one result set — meaningful gaps for a list tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what the tool returns, followed by the disambiguation pointer. Nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and one undocumented parameter, an agent still lacks ordering information and any sense of the returned fields beyond 'activity counts'. For a simple two-parameter list tool this is close to adequate, but the burden falls entirely on the description and it stops short.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: offset is documented as 'next_offset from the previous page' while limit has no description at all. The description's 'offset-paged' reinforces the offset semantics but adds nothing about limit semantics or its 2000 ceiling, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (indexed realms and packages) and the payload attribute (activity counts), which is enough to distinguish it from aggregator siblings like gno_pools or gno_dex_analytics. It also explicitly excludes gno_get_package for single-package lookups. However, the verb is only implied ('Indexed ...') rather than stated as a list/enumerate action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the single-package case to gno_get_package, and 'offset-paged' communicates the iteration model. It gives no guidance on when to prefer this over related enumeration siblings (e.g. gno_libraries, gno_discoveries) or on ordering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_renderRender realmB
Fetch a realm's Render(path) output via ABCI vm/qrender: the markdown page the realm serves at gno.land/r/…:path.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | render sub-path (default empty) | |
| pkgpath | Yes | realm pkgpath |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the underlying ABCI query path and that the return is a rendered markdown page, implying a read-only operation. It says nothing about error behavior (nonexistent realm, path that does not implement Render) or whether the query is free/cached, which are material for an agent planning a call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the verb and resource, then supplies the transport and output format as compact clauses. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description adequately explains what comes back (a markdown page) and how the query is executed. The main gap is failure modes — what happens when the realm or render path does not exist — but the core call contract is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the schema, establishing a baseline of 3. The description adds only the notion that path is appended to the realm path in the gno.land/r/…:path form; it gives no guidance on valid sub-path syntax or default behavior beyond the schema's 'default empty'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fetch) and resource (a realm's Render(path) output), then clarifies the result is the markdown page served at gno.land/r/…:path. That distinguishes it from generic evaluation siblings like gno_eval or gno_call, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus gno_eval, gno_call, or gno_package_files — the closest siblings. The 'via ABCI vm/qrender' note describes the mechanism, not a selection criterion, so the agent must infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_searchSearchC
Full-text search across realms, tokens, wallets, transactions, and blocks.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | free-text query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it only discloses the search corpus. It does not state whether results are grouped by entity type, the ordering, or whether this is a read-only/side-effect-free operation (only implied). With zero annotation coverage this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the search scope is stated immediately. It is efficient, though there is very little content to be front-loaded given the tool's gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and a poorly documented limit parameter mean the description should explain result shape and paging behavior, but it does not. For a multi-entity federated search tool, an agent cannot predict what comes back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: query is described in the schema, but limit is undocumented beyond its 1-100 bounds. The description's list of entity types clarifies what query searches across, but it never resolves whether limit caps results globally or per entity type, which is the one ambiguity that matters here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A clear specific verb (full-text search) plus an enumeration of the searchable resource types (realms, tokens, wallets, transactions, blocks). It distinguishes itself reasonably from single-resource siblings like gno_get_transactions or gno_token_metadata, though it never states how it compares to those targeted lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this broad search versus a targeted sibling such as gno_get_account or gno_token_registry. There is no mention of prerequisites, no exclusions, and no indication of what happens when the query matches nothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_smart_moneySmart moneyC
Wallets ranked by realized PnL.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full transparency burden. It discloses only the ranking criterion and says nothing about timeframe, data freshness, sorting direction, or whether this is a read-only snapshot, leaving meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. Its extreme brevity is efficient, though it leaves important context unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and an undocumented parameter, the description is too thin for a ranking tool. It does not define 'realized PnL', the ranking window, default limit behavior, or what the returned wallet records include.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is 'limit' with schema constraints but 0% description coverage. The description does not explain the default, maximum, or what the limit counts (wallets), so it adds little to the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (wallets) and a ranking criterion (realized PnL), so an agent can understand the tool returns a ranked list. It does not explicitly distinguish this from sibling tools like gno_wallet_pnl or gno_whales, leaving some ambiguity about when this list-oriented view is preferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as gno_wallet_pnl or gno_whales. The description offers no conditions, exclusions, or recommended contexts for selecting this ranking view.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_sparklinesActivity sparklinesC
Coarse activity buckets across the whole indexed range.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full disclosure burden, yet it only reveals granularity ('coarse') and coverage ('whole indexed range'). It says nothing about the shape of the response, bucket resolution, whether the range or bucket size is configurable elsewhere, cost, or freshness/lag of the index.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no waste, but it is terse to the point of under-specification rather than efficient communication. There is nothing front-loaded because there is essentially nothing said.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a zero-parameter analytics tool with no annotations and no output schema, so the description is the agent's only source of information about what comes back. It fails to state the returned metrics, the bucket granularity, or the time span actually covered, leaving an agent unable to predict the result at all.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No parameter detail is needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Coarse activity buckets across the whole indexed range' names a resource shape and a scope, but never says what 'activity' is measured (calls, transactions, blocks, users) or supplies a real verb. It also does nothing to distinguish it from sibling analytics tools like gno_blocks, gno_dex_analytics, or gno_dev_activity, which plausibly overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus alternatives, no mention of what question it answers, and no prerequisites or exclusions. The only implicit cue is 'coarse', which hints at a high-level overview but never says so or names what to use for detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_statusChain statusA
Chain tip: latest height, chain ID, and block time, plus which RPC endpoint answered.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It states the output fields and that it queries an RPC endpoint, implying a read-only operation. However, it doesn't explain edge cases like multiple endpoints, failure behavior, or whether the data is cached. This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core information. It avoids unnecessary words and clearly lists the returned fields, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description covers the essential information an agent needs: what the tool returns and its scope. It might benefit from a note about latency or that it's a lightweight query, but it is largely complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly omits parameter details, and the empty schema fully covers the parameter space. No additional explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports chain tip information: latest height, chain ID, block time, and the responding RPC endpoint. It distinguishes itself from siblings like gno_get_block (specific block) or gno_get_transactions, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. It doesn't mention usage context, prerequisites, or exclusions. The description only states what it does, leaving the agent to infer when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_swap_hopsMulti-hop swapsC
Multi-hop swaps leg by leg, as executed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | next_offset from the previous page | |
| status | No | route status filter | |
| first_leg | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden and delivers only the fact that records reflect executed (not planned) swaps. It says nothing about ordering, pagination behavior, whether a route is returned as grouped legs, retention windows, or authentication/cost constraints — all material for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is certainly short and the key qualifier ("leg by leg") is front-loaded, but the brevity tips into under-specification rather than economy. There is no filler, yet the single fragment leaves obvious questions unanswered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Four optional parameters, no annotations, and no output schema mean the description must explain both behavior and return shape; it does neither. An agent has no idea whether the response is a list of swaps, a list of legs per route, or aggregate counts, nor how limit/offset paginate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: limit and first_leg are completely undocumented, and status/first_leg semantics (what "route status" values exist, what first_leg filters) are unexplained anywhere. The description contributes zero parameter information, so an agent cannot resolve what first_leg=true means or what unit limit applies to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Multi-hop swaps leg by leg" conveys the resource — individual legs of multi-hop swap routes — and "as executed" hints these are settled on-chain swaps rather than quotes. But there is no verb (list? fetch? aggregate?) and no differentiation from near-siblings like gno_pool_trades, gno_dex_route, or gno_swap_signals, so an agent must guess which tool covers executed swap legs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use condition, no mention of alternatives such as gno_pool_trades for raw trades or gno_dex_route for quoting a route, and no prerequisites. The only implicit guidance is the phrase "as executed," which doesn't tell the agent when to prefer this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_swap_signalsSwap signalsB
Settled swap events with price impact. Page with cursor=next_cursor; offset is retained for compatibility. Optionally filter by pool or signing wallet.
| Name | Required | Description | Default |
|---|---|---|---|
| pool | No | ||
| limit | No | ||
| cursor | No | ||
| offset | No | ||
| trader | No |
TDQS
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: only settled (not pending) events, price impact included, cursor pagination with a deprecated offset, and two optional filters. It omits default page size, ordering, permissions/auth needs, and what the returned event record contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, with the subject of the tool front-loaded and pagination mechanics compressed into a single clause. Slightly clipped to the point of leaving key details unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should say more about the returned fields and default page size for a 5-parameter event-listing tool. It covers the query mechanics adequately but leaves return-shape and limit behavior undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for 5 parameters, so the description must compensate; it explains that pool and trader ('signing wallet') are filters and that cursor/offset control pagination with offset legacy. The limit parameter (max 200) is never mentioned and no identifier formats (pool address vs id, trader address form) are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource precisely ('Settled swap events with price impact'), which separates it from the write-side sibling gno_swap and from analytics like gno_wash_trades. It lacks an explicit verb ('list/query'), but 'settled' plus 'events' makes the read intent clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The optional pool/signing-wallet filters imply when the tool is useful, but there is no explicit guidance on when to prefer it over gno_swap, gno_wash_trades, or gno_pool_depth, and no stated prerequisites. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_token_balanceGRC20 balanceA
Exact on-chain GRC20 balance of an address, in raw units (divide by 10^decimals). For native ugnot use gno_get_balances.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | the exact key string from gno_token_registry output (see gno_token_metadata) | |
| address | Yes | g1… address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses the raw-units convention and the divide-by-10^decimals conversion, plus that the value is exact/on-chain rather than cached. It says nothing about error behavior for an unknown token key, rounding, or how a zero/absent balance is reported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, no filler. The core purpose and unit convention come first, and the disambiguation against the sibling lands immediately after.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-required-param read tool with no annotations and no output schema, the description covers purpose, units, and tool choice. The remaining gap is return shape (scalar vs string) and failure mode on an invalid token key, which matters since no output schema exists to explain returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in structured form, including that `token` must be the exact key string from gno_token_registry. The description reinforces the unit math but adds little new meaning for `address` or token-key resolution beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (exact on-chain GRC20 balance of an address) with the unit convention spelled out. The final clause explicitly separates it from gno_get_balances (native ugnot), so an agent can pick between them 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative tool and the condition that selects it: native ugnot goes to gno_get_balances. It also implicitly routes token-key resolution to gno_token_registry via the schema. It does not address related siblings like gno_wallet_tokens or gno_token_holders, so it stops short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_token_directoryToken directoryB
Every token from every source with trust, price state (priced, quoted, no_market) and holder count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral load, and it does disclose the returned attributes and the price-state vocabulary (priced, quoted, no_market). However, it says nothing about result size, since 'every token from every source' implies a very large unpaginated response, nor about caching or freshness of trust/price data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that enumerates the value proposition with no filler. Its brevity is partly under-specification rather than tightness, which keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool the description is passable, but 'every token from every source' is a heavyweight claim with no note on volume, truncation, or refresh cadence, and the three listed attributes give only a partial picture of a record. Enough to call it, not enough 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify beyond the empty schema; the baseline applies. The description adds field-level meaning (price state vocabulary) that is not expressed in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names the resource (tokens) and the scope ('every token from every source') and lists three return attributes, but there is no explicit verb and no differentiation from near-identical siblings such as gno_token_registry, gno_token_metadata, or gno_price_list. An agent can guess it is a bulk enumeration but cannot tell from the text why it should pick this over the registry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no when-to-use guidance, no preconditions, and no mention of alternatives like gno_token_registry or gno_prices. The agent must infer selection from the sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_token_holdersToken holdersC
Holder distribution for a GRC20 token.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| token | Yes | canonical token_path from gno_prices or gno_token_registry, including its qualified token name | |
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden, but it says nothing about whether this is a read-only operation, how holders are ordered or ranked, whether distribution means balances or percentages, or how pagination behaves. It only weakly implies a read query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short, front-loaded sentence with no wasted words, but the terseness comes at the cost of under-specification rather than true efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with no annotations, no output schema, and undocumented pagination behavior, the description is far too thin. An agent cannot tell what the return shape looks like or how to page through results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% — only `token` is documented in the schema. The description adds nothing about `limit` or `offset` semantics (what ordering pagination applies to, whether offset pages a ranked list, or what the defaults return), so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (holder distribution) scoped to GRC20 tokens, which is a real verb+resource statement. However, it does not distinguish itself from close siblings such as gno_token_balance, gno_holder_series, or gno_whales, leaving overlap ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus gno_holder_series (time series), gno_whales (large holders), or gno_token_balance (single balance). No exclusions, prerequisites, or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_token_metadataGRC20 token metadataA
Name, symbol, decimals, and total supply for a GRC20 token, read via the registry. On-chain decimals can be a placeholder (e.g. wugnot reports 0 but uses 6); use gno_prices for authoritative display decimals and USD price.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The exact key string from gno_token_registry output; do not construct it. The key format varies by chain (a bare realm path, or "<realm path>.<symbol>"), and a wrong key returns nulls rather than an error. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, and it does disclose a real data-quality pitfall (wugnot reports 0 decimals but uses 6) that an agent could not infer elsewhere. It omits how missing tokens behave and any rate/limit context, but the schema covers the null-on-wrong-key case.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is returned, followed by the one caveat that changes agent behavior. Every clause earns its place and no schema content is repeated verbatim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, full schema coverage, and no output schema, the description adequately conveys the returned fields and the decimals caveat. A pointer to obtaining the key from gno_token_registry would close the remaining gap, though the schema itself covers it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description already explains the key format, the variation by chain, and null-on-wrong-key behavior. The tool description only indirectly reinforces this by saying values are read via the registry, adding little beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: reads name, symbol, decimals, and total supply for a GRC20 token via the registry. It does not explicitly differentiate from the sibling gno_token_registry (which supplies the key), so the boundary is only implied by the parameter description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete routing rule: on-chain decimals can be placeholders, so use gno_prices for authoritative display decimals and USD price. It lacks an explicit statement of when not to use this tool (e.g., for prices or non-GRC20 assets), but the alternative is named clearly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_token_registryList GRC20 tokensA
List every GRC20 token in the on-chain GRC20 registry. Returns the token keys expected by gno_token_metadata and gno_token_balance. New and IBC tokens register themselves here.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears the behavioral disclosure burden. It usefully reveals that the registry is on-chain and dynamically populated by new and IBC tokens, and that it returns token keys. It does not mention pagination, ordering, or explicit read-only semantics beyond the verb 'List.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, distinct sentences: what the tool lists, what the output is used for, and how the registry stays current. No filler, repetition, or redundant schema restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool, the description covers the source of data, the return value's purpose, and the dynamic nature of the registry. It would be more complete with explicit mention of the response shape or pagination, but the current guidance is enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the schema fully defines the input space. The description adds value by explaining that the output contains token keys consumed by related tools, which is enough given there is nothing to configure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List every GRC20 token in the on-chain GRC20 registry.' It also differentiates itself from related siblings by stating it returns the token keys expected by gno_token_metadata and gno_token_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this is the enumeration step before querying token metadata or balances, giving the agent context for when to use it. It does not explicitly name alternatives or exclusion criteria, 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.
gno_validatorsValidatorsC
Validator set with voting power, share, recent uptime and registered valopers.
| Name | Required | Description | Default |
|---|---|---|---|
| uptime_blocks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the shape of the returned data (voting power, share, uptime, valopers) but says nothing about whether uptime is computed over a default window, how large the result set is, whether valopers are always included, or whether the call is a cheap read. For a tool with zero annotation coverage this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero filler, and the resource is front-loaded. It is arguably too terse for the gaps it leaves, but as structure it is efficient rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and an undocumented optional parameter, the description carries the full burden and does only part of the job: it sketches the return fields but not the parameter behavior, default uptime window, or result size. An agent could call it, but could not predict the response well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%: the single parameter uptime_blocks (integer 1-100) has no description in the schema. The phrase 'recent uptime' faintly gestures at it, but neither its default when omitted nor the meaning of the 1-100 range (blocks? epochs?) is explained anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (the validator set) and enumerates the payload fields it carries: voting power, share, uptime and registered valopers. It lacks an explicit verb like 'fetch' or 'list', but the intent is unambiguous and no sibling tool covers validators, so there is no ambiguity to resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this tool, no exclusions, and no reference to any alternative. The agent must infer usage purely from the noun phrase, and the optional uptime_blocks parameter is never tied to a scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_wallet_clusterWallet clusterB
Funding cluster for an address: wallets funded from the same source. A signal, not proof of common ownership.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | g1… address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does add genuinely useful analytical context — that co-funding is a heuristic rather than evidence of common ownership — but says nothing about result shape, how many hops back it traces, depth limits, or cost/rate behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core definition front-loaded and the caveat second. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only source of truth — yet it never tells the agent what comes back (flat list of addresses, grouped clusters, counts). For a clustering/analytics tool that ambiguity matters, though the input side is fully covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single required 'address' parameter with 100% schema description coverage, so the schema already documents the input format ('g1… address'). The description adds nothing beyond repeating that the address is the subject, so the baseline 3 for high coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (funding cluster) and defines it precisely as 'wallets funded from the same source' scoped to an address, which differentiates it from flow/holder siblings like gno_wallet_flows or gno_token_holders. It lacks an explicit verb, but the noun definition is 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to reach for this over gno_wallet_flows, gno_wallet_transfers, or gno_known_entities, and no prerequisites or supported-chain notes. The only guidance is an interpretive caveat ('a signal, not proof'), which is about reading results, not about selecting the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_wallet_defiWallet DeFi positionsB
GnoSwap liquidity positions (held or staked), fees, rewards and delegated GNS. pending=true means retry after meta.retry_after.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | g1… address |
TDQS
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 usefully discloses the pending/retry-after condition, but does not state whether it is read-only, whether it requires a valid g1 address, rate limits, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the content categories are front-loaded and the special retry condition follows. Both sentences add useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description must carry more context. It names the DeFi position categories and the retry behavior, but does not explain result structure or how this view relates to adjacent wallet balance/token tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one fully documented address parameter ('g1… address'), and the description adds no additional parameter meaning. With 100% schema coverage, the schema already carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource: GnoSwap liquidity positions, fees, rewards, and delegated GNS, with held/staked scope. It is clear what data is returned, but it does not explicitly differentiate this wallet DeFi view from sibling wallet tools such as gno_wallet_tokens, gno_wallet_pnl, or gno_get_balances.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to choose this over sibling wallet tools; the only conditional note is about retrying when pending=true, which is operational rather than selection guidance. An agent must infer that this is the DeFi-specific wallet view.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_wallet_flowsWallet flowsC
Wallets with repeated sizeable net flows over a window. Costs expensive units.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| limit | No | ||
| min_usd | No | ||
| min_trades | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the tool 'costs expensive units', which is real cost context, but says nothing about read-only status, permissions, determinism, pagination, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the key concept front-loaded and no filler. The cost warning is efficient, though the second sentence is cryptic enough that it borders on under-specification rather than pure conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter tool with zero schema descriptions, no annotations, and no output schema, the description is far too sparse. It mentions cost but leaves the meaning of three filters and the undocumented 'limit' parameter to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. 'Over a window' loosely maps to days, 'repeated' and 'sizeable' vaguely gesture at min_trades and min_usd, but 'limit' is never mentioned and no parameter is named explicitly or given threshold semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (wallets) and a filtering concept (repeated sizeable net flows over a window), but uses no verb and leaves 'net flows' ambiguous. It does not distinguish this tool from many wallet-adjacent siblings such as gno_whales, gno_smart_money, or gno_wallet_pnl.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no exclusions, and no named alternatives. 'Costs expensive units' hints that the tool is costly, but it does not tell an agent when the cost is justified or which sibling to use instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_wallet_pnlWallet PnLB
Realized and unrealized PnL for a wallet across its trades.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | g1… address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden; it does useful work by defining the metric as both realized and unrealized and tying it to the wallet's trades. It omits material behavior such as the accounting period, cost-basis assumptions, data source/chain coverage, and whether the call is expensive — gaps that matter for a PnL figure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler; the metric definition comes first. Its brevity is appropriate, though it borders on under-specification for a financial metric.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No annotations and no output schema, so the description is the only source of semantics — yet it never specifies the accounting period (all-time vs. window), which trades count (swaps only? LP activity?), or the return shape. For a PnL tool where the period fundamentally changes interpretation, these are significant omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single documented 'address' parameter, so the schema already does the heavy lifting and the baseline is 3. The description adds nothing about the address (network/format beyond the schema's 'g1…' hint) or about how it maps to the returned PnL.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific metric (realized and unrealized PnL) for a specific resource (a wallet) with a scoping clause ("across its trades"). No sibling tool covers PnL, so it is distinguishable by name and description alone, though it does not explicitly contrast with anything.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives such as gno_wallet_transfers or gno_get_transactions for reconstructing trade history. The only hint is the implicit 'wallet needs a PnL figure' context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_wallet_realmsWallet realmsC
Which realms a wallet has called, with counts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | next_offset from the previous page | |
| address | Yes | g1… address |
TDQS
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 that results include counts, but says nothing about read-only safety, ordering, pagination behavior despite limit/offset parameters, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no filler. However, its extreme terseness borders on under-specification rather than optimal concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should do more to explain pagination, result limits, and whether this is a read-only query. It gives only the core resource and the presence of counts, leaving several practical gaps for a three-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, and the description only hints that the address parameter represents the wallet. It does not explain limit/offset semantics beyond what the schema already says, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('realms a wallet has called') and adds the return characteristic ('with counts'), which distinguishes it from gno_realms. It lacks an explicit verb such as 'list' and does not explicitly name the sibling it differs from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like gno_realms or gno_realm_graph, and no prerequisites or exclusions. The wallet-scoped nature is only implied by the phrase 'a wallet has called'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_wallet_tokensWallet tokensC
A wallet's current GRC20 token balances.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | g1… address |
TDQS
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 does not state that this is a read-only query, whether it requires auth or rate limits, whether zero balances are included, or how large token lists are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler. It is efficient, though its brevity reflects under-specification rather than discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the agent still lacks basics: the return shape, whether metadata/prices are included, and how it differs from gno_get_balances. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema coverage ('g1… address'), so the schema already documents it. The description adds no format, network, or validation detail beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase names a clear resource (GRC20 token balances for a wallet), but it is a noun fragment with no verb and no differentiation from close siblings such as gno_get_balances and gno_token_balance. An agent cannot tell from this text which of the three to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, no prerequisites, and no exclusions. 'Current' is the only hint that it returns a live snapshot rather than history, which is thin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_wallet_transfersWallet transfersA
A wallet's incoming and outgoing coin transfers, newest first, cursor-paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | next_cursor from a previous page | |
| address | Yes | g1… address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose two real traits beyond the schema: result ordering (newest first) and the pagination model (cursor), but says nothing about permissions, whether it is read-only, or what a transfer record contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded fragment that packs purpose, ordering, and pagination into one sentence with zero filler. Nothing could be removed without losing information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read tool with no output schema and no annotations, the essentials are covered: what is returned, in what order, and how to page through it. Nothing critical to a correct first call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with address ('g1… address') and cursor ('next_cursor from a previous page') already documented in the schema, while limit has only bounds and a default. The phrase 'cursor-paginated' reinforces the schema's pagination intent but adds no syntax or limits beyond it, so baseline 3 is right.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific resource (a wallet's incoming and outgoing coin transfers), so an agent can tell it is a wallet-scoped transfer listing. It does not distinguish itself from similarly-named siblings such as gno_get_transactions, which is the remaining gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. The only usable hints are 'newest first' and 'cursor-paginated', which describe output shape rather than when to pick this tool over gno_get_transactions or gno_token_balance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_wash_tradesWash tradesC
Transaction-netted round-trip activity. Heuristic only, not proof of wash trading or common ownership.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does disclose an important behavioral limitation — results are heuristic and not proof of wash trading or common ownership — which meaningfully prevents overclaiming. However, it omits other behavior such as data source, return shape, permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the caveat is placed immediately after the core statement. It is concise, though the first sentence is jargon-heavy rather than clearly front-loading the tool's actual operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations, no output schema, and zero parameter description coverage, so the description must do more. It adds a useful interpretation caveat but leaves the tool's operation, parameter semantics, and output behavior unexplained, making it substantially incomplete for a three-parameter analytic tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all three parameters (days, limit, offset), and the description mentions none of them. It provides no meaning, constraints, defaults, or enum context for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Transaction-netted round-trip activity' describes a phenomenon rather than a clear operation, and the description never states what the tool actually does (detect, list, score?) or how it differs from siblings like gno_mev or gno_swap_signals. The heuristic caveat is useful but does not clarify the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The 'Heuristic only' note warns about interpretation but does not help an agent select this tool over related analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_whalesWhalesB
Largest whale-labeled wallets by net worth, excluding contracts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses two behavioral traits beyond the name: results are ordered by net worth and contracts are excluded. It does not state read-only nature, default limit, pagination, or what a whale label means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is nearly a noun phrase, which makes it terse but still scannable; nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional param and no output schema, the description covers the core content but omits default limit behavior and any hint about return shape or ordering guarantee. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single limit parameter, so the description must compensate but does not mention limit at all. It gives no default, maximum (500), or meaning of the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (whale-labeled wallets) and ranking criterion (largest by net worth), plus a scope restriction (excluding contracts). It is distinguishable from siblings like gno_smart_money or gno_token_holders, though it doesn't explicitly say how it differs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as gno_smart_money or gno_wallet_pnl. The only usage signal is implied by the content, with no exclusions or situational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_wrapsGNOT wrapsC
Standalone GNOT to wugnot wraps and unwraps, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full behavioral burden. It discloses the ordering ('newest first') but not whether this is a read-only listing or a mutating operation, nor does it describe pagination, permissions, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence and is not padded, but it is under-specified rather than properly concise. Its front-loaded phrase 'Standalone GNOT to wugnot wraps' contributes little actionable meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a parameter with no schema description, no annotations, and no output schema, the description should explain what the tool returns and how to use limit. It leaves the core action ambiguous and the lone parameter undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has one parameter (limit) whose schema description coverage is 0%. The description never mentions the parameter, its default behavior, or how it interacts with the 'newest first' ordering, so it adds no semantic value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (GNOT to wugnot wraps and unwraps) and an ordering (newest first), but it is ambiguous whether the tool performs wrapping/unwrapping or merely lists those records. 'Standalone' does not clarify the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of sibling tools such as gno_pools, gno_dex_series, or gno_get_transactions. The description gives no use-case or exclusion context.
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.
43 tool updates
v0.3.5- Removed
gno_approve - Added
gno_blocks - Added
gno_bridge_transfers - Added
gno_bridges - Removed
gno_call - Removed
gno_confirm - Added
gno_cvd - Removed
gno_deploy - Added
gno_dex_analytics - Added
gno_dex_quote - Added
gno_dex_route - Added
gno_dex_series - Added
gno_discoveries - Added
gno_failed_calls - Added
gno_functions - Added
gno_governance - Added
gno_governance_votes - Added
gno_gpao_package - Added
gno_gpao_queue - Added
gno_health - Added
gno_known_entities - Added
gno_launch_quote - Added
gno_launch_snipers - Added
gno_launchpad - Added
gno_libraries - Added
gno_library - Changed
gno_nft_holdings2 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "next_cursor from the previous page for this wallet", + "maxLength": 4096, + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "maximum": 1000, + "minimum": 1, + "type": "integer" +}
- Changed
gno_pool_lp_providers3 fields changed- added
Input schema / properties / beforeAdded value: +{ + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "maximum": 500, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "maximum": 100000, + "minimum": 0, + "type": "integer" +}
- Added
gno_pool_ohlcv - Added
gno_pool_trades - Added
gno_price_list - Added
gno_realm_graph - Added
gno_realms - Added
gno_sparklines - Removed
gno_swap - Added
gno_swap_hops - Added
gno_token_directory - Added
gno_validators - Added
gno_wallet_cluster - Added
gno_wallet_defi - Added
gno_wallet_flows - Added
gno_wallet_realms - Added
gno_wraps
5 tool updates
v0.3.1- Changed
gno_holder_series1 field changed- changed
Input schema / properties / token / descriptionPrevious value: -"token pkgpath"New value: +"canonical token_path returned by gno_prices or gno_token_registry"
- Changed
gno_nft_collection1 field changed- changed
Input schema / properties / pkgpath / descriptionPrevious value: -"collection realm pkgpath, e.g. gno.land/r/gnoswap/gnft"New value: +"full collection ID from gno_nft_holdings.by_collection, including the qualified token suffix"
- Changed
gno_ohlcv1 field changed- changed
Input schema / properties / token / descriptionPrevious value: -"token pkgpath"New value: +"canonical token_path returned by gno_prices or gno_token_registry"
- Removed
gno_simulate - Changed
gno_token_holders1 field changed- changed
Input schema / properties / token / descriptionPrevious value: -"GRC20 token pkgpath"New value: +"canonical token_path from gno_prices or gno_token_registry, including its qualified token name"
39 tool updates
v0.2.3- Added
gno_api_usage - Changed
gno_approve1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_call1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_confirm1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_deploy1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_eval1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_get_account1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_get_balances1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_get_block3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / height / maximumAdded value: +9007199254740991 - added
Input schema / properties / height / minimumAdded value: +-9007199254740991
- Changed
gno_get_events2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / offsetAdded value: +{ + "maximum": 100000, + "minimum": 0, + "type": "integer" +}
- Changed
gno_get_package1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_get_transactions1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_grc7211 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_holder_series1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_label1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_launch_radar1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_mev4 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / daysAdded value: +{ + "anyOf": [ + { + "const": 1, + "type": "number" + }, + { + "const": 7, + "type": "number" + }, + { + "const": 30, + "type": "number" + } + ] +} - changed
Input schema / properties / limit / maximumPrevious value: -200New value: +1000 - added
Input schema / properties / offsetAdded value: +{ + "maximum": 100000, + "minimum": 0, + "type": "integer" +}
- Changed
gno_nft_collection1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_nft_holdings1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_ohlcv1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_package_files1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_pool_depth1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_pool_lp_providers1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_pools2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / offsetAdded value: +{ + "maximum": 100000, + "minimum": 0, + "type": "integer" +}
- Changed
gno_prices1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_render1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_search1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_simulate1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_smart_money1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_swap3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / deadlineSecs / maximumAdded value: +9007199254740991 - added
Input schema / properties / deadlineSecs / minimumAdded value: +-9007199254740991
- Changed
gno_swap_signals5 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / cursorAdded value: +{ + "maxLength": 2048, + "type": "string" +} - added
Input schema / properties / offsetAdded value: +{ + "maximum": 100000, + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / poolAdded value: +{ + "type": "string" +} - added
Input schema / properties / traderAdded value: +{ + "type": "string" +}
- Changed
gno_token_balance1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_token_holders2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / offsetAdded value: +{ + "maximum": 100000, + "minimum": 0, + "type": "integer" +}
- Changed
gno_token_metadata1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_wallet_pnl1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_wallet_tokens1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_wallet_transfers1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
gno_wash_trades3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / daysAdded value: +{ + "anyOf": [ + { + "const": 1, + "type": "number" + }, + { + "const": 7, + "type": "number" + }, + { + "const": 30, + "type": "number" + } + ] +} - added
Input schema / properties / offsetAdded value: +{ + "maximum": 100000, + "minimum": 0, + "type": "integer" +}
- Changed
gno_whales1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
42 tool updates
v0.2.0- First observed
gno_agent_status - First observed
gno_approve - First observed
gno_call - First observed
gno_confirm - First observed
gno_deploy - First observed
gno_dev_activity - First observed
gno_eval - First observed
gno_get_account - First observed
gno_get_balances - First observed
gno_get_block - First observed
gno_get_events - First observed
gno_get_package - First observed
gno_get_transactions - First observed
gno_grc721 - First observed
gno_holder_series - First observed
gno_label - First observed
gno_launch_radar - First observed
gno_mev - First observed
gno_nft_collection - First observed
gno_nft_holdings - First observed
gno_ohlcv - First observed
gno_package_files - First observed
gno_pool_depth - First observed
gno_pool_lp_providers - First observed
gno_pools - First observed
gno_prices - First observed
gno_render - First observed
gno_search - First observed
gno_simulate - First observed
gno_smart_money - First observed
gno_status - First observed
gno_swap - First observed
gno_swap_signals - First observed
gno_token_balance - First observed
gno_token_holders - First observed
gno_token_metadata - First observed
gno_token_registry - First observed
gno_wallet_pnl - First observed
gno_wallet_tokens - First observed
gno_wallet_transfers - First observed
gno_wash_trades - First observed
gno_whales
TDQS
Scored across 73 tools
The descriptions are detailed and often cross-reference the correct alternative tool, but the set contains many closely related analytics endpoints (e.g. gno_pools, gno_pool_depth, gno_pool_trades, gno_dex_analytics; gno_prices vs gno_price_list; gno_ohlcv vs gno_pool_ohlcv). An agent can usually distinguish them with careful reading, but there are enough overlapping concepts that misselection is likely without the descriptions.
All tool names use a consistent gno_ snake_case prefix and are readable as resource/action phrases. The main deviation is that some retrieval tools use an explicit get_ verb (gno_get_account, gno_get_block) while most use bare nouns or domain-specific names.
Seventy-three tools is far above an agent-friendly range and creates a large selection burden even for a broad blockchain analytics server. Many tools are fine-grained variants of the same domains, so the surface feels over-expanded rather than tightly scoped.
The surface covers a wide range of Gno data domains: pools/DEX analytics, tokens, NFTs, wallets, governance, bridges, packages, search, and raw ABCI queries. Minor gaps remain, such as a clear transaction-by-hash detail endpoint and any write/execution tools, though the latter may be outside the intended read-only analytics scope.
Maintenance
Related MCP Connectors
Provide AI agents and automation tools with contextual access to blockchain data including balance…
AI agent infrastructure for discovery, authorization, execution, identity, and signed receipts.
Agentic AI runtime: persistent memory, vault, autonomous agents, deep research, DeFi execution.
AI Agent Utility Layer for agent safety, web monitoring, crypto research and tool discovery.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to perform complex crypto operations like cross-chain routing, contract decoding, portfolio management, and anti-rug security checks, returning unsigned transactions for safe signing by the agent.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to analyze Ethereum wallets, simulate transactions, and draft transfers with deterministic policy and risk scoring, requiring human approval before on-chain execution.12 npmISC
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to safely interact with Ethereum by providing structured tools for reading blockchain state, simulating transactions, and drafting transactions that require human-in-the-loop approval.12 npm1ISC
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the GIWA blockchain, including balance queries, contract interactions, Flashblocks preconfirmations, Dojang attestations, and UP ID resolution.MIT