GnoPulse MCP
OfficialThis server lets AI agents read, analyze, simulate, and (with approval) execute transactions on the gno.land blockchain.
Chain reads: status, blocks, transactions, events, accounts, balances, eval, render, package files, search
Token data: GRC20 registry, metadata, balances, holders, holder series, prices, OHLCV candles
Wallet insights: token holdings, transfers, PnL, address labels, whale wallets
NFT tools: GRC721 collection info, wallet NFT holdings, LP positions as NFTs
DEX data: pools, pool depth, LP providers
On-chain analytics: smart money, swap signals, launch radar, MEV, wash trades, dev activity
Simulation: read-only eval/render and gno_simulate previews without broadcasting
Execution tools: gno_call, gno_swap, gno_approve, gno_deploy, and gno_confirm for human-approved broadcasting
Agent awareness: gno_agent_status reports the agent's own address, balance, chain, execution mode, and policy bounds
Safety: writes are simulated and policy-checked; keys stay in a local signer and human confirmation is required by default
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.
42 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.Human approval by default: every write is simulated and policy-checked, and nothing is broadcast until you confirm it.
Quick start
Hosted: read, analyze, simulate
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 keys, so it cannot sign. The HTTP transport serves read and simulate tools only.
Local: execute on chain
{
"mcpServers": {
"gnopulse": { "command": "npx", "args": ["-y", "@gnopulse/mcp"] }
}
}On first start the launcher:
Uses the prebuilt
gnotxbinary for your platform (macOS, Linux, Windows; x64 and arm64), installed as an optional npm dependency.Creates a dedicated agent key in
~/.gnopulse-agent.Starts
gnotx serveon127.0.0.1with a random session token.Serves every tool over stdio, with human-approval signing.
Ask the agent for its wallet status to get its address, then fund it. This is gnoland-1 mainnet with real GNOT, so use a dedicated wallet and fund only what the agent needs.
Examples for ElizaOS, LangChain, the OpenAI Agents SDK and the Vercel AI SDK are in adapters/.
Related MCP server: crypto-knowledge
How execution works
agent ──▶ gno_call / gno_swap / gno_approve
│ simulate + policy check
▼
preview + approval token (nothing broadcast)
│ user confirms
▼
gno_confirm ──▶ gnotx signs and broadcastsSet GNOPULSE_SIGNER=microservice to execute without a confirmation step. The server refuses to start in that mode unless the policy bounds spending or scope (a realm or function allow list, a send cap, fees only, or default deny). Deny lists and expiry alone are not enough. GNOPULSE_SIGNER=tee behaves the same, for a gnotx serve that uses an external signer backend (local mnemonic or Turnkey).
Tools
Area | Tools |
Chain |
|
Tokens |
|
Wallets |
|
NFTs |
|
DEX |
|
Analytics |
|
Execution |
|
Data and analytics tools call the GnoPulse API with GNOPULSE_API_KEY.
Configuration
All optional.
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 | |
|
|
|
|
| |
| Session expiry in seconds, or a unix time | |
|
| Agent keybase and signer state |
|
| Local signer address |
| bundled binary | Use your own |
|
| Signing service URL (the launcher sets it) |
| Signing service bearer token (the launcher sets it) | |
|
|
|
|
| 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 serves read and simulate tools only and refuses to start with any signer configured.
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.
Available Tools
42 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_approveApprove GRC20 (write)A
Approve a GRC20 allowance from the agent's own wallet (required before a swap). Simulates and checks policy, then broadcasts (autonomous signer), returns an approval_token for gno_confirm (human-approval signer), or returns the preview (simulate-only). If unfunded, returns status:needs_funding with the address and faucet.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | GRC20 token pkgpath | |
| amount | Yes | allowance, raw units | |
| spender | Yes | address allowed to spend (router/pool) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral disclosure burden. It reveals that the tool simulates and checks policy, then broadcasts via the autonomous signer, and it documents the unfunded status:needs_funding case. It stops short of explaining how the simulate-only vs broadcast path is selected.
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 focused sentences front-load the core action and requirement, then pack behavioral detail and a failure mode into the following sentences. The wording is dense but not redundant, with 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 write tool with no annotations and no output schema, this description covers the workflow, signing paths, and an error case. The main omission is the condition or mechanism for selecting simulate-only vs broadcast, which leaves some ambiguity, but the description is otherwise actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters at 100% coverage with meaningful descriptions (pkgpath, raw units, router/pool). The description adds context about whose wallet is used and why approval is needed, but it supplies little additional per-parameter meaning, so the 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 precise action: approving a GRC20 allowance from the agent's own wallet, and positions it as a required step before a swap. It clearly differentiates from the gno_confirm sibling by explaining that it returns an approval_token rather than performing the human confirmation.
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 notes the tool is required before a swap and describes the downstream paths: gno_confirm for human approval or a simulate-only preview. It does not enumerate exclusions, but the precondition and signer workflow give the agent clear context for when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_callCall realm (write)A
Make a state-changing realm call (mint, register, any write) from the agent's own wallet. Always simulates and checks policy first. Then an autonomous signer broadcasts immediately, a human-approval signer returns an approval_token for gno_confirm, and simulate-only mode returns the preview. If the wallet has no gas, returns status:needs_funding with the address and faucet; offer that to the user instead of reporting an error. Use this when a request requires an on-chain action.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| func | Yes | ||
| send | No | ||
| pkgpath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so richly: it discloses pre-simulation, policy checks, three signer behaviors, and the no-gas needs_funding path. This goes well beyond what a title or schema alone would convey.
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?
Five sentences, all informative and front-loaded with the core purpose. It covers behavior, signer modes, an edge case, and usage guidance without repetition or 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?
The description is unusually complete for a tool with no annotations and no output schema: it covers workflow, return modes, and the no-gas case. However, the complete absence of parameter semantics and package-specific conventions leaves a meaningful gap for an agent preparing a call.
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 does not explain pkgpath, func, args, or send. The examples 'mint, register' hint at possible function names but provide no parameter-level semantics or syntax, leaving the agent without enough information to construct valid arguments.
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: 'Make a state-changing realm call' with examples (mint, register, any write). The phrase 'state-changing' and 'from the agent's own wallet' clearly distinguish it from the read-only sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this when a request requires an on-chain action' and explains the different signer modes and the needs_funding fallback. It does not explicitly name sibling alternatives such as gno_simulate or gno_confirm, but the context makes the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_confirmConfirm & broadcastA
Broadcast a previously proposed action using its approval token (from gno_call, gno_approve, or gno_swap). This is the human-approval step: the signing service signs and sends the transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | approval_token returned by a propose call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the key behavior: the signing service signs and sends the transaction, and it notes this is a human-approval step. It does not mention whether it is irreversible or what happens on invalid tokens, but the core mutation behavior is clearly stated, which is sufficient given the simplicity of the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no unnecessary words. The primary action is stated in the first sentence, and the second sentence adds essential context about the human-approval step. It is both concise and well-structured with the key information front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with full schema coverage and no output schema, the description is nearly complete. It explains what the token is for and the role of the tool in the workflow. It could mention that the transaction is irreversible, but given the clear statement of 'signs and sends', this is largely implied. The description covers everything needed to 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?
The schema already describes the token parameter as 'approval_token returned by a propose call' (100% coverage). The description adds value by listing the specific proposing tools (gno_call, gno_approve, gno_swap) that yield this token, giving the agent more precise guidance on where to obtain it. This goes beyond the generic schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (broadcast) and the resource (previously proposed action), and explicitly differentiates it from sibling proposal tools (gno_call, gno_approve, gno_swap) by describing it as the human-approval step that signs and sends the transaction. This makes 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?
The description explains that it is the confirmation step after a propose call and mentions the source tokens from gno_call, gno_approve, or gno_swap. It implies when to use it (after those tools) and provides context, though it does not explicitly state when not to use it or name alternative confirm tools. Still, the usage context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_deployDeploy realm, readiness + recipeA
Check whether an address can deploy a package on the current chain and return the deploy command. CLA enforcement varies by chain and over time, so the CLA signature is checked live on every call. The deploy itself runs via gnotx addpkg.
| Name | Required | Description | Default |
|---|---|---|---|
| pkgpath | No | intended path; must be address-namespaced, e.g. gno.land/r/<deployer>/mypkg | |
| deployer | Yes | g1… address that will deploy |
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 live CLA check, which is valuable. However, it never explicitly states that this tool does not itself deploy and has no side effects, and the phrase 'The deploy itself runs via gnotx addpkg' could be misread as the tool performing the deploy.
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 core purpose front-loaded. The live-CLA note adds important behavior context, though the final sentence could be tightened to remove ambiguity about whether the tool executes the deploy.
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 there is no output schema, the description should clarify the return format beyond 'return the deploy command' – it does not say whether readiness is also returned or what happens if the address cannot deploy. The optional pkgpath parameter is also unexplained in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning about deployer or pkgpath beyond the schema's own descriptions, though it does relate deployer to the address-checking purpose.
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 action ('Check whether an address can deploy a package'), the resource (address, current chain), and the output ('return the deploy command'). This clearly separates it from sibling read tools like gno_get_package or gno_simulate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is a pre-deploy readiness check, but it never explicitly says when to use it over alternatives or when not to use it. It gives useful context ('CLA enforcement varies... checked live') but no direct sibling comparison or exclusion guidance.
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_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 provided, the description carries the full burden. It explicitly states 'Never mutates state' and mentions the underlying ABCI vm/qeval mechanism and the return type ('raw typed result string'). This discloses the key safety behavior and output format, though it does not mention error handling or limitations, which are minor for a simple eval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core action and examples, then stating the return type and safety guarantee. Every sentence earns its place with no wasted words, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only 2 simple parameters and no output schema, the description is fairly complete. It explains the purpose, provides examples, states the return type, and highlights the read-only nature. The only gap is the lack of explicit guidance on when to use this versus sibling tools, but that is more of a usage guideline issue than a completeness gap for a simple eval 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 100% for both parameters (expr and pkgpath), so the baseline is 3. The description provides an example of expr and mentions the return type, but does not add significant meaning beyond what the schema already provides. It does not clarify edge cases or formatting beyond the examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Evaluate' and the resource 'read-only Gno expression against a realm', with concrete examples like `TotalSupply()` and `BalanceOf("g1…")`. The read-only qualifier and 'Never mutates state' explicitly distinguish it from mutation tools, making its purpose unambiguous even without naming siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for read-only evaluation via 'read-only' and 'Never mutates state', but it does not explicitly state when to prefer this over alternatives like gno_call or gno_simulate. There is no explicit when-not-to-use or mention of sibling tools, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_get_accountAccount / wallet statsB
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?
Annotations are absent, so the description carries the behavioral burden. It communicates a read-only overview returning activity, counts, and labels, which is useful but thin; it does not disclose return shape, data source, address-validation behavior, or whether balances/token holdings are included.
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: 'Wallet overview' first, then the address scope, then the returned categories. Every word earns its place and there is no repetition or filler, which is appropriate for a one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one required parameter, no output schema, no annotations), and the description gives a reasonable high-level picture: an address and the categories of returned data. However, without an output schema, an agent still cannot predict the concrete response fields or the meaning of 'activity' and 'counts,' leaving a moderate 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% and the only parameter, address, is described as a 'g1… bech32 address.' The description repeats the same 'g1… address' format without adding format rules, examples, or constraints beyond the schema, so it only meets 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 states the tool returns a 'Wallet overview' for a 'g1… address' and names the content categories 'activity, counts, labels,' which is specific enough to convey the resource and general output. It distinguishes the tool from siblings like gno_wallet_transfers or gno_token_balance by framing it as an aggregate overview, though 'activity' and 'counts' remain somewhat vague and not fully differentiated from gno_wallet_tokens or gno_label.
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 information is provided: the description never mentions when to prefer this over gno_get_balances, gno_wallet_transfers, gno_wallet_tokens, or gno_label, nor does it state any exclusions. The only implicit signal is that 'overview' is desired, which is not enough guidance for an agent choosing among many wallet-centric siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_get_balancesGet balancesA
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?
With no annotations provided, the description carries full behavioral burden. It states what is returned ('Native coin balances... and account number/sequence') and the method ('via ABCI auth/accounts'), but does not explicitly mention that this is a read-only operation, any prerequisites, error handling, or rate limits. The word 'Get' implies read-only, but that is not stated as a behavioral guarantee. The description is terse and lacks transparency about side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key information (what is returned and for whom). There is no fluff or redundant phrasing. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, no output schema, and no annotations, the description covers the essential elements: what it returns (native balances, account number/sequence) and the mechanism (ABCI auth/accounts). It does not detail the output structure (e.g., format of balances) or potential edge cases, but given the simplicity, it is reasonably complete. An agent knows enough to call it correctly, though it could benefit from a note about the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a description for the 'address' parameter ('g1… address'), and schema coverage is 100%. The description does not add additional meaning about the parameter beyond repeating that it is an address. Since the schema already covers the parameter, baseline score of 3 is appropriate; the description adds no extra value for 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?
The description clearly states the tool retrieves native coin balances (e.g., ugnot) and account number/sequence for a given address. It mentions the specific mechanism (ABCI auth/accounts) and distinguishes from token-balance tools by specifying 'Native' coins. This is a specific verb+resource combination that sets it apart from siblings like gno_token_balance or gno_get_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The use case is implied by mentioning 'native coin balances' and 'account number/sequence', so an agent can infer it is appropriate for native balance queries, but there is no direct comparison to sibling tools or any exclusions. This is adequate but not explicitly helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_get_blockGet blockA
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?
With no annotations, the description carries the full behavioral burden. It discloses the return fields (transactions, proposer, time) but does not mention error handling, null returns for invalid heights, or any other behavioral traits. It's a read-only operation, but the description could be more explicit about expectations.
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 and then lists the specific details returned. Every word earns its place, with no fluff or repetition.
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 tool with one parameter and no output schema, the description provides sufficient context: it names the resource, the selector, and the return fields. It doesn't describe the return format in detail, but that's acceptable given the simplicity. Slightly more detail on error behavior would make it complete, but it's adequate as is.
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 already fully describes the height parameter with 'block height'. The description's phrase 'by height' adds no additional meaning beyond the schema. Since schema coverage is 100%, the description adds no extra semantic value, aligning with the baseline of 3.
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 (block), the selector (by height), and the content (transactions, proposer, time). It distinguishes from siblings like gno_get_transactions and gno_get_events by focusing on block-level details, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when block details are needed by height) but does not explicitly mention alternatives or exclusions. It doesn't say 'use gno_get_transactions for transaction-level data' or similar, so the guidance is inferred 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_get_eventsGet eventsB
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 |
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 are grouped by realm and type, which is a response-format behavior, and that filters apply. It does not state whether the operation is read-only, how results are structured, whether pagination is involved, or any rate limits, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that front-loads the subject and includes key qualifiers. No filler exists, and every phrase adds meaning. This is exemplary conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero annotations and no output schema, the tool description is quite thin. It does not explain what an 'event' is, the shape of the response, or the meaning of grouping, which an agent would need to interpret results correctly. The lack of guidance on result format makes this incomplete.
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 already describes q, app, and type, with limit having defaults and bounds, so coverage is high at 75%. The description adds little beyond referencing realm and type, which map to q and type. This is adequate with a consistent baseline of 3.
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 tool as retrieving emitted Gno events and states the grouping behavior and filter capability. It distinguishes from siblings like gno_get_transactions or gno_get_block, though it does not 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?
The description implies a use case: when you need Gno events filtered by realm/app/type. However, it provides no explicit guidance on when to choose this tool over related getters or search tools, and no exclusions are mentioned. This is adequate but leaves the agent to infer the context.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the output types (metadata, deployer, functions) but does not clarify whether the operation is read-only, requires authentication, or has any side effects. The name implies a read operation, but this is not explicitly 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 a single, efficient sentence that front-loads the purpose and key deliverables. It avoids redundancy and is appropriately sized for a simple getter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description is adequate but minimal. It fails to explain the exact return format or how this tool fits among the many similar siblings. Given the tool's simplicity, it's usable, but a bit more context on return structure or use cases 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 schema covers the single parameter (pkgpath) with an example, achieving 100% coverage. The description adds no extra semantic detail beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves realm or package details, listing metadata, deployer, and functions. This distinguishes it from other tools like gno_package_files or gno_get_account, though it could be more explicit about what 'metadata' encompasses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many sibling tools (e.g., gno_get_account, gno_package_files). It doesn't mention any conditions, prerequisites, or alternatives, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
With no annotations provided, the description carries the full burden. It discloses important behavioral traits: ordering ('newest first'), pagination ('cursor-paginated'), and filter options ('by app label or success'). It doesn't mention response format or rate limits, but for a read-only feed this is reasonably transparent.
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 three short sentences: the first states the core function and ordering, the second lists filters, and the third routes to the sibling tool. Every sentence adds value with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a read-only, optionally-filtered, cursor-paginated feed with all parameters optional, the description plus schema provide enough to invoke it correctly. The absence of an output schema means return shape is not explicitly covered, but the tool name and description make the general response clear enough.
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 75%, with app, cursor, and success already described. The description adds little beyond that: it reaffirms filtering by app and success and mentions cursor-based pagination, but does not explain the 'limit' parameter. Since the schema already covers most parameter meaning, a baseline 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 states a specific resource and characteristics: 'Recent classified transactions, newest first, cursor-paginated.' It also differentiates from a sibling tool by explicitly saying 'For a specific wallet's activity use gno_wallet_transfers,' which clearly separates this feed from wallet-specific queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the alternative tool explicitly and the condition that selects it: 'For a specific wallet's activity use gno_wallet_transfers.' It also implies when to use this tool (general recent transaction feed with optional filters) versus alternatives, leaving little to inference.
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 carries the full burden. It discloses best-effort behavior and null-field semantics when a getter is not exposed, which is valuable beyond the schema. It does not mention auth, rate limits, or error cases, but for a read tool the disclosed traits are sufficient.
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, zero fluff. Purpose and null behavior are front-loaded, usage and alternative follow immediately. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple read tool: param roles, expected null behavior, and a routing alternative are all covered. It does not specify the exact JSON response shape, but the mention of 'standard getters' implies known return fields, and no output schema exists to demand more detail.
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 descriptive param text (owner → balance, tokenId → owner+URI). The description adds the 'and/or' combination logic and slightly rephrases, but it does not introduce significant new meaning 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?
Clearly states it performs a best-effort read of a GRC721 NFT realm via standard getters, with a specific verb and resource. It differentiates from sibling gno_nft_holdings by explicitly noting that tool lists NFTs owned by an address, so the agent knows which tool to pick for which query.
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 explicit usage instructions: pass owner for balance, tokenId for owner/URI, and names the alternative gno_nft_holdings for listing NFTs. It does not enumerate all exclusions (e.g., collection-level info via gno_nft_collection), but the core when-to-use guidance is clear and actionable.
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 | token pkgpath |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It offers no information about return format, time granularity, pagination, or any side effects, making it nearly useless for an agent to predict behavior. The phrase 'time series' implies a series of points but does not specify how they are structured or delivered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, but this brevity is under-specification rather than effective conciseness. It lacks any structural elements like a lead sentence with critical usage information, and it reads more like a title than a functional description.
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 time series tool with no output schema and no annotations, the description should explain what the series looks like, how it is ordered, any limits, or what makes it distinct. None of this is present, leaving the agent without essential information to correctly invoke or interpret 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?
The schema already provides full coverage of the single parameter 'token' with the description 'token pkgpath', so the description adds no additional meaning beyond what the schema states. Since schema coverage is 100%, a baseline of 3 is appropriate; the description neither enriches nor contradicts 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?
The description 'Holder-count time series for a token' clearly identifies the resource (holder count) and the type of data (time series), which distinguishes it from sibling tools like gno_token_holders that likely return current counts. It is specific enough to convey the core function, though it lacks a verb, making it a noun phrase rather than a full action statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, contexts, or sibling tools, leaving the agent to infer that it is for historical holder count data without any explicit routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_labelLabel addressA
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 behavioral burden. It communicates that this is a read-only resolution operation and that the output consists of entity/app labels, which is useful. However, it does not disclose the return format, behavior for unknown addresses, or the underlying data source.
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, focused sentence with concrete examples conveys the tool's purpose without wasted words. It is front-loaded and easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with no output schema, the description is nearly sufficient. It states what the tool produces—known entity and app labels—and the schema covers the input, leaving only minor ambiguity about output 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%, so the schema fully documents the single 'address' parameter. The description adds little beyond 'address' being the input, which matches the baseline of 3 for well-covered schemas.
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, 'Resolve an address to known entity and app labels,' and gives concrete examples (GnoSwap, faucet), so the tool's purpose is clear. It does not explicitly name or differentiate from sibling tools, but the label-focused purpose is distinct enough on its own.
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 purpose statement implies when to use this tool—when you need to know what an address is labeled as—but there is no explicit guidance about when not to use it or which sibling tool to prefer. With many related address tools like gno_get_account and gno_token_registry, some routing guidance would help.
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?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It only says 'Newly launched tokens and pools', without stating whether the operation is read-only, how results are ordered, whether limit applies to tokens, pools, or both, or what defines 'newly launched'.
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 only six words and front-loads the core content without filler. It is concise, though its noun-phrase structure is elliptical and omits an explicit verb.
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 leaves return structure, default limit, ordering, time window, and the meaning of 'newly launched' unspecified. An agent could attempt a call, but it lacks enough context to interpret the response reliably.
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 no schema description (0% coverage), and the description never mentions it. The parameter name and min/max constraints hint that it caps the number of results, but the description does not 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 phrase 'Newly launched tokens and pools' identifies the specific resource and distinguishes it from broader sibling tools like gno_pools or gno_token_registry via the 'newly launched' qualifier. It lacks an explicit verb such as 'lists' or 'returns', but the intent is still reasonably 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?
No guidance is given on when to use this tool versus alternatives for token/pool discovery, nor is there any mention of default behavior, time windows, or how 'newly launched' is defined. The only usage signal is the qualifier in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_mevMEV activityC
Detected MEV activity: sandwiches and arbitrage.
| 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 must carry the behavioral disclosure burden. It only states that MEV activity is detected, without describing whether results are a list, summary, timestamped events, or how sandwiches and arbitrage are represented.
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 words. It is concise and easy to scan, though its brevity sacrifices useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple with one optional parameter, the absence of an output schema and annotations means the description should clarify return shape and limit semantics. It does not, leaving the agent to guess what 'Detected MEV activity' actually 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 description coverage is 0%, and the description does not mention the only parameter, limit, at all. The agent receives no guidance on how limit affects the results or whether it applies per category or overall.
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, MEV activity, and names its subtypes (sandwiches and arbitrage), so an agent can tell what it reports on. It does not explicitly contrast with siblings like gno_swap_signals or gno_dev_activity, but the focus on MEV is distinct enough.
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 information about when to use this tool versus alternatives, no exclusions, and no mention of prerequisites or expected context. The intended use is only implied by the name and terse description.
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 | collection realm pkgpath, e.g. gno.land/r/gnoswap/gnft |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits on its own. It only names the returned data categories and does not state whether the operation is read-only, what aggregation or filtering behavior occurs, or what response format to expect. This leaves the safety and side-effect profile completely unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only eight words and contains no filler, making it very concise. It is front-loaded with the core resource type and data categories. However, the terseness comes at the cost of missing usage and behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple single-parameter tool, and the description gives a high-level sense of the output. With no output schema, though, the description does not explain the exact return shape or semantics of 'distribution' and 'holders.' It is minimally complete for invoking the tool, but not fully informative for interpreting 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?
The schema coverage is 100%, with the pkgpath parameter described as a 'collection realm pkgpath' and given a concrete example. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the target resource as a GRC721 collection and enumerates the provided data: holders, supply, and distribution. It lacks an explicit action verb, but the intended purpose is understandable. It does not differentiate itself from 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?
No guidance is given about when to use this tool versus alternatives. The description simply states what data the tool provides, without noting context, prerequisites, or exclusions. An agent would have to guess how this differs from other NFT-related tools.
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
Every GRC721 NFT a wallet owns across all collections, grouped by collection. Includes GnoSwap LP positions (each is an NFT). Prefer this over gno_grc721 for 'what does X own'.
| 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 present, so the description carries the burden. It discloses two behaviors beyond the obvious: results are grouped by collection, and GnoSwap LP positions are included even though they are not standard GRC721 NFT collections. It does not describe output structure or rate limits, but for a simple one-parameter read tool these omissions are minor.
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 no wasted words. The first sentence delivers the core purpose and scope; the second adds the LP-position inclusion and the sibling routing. Information is front-loaded and 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 tool with one required parameter, no output schema, and a straightforward query purpose, the description covers the necessary selection and invocation context: wallet address input, result scope, grouping, and LP inclusion. The only missing detail is the exact return field structure, which is not critical for an agent deciding to call this 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% because the only parameter, address, is described as 'g1… address'. The description adds no extra semantic meaning for the parameter itself, so the baseline 3 applies. This is appropriate since the schema already documents the input.
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: retrieves every GRC721 NFT a wallet owns across all collections, grouped by collection. It distinguishes itself from the sibling gno_grc721 by explicitly naming it and stating the preference for ownership queries. The inclusion of GnoSwap LP positions adds a non-obvious scope that pins down the exact purpose.
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 tells the agent when to use this tool over its alternative: 'Prefer this over gno_grc721 for "what does X own".' This names the sibling, the use case, and the preference in one clear sentence, leaving no inference required.
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 | token pkgpath | |
| interval | No | e.g. 1h, 1d |
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 does not mention return format, pagination, authentication, rate limits, or any side effects. The one-line description only states the basic purpose and offers no transparency about operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but under-specified. It is a single sentence that provides minimal value, lacking critical details such as constraints or usage context. While brevity is positive, it sacrifices necessary information and is not front-loaded with important facts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about expected output and limitations. It does not explain what the OHLCV data includes, how many candles are returned, or how intervals work. The tool is too underspecified for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes 'token' and 'interval' but leaves 'limit' undocumented. The description adds no parameter details, failing to explain the meaning of 'limit', the valid formats for 'interval' (e.g., '1h', '1d' only as examples), or how parameters interact. It does not compensate for the schema's gaps.
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 'OHLCV candles for a token' clearly identifies the resource (candles) and the action (retrieval). It is specific about the data type, but does not explicitly differentiate it from sibling tools like gno_prices or gno_token_metadata, which also deal with token data. The purpose is understandable but lacks distinction from similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention use cases, exclusions, or comparisons to other tools such as gno_prices. An agent cannot determine when to select this tool over similar ones without additional context.
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 burden of conveying behavior. It does disclose the two main outputs ('vm/qfile' and 'vm/qfuncs'), but it does not clarify whether source file listings include contents or just names, nor does it mention output formatting, pagination, or failure behavior. This is adequate but not rich.
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 specifying the tool's purpose and the internal endpoints it maps to.
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 simple (one parameter, no annotations, no output schema), and the description identifies the two categories of returned data. Still, because there is no output schema, the description could be more explicit about whether it returns names, contents, or full signature details. It is adequate for a basic read/list operation but leaves minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single required parameter ('package pkgpath'). The description adds no additional meaning beyond that, 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 uses a specific verb ('List') and resource ('a package's source files (vm/qfile) and exported function signatures (vm/qfuncs)'). It clearly distinguishes this from the sibling tools, especially 'gno_get_package', by stating exactly what data it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever you need a package's source file list or exported function signatures. However, it does not explicitly contrast it with alternatives or state when not to use it, leaving some routing ambiguity relative to sibling tools like gno_get_package.
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?
With no annotations, the description carries the full burden of behavioral disclosure. It only states what the tool returns, not whether it's read-only, what the response structure is, or any side effects. This is insufficient for an agent to assess safety or data 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?
A single sentence with no waste. The core information is front-loaded and the description is appropriately sized for the tool's simplicity.
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?
Despite the simple one-parameter nature, the description is very thin. It omits return format, any usage notes, and potential constraints. For a tool with no annotations and no output schema, more context is needed to fully inform the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'pool' parameter as 'pool path/id', and the description adds no additional meaning. Since schema coverage is 100%, the baseline is 3; the description doesn't go 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 (GnoSwap pool) and the specific output (liquidity depth profile), distinguishing it from sibling tools like gno_pool_lp_providers or gno_pools. The verb is implied 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?
No guidance is given on when to use this tool versus alternatives. There's no mention of prerequisites, conditions for selection, or scenarios where another pool-related tool would be more appropriate.
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 LP providersC
Liquidity providers 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 burden of behavioral disclosure. It only states what the data is about and does not describe read-only behavior, response shape, pagination, or any other runtime characteristics.
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 appropriately short, though the brevity comes at the cost of missing usage and behavioral details.
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, the description plus schema is minimally adequate. However, with no output schema and no annotations, important details like the exact return structure, pool path format, and relationship to nearby pool-related tools are absent.
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 'pool' parameter description already indicates 'pool path/id'. The tool description adds no further meaning about the expected format, examples, or constraints beyond what the schema provides.
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 being accessed (liquidity providers for a GnoSwap pool), so an agent can infer it returns provider information. However, it lacks a verb and does not distinguish itself from sibling tools like gno_pool_depth or gno_pools.
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 guidance on when to use this tool versus alternative pool-related tools such as gno_pool_depth or gno_pools. There is no mention of exclusions, prerequisites, or preferred contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_poolsDEX poolsB
GnoSwap pools with TVL, volume, and APR. For a single pool use gno_pool_depth, gno_pool_lp_providers, or gno_ohlcv.
| 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 burden. It states the returned data fields (TVL, volume, APR) but does not disclose whether the operation is read-only, how the 'limit' parameter affects behavior, pagination, filtering, or any potential side effects. The agent is left guessing about response shape and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core purpose, and adds a useful routing hint in the second sentence. There is no redundancy or fluff; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one optional parameter, no output schema, and no annotations, so the description must cover essentials. It handles the single-pool differentiation but omits parameter semantics, output details, pagination, or any caveats. An agent would not know how to correctly invoke the tool beyond the bare minimum.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains a single 'limit' integer with min/max but no description, and schema description coverage is 0%. The tool description does not mention 'limit' at all, so the agent has no idea what it controls (e.g., number of pools returned, pagination, defaults). 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 clearly identifies the resource ('GnoSwap pools') and the key data fields ('TVL, volume, and APR'), and it distinguishes this multi-pool tool from single-pool siblings. The verb is implied rather than explicit (likely 'list' or 'get'), but the intent is clear enough.
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 explicitly names alternative tools for a specific case ('For a single pool use gno_pool_depth, gno_pool_lp_providers, or gno_ohlcv'), providing a clear when-not condition. It does not give broader context like when to prefer this over other multi-pool tools, but the exclusion is explicit and useful.
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 full burden. It discloses the data source (GnoSwap) and the parameter behavior, but it does not explicitly state whether this is a read-only operation, any rate limits, or what the return format looks like. For a price lookup, it's reasonable to infer non-destructive behavior, but it's 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 sentences, front-loaded with the core purpose and usage. Every word earns its place; there is no fluff or repetition.
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 with no output schema, the description provides enough to call it correctly. It explains the two call patterns and the data source. It could detail the return format (e.g., prices in a specific unit or list structure), but that is likely obvious given the context. Missing details like pagination or units are minor for this use 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?
The schema description already covers the 'token' parameter fully ('token pkgpath; omit for the whole feed'). The description essentially paraphrases this, adding no new semantic detail. With 100% schema coverage, the description contributes minimal value beyond what the schema provides.
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 provides token prices sourced from GnoSwap, and explains the two modes: a single token or the entire feed. This is specific and actionable. It doesn't explicitly name alternatives, but no sibling tool directly covers token prices, so the purpose is distinguishable.
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 clear instructions on how to use it ('Pass a token for one price, or omit it for all'), but it does not discuss when to choose this over other tools, nor does it mention any exclusions or context like timeframes or market data. The usage context is implied but not explicit about alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_renderRender realmA
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 transparency burden. It signals a read-only fetch operation through 'Fetch' and 'ABCI vm/qrender' and tells the caller the result is markdown, which covers the main behavioral trait. It does not discuss auth, rate limits, or error cases, but for a simple query tool the core mutation/safety question is answered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action, and every clause adds information (target, transport, output type). No filler or repetition of 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 two-parameter fetch with a rich schema, the description is nearly sufficient: it identifies the endpoint, the URL convention, and the markdown output. No output schema exists, so the description's statement of the return type is important and adequately supplied; only error/prerequisite behavior is left 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?
Schema already documents both parameters and their meaning (100% coverage), so baseline is 3. The description adds the relationship that pkgpath identifies the gno.land/r/... realm and path is passed to Render(path), which helps an agent assemble pkgpath + ':' + path correctly.
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?
Clearly states a specific action ('Fetch'), a specific target ('a realm's Render(path) output'), and the mechanism ('ABCI vm/qrender'). The phrase 'markdown page the realm serves' distinguishes this from sibling execution/query tools like gno_eval or gno_call by pinning the Render(path) convention and output type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use obvious: any time you need the rendered markdown page for a gno.land realm path. It does not explicitly name alternatives or say when not to use this tool, but it is not ambiguous next to siblings since Render(path) is a distinct, recognized entry point.
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?
With no annotations, the description carries the full burden of behavioral disclosure. It describes search scope but not read-only behavior, result shape, ranking/match semantics, pagination, or error cases. This is a minimal behavioral disclosure for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler. The core action and resource scope are immediately clear, making it an efficient use of description space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter search tool, the description plus schema is minimally usable: the agent knows what query and limit roughly do. However, without output schema or annotations, it leaves ambiguity about result format and fail cases, and it does not guide selection among many closely related sibling 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?
Schema description coverage is only 50%: 'query' is described as 'free-text query' in the schema, but 'limit' has no description in either the schema or the tool description. The main description adds general search scope but no per-parameter meaning, so it does not compensate for the 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 action ('Full-text search') and enumerates the resource scope: realms, tokens, wallets, transactions, and blocks. This clearly distinguishes it from the many single-resource sibling getters, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given. The description only defines what the tool searches; it does not explain when an agent should prefer this over gno_get_block, gno_get_transactions, or other resource-specific siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_simulateSimulate callA
Simulate a realm function call without broadcasting. Returns gas used, the return value, and whether it would succeed. Nothing is signed or sent.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | positional args, in order | |
| func | Yes | exported function name | |
| send | No | coins to send, e.g. 1000000ugnot | |
| pkgpath | Yes | target realm pkgpath |
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 that nothing is signed or sent, and that it reports gas used, return value, and success. This covers the key safety trait for a simulation tool, though it omits error/edge-case behavior when the simulated call fails.
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 wasted words. The core purpose (simulate, not broadcast) is front-loaded, followed by return values and the safety guarantee. 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 tool with no annotations and no output schema, the description covers purpose, return values, and safety. It is nearly complete; the only missing piece is an explicit pointer to the broadcast sibling gno_call for when a real transaction is intended.
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 all four parameters (pkgpath, func, args, send) are described in the schema itself. The description adds no parameter-level meaning beyond what the schema already provides, 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?
States a specific verb (simulate) with a clear resource (realm function call) and explicitly contrasts it with broadcasting, which separates it from the sibling gno_call. It also lists what it returns, so an agent knows exactly what this tool produces.
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 'without broadcasting' and 'Nothing is signed or sent' strongly imply a safe dry-run use case, but the description never explicitly names the alternative (gno_call) or states a when-to-use vs when-not-to condition. The usage is implied rather than spelled out.
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 burden of behavioral disclosure. It only states that wallets are ranked by realized PnL, without mentioning return format, ranking direction, time window, or that this is a read-only query. This is minimal disclosure for a tool with no annotation fallback.
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 entire description is one short sentence with no filler or repetition. It is front-loaded and easy to scan, earning a high score despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and one undocumented parameter, the description is too sparse to be complete. It does not explain the output shape, whether ranking is descending, or what 'smart money' means operationally, so the agent may still be uncertain how to invoke or interpret 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?
The single 'limit' parameter has no schema description (0% coverage) and the description never mentions it. The agent must infer that it caps the number of results; the name and min/max constraints are self-explanatory, but the description adds no 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 'Wallets ranked by realized PnL' clearly identifies the resource (wallets) and the distinguishing criterion (realized PnL ranking), giving the agent a concrete expectation. It lacks an explicit verb and does not differentiate it from sibling tools like gno_whales or gno_wallet_pnl, so it stops short of full clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as gno_whales or gno_wallet_pnl, nor any exclusions, prerequisites, or context. The description is purely definitional, leaving the agent to infer use cases.
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_swapSwap (write)A
Swap on GnoSwap (router.ExactInSwapRoute) from the agent's own wallet. Simulates and checks policy, then broadcasts (autonomous signer), returns an approval_token for gno_confirm (human-approval signer), or returns the preview (simulate-only). The input token must first be approved to the router (gno_approve). If unfunded, returns status:needs_funding with the address and faucet.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | fee tier 100/500/3000/10000 (default 500) | |
| minOut | Yes | minimum output (slippage floor), raw units | |
| tokenIn | Yes | input token pkgpath | |
| amountIn | Yes | exact input amount, raw units | |
| tokenOut | Yes | output token pkgpath | |
| deadlineSecs | No | seconds until expiry (default 120) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It reveals the internal sequence (simulate, check policy, broadcast), the signing model (autonomous signer or human-approval via gno_confirm), the funding failure mode, and the approval prerequisite. It doesn't mention irreversibility, gas costs, or failure modes beyond funding, but the core write/side-effect behavior is clearly communicated.
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 dense sentences with no filler. The first sentence states the action and internal call, the second describes the execution flow, and the third covers prerequisites and failure mode. Everything earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex write tool with no output schema or annotations, the description covers the main execution flow, the signing flow, and the funding failure case. It does not describe the exact structure of the approval_token or preview response, but that is largely an output concern. It could mention what happens on swap failure (e.g., revert), but the coverage is strong overall.
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 schema already documents all parameters. The description adds the requirement that tokenIn must be approved and that minOut is a slippage floor, but these are either in the schema or straightforward. The description does not provide significant additional parameter-level 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 states a specific verb and resource: 'Swap on GnoSwap' via 'router.ExactInSwapRoute', from the agent's own wallet. It distinguishes itself from siblings by mentioning the approval prerequisite (gno_approve), the approval_token handoff to gno_confirm, and the simulate-only preview mode, so an agent can tell it apart from gno_simulate, gno_call, and gno_approve.
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 clear context: the tool requires prior token approval via gno_approve, may return needs_funding if the wallet is unfunded, and offers either a broadcast flow or a simulate-only preview. However, it does not explicitly name alternatives like 'use gno_simulate for simulation only' or state when not to use this tool, though the simulate-only mention strongly implies the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_swap_signalsSwap signalsC
Swap-derived trading signals: tick crossings and price impact.
| 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 must carry the full burden of behavioral disclosure. It does not state whether the tool is read-only, whether it requires authentication, rate limits, or what the response structure looks like. The description only mentions the types of signals but omits any details about how results are returned or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose ('Swap-derived trading signals') followed by specifics. It is appropriately short and contains no filler, but it is so brief that it sacrifices explanatory value. It earns its place but could be more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description should explain return values and usage details. It does not describe what the output looks like (e.g., list of signals, fields), how to interpret 'tick crossings and price impact,' or any pagination behavior. The tool is likely a data-retrieval tool, but without more context, an agent cannot reliably call it or interpret 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 description coverage is 0%, and the description does not mention the 'limit' parameter at all. Since the schema itself only provides a type and bounds, the agent has no information on how 'limit' affects the output or whether it's needed. The description fails to compensate for the lack of 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 clearly states it provides swap-derived trading signals, specifying 'tick crossings and price impact.' This gives a specific verb ('swap-derived signals') and resource ('swaps'), and it distinguishes itself from siblings like gno_swap (which executes swaps) and gno_prices (which returns price data). However, it doesn't explicitly name the exact output format or contrast with other signal tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention conditions, prerequisites, or scenarios where this tool is preferred over other signal-related tools (e.g., gno_ohlcv, gno_whales). The usage context is only implied by the name and brief description.
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?
There are no annotations, so the description bears the full burden of behavioral disclosure. It does disclose that the query is on-chain, returns raw units, and instructs dividing by 10^decimals – useful behavioral context. However, it does not explicitly confirm that this is a read-only operation, describe failure modes (e.g., invalid token), or mention any side effects. For a simple balance query, this is adequate but not exhaustive, hence a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. The core purpose (exact balance) is front-loaded, followed by the crucial unit clarification and the pointer to an alternative tool. Every clause earns its place; it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, full schema coverage, no output schema), the description covers all necessary context: it specifies the token type (GRC20), the address type, the return format (raw units with decimal adjustment), and routes to the alternative for native tokens. No essential information is missing for an agent to call this 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 both parameters are already fully described in the schema. The description adds no additional parameter-specific information beyond what the schema provides (e.g., the token key reference is in the schema). The raw-units note is about the return value, not parameter semantics. Baseline 3 applies because the schema covers everything.
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 function: 'Exact on-chain GRC20 balance of an address' – a specific verb, resource, and target. It distinguishes itself from sibling tools by explicitly naming the alternative for native tokens ('For native ugnot use gno_get_balances'). This leaves no ambiguity about what the tool does or how it differs from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus an alternative: 'For native ugnot use gno_get_balances.' This directly routes agents away from this tool when they need native token balances, and implicitly signals that this tool is for GRC20 token balances. The guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_token_holdersToken holdersB
Holder distribution for a GRC20 token.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| token | Yes | GRC20 token pkgpath |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Holder distribution' without specifying return format, pagination, ordering, or whether it is read-only. This leaves the agent to infer behavior from the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that gets straight to the point with no unnecessary words. It is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details about the output format or any behavioral notes such as pagination or default ordering. Given the absence of an output schema, the agent is left without guidance on what to expect from the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the 'limit' parameter beyond its schema constraints, and the 'token' parameter is only described in the schema as a pkgpath. Since schema coverage is only 50%, the description should clarify parameter semantics but adds no value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (holder distribution) and the resource (GRC20 token), distinguishing it from siblings like token metadata or balance which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as gno_holder_series for historical trends or gno_token_balance for a single holder's balance. The description only states the purpose without any context or exclusions.
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?
With no annotations, the description carries the burden of behavioral disclosure. It clearly identifies the tool as a registry-backed read and surfaces a real trap: on-chain decimals can be placeholders, as with wugnot reporting 0 while using 6. This goes beyond the schema and helps the agent avoid misinterpreting returned decimals.
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 written sentences. The first delivers the core purpose, and the second adds a high-value caveat plus an actionable pointer to gno_prices. No filler or repetition of schema details.
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, the description plus schema cover the key acquisition source, the wrong-key failure mode, and the decimals caveat. There is no output schema, but the returned fields are named in the description; a small gap is that the exact response shape or null behavior for valid-but-unknown tokens is left implicit.
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 token parameter is already thoroughly documented with instructions to copy the exact key, not construct it, and to expect nulls for wrong keys. The description adds only the 'read via registry' context, so it does not improve materially on what the schema already provides.
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 plainly states what is returned (name, symbol, decimals, total supply) for a GRC20 token and notes it is read via the registry. It also distinguishes itself from gno_prices by directing use of that sibling for authoritative display decimals and USD price, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use gno_prices for authoritative display decimals and USD price, which is a clear alternative for a related use case. It does not spell out when to prefer gno_token_balance or gno_token_registry, but the key-provenance instruction is covered in the parameter schema and the main routing to gno_prices is present.
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_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 provided, the description carries the full burden of behavioral disclosure. It states the tool returns realized and unrealized PnL, but does not disclose whether the computation is historical, current, or requires specific data availability, nor does it mention any limitations such as only covering certain DEXes or time periods. The description is a high-level summary without behavioral depth.
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, focused sentence that front-loads the core purpose. Every word earns its place, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool, the description is reasonably complete, but it lacks context about what the returned PnL data looks like, whether it includes timeframes, and whether there are any caveats about wallet types or data coverage. Since there is no output schema, a bit more detail about the return shape would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single 'address' parameter. The description adds that the address is a wallet and that PnL is across trades, which gives some context, but it does not add format details beyond the schema's 'g1… address' hint. 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 clear verb and resource: it provides realized and unrealized PnL for a wallet across its trades. It distinguishes itself from sibling tools like gno_wallet_transfers and gno_wallet_tokens by focusing on profit/loss rather than transfers or holdings, though it does not explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing a wallet's trading performance, but it does not explicitly state when to use this tool versus alternatives like gno_wallet_transfers or gno_get_balances. There is no mention of prerequisites, time ranges, or whether it applies to all wallets or only those with trade history.
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 present, so the description carries the full burden. It indicates 'current' balances, suggesting a point-in-time read, but does not state whether it is read-only, whether zero balances are included, or any limitations. For a read-only query, it does not disclose response format or pagination, which an agent would need.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single six-word sentence with no filler, front-loading the core resource and scope. It is appropriately sized for a simple single-parameter tool, though it omits usage context that other dimensions cover.
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 simple parameter and no output schema, the description tells the agent what the tool returns conceptually, but not the structure or any edge cases. It does not mention whether balances are limited to registered tokens or include zero balances. For a tool with no annotations, it is adequate but leaves the agent guessing about output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter as a 'g1… address', and schema coverage is 100%, so a baseline of 3 applies. The description adds minimal meaning by calling the address a 'wallet', but does not elaborate on formatting or address type beyond the schema. This meets but does not exceed 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 states the tool returns a wallet's current GRC20 token balances, which is a clear resource and scope. It is a noun phrase rather than a verb, but it distinguishes this from broader balance tools by specifying GRC20 tokens. It does not explicitly call out sibling alternatives, so it misses the top-tier differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over siblings like gno_token_balance or gno_get_balances. It only states what it does, leaving the agent to infer the use case. There is no exclusion or alternative naming, so this dimension scores low.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gno_wallet_transfersWallet transfersB
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 disclosure burden. It usefully adds that results are newest first and cursor-paginated, which are important behavioral traits. However, it does not mention whether the operation is read-only, requires any permissions, or what kind of response to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tightly packed sentence conveys the resource, scope, ordering, and pagination style. Every word earns its place, and key ordering information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated list tool, the description covers the essential retrieval semantics. However, with no output schema or annotations, the agent is left without information on return shape or side effects, so completeness is adequate but not strong.
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 described, but limit is not. The description reinforces pagination via the cursor mention, slightly adding to the schema. It does not add meaning for limit or address beyond what the schema already provides.
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 a wallet's incoming and outgoing coin transfers, which distinguishes it from sibling tools like gno_wallet_tokens and gno_get_transactions. The verb is implicit but the resource and scope 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?
The description provides no guidance on when to choose this tool over alternatives, such as gno_get_transactions or gno_wallet_tokens. There are no exclusions, prerequisites, or context that would help an agent decide between related wallet-focused tools.
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
Detected wash-trading activity.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral disclosure burden, but it only says 'Detected wash-trading activity.' It implies a read-only detection result but does not disclose return format, ordering, time window, pagination, or any operational side effects/constraints.
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 very short, but this is under-specification rather than effective conciseness. It lacks structure and does not front-load actionable operating details like what the tool returns or how the parameter behaves.
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 output schema and no annotations, 'Detected wash-trading activity' is not enough context. The agent cannot tell whether the result is a list, count, table, or flag, nor how the limit parameter affects 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?
Schema description coverage is 0%, and the description does not explain the single 'limit' parameter at all. The schema's min/max constraints are present, but the agent is left to guess whether limit caps the number of results, trades, addresses, or something else.
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 is essentially a restatement of the tool name: 'wash_trades' becomes 'wash-trading activity' with no explicit verb such as 'get', 'list', or 'return'. It names the subject matter but does not define what operation the tool performs or what the caller will receive.
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 about when this tool should be used instead of similar analytics siblings like gno_whales or gno_dev_activity. The description does not state use cases, exclusions, or alternatives, leaving selection entirely to the agent's inference.
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?
No annotations are provided, so the description carries the full burden. It discloses that contracts are excluded and that results are sorted by net worth, but it does not state whether this is a read-only operation, whether it requires authentication, whether results are paginated, or what the response shape looks like.
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 conveys the core purpose and a key exclusion efficiently.
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 tool with no annotations and no output schema, the description is thin. It does not mention pagination, sorting direction, whether the limit is required, or what fields are returned for each wallet. An agent would need to infer response structure and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but there is only one optional parameter, limit, whose meaning is self-evident from its name and schema constraints. The description does not add detail about the parameter, but the parameter is simple enough that the schema is sufficient.
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: it lists the largest whale-labeled wallets by net worth, and explicitly excludes contracts. This is clear and distinguishes it from generic wallet tools, though it doesn't name a specific sibling 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?
The description implies a use case: retrieving top whale wallets by net worth. It does not explicitly state when to use this tool versus alternatives like gno_smart_money or gno_wallet_pnl, nor does it provide exclusions beyond contracts.
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.
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 42 tools
Most tools target a distinct resource and action, and descriptions include cross-references to steer agents to the right one. A few pairs (e.g. gno_token_balance vs gno_wallet_tokens, gno_get_package vs gno_package_files) require careful reading but are ultimately separable.
All tools share the gno_ prefix and snake_case, which gives a uniform brand. However, conventions are mixed after the prefix: some are gno_get_*, some are bare nouns like gno_whales or gno_prices, and some are bare verbs like gno_eval, gno_swap, and gno_confirm.
42 tools is well past the 25+ threshold and creates a heavy selection surface for an agent. The scope is genuinely broad, but the count is still too high for a focused MCP server.
The surface covers the Gno blockchain comprehensively: accounts, balances, tokens, NFTs, pools, transactions, blocks, events, search, analytics, and on-chain actions. Read paths, simulation, approval, swapping, deployment, and confirmation are all present, leaving no obvious dead ends.
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.
Governed AI actions with signed, verifiable receipts: free keyless reads, human-approved writes.
Related MCP Servers
- AlicenseCqualityBmaintenanceEnables AI agents to interact with any EVM-compatible blockchain through natural language, supporting token swaps, cross-chain bridges, staking, lending, governance, gas optimization, and portfolio tracking across networks like Ethereum, BSC, Polygon, Arbitrum, and more.10015 npm41-
- AlicenseNot gradedqualityBmaintenanceEnables 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.13 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.13 npmISC