Skip to main content
Glama
vechain

VeChain MCP Server

Official
by vechain

VeChain MCP Server

A Model Context Protocol (MCP) server that provides AI assistants with access to VeChain ecosystem documentation and blockchain data. This server enables seamless integration of VeChain capabilities into AI workflows through the MCP standard.

What is MCP?

The Model Context Protocol (MCP) is an open standard that enables AI assistants to securely access external data and tools. This server implements MCP to provide VeChain-specific capabilities to any MCP-compatible client.

Related MCP server: VeChain MCP Server

Features

  • Unified Documentation Search: Search across multiple VeChain ecosystem documentation resources

  • Blockchain Data Access: Query VeChain Thor blockchain data (blocks, transactions, accounts)

  • Event Decoding: Decode raw blockchain events into human-readable format

  • Multi-Network Support: Connect to mainnet, testnet, or solo networks

Supported Documentation Sources

  1. VeChain Documentation - Core VeChain blockchain documentation

  2. VeChain Kit - VeChain development toolkit documentation

  3. VeBetterDao - Decentralized governance platform documentation

  4. VeVote - Voting platform documentation

  5. Stargate - VeChain infrastructure documentation

Prerequisites

  • Node.js 20.18.1 or higher (required for running the server)

  • An MCP-compatible client such as:

Available Tools

Documentation Search Tools

  • searchDocsVechain - Search VeChain documentation

  • searchDocsVechainKit - Search VeChain Kit documentation

  • searchDocsVebetterDao - Search VeBetterDao documentation

  • searchDocsVevote - Search VeVote documentation

  • searchDocsStargate - Search Stargate documentation

Thor Blockchain Tools

  • thorGetBlock - Get block information

  • thorGetTransaction - Get transaction details

  • thorGetAccount - Get account information

  • thorDecodeEvent - Decode raw blockchain events

Token & NFT Tools

  • getTokenBalances - Get token balances for an account

  • getTokenFiatPrice - Get fiat price for tokens

  • getTokenRegistry - Get token registry information

  • getNFTs - Get NFTs owned by an account

  • getNFTContracts - Get NFT contract information

B3TR & VeBetterDAO Tools

  • getB3TRGlobalOverview - Get B3TR global statistics

  • getB3TRAppsLeaderboard - Get leaderboard of B3TR apps

  • getB3TRProposalsResults - Get B3TR proposal voting results

  • getB3TRProposalComments - Get on-chain voting comments

  • getCurrentRound - Get current VeBetterDAO round info

  • getGMNFTStatus - Check GM NFT status for an account

Stargate Staking Tools

  • getStargateTotalVetStaked - Get total VET staked

  • getStargateTokenRewards - Get staking rewards

  • getValidators - Get validator information

Transaction & Transfer Tools

  • getTransactions - Get transactions for an account

  • getTransfersOfAccount - Get token transfers

  • getHistoryOfAccount - Get account history

...and many more! Use the MCP inspector or ask your AI assistant to list all available tools.

Quick Start

1. Install in Your MCP Client

The easiest way to use the VeChain MCP server is to install it directly from npm using npx. This method automatically downloads and runs the latest version without requiring local setup.

For Claude Desktop

  1. Locate your Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. Add the VeChain server configuration:

{
  "mcpServers": {
    "vechain": {
      "command": "npx",
      "args": ["-y", "@vechain/mcp-server@latest"],
      "env": {
        "VECHAIN_NETWORK": "mainnet"
      }
    }
  }
}
  1. Restart Claude Desktop

For Cursor

  1. Open Cursor Settings:

    • Press Cmd/Ctrl + Shift + P

    • Type "Open MCP Settings" and select it

  2. Add the VeChain server configuration (same JSON as above)

  3. Restart Cursor

For Claude Code

  1. Locate your Claude Code configuration file:

    • Create or edit ~/.claude/mcp.json

  2. Add the VeChain server configuration (same JSON as above)

  3. Restart Claude Code

2. Verify Installation

Once your MCP client restarts, you should see the VeChain MCP tools available. You can test by asking your AI assistant:

  • "Search VeChain documentation for VTHO"

  • "Get the latest block on VeChain"

  • "What is my VeChain account balance for address 0x..."

Configuration

Network Selection

Set the VECHAIN_NETWORK environment variable to connect to different VeChain networks:

  • mainnet - VeChain MainNet (default, production network)

  • testnet - VeChain TestNet (for testing and development)

  • solo - Local solo network (for local development)

Example configuration for testnet:

{
  "mcpServers": {
    "vechain": {
      "command": "npx",
      "args": ["-y", "@vechain/mcp-server"],
      "env": {
        "VECHAIN_NETWORK": "testnet"
      }
    }
  }
}

Run with Docker

Prerequisite: Docker 20+.

  1. Pull the multi‑arch image (amd64/arm64):

docker pull ghcr.io/vechain/vechain-mcp-server:latest
  1. Run the HTTP server:

docker run -d --rm \
  -p 4000:4000 \
  -e VECHAIN_NETWORK=mainnet \ # mainnet | testnet | solo
  -e MCP_API_KEY=replace-me \  # bearer token clients must send on /mcp
  --name vechain-mcp \
  ghcr.io/vechain/vechain-mcp-server:latest

For local experimentation you can set MCP_AUTH_DISABLED=true instead of MCP_API_KEY; the server then accepts unauthenticated requests on /mcp. The server refuses to start with this flag when NODE_ENV=production.

  1. Verify:

curl -fsS http://localhost:4000/health
  1. List MCP tools (optional check):

curl -sS -m 10 -X POST http://localhost:4000/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Authorization: Bearer replace-me' \
  -d '{"jsonrpc":"2.0","id":"1","method":"tools/list"}'

Notes:

  • MCP endpoint: POST /mcp (Content-Type: application/json, Accept: application/json, text/event-stream).

  • Auth: POST /mcp, GET /tools and POST /tools/call require Authorization: Bearer <MCP_API_KEY>. GET /health and GET /ready are unauthenticated so a load balancer can probe them.

Local Development Setup

If you want to contribute to the VeChain MCP server or test local changes, follow these instructions.

Prerequisites for Development

  • Node.js 20.18.1 or higher

  • npm or yarn package manager

  • Git

Setup Steps

  1. Clone the repository:

git clone https://github.com/vechain/vechain-mcp-server.git
cd vechain-mcp-server
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

Development Modes

Option 1: STDIO Mode (Production-like)

Use this mode to test the server as it would run in production (via stdin/stdout).

  1. Build the project (if not already done):

npm run build
  1. Configure your MCP client to use the local build:

{
  "mcpServers": {
    "vechain-local": {
      "command": "node",
      "args": ["/absolute/path/to/vechain-mcp-server/dist/stdio.js"],
      "env": {
        "VECHAIN_NETWORK": "testnet"
      }
    }
  }
}

Replace /absolute/path/to/vechain-mcp-server with the actual path to your cloned repository.

  1. Restart your MCP client

Note: For Claude Code and Cursor, the local configuration is already set up in .claude/mcp.json and .cursor/mcp.json respectively.

Option 2: HTTP Mode with Hot Reload (Active Development)

Use this mode when actively developing - it automatically reloads on file changes.

  1. Start the development server:

npm run dev

This starts an HTTP server on http://localhost:4000/mcp with file watching enabled.

  1. Configure your MCP client to connect via HTTP:

{
  "mcpServers": {
    "vechain-local-dev": {
      "url": "http://localhost:4000/mcp"
    }
  }
}
  1. Restart your MCP client

Now any changes you make to the source code will automatically reload the server.

Note: This HTTP mode currently works with Cursor and other clients that support HTTP transport. Claude Desktop may have limited support for HTTP-based MCP servers.

Testing Your Changes

Using MCP Inspector

The MCP Inspector provides a web UI to test your MCP tools interactively:

npm run inspect

This opens a browser interface where you can test individual tools and see their responses.

Discourse Forum Integration (Optional)

Forum tools are OPTIONAL and work without the Discourse MCP server by providing forum URLs for manual viewing. To enable automated forum data fetching:

# Install globally
npm install -g @discourse/mcp@latest

# Run in HTTP transport mode with site pre-configured (recommended)
npx -y @discourse/mcp@latest --transport http --site https://vechain.discourse.group

# Or if installed globally
discourse-mcp --transport http --site https://vechain.discourse.group

Important: The --transport http flag is required to run Discourse MCP as an HTTP server that the VeBetterDAO MCP can connect to as an upstream server. Without this flag, it will run in STDIO mode (designed for direct AI client integration like Claude Desktop).

The Discourse server runs on http://localhost:3000 by default. The VeChain MCP will automatically connect to it if running.

Without Discourse MCP:

  • Forum tools will provide direct URLs to view discussions manually

  • Example: https://vechain.discourse.group/t/proposal-name/559

With Discourse MCP (HTTP mode):

  • Forum tools will fetch full discussion content automatically

  • Analyze sentiment and extract key points programmatically

Quick Start Commands:

# Terminal 1: Start Discourse MCP (with site pre-configured)
npx -y @discourse/mcp@latest --transport http --site https://vechain.discourse.group

# Terminal 2: Start VeBetterDAO MCP
npm run dev

Running Automated Tests

  1. Build and start the server:

npm run build
npm run start
  1. In a separate terminal, run the test suite:

npm run test

Code Quality

Format and lint your code before committing:

npm run format  # Format code with Biome
npm run lint    # Lint and fix issues with Biome

Releases

Releases are driven by git tags. Pushing a tag triggers a single pipeline (.github/workflows/publish-release.yml) that:

  1. Publishes the npm package to npmjs.org and to GitHub Packages.

  2. Builds a multi-arch Docker image and pushes it to the dev and prod container registries.

  3. Rolls the new image out to the dev environment automatically.

  4. Pauses on a manual approval step before rolling out to prod (enforced by GitHub environment protection rules).

Infrastructure for the runtime service lives in infra/ as a CloudFormation template; see that directory's README for details on how to deploy or update the stack shape.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Available Tools

76 tools
buildContractTransactionBuild a multi-clause transaction ready for the wallet to signA
DestructiveIdempotent

Build (but never sign or broadcast) a multi-clause VeChainThor transaction. Each clause is { name, method, args, valueWei?, comment?, address? }; for erc20 / erc721 an explicit address is mandatory. Returns the array of { to, value, data, comment? } clauses ready to be passed to VeWorld, the dApp Kit or vechain-kit for signing. By default every clause is simulated via Thor multicall first (using a generic signer): reverts are surfaced in simulation.results so the agent can fix the request before asking the user to sign. The server NEVER holds private keys and NEVER broadcasts.

ParametersJSON Schema
NameRequiredDescriptionDefault
clausesYesArray of clauses to bundle into a single multi-clause transaction.
simulateNoWhen true (default) every clause is simulated via Thor multicall to surface reverts before signing.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses simulation behavior via multicall by default, which surfaces reverts before signing. It also clarifies the server's limitations (no private keys, no broadcasting). This adds significant context beyond the annotations, which already indicate non-read-only and idempotent.

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

Conciseness4/5

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

The description is a single paragraph that is informative and not overly verbose. It could be slightly more structured with line breaks, but it is concise and front-loaded with the core purpose.

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

Completeness5/5

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

Given the tool's complexity (multi-clause transaction building with optional simulation) and the presence of an output schema, the description adequately covers purpose, input format, behavior, and important caveats (no signing/broadcasting). It leaves no major gaps.

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

Parameters5/5

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

The input schema has 100% coverage, but the description enhances understanding by explaining the clause structure, mandatory address for erc20/erc721, and the meaning of each field. It also clarifies the args types and default value for valueWei.

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

Purpose5/5

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

The description clearly states the tool builds a multi-clause VeChainThor transaction for signing, distinguishing it from read-only tools like callContract. It specifies the input (clauses array) and output (ready-to-sign clauses), and explicitly states it never signs or broadcasts.

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

Usage Guidelines4/5

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

The description provides clear context on when to use (building multi-clause transactions for signing) and what the tool does not do (never holds keys or broadcasts). However, it does not explicitly mention alternatives or when not to use this tool, though the sibling list suggests callContract for single calls.

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

callContractRead state from one or many contracts via a single multicallA
Read-onlyIdempotent

Execute one or more read-only contract calls (view / pure methods) in a single multicall round-trip. Each clause is { name, method, args, address? } where name is a registry contract from listKnownContracts. Pass address only to override the registry default or when calling erc20 / erc721 on an arbitrary token. Returns one result per clause with success, the decoded primary value and the full decoded array. bigint values are stringified. Use this instead of one call per round-trip whenever you need multiple values.

ParametersJSON Schema
NameRequiredDescriptionDefault
clausesYesArray of read-only calls to execute in a single multicall.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context, such as the clause format, address override behavior for erc20/erc721, return format (success, primary value, decoded array), and bigint stringification. No contradiction with annotations.

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

Conciseness4/5

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

The description is two sentences, front-loaded with the purpose, then providing detailed breakdown. It is appropriately sized and each sentence adds value. Slight room for improvement in structuring the details, but overall concise and effective.

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

Completeness4/5

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

Given the complexity (one parameter with nested objects, many sibling tools), the description sufficiently explains usage, conventions, and output format. The presence of an output schema reduces the burden for return value documentation, but the description still adds clarity on return structure. It is complete enough for correct tool invocation.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for each field. The description goes beyond by explaining the purpose of each clause field, the special meaning of 'address', and the return structure. This adds meaning beyond the schema, such as the fact that bigint values are stringified.

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

Purpose5/5

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

The description clearly states the tool executes read-only contract calls in a single multicall, which is distinct from sibling tools that perform individual contract reads. The verb 'execute' and resource 'read-only contract calls' are specific, and the title emphasizes multicall aggregation, distinguishing it from single-call tools.

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

Usage Guidelines4/5

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

The description explicitly advises using this tool 'instead of one call per round-trip whenever you need multiple values.' This gives clear context for when to prefer it. It does not explicitly list when not to use it, but the guidance is sufficient given the sibling tools.

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

getAccountsTotalsAccounts: totals/time-seriesA
Read-onlyIdempotent

Retrieve total unique VeChain accounts by timeframe via /api/v1/accounts/totals. Provide timeFrame (DAY, WEEK, MONTH, YEAR) to get per-interval totals; omit timeFrame to get cumulative ALL. Supports pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
timeFrameNoDAY, WEEK, MONTH, YEAR, ALL; omitted defaults to ALL

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, and destructive hints. Description adds the two modes (per-interval vs cumulative) and pagination support, which are useful behavioral traits.

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

Conciseness5/5

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

Two well-structured sentences that front-load the main action and resource, with all information earning its place.

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

Completeness5/5

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

Given the tool's simplicity, the description, schema, annotations, and output schema together provide a complete picture. No missing critical information.

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

Parameters4/5

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

Schema has 100% coverage, so baseline 3. Description adds meaning by explaining the timeFrame parameter's two modes and mentions pagination, providing marginal extra value.

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

Purpose5/5

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

Clearly states the tool retrieves total unique VeChain accounts by timeframe, distinguishing between providing timeFrame for per-interval totals vs omitting for cumulative. References specific API endpoint.

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

Usage Guidelines4/5

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

Describes when to provide timeFrame vs omit, but no explicit alternatives or when-not-to-use. Context signals are clear and sufficient.

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

getAppHubAppsApp Hub: official apps on VeChainA
Read-onlyIdempotent

List official apps from VeChain App Hub. Supports filtering by category, tag, VeWorld support and free-text search. Always return app URL when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter by a single tag (case-insensitive contains)
queryNoFree-text search in name/desc (case-insensitive contains)
categoryNoFilter by category (e.g., defi, utilities, games, marketplaces, collectibles)
isVeWorldSupportedNoFilter by VeWorld support flag

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds a behavioral guarantee: 'Always return app URL when available', which provides specific context beyond annotations. No contradictions with annotations.

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

Conciseness5/5

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

The description is two concise sentences, front-loading the primary action and key filtering capabilities, then adding a promise about return values. Every sentence earns its place with no wasted words.

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

Completeness4/5

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

Given the tool's complexity (4 optional parameters, no required parameters, output schema exists), the description covers the core functionality and return behavior. It adequately sets expectations for a list endpoint without requiring details about pagination or result limits, which are assumed to be in the output schema.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for all four parameters. The description paraphrases these filters but does not add significant new meaning beyond the schema. Baseline 3 is appropriate since schema already conveys parameter semantics.

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

Purpose5/5

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

The description clearly states the verb 'list' and the specific resource 'official apps from VeChain App Hub', and enumerates supported filters (category, tag, VeWorld support, free-text search). This distinguishes it from sibling tools like getVeBetterDaoApps which lists different apps.

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

Usage Guidelines3/5

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

The description indicates what the tool does but does not provide guidance on when to use it versus alternatives (e.g., when not to use it, or comparisons with similar tools). There is clear context for usage but no exclusions or alternatives mentioned.

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

getB3TRActionsForAppB3TR: Actions for an appA
Read-onlyIdempotent

Fetch B3TR actions for a VeBetterDAO app via /api/v1/b3tr/actions/apps/{appId}. Requires appId (if coming from app-hub from name or description, use veBetterDaoId).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
afterNoReturn actions after (inclusive) this Unix timestamp in seconds (e.g. 1754179200 for 2025-08-03T00:00:00Z). Use seconds, NOT milliseconds.
appIdYesveBetterDaoId of the app (32-byte hex, required). If the user gives a human-readable app name (e.g. "Mugshot"), call getAppHubApps first to resolve the veBetterDaoId.
beforeNoReturn actions before (inclusive) this Unix timestamp in seconds (e.g. 1754265600 for 2025-08-04T00:00:00Z). Use seconds, NOT milliseconds.
directionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for B3TR actions for an app
errorNo
networkYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the tool is clearly safe and idempotent. The description adds the API endpoint but no additional behavioral traits (e.g., rate limits, response structure). It does not contradict annotations.

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

Conciseness5/5

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

The description is two sentences with no unnecessary words. The first sentence states purpose and endpoint; the second provides critical usage guidance. It is front-loaded and compact.

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

Completeness3/5

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

The tool has 6 parameters including pagination controls (page, size, after, before, direction). The description covers the required appId resolution but omits guidance on how to use pagination or filtering. Given the output schema exists, return values need not be explained, but the pagination parameters are not discussed, leaving a gap for a complete usage context.

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

Parameters3/5

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

Schema coverage is about 67% (descriptions for appId, after, before, direction; page and size lack descriptions). The description amplifies the appId parameter by explaining how to resolve it from a human-readable name, adding value beyond the schema. However, it does not compensate for the missing descriptions on page and size, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool fetches B3TR actions for a VeBetterDAO app via a specific API endpoint. It distinguishes itself from sibling tools like getB3TRActionsForUser by focusing on a single app's actions. The mention of resolving appId from app-hub clarifies its scope.

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

Usage Guidelines4/5

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

The description explicitly states that appId is required and provides guidance: if a human-readable app name is given, call getAppHubApps first. This is a clear usage instruction. However, it does not explicitly list when not to use this tool in favor of alternatives, which would make it a 5.

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

getB3TRActionsForUserB3TR: Actions for a userA
Read-onlyIdempotent

Get B3TR actions for a user and the impacts of those actions via /api/v1/b3tr/actions/users/{wallet}. Optionally filter by appId and time range.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
afterNoReturn records after this Unix timestamp in seconds (e.g. 1754179200 for 2025-08-03T00:00:00Z). Use seconds, NOT milliseconds.
appIdNoOptional B3TR appId (veBetterDaoId — 32-byte hex) to filter interactions. If the user gives a human-readable app name (e.g. "Mugshot"), resolve it via getAppHubApps first and pass the resulting veBetterDaoId here.
beforeNoReturn records before this Unix timestamp in seconds (e.g. 1754265600 for 2025-08-04T00:00:00Z). Use seconds, NOT milliseconds.
walletYesUser wallet address (0x...) or VNS name (e.g. foo.vet)
directionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for B3TR actions for an app
errorNo
networkYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint hints. The description adds context about returning impacts and optional filtering but does not contradict annotations or provide additional behavioral traits beyond what annotations cover.

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

Conciseness4/5

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

The description is two sentences, concise and to the point. It front-loads the core purpose and endpoint. Minor improvement could be adding structure for clarity, but overall efficient.

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

Completeness4/5

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

The description covers the main purpose and optional filters. With output schema present, return values are not needed. However, it omits pagination parameters (page, size) and direction, which reduces completeness for a 7-parameter tool.

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

Parameters3/5

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

Schema coverage is 57%, with descriptions for after, before, appId, wallet. The description does not add new parameter semantics beyond the schema; it only restates optional filtering. Given partial schema coverage, a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'B3TR actions for a user', and the endpoint path. It distinguishes from sibling tools like getB3TRActionsForApp by specifying 'for a user'.

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

Usage Guidelines3/5

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

The description mentions optional filters but does not explicitly state when to use this tool over alternatives like getB3TRActionsForApp or getB3TRUserOverview. No when-not or prerequisite guidance is provided.

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

getB3TRAppOverviewB3TR: App overview (totals)A
Read-onlyIdempotent

Get APP overview for a specific app listed on veBetterDao via /api/v1/b3tr/actions/apps/{appId}/overview. Returns total B3TR rewards, number of rewarded actions, sustainability impact totals, global rankings for a specific app. appId must be the veBetterDaoId (32-byte hex, e.g. 0x2fc30c...). If the user gives an app name like "Mugshot", call getAppHubApps first to resolve the veBetterDaoId — never pass an app name directly here. Optionally filter by roundId OR date (yyyy-MM-dd UTC), but not both — they are mutually exclusive.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date (UTC) to filter by, format yyyy-MM-dd. Mutually exclusive with roundId.
appIdYesB3TR appId (a.k.a. veBetterDaoId) — 32-byte hex. If the user gives a human-readable app name, look it up via getAppHubApps first and pass the resulting veBetterDaoId here.
roundIdNoOptional round id to filter by. Mutually exclusive with date.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoB3TR app overview (totals and rankings)
errorNo
networkYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already indicate read-only, open-world, idempotent, and non-destructive behavior. The description adds details about the data returned (rewards, actions, sustainability, rankings) and the filtering constraints (mutually exclusive date/roundId). No contradictions with annotations.

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

Conciseness5/5

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

Three sentences efficiently convey purpose, endpoint, return values, and critical usage notes (bolded warning). No unnecessary words; front-loaded with key information.

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

Completeness5/5

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

Given the presence of an output schema (context shows 'Has output schema: true'), the description sufficiently covers what the tool returns. Annotations cover safety. Sibling list shows this is one of many B3TR tools, and the description distinguishes it well.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds significant context beyond schema, especially for appId: clarifying it must be a 32-byte hex veBetterDaoId and instructing to use getAppHubApps for name resolution. This is not present in the schema description.

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

Purpose5/5

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

Description clearly states it gets an APP overview for a specific app listed on veBetterDao, specifying the endpoint and listing returned data (totals, rewards, rankings). It distinguishes from siblings like getB3TRAppsLeaderboard, which returns a leaderboard, and getB3TRActionsForApp, which returns actions.

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

Usage Guidelines5/5

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

Explicitly states when to use: for a specific app overview. Provides critical guidance on appId format (veBetterDaoId, not app name) and advises to call getAppHubApps first if user provides a name. Also notes mutual exclusivity of date and roundId filters.

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

getB3TRAppsLeaderboardB3TR: Apps leaderboardA
Read-onlyIdempotent

Get app B3TR action leaderboard via /api/v1/b3tr/actions/leaderboards/apps. Optionally filter by roundId OR date (yyyy-MM-dd UTC) but not both — they are mutually exclusive. Sort by totalRewardAmount or actionsRewarded; supports cursor pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date (UTC) to filter by, format yyyy-MM-dd. Mutually exclusive with roundId.
sizeNoThe results page size
cursorNoPagination cursor returned by a previous request
sortByNoSort by totalRewardAmount or actionsRewarded
roundIdNoOptional round id to filter by. Mutually exclusive with date.
directionNoThe sort direction

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for apps leaderboard
errorNo
networkYes

TDQS

A4.5/5.0
Behavior4/5

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

While annotations already indicate read-only and idempotent behavior, the description adds valuable context such as mutual exclusivity of filters, supported sort fields, and cursor pagination, which are not fully captured by the schema alone.

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

Conciseness5/5

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

The description is three sentences with no redundancy, directly stating purpose, usage constraints, and key features. Every sentence serves a clear function.

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

Completeness5/5

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

For a read-only leaderboard tool with an output schema, the description covers all essential aspects: resource, endpoint, optional filters with mutual exclusivity, sort options, and pagination. No critical information is missing.

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

Parameters4/5

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

Schema coverage is 100% with parameter descriptions, but the description adds the key constraint of mutual exclusivity between date and roundId, as well as clarifying pagination and sorting behavior, going beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Get') and the specific resource ('app B3TR action leaderboard'), distinguishing it from sibling tools like getB3TRAppUsersLeaderboard and getB3TRUsersLeaderboard by focusing on apps rather than users.

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

Usage Guidelines4/5

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

The description provides explicit usage constraints (mutually exclusive roundId and date filters) and pagination details, but does not explicitly guide when to use this tool versus alternatives like getB3TRGlobalOverview.

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

getB3TRAppUsersLeaderboardB3TR: App users leaderboardA
Read-onlyIdempotent

Get user B3TR action leaderboard for a given app via /api/v1/b3tr/actions/leaderboards/apps/{appId}. Optionally filter by roundId or date; sort by totalRewardAmount or actionsRewarded; supports cursor pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date (UTC) to filter by, format yyyy-MM-dd. Mutually exclusive with roundId.
sizeNoThe results page size
appIdYesApp ID (veBetterDaoId — 32-byte hex). If the user gives an app name, resolve it via getAppHubApps first.
cursorNoPagination cursor returned by a previous request
sortByNoSort by totalRewardAmount or actionsRewarded
roundIdNoOptional round id to filter by. Mutually exclusive with date.
directionNoThe sort direction

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for app users leaderboard
errorNo
networkYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's behavioral additions (pagination, mutual exclusivity) are helpful but not critical. No contradictions with annotations.

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

Conciseness5/5

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

Single sentence, 27 words, front-loaded with main action. No redundant or trivial details.

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

Completeness5/5

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

Given the presence of an output schema, the description adequately covers pagination, filters, and endpoint. It provides sufficient context for a read-only leaderboard tool.

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

Parameters4/5

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

Schema coverage is 100% and the description adds extra context: mutual exclusivity between date and roundId, and a resolution hint for appId (resolve via getAppHubApps). Not all parameters are described, but the added info is valuable.

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

Purpose5/5

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

The description clearly states the verb 'Get' and specific resource 'user B3TR action leaderboard for a given app', differentiating from sibling tools like getB3TRUsersLeaderboard (global) or getB3TRAppsLeaderboard (app-level). The API endpoint is explicitly mentioned.

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

Usage Guidelines3/5

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

The description lists optional filters and pagination but does not explicitly state when to use this vs alternatives (e.g., getB3TRUsersLeaderboard for global leaderboard). Usage context is implied through the app-specific scope but not directly clarified.

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

getB3TRGlobalOverviewB3TR: Global overview (totals)A
Read-onlyIdempotent

Get global B3TR action overview via /api/v1/b3tr/actions/global/overview. Optionally filter by roundId OR date (yyyy-MM-dd UTC), but not both — they are mutually exclusive.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date (UTC) to filter by, format yyyy-MM-dd. Mutually exclusive with roundId.
roundIdNoOptional round id to filter by. Mutually exclusive with date.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoGlobal B3TR action overview (totals)
errorNo
networkYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds the mutual exclusivity constraint and API endpoint, providing some extra context but not extensive behavioral traits.

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

Conciseness5/5

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

Two concise sentences with no fluff, front-loading the tool's purpose immediately. Every sentence adds value.

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

Completeness5/5

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

Given the simple tool with two optional parameters and an output schema, the description adequately covers purpose, filtering options, and constraints. No additional details needed.

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

Parameters4/5

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

Input schema has 100% coverage with both parameters described. The description adds the critical mutual exclusivity constraint and date format, going beyond the schema definitions.

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

Purpose5/5

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

The description clearly states the tool retrieves a global B3TR action overview, specifying the API endpoint. It distinguishes from sibling tools like getB3TRAppOverview or getB3TRActionsForApp by focusing on the global scope.

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

Usage Guidelines4/5

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

The description explicitly states that roundId and date are mutually exclusive and provides the date format, offering clear guidance on parameter usage. It does not cover when-not-to-use but given the simplicity this is sufficient.

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

getB3TRProposalCommentsB3TR: Proposal commentsA
Read-onlyIdempotent

Get on-chain voting comments/reasons for a specific B3TR proposal via /api/v1/b3tr/proposals/{proposalId}/comments. Shows comments from users who actually voted on-chain with their voting power and weight. NOTE: This shows on-chain voter comments. For broader community discussion, extract the Discourse forum link from the proposal's IPFS description. If getDiscourseTopic is available, use it to fetch the full forum thread; if not available (optional feature), provide the forum URL for manual viewing. Forum discussions often have more detailed debate and sentiment from the wider community before/during voting. Supports filtering by support type (FOR, AGAINST, ABSTAIN).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (default: 0)
sizeNoResults per page (default: 20)
supportNoFilter by support type (FOR, AGAINST, or ABSTAIN)
directionNoSort direction (default: DESC)
proposalIdYesProposal ID to fetch comments for

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for B3TR proposal comments
errorNo
networkYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate a safe, read-only operation. Description adds value by clarifying that comments are only from on-chain voters and that filtering by support type is supported. 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.

Conciseness4/5

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

Description is concise but includes a valuable note about Discourse alternative. Could be slightly more structured, but every sentence adds value.

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

Completeness5/5

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

Given that an output schema exists, description need not explain return values. Covers purpose, usage, limitations, and filtering options. Complete for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are already well-documented. Description adds minimal extra meaning beyond the schema, only echoing the filter by support type. At baseline 3.

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

Purpose5/5

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

Description clearly states it gets on-chain voting comments/reasons for a specific B3TR proposal, specifying the API endpoint and distinguishing from broader community discussion. Verb 'get' and resource 'on-chain proposal comments' are specific.

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

Usage Guidelines5/5

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

Provides explicit guidance: use for on-chain voter comments, and for broader community discussion, use Discourse tools. Mentions getDiscourseTopic as alternative and when to use it, along with providing forum URL for manual viewing.

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

getB3TRProposalsResultsB3TR: Proposal resultsA
Read-onlyIdempotent

Get B3TR proposal results via /api/v2/b3tr/proposals/results. IMPORTANT: If user provides a specific proposal ID, pass it as the proposalId parameter to query directly for that single proposal - DO NOT fetch all proposals and filter! Returns proposals with voting results and IPFS description CIDs. WORKFLOW: 1) Use this tool with proposalId parameter if specific proposal requested, or browse all proposals if general query, 2) Use getIPFSContent with the description CID to get full proposal details, 3) Extract Discourse forum link from description (format: vechain.discourse.group/t/topic-name/TOPIC_ID), 4) If getDiscourseTopic is available, use it with the topic ID to fetch community discussion; if not available (optional feature), provide the forum URL for manual viewing, 5) Use getB3TRProposalComments to get on-chain voting comments. This gives complete view: proposal data + forum discussion (via API or URL) + on-chain voter comments.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (default: 0)
sizeNoResults per page (default: 20)
statesNoFilter by proposal states (optional)
directionNoSort direction (default: DESC)
proposalIdNoOptional: Filter by specific proposal ID. When provided, returns only the matching proposal. Use this to query a specific proposal directly instead of fetching all proposals.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for B3TR proposals results
errorNo
networkYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint true. The description adds behavioral context: returns proposals with voting results and CIDs, requires further steps to get full data, and that using proposalId avoids unnecessary fetching. No contradictions, and it provides useful workflow info beyond annotations.

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

Conciseness4/5

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

The description is longer than necessary but well-structured with bold emphasis and a numbered list. Every sentence adds value, and the front-loading of the main purpose and critical usage note makes it effective. Slight redundancy between the IMPORTANT note and workflow step 1, but overall acceptable.

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

Completeness5/5

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

Complete in context: explains what the tool returns, how to use it for specific vs general queries, and provides a full workflow involving other tools for a complete view. With annotations covering safety and output schema present, the description covers all necessary aspects.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds a usage note about proposalId but no additional semantic details for other parameters. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it gets B3TR proposal results, specifying the API endpoint and the data returned (voting results and IPFS description CIDs). It distinguishes itself from sibling tools through the integrated workflow that references getIPFSContent, getDiscourseTopic, and getB3TRProposalComments, making its role in the broader process explicit.

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

Usage Guidelines5/5

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

Provides explicit guidance: use proposalId for specific proposals (with caution not to fetch all), and a numbered workflow detailing steps from this tool through related tools. It clearly states when to use this tool versus alternatives, including when to browse all proposals or use other tools for full details.

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

getB3TRUserAppOverviewB3TR: User app overview (totals)A
Read-onlyIdempotent

Get a users overview for a specific app on veBetterDao via /api/v1/b3tr/actions/users/{wallet}/app/{appId}/overview. Returns total B3TR rewards, number of rewarded actions, sustainability impact totals, global rankings for a specific app. appId must be the veBetterDaoId (32-byte hex). If the user gives an app name, call getAppHubApps first to resolve the veBetterDaoId. Optionally filter by roundId OR date (yyyy-MM-dd UTC), but not both — they are mutually exclusive.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date (UTC) to filter by, format yyyy-MM-dd. Mutually exclusive with roundId.
appIdYesB3TR appId (a.k.a. veBetterDaoId) — 32-byte hex. If the user gives a human-readable app name, look it up via getAppHubApps first and pass the resulting veBetterDaoId here.
walletYesUser wallet address (path parameter)
roundIdNoOptional round id to filter by. Mutually exclusive with date.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoB3TR user overview for a specific app (totals and rankings)
errorNo
networkYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. Description adds key behavioral details: the API endpoint, mutual exclusivity of filters, and that appId must be a 32-byte hex. 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.

Conciseness4/5

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

Concise single paragraph that front-loads the purpose. All sentences add value (API path, return summary, appId resolution hint, filter constraints). No wasted words, though could be slightly tighter.

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

Completeness5/5

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

Given the output schema exists, description does not need to explain return values. It sufficiently covers input constraints (appId format, filter mutual exclusivity) and provides necessary context for correct usage. Complete for the tool's complexity.

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

Parameters3/5

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

Schema already covers all 4 parameters with descriptions, achieving 100% coverage. Description reinforces the appId format and mutual exclusivity of date/roundId, but adds no new parameter semantics beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states 'Get a users overview for a specific app' and lists exact return fields (B3TR rewards, rewarded actions, sustainability impact totals, global rankings). Distinct from sibling tools like getB3TRAppOverview (app-level) and getB3TRUserOverview (user-level without app specificity).

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

Usage Guidelines4/5

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

Explicitly instructs to resolve app name to veBetterDaoId via getAppHubApps, and warns that roundId and date are mutually exclusive. Does not explicitly state when not to use, but 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.

getB3TRUserDailySummariesB3TR: User daily summariesA
Read-onlyIdempotent

Get daily action summaries for a specific user within a date range via /api/v1/b3tr/actions/users/{wallet}/daily-summaries. Returns total B3TR rewards, number of rewarded actions, sustainability impact totals for each day. Dates must be UTC in yyyy-MM-dd.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
walletYesUser wallet address (0x...) or VNS name
endDateYes
directionNo
startDateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for B3TR user daily summaries
errorNo
networkYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it returns total B3TR rewards, number of rewarded actions, and sustainability impact totals, plus the date format requirement. This enriches behavioral understanding beyond annotations.

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

Conciseness5/5

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

The description is two concise sentences. The first sentence states the purpose and endpoint, the second details return values and a format constraint. No unnecessary words, well-structured.

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

Completeness3/5

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

With an output schema present, the description does not need to detail return values. However, it omits information about pagination and sorting parameters, and lacks usage context. It covers core functionality but is minimally complete.

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

Parameters2/5

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

Schema description coverage is only 17%, with only wallet, startDate, and endDate having descriptions. The description adds that dates must be UTC in yyyy-MM-dd, but does not explain pagination parameters (page, size) or sorting direction. Given low coverage, the description should compensate more.

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

Purpose5/5

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

The description clearly states it gets daily action summaries for a specific user within a date range, mentions the API endpoint, and lists the returned data. This distinguishes it from sibling B3TR tools like getB3TRActionsForUser or getB3TRUserOverview.

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

Usage Guidelines3/5

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

The description implies usage for retrieving summarized daily actions but does not explicitly state when to use this tool over alternatives or provide when-not-to-use conditions. It lacks guidance on context or exclusions.

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

getB3TRUserOverviewB3TR: User overview (totals)A
Read-onlyIdempotent

Get the B3TR action overview for a specific wallet via /api/v1/b3tr/actions/users/{wallet}/overview. Returns total B3TR rewards, number of rewarded actions, sustainability impact totals, global rankings, and unique X-App interactions. Optionally filter by roundId OR date (yyyy-MM-dd UTC), but not both — they are mutually exclusive.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date (UTC) to filter by, format yyyy-MM-dd. Mutually exclusive with roundId.
walletYesUser wallet address (path parameter)
roundIdNoOptional round id to filter by. Mutually exclusive with date.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoB3TR user overview (totals and rankings)
errorNo
networkYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description adds the API endpoint and the mutual exclusivity constraint, which are useful behavioral details beyond the annotations. It does not contradict the annotations.

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

Conciseness5/5

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

The description is concise (two sentences) and front-loaded with the core purpose. Every sentence provides necessary information without redundancy.

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

Completeness4/5

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

Given the presence of an output schema (not shown but indicated), the description doesn't need to detail return values. It covers the key inputs and their constraints. However, it could briefly mention that the tool is for a single wallet and provides aggregate totals, which it does.

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

Parameters4/5

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

The input schema has 100% description coverage for all three parameters. The description adds value by explaining the mutual exclusivity between 'date' and 'roundId', and clarifying the date format (yyyy-MM-dd UTC). This goes beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool gets the B3TR action overview for a specific wallet, listing specific return fields (total rewards, rewarded actions, sustainability impact, rankings, X-App interactions). It also provides the API endpoint, which distinguishes it from sibling tools like getB3TRActionsForUser or getB3TRUserAppOverview by specifying the aggregate nature of the response.

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

Usage Guidelines4/5

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

The description explicitly mentions the optional filters (roundId and date) and states they are mutually exclusive, which guides correct usage. However, it does not provide any guidance on when to use this tool versus sibling tools like getB3TRUserAppOverview or getB3TRUserDailySummaries.

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

getB3TRUsersLeaderboardB3TR: Users leaderboardA
Read-onlyIdempotent

Get leaderboard of users' B3TR actions via /api/v1/b3tr/actions/leaderboards/users. Optionally filter by roundId OR date (yyyy-MM-dd UTC) but not both — they are mutually exclusive. Sort by totalRewardAmount or actionsRewarded; supports cursor pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date (UTC) to filter by, format yyyy-MM-dd. Mutually exclusive with roundId.
sizeNoThe results page size
cursorNoPagination cursor returned by a previous request
sortByNoSort by totalRewardAmount or actionsRewarded
roundIdNoOptional round id to filter by. Mutually exclusive with date.
directionNoThe sort direction

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for users leaderboard
errorNo
networkYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. The description adds behavioral details beyond annotations: mutual exclusivity of filters, date format (UTC), and pagination with cursor, which are not captured by annotations alone.

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

Conciseness5/5

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

Two sentences, front-loaded with endpoint and purpose, then concise details on filtering, sorting, and pagination. No unnecessary words; every sentence adds value.

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

Completeness5/5

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

With zero required parameters, an output schema, and 100% schema coverage, the description covers all user needs: filtering constraints, sorting, pagination. It is complete for the tool's complexity.

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

Parameters4/5

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

Schema description coverage is 100%, but the description adds operational semantics: mutual exclusivity between roundId and date, date format specification, and the meaning of sortBy values. This enhances parameter understanding beyond schema.

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

Purpose5/5

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

The description explicitly states 'Get leaderboard of users' B3TR actions' with the API endpoint, making the verb and resource clear. It distinguishes from sibling tools like getB3TRAppsLeaderboard by specifying 'users' leaderboard.

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

Usage Guidelines4/5

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

The description clearly explains the mutual exclusivity of roundId and date parameters, sorting options (totalRewardAmount or actionsRewarded), and pagination support. It provides specific usage guidance but does not explicitly contrast with alternative tools.

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

getContractAbiGet the ABI (or a subset) of a known contractA
Read-onlyIdempotent

Return the ABI of a contract registered in the server, with optional filters to keep the payload small. Always prefer the most specific filters: pass methodNames: ["balanceOf", "transfer"] to get just those fragments, or stateMutability: "view" to list read-only methods. When called with no filters on a large ABI the server returns only the list of function names and asks you to refine the query (the full ABI would be tens of KB). Use the returned fragments directly in callContract / buildContractTransaction together with the same name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesContract name from listKnownContracts (e.g. "b3tr", "x2EarnApps", "stargateNft", "erc20")
methodNamesNoWhen provided, only fragments whose name is in this list are returned.
fragmentTypeNoRestrict to a single fragment kind. Default returns only functions.function
stateMutabilityNoFilter function fragments by mutability. Use "view" or "pure" for read-only methods.all

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the tool is safe. The description adds behavioral context beyond annotations: it reveals that calling without filters on a large ABI returns only function names and asks for refinement, which is important for an agent to understand to avoid unexpected results.

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

Conciseness4/5

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

The description is four sentences, well-front-loaded with the main purpose. Each sentence adds value: purpose, preference for filters, behavior with no filters, and how to use the result. It is not overly verbose but could be slightly more concise by removing the suggestion about 'use the returned fragments' which is implied.

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

Completeness4/5

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

Given the tool has 4 parameters, 100% schema coverage, and an output schema, the description does not need to detail return values. It covers the key behaviors: filtering, large ABI warning, and usage with other tools. Missing details like error handling for unknown contracts are minor, so the description is sufficiently complete.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaningful context beyond schema: it provides concrete examples for methodNames (e.g., 'balanceOf', 'transfer'), explains the default for fragmentType, and suggests using stateMutability 'view' for read-only methods. This helps in writing correct queries.

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

Purpose5/5

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

The description clearly states it returns the ABI of a registered contract, with optional filters to reduce payload size. The verb 'Return' and resource 'ABI of a contract' are specific, and the mention of using fragments with callContract/buildContractTransaction distinguishes this tool from sibling tools that perform different operations.

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

Usage Guidelines4/5

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

The description provides explicit usage advice: prefer the most specific filters, gives examples like methodNames and stateMutability, and explains the server's behavior when no filters are applied on a large ABI. It also suggests using the returned fragments with callContract, but does not explicitly state when not to use this tool or compare to alternatives.

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

getContractTransactionsIndexer: Transactions for a contract (v1)A
Read-only

Query VeWorld Indexer /api/v1/transactions/contract for transactions interacting with a contract address. Supports pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
afterNoReturn txs at or after this Unix timestamp (seconds)
beforeNoReturn txs at or before this Unix timestamp (seconds)
cursorNoOpaque cursor for fetching the next page when provided by the API
expandedNoInclude decoded clause outputs/logs for richer results, would recommend to set to true to get the full transaction details
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
contractAddressYesContract address that the transaction interacted with

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for transactions endpoints
errorNo
networkYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds only that it queries a specific API and supports pagination, which is already implicit. No contradictions, but minimal added value beyond annotations.

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

Conciseness5/5

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

Two sentences, no filler, front-loaded with the core action. Every word earns its place.

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

Completeness4/5

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

Given the presence of an output schema and fully annotated parameters, the description is adequate for a read-only paginated query. Could optionally mention rate limits or result trimming, but not essential.

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

Parameters3/5

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

All 8 parameters have descriptions in the schema (100% coverage), so the description adds no additional meaning beyond stating pagination support. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Query' and the resource 'transactions for a contract', including the specific API endpoint. This distinguishes it from sibling tools like getTransactions (general) and getTransfersFrom.

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

Usage Guidelines3/5

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

The description implies usage for contract transactions but provides no explicit guidance on when to use this tool versus alternatives such as getTransactions or getTransfersFrom.

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

getCurrentRoundVeBetterDAO: Get current round IDA
Read-onlyIdempotent

Get the current VeBetterDAO round ID by querying the X Allocation Voting smart contract directly. Rounds are time periods for voting cycles and reward distribution. Use this round ID to filter other queries (e.g., getB3TRGlobalOverview, getB3TRAppOverview) to see data for the current active round. Returns real-time on-chain value.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
networkYes
currentRoundIdNoCurrent VeBetterDAO round ID

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so no side effects. Description adds that it queries the smart contract directly and returns real-time on-chain value, providing useful behavioral context beyond annotations.

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

Conciseness5/5

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

Three sentences, front-loaded with key action, every sentence adds value: purpose, explanation of rounds, and usage guidance. No unnecessary words.

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

Completeness5/5

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

Given no parameters, rich annotations, and existence of output schema, the description fully covers what the agent needs: what it does, why it's useful (for filtering), and that it returns real-time data. No gaps.

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

Parameters4/5

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

No parameters exist, so baseline is 4. Description doesn't need to add param info.

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

Purpose5/5

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

The description clearly states the action 'Get the current VeBetterDAO round ID' and specifies the resource (round ID) and method (querying smart contract directly). It distinguishes from sibling tools by focusing on a simple, real-time value retrieval, unlike more complex queries.

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

Usage Guidelines4/5

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

The description explicitly instructs to use the round ID to filter other queries like getB3TRGlobalOverview and getB3TRAppOverview, providing clear context. It doesn't specify when not to use it, but the purpose is narrow enough that it's implied.

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

getDelegatedTransactionsIndexer: Delegated transactions by delegator (v1)A
Read-only

Query VeWorld Indexer /api/v1/transactions/delegated for transactions delegated by a given delegator address. Supports pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
afterNoReturn txs at or after this Unix timestamp (seconds)
beforeNoReturn txs at or before this Unix timestamp (seconds)
cursorNoOpaque cursor for fetching the next page when provided by the API
expandedNoInclude decoded clause outputs/logs for richer results
delegatorYesDelegator (gas payer) address
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for transactions endpoints
errorNo
networkYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the endpoint detail and pagination support, which is useful context but does not significantly extend behavioral transparency beyond annotations.

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

Conciseness5/5

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

Two sentences, no filler: the first explains the core function, the second notes pagination support. Highly concise and front-loaded.

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

Completeness4/5

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

With a well-described schema and output schema present (not shown), the description captures the essential purpose. It misses explicit mention of time filters and sort direction, but the schema covers them, so it is almost complete.

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

Parameters3/5

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

All 8 parameters are fully described in the input schema (100% coverage). The description reinforces the delegator parameter and pagination concept but adds no new meaning beyond the schema's detailed descriptions.

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

Purpose4/5

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

The description clearly specifies the resource (delegated transactions) and action (query by delegator address) with the specific endpoint. It is distinct from siblings by focusing on delegated transactions, though no explicit sibling differentiation is given.

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

Usage Guidelines3/5

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

The description states the purpose and the key parameter (delegator) and mentions pagination, but does not provide guidance on when to use this tool versus other transaction tools like getTransactions or getContractTransactions.

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

getDiscourseCategoriesGet Forum Categories (Optional)A
Read-onlyIdempotent

Get all available categories from the VeBetterDAO Discourse forum. OPTIONAL FEATURE: Requires Discourse MCP server running separately. If not available, suggest visiting https://vechain.discourse.group/categories to browse categories.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark the tool as readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. The description adds critical behavioral context: the tool depends on a separately running Discourse MCP server, and if not available, recommends an external workaround. No contradictions with annotations.

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

Conciseness5/5

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

The description consists of two efficient sentences: the first defines the core purpose, and the second explains the optional dependency and fallback. No superfluous information, well front-loaded.

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

Completeness4/5

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

For a simple no-parameter, no-output-schema tool with rich annotations, the description covers purpose, dependency, and alternative. It does not describe the return format (e.g., structure of categories), which would be beneficial but not critical. Complete enough for practical use.

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

Parameters4/5

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

The tool has zero parameters, so schema coverage is 100%. The description implicitly indicates that all categories are fetched without filters, which aligns with the lack of parameters. Baseline for 0 parameters is 4, and no additional parameter semantics are needed.

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

Purpose5/5

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

The description clearly states 'Get all available categories from the VeBetterDAO Discourse forum,' specifying the verb (get) and resource (categories). It differentiates from sibling tools like getDiscourseLatestTopics, getDiscoursePost, getDiscourseTopic, and searchDiscourseForum by focusing solely on categories.

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

Usage Guidelines5/5

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

Explicitly states that the tool requires the Discourse MCP server running separately and provides a clear fallback: suggest visiting the URL to browse categories. This tells the agent when to use the tool and what to do if it's unavailable.

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

getDiscourseLatestTopicsGet Latest Forum Topics (Optional)A
Read-onlyIdempotent

Get the latest topics from the VeBetterDAO Discourse forum. Returns standard page size by default. OPTIONAL FEATURE: Requires Discourse MCP server running separately. If not available, suggest visiting https://vechain.discourse.group directly. Useful for browsing what the community is currently discussing, finding new proposal discussions, or monitoring general sentiment.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional: Page number for pagination (default: 1)
categoryNoOptional: Filter by category slug (e.g., "proposals", "general")
per_pageNoOptional: Override default page size (1-50) if more topics needed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context about default page size, optional pagination, and the dependency on a separate MCP server, which goes beyond annotations.

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

Conciseness5/5

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

The description is concise (two sentences plus a parenthetical note), front-loaded with the main purpose, and every sentence adds value without redundancy.

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

Completeness4/5

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

Given no output schema, the description explains the input and default behavior adequately. It could be more explicit about the output format, but the combination with annotations (read-only, idempotent) makes it relatively complete.

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

Parameters4/5

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

Schema description coverage is 100% with clear descriptions for all three parameters. The description adds value by indicating defaults ('Returns standard page size by default') and optionality, enhancing meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'Get' and resource 'latest topics from the VeBetterDAO Discourse forum', distinguishing it from sibling tools like getDiscourseCategories, getDiscoursePost, and searchDiscourseForum.

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

Usage Guidelines4/5

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

The description provides clear context for usage, including an optional feature requirement, a fallback alternative, and specific use cases (browsing discussions, finding proposals, monitoring sentiment). It lacks explicit 'when not to use' guidance, but the context is sufficient.

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

getDiscoursePostGet Forum Post (Optional)A
Read-onlyIdempotent

Get a specific post from the VeBetterDAO Discourse forum by post ID. Useful for reading specific replies or comments in detail. OPTIONAL FEATURE: Requires Discourse MCP server running separately.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesThe post ID to fetch

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark the tool as readOnly and non-destructive. The description adds a key behavioral trait: it requires a separate Discourse MCP server running, which is critical for agent invocation.

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

Conciseness5/5

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

Two succinct sentences that front-load the primary action and purpose, with no extraneous information.

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

Completeness3/5

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

Reasonably complete for a simple get-by-ID tool, but lacks description of return values (no output schema) and could better differentiate from sibling tools like getDiscourseTopic.

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

Parameters3/5

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

Schema coverage is 100% with a single required parameter 'postId' described in the schema. The description merely restates 'by post ID', adding no new semantic value.

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

Purpose5/5

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

Clearly states the tool retrieves a specific post by ID from the VeBetterDAO Discourse forum, distinguishing it from sibling tools like getDiscourseLatestTopics or getDiscourseTopic which deal with lists or topics.

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

Usage Guidelines3/5

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

Provides usage context ('useful for reading specific replies or comments in detail') but does not explicitly guide when to use this tool versus alternatives like getDiscourseTopic for multiple posts.

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

getDiscourseTopicGet Forum Topic (Optional)A
Read-onlyIdempotent

Get detailed information about a specific Discourse forum topic, including posts and replies. Returns 5 posts by default. OPTIONAL FEATURE: Requires Discourse MCP server running separately. CRITICAL FOR B3TR PROPOSALS: Proposal descriptions (fetched via getIPFSContent) often contain Discourse forum links in the format vechain.discourse.group/t/topic-name/TOPIC_ID. If this tool is not available, provide the direct forum URL for manual viewing. Example: from URL "https://vechain.discourse.group/t/vebetterdao-proposal-auto-voting/559" extract topicId: 559.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicIdYesThe topic ID to fetch
post_limitNoOptional: Override default to get more posts (1-20, default: 5). Use higher values only when full discussion context is specifically needed.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering safety and idempotency. The description adds: returns 5 posts by default, an optional post_limit, and that the tool is optional (requires external server). It could mention error behavior if server is unavailable, but overall adds useful context beyond annotations.

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

Conciseness4/5

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

The description is a single paragraph but well-structured with bold markers for emphasis. It is front-loaded with the main purpose. There is some redundancy (e.g., 'OPTIONAL FEATURE' repeated), but no filler sentences. Could be slightly more concise with bullet points, but overall efficient.

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

Completeness4/5

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

The tool has 2 parameters, rich annotations, and no output schema. The description explains the optional nature, critical use case, default behavior, and provides an example. However, it does not describe the return format or error handling, which would be helpful given no output schema. Still, it is sufficiently complete for an agent.

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

Parameters5/5

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

Schema coverage is 100%, with both parameters described. The description adds meaning: for topicId, gives an example of extraction from a URL; for post_limit, states default is 5, range 1-20, and advises using higher values only when needed. This enriches the schema information.

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

Purpose5/5

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

Clearly states 'Get detailed information about a specific Discourse forum topic, including posts and replies.' This is a specific verb+resource combination. It distinguishes from sibling tools like getDiscourseLatestTopics and searchDiscourseForum by focusing on a single topic. Also includes a critical use case for B3TR proposals.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use: requires Discourse MCP server (optional), and when not available suggests providing direct URL. Also advises on post_limit: 'Use higher values only when full discussion context is specifically needed.' Includes example of extracting topicId from a URL, which is helpful context.

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

getExplorerBlockUsageBlock usage statisticsA
Read-onlyIdempotent

Get cumulative block usage statistics (gas, tx counts, clauses, base fee) over a timestamp range via /api/v1/explorer/block-usage. Query: startTimestamp, endTimestamp (Unix seconds, inclusive). Returns cumulative counters at sampled points; compute deltas client-side.

ParametersJSON Schema
NameRequiredDescriptionDefault
endTimestampYesEnding timestamp (Unix seconds, inclusive; >= startTimestamp; coerced from string if needed)
startTimestampYesStarting timestamp (Unix seconds, inclusive; coerced from string if needed)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds value by explaining the cumulative/sampled nature of the results and the need to compute deltas, which is beyond what annotations provide.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose and endpoint, followed by concise details on parameters and result interpretation. No extraneous information.

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

Completeness5/5

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

The description covers the essential aspects: what the tool returns, how to query, and how to interpret the results. Given the presence of an output schema and the simplicity of the tool, this is complete.

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

Parameters3/5

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

Schema coverage is 100%, and the description repeats the parameter names with additional context ('Unix seconds, inclusive'). This adds minor clarifying detail but does not significantly expand beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'block usage statistics', specifying the data fields (gas, tx counts, clauses, base fee) and the API endpoint. It distinguishes itself from sibling tools which are different types of queries.

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

Usage Guidelines4/5

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

The description explains the query parameters and the nature of the result (cumulative counters at sampled points, requiring client-side delta computation). It provides clear context for when to use this tool, though it does not explicitly mention alternatives or when not to use it.

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

getFungibleTokenContractsIndexer: List wallet fungible tokens (VIP-180/ERC‑20‑like)A
Read-only

List fungible token contract addresses for a wallet via Indexer. Use with getTokenRegistry for metadata. Endpoint: /api/v1/transfers/fungible-tokens-contracts.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
addressYesOwner wallet address whose fungible token contracts should be listed
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
officialTokensNoReturn only official tokens when true

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds the endpoint and usage hint but does not provide additional behavioral context beyond what annotations offer.

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

Conciseness5/5

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

The description is extremely concise: two sentences that cover purpose, usage hint, and endpoint. No unnecessary words or redundancy.

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

Completeness4/5

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

Given the presence of annotations, output schema, and full schema coverage, the description is complete enough. It explains the tool's purpose and relationship to getTokenRegistry, which is sufficient for an agent to decide when to use it.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to add parameter details. It adds no extra semantics beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'List', the resource 'fungible token contract addresses', and the scope 'for a wallet'. It distinguishes from sibling tools like getTokenRegistry by mentioning it as a companion tool for metadata.

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

Usage Guidelines4/5

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

The description provides a clear usage hint: 'Use with getTokenRegistry for metadata.' This implies when to use this tool (to get contract addresses) and suggests an alternative for metadata. However, it does not explicitly state when not to use it or compare with other list tools.

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

getGMNFTStatusVeBetterDAO: Get Galaxy Member NFT statusA
Read-onlyIdempotent

Check if a wallet address owns a Galaxy Member (GM) NFT and get its details. Uses hybrid approach: 1) Indexer to quickly check IF user has GM NFT (cached, fast), 2) Smart contract to get precise level/tier details. Galaxy Member NFTs provide special governance rights and benefits in VeBetterDAO. Returns whether the address holds a GM NFT, token ID(s), and level/tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesWallet address or VNS name to check GM NFT status for

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
gmNFTNo
addressNoThe account address to retrieve
networkYes

TDQS

A4/5.0
Behavior4/5

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

Annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint) are present. The description adds transparency about the hybrid approach (cached indexer vs. smart contract) and return details. 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.

Conciseness5/5

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

The description is concise, front-loads the purpose, and provides all key information in a few sentences without unnecessary detail.

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

Completeness4/5

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

Given the moderate complexity, one parameter, and presence of an output schema, the description covers the hybrid approach and return type. It adds context about Galaxy Member NFTs' governance role. Minor missing details like error handling, but overall complete enough.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the 'address' parameter clearly. The description does not add meaningful semantic information beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool checks if a wallet address owns a Galaxy Member NFT and gets its details, specifying the hybrid approach and return elements. It is distinct from sibling tools, which cover different functionalities.

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

Usage Guidelines3/5

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

The description implies usage for checking GM NFT status but does not explicitly state when to use this tool over alternatives or provide exclusion criteria. Given the sibling list, no direct overlap is apparent, but guidance is minimal.

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

getHistoryOfAccountGet History of accountA
Read-only

Retrieve transaction history for a VeChain address with filtering support.

IMPORTANT: Pass ARRAYS of event names to fetch multiple event types in ONE call - this is much more efficient than separate calls.

Available Event Types:

STARGATE STAKING (Current - Post-Hayabusa):

  • STARGATE_STAKE: User stakes VET and mints Stargate NFT

  • STARGATE_UNSTAKE: User unstakes VET and burns NFT

  • STARGATE_DELEGATE_REQUEST: User requests to delegate NFT to validator

  • STARGATE_DELEGATE_ACTIVE: Delegation becomes active with validator

  • STARGATE_DELEGATE_EXIT_REQUEST: User requests to exit delegation

  • STARGATE_DELEGATION_EXITED: Delegation fully exited, can unstake

  • STARGATE_DELEGATION_EXITED_VALIDATOR: Validator-side exit event

  • STARGATE_DELEGATE_REQUEST_CANCELLED: Delegation request cancelled before activation

  • STARGATE_CLAIM_REWARDS: User claims VTHO staking rewards

  • STARGATE_BOOST: User boosts NFT maturity with VTHO payment

  • STARGATE_MANAGER_ADDED: User adds manager address to control NFT

  • STARGATE_MANAGER_REMOVED: Manager address removed from NFT

STARGATE LEGACY (Pre-Hayabusa - Historical only):

  • STARGATE_DELEGATE_LEGACY: Old delegation system

  • STARGATE_CLAIM_REWARDS_BASE_LEGACY: Old base rewards

  • STARGATE_CLAIM_REWARDS_DELEGATE_LEGACY: Old delegation rewards

  • STARGATE_UNDELEGATE_LEGACY: Old undelegation

TRANSFERS:

  • TRANSFER_VET: Native VET token transfers

  • TRANSFER_FT: Fungible token (VIP-180) transfers - includes VTHO, other tokens

  • TRANSFER_NFT: NFT (VIP-181/VIP-721) transfers

  • TRANSFER_SF: Semi-fungible token transfers

SWAPS (DEX Activity):

  • SWAP_VET_TO_FT: Swapping VET for tokens

  • SWAP_FT_TO_VET: Swapping tokens for VET

  • SWAP_FT_TO_FT: Token-to-token swaps

VEBETTERDAO (B3TR Ecosystem):

  • B3TR_SWAP_VOT3_TO_B3TR: Converting VOT3 governance token to B3TR

  • B3TR_SWAP_B3TR_TO_VOT3: Converting B3TR to VOT3

  • B3TR_PROPOSAL_SUPPORT: Supporting a proposal with B3TR

  • B3TR_PROPOSAL_VOTE: Voting on governance proposal

  • B3TR_PROPOSAL_WITHDRAW: Withdrawing a B3TR proposal

  • B3TR_XALLOCATION_VOTE: Voting on X-Allocation distribution

  • B3TR_CLAIM_REWARD: Claiming B3TR ecosystem rewards

  • B3TR_UPGRADE_GM: Upgrading governance model

  • B3TR_ACTION: General B3TR ecosystem action

GOVERNANCE:

  • VEVOTE_VOTE_CAST: Vote cast in VeVote governance system

OTHER:

  • NFT_SALE: NFT marketplace sale transaction

  • UNKNOWN_TX: Unclassified transaction type

Common Query Patterns:

Complete Stargate history: ["STARGATE_STAKE", "STARGATE_UNSTAKE", "STARGATE_DELEGATE_REQUEST", "STARGATE_DELEGATE_ACTIVE", "STARGATE_DELEGATE_EXIT_REQUEST", "STARGATE_DELEGATION_EXITED", "STARGATE_CLAIM_REWARDS", "STARGATE_BOOST", "STARGATE_MANAGER_ADDED", "STARGATE_MANAGER_REMOVED"]

All asset transfers: ["TRANSFER_VET", "TRANSFER_FT", "TRANSFER_NFT", "TRANSFER_SF"]

Trading activity: ["SWAP_VET_TO_FT", "SWAP_FT_TO_VET", "SWAP_FT_TO_FT"]

Filters:

  • eventName: Single string OR array (ALWAYS prefer arrays for related events)

  • searchBy: 'to' | 'from' | 'origin' | 'gasPayer' - filter by address role

  • contractAddress: Filter by specific contract interactions

  • after/before: Unix timestamps in SECONDS (NOT milliseconds). Example: 2025-08-03 00:00 UTC = 1754179200, 2025-08-04 00:00 UTC = 1754265600

  • Pagination: page, size, cursor, direction (ASC/DESC)

Returns paginated array of events with full transaction details.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
afterNoOptional filter by after timestamp (Unix seconds, e.g. 1754179200 for 2025-08-03T00:00:00Z). Use seconds, NOT milliseconds.
beforeNoOptional filter by before timestamp (Unix seconds, e.g. 1754265600 for 2025-08-04T00:00:00Z). Use seconds, NOT milliseconds.
cursorNoOpaque cursor for fetching the next page when provided by the API
addressYesThe account address or VNS (.vet) name to retrieve
searchByNoOptional filter by search by (to, from, origin, gasPayer)
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
eventNameNoOptional filter by event name(s). Can be a single event or an array of events
contractAddressNoOptional filter by contract address

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.5/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations: it explains the efficiency of array usage, pagination behavior, timestamp format (seconds vs milliseconds), and the purpose of each filter. Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent.

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

Conciseness3/5

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

The description is well-structured with headings and bullet points, but it is very long and includes redundant examples (e.g., full event type lists repeated in query patterns). It could be more concise without losing clarity.

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

Completeness5/5

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

Given the complexity (10 parameters, 1 required, many enums, output schema present), the description covers all facets: filters, pagination, event types, and usage patterns. It is thorough and leaves no major gaps.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds meaning by explaining timestamp formats, common query patterns, and how to combine parameters. It provides examples that go beyond the schema descriptions.

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

Purpose5/5

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

The description clearly states the purpose: 'Retrieve transaction history for a VeChain address with filtering support.' It uses a specific verb and resource, and distinguishes this tool from siblings like getTransactions or getTransfersOfAccount by focusing on account-specific history with extensive event type filtering.

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

Usage Guidelines4/5

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

The description provides explicit guidance on using arrays for event names to improve efficiency, and includes common query patterns. However, it does not explicitly compare to sibling tools or state when to use this tool over alternatives.

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

getIPFSContentIPFS: Fetch content by CIDA
Read-onlyIdempotent

Fetch content from IPFS using the VeChain gateway proxy (api.gateway-proxy.vechain.org). Provide an IPFS Content Identifier (CID) to retrieve the associated data. Commonly used to fetch B3TR proposal descriptions. IMPORTANT: Proposal descriptions often contain Discourse forum links (vechain.discourse.group/t/topic-name/TOPIC_ID or discourse.vebetterdao.org/t/topic-name/TOPIC_ID). After fetching IPFS content, search for these links and extract them. If getDiscourseTopic is available, use it with the topic ID. If not available (optional feature), provide the full forum URL for manual viewing to see community discussion and sentiment.

ParametersJSON Schema
NameRequiredDescriptionDefault
cidYesIPFS Content Identifier (CID) to fetch

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesWhether the fetch was successful
cidYesThe CID that was fetched
errorNoError message if fetch failed
contentNoThe fetched content (JSON or text)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. Description adds transparency about the proxy URL and post-processing behavior (extracting Discourse links), which goes beyond annotations. 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.

Conciseness4/5

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

Description is front-loaded with core purpose and includes necessary post-processing instructions. Slightly lengthy but each sentence adds value; could be slightly more concise but overall well-structured.

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

Completeness5/5

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

For a single-parameter tool with comprehensive annotations and an output schema, the description covers usage context, proxy, common use case, and subsequent steps, making it fully complete for agent decision-making.

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

Parameters3/5

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

Schema coverage is 100% for the single 'cid' parameter with description 'IPFS Content Identifier (CID)'. The description does not add new semantics beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states the tool fetches IPFS content by CID using the VeChain gateway proxy. Specifies a common use case (B3TR proposal descriptions) and distinguishes from sibling tools like getDiscourseTopic by instructing post-processing.

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

Usage Guidelines5/5

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

Explicitly provides when to use (fetch IPFS content, especially proposals) and when to use siblings (extract Discourse links, optionally call getDiscourseTopic). Gives clear context and alternatives.

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

getNFTContractsIndexer: List NFT contract addresses by ownerA
Read-only

Get all NFT contract addresses for a given owner using VeWorld Indexer. Endpoint: /api/v1/nfts/contracts. Accepts address and pagination (page/size/direction or cursor).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
ownerNoThe address of the NFTs owner
cursorNoOpaque cursor for fetching the next page when provided by the API
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
excludeCollectionsNoOptional list of NFT collection addresses to exclude (max 20)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description adds value by specifying the endpoint and pagination details (page/size/direction/cursor). It does not contradict annotations and provides extra behavioral context about the API-based nature 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.

Conciseness5/5

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

Two sentences, no fluff. The description front-loads the main action ('Get all NFT contract addresses for a given owner') and then provides structured details. Every sentence earns its place.

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

Completeness4/5

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

Given the 6 parameters and existence of an output schema, the description is mostly complete. It covers the core purpose and key parameter groups. However, it could elaborate on the interplay between cursor and page-based pagination, but that is a minor gap. The output schema compensates for return format details.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description briefly mentions 'address and pagination (page/size/direction or cursor),' but this adds minimal meaning beyond what the schema already provides. It does not clarify nuances like the relationship between cursor and page/size or the format of the 'owner' parameter.

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

Purpose5/5

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

The description clearly states it retrieves NFT contract addresses for a given owner, with specific mention of the VeWorld Indexer and endpoint. The verb 'Get' and resource 'NFT contract addresses by owner' are explicit, and it distinguishes from sibling tools like 'getNFTs' which likely returns individual tokens.

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

Usage Guidelines3/5

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

The description tells the agent when to use it (for owner's NFT contract addresses) but does not explicitly mention when not to use it or point to alternative tools. For example, it could note that 'getNFTs' retrieves individual NFT tokens, while this tool lists contract addresses. The guidance is implicit but could be clearer.

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

getNFTsIndexer: List NFTs owned by an addressA
Read-only

Get all NFTs owned by an address using VeWorld Indexer. Endpoint: /api/v1/nfts. Accepts address, optional contractAddress, and pagination (page/size/direction or cursor).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
addressNoWallet address that owns NFTs to query (0x-prefixed, 40 hex chars)
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
contractAddressNoOptional NFT contract address to filter results (VIP‑721/VIP‑181)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the endpoint and pagination behavior, which provides useful context beyond the annotations.

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

Conciseness5/5

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

Only two sentences: the first states the core action, the second provides endpoint and parameter details. No irrelevant content.

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

Completeness4/5

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

With a read-only, open-world tool and an output schema available, the description covers the essentials. It could mention error handling or rate limits but is otherwise sufficient.

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

Parameters3/5

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

Schema coverage is 100%, so the description's parameter summary ('address, optional contractAddress, and pagination') adds no new meaning beyond the schema, earning the baseline score.

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

Purpose5/5

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

The description clearly states 'Get all NFTs owned by an address' using a specific indexer and endpoint, distinguishing it from siblings like getNFTContracts which likely focus on contracts.

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

Usage Guidelines4/5

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

It describes the context (VeWorld Indexer) and lists accepted parameters, but does not explicitly state when not to use it or compare to sibling tools beyond the endpoint hint.

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

getStargateNftHoldersByPeriodIndexer: Stargate NFT holders by periodA
Read-onlyIdempotent

Time‑series of total Stargate NFT holders by period (DAY, WEEK, MONTH, YEAR, ALL). Each element corresponds to an interval at the selected granularity.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYesTime period to aggregate by; determines the granularity of the returned time‑series.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoArray of metric points for the requested period (exact shape varies per endpoint). Each element corresponds to one interval at the selected granularity.
errorNo
networkYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds that each element corresponds to an interval at the selected granularity, which clarifies the output structure.

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

Conciseness5/5

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

Two sentences, no wasted words. The main purpose and key options are stated upfront.

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

Completeness5/5

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

For a simple tool with one parameter and an output schema, the description fully explains what the tool returns and the input options. No gaps.

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

Parameters4/5

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

Schema coverage is 100% and the parameter description matches the schema. The tool description lists the allowed period values (DAY, WEEK, MONTH, YEAR, ALL), which are not in the schema as enums, thus adding semantic value.

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

Purpose5/5

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

The description explicitly states it returns a time-series of total Stargate NFT holders by period, listing the allowed granularities (DAY, WEEK, MONTH, YEAR, ALL). This clearly distinguishes it from siblings like getStargateNftHoldersTotal (single total) and getStargateNftHoldersHistoric (raw historic data).

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

Usage Guidelines4/5

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

The description mentions the available periods and that the output is a time-series. It implies usage for aggregated trends over time but does not explicitly contrast with siblings or state when-not-to-use.

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

getStargateNftHoldersHistoricIndexer: Historic total NFT holdersA
Read-onlyIdempotent

Running-total time series of total NFT holders in Stargate, optionally filtered by NFT level. Endpoint: /api/v1/stargate/nft-holders/historic/{range}.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoStargate NFT level
rangeYesPreset time range to consider for historic totals: 1-hour | 1-day | 1-week | 1-month | 1-year | all

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, non-destructive. Description adds context that it provides a 'running-total time series', which is a behavioral trait (historical aggregation over time) not captured by annotations.

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

Conciseness5/5

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

Single, information-dense sentence plus endpoint. No wasted words; front-loaded with key purpose.

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

Completeness5/5

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

Output schema exists, so return values are covered elsewhere. With high schema coverage and comprehensive annotations, the description provides sufficient context for the tool's function and parameters.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described (level enum, range enum). Description reiterates that level is optional and range is preset, adding little beyond the schema.

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

Purpose5/5

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

Description clearly states it provides a 'running-total time series of total NFT holders' with optional NFT level filtering. This distinguishes it from sibling tools like getStargateNftHoldersTotal and getStargateNftHoldersByPeriod.

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

Usage Guidelines3/5

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

Description implies when to use (for historic running totals) but does not explicitly state when not to use or compare with alternatives. No direct guidance on choosing this over other Stargate NFT holder tools.

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

getStargateNftHoldersTotalIndexer: Total stargate NFT (total)A
Read-onlyIdempotent

Get the total number of Stargate NFTs and breakdown by level via /api/v1/stargate/nft-holders. Returns an object with block metadata, total, and byLevel.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoTotal number of Stargate NFTs and breakdown by level (block metadata included when present)
errorNo
networkYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already indicate read-only, open-world, idempotent, and non-destructive behavior. The description adds the return structure (block metadata, total, byLevel) but no further behavioral traits beyond what annotations provide.

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

Conciseness5/5

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

Two sentences efficiently convey purpose and return format with no unnecessary words. Every sentence adds value.

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

Completeness5/5

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

With no parameters, existing output schema, and rich annotations, the description fully covers what the tool returns, making it complete for this simple read operation.

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

Parameters4/5

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

No parameters exist in the input schema, so the description cannot add parameter meaning. Baseline for 0 parameters is 4, and the description correctly reflects the tool's simplicity.

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

Purpose5/5

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

The description clearly states the verb 'get total number' and resource 'Stargate NFTs' with breakdown by level, distinguishing it from siblings like getStargateNftHoldersByPeriod and getStargateNftHoldersHistoric.

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

Usage Guidelines4/5

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

The description provides clear context that this returns the total count and breakdown, allowing inference of when to use it versus sibling tools. However, it lacks explicit 'when not to use' or alternative tool references.

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

getStargateTokenRewardsIndexer: Stargate token rewardsA
Read-onlyIdempotent

Overview of rewards earned by a Stargate NFT delegation to a validator over time. Not the same as “claimed” (claimable only at end of cycle). Supports periodType (CYCLE, DAY, WEEK, MONTH, YEAR, ALL), optional validator, and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
tokenIdYesThe numeric Stargate NFT token ID (e.g. "12345"), NOT the level name. Use getStargateTokens to find token IDs for a given owner.
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
validatorNoOptional validator address filter
periodTypeYesReward period to aggregate by (CYCLE, DAY, WEEK, MONTH, YEAR, ALL)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds that rewards are earned over time and not claimable until end of cycle, which is valuable behavioral context not in annotations. It does not contradict annotations.

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

Conciseness5/5

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

Two sentences, zero waste. First sentence delivers purpose and critical behavioral nuance; second sentence enumerates supported features. Every word earns its place.

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

Completeness5/5

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

Given the tool has 7 parameters (2 required), full schema coverage, and an output schema, the description adequately covers purpose, usage distinction, and key options like periodType (with values), validator filter, and pagination. It also cross-references a sibling tool for token lookup. No gaps.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds meaning: it lists periodType enum values explicitly ('CYCLE, DAY, WEEK, MONTH, YEAR, ALL') which the schema does not enumerate, and clarifies tokenId is 'NOT the level name' and points to getStargateTokens. This goes beyond the schema alone.

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

Purpose5/5

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

The description clearly states the tool provides an 'Overview of rewards earned by a Stargate NFT delegation to a validator over time.' It distinguishes itself from the related 'claimed' rewards and from other Stargate tools by focusing on token rewards. The purpose is specific and unambiguous.

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

Usage Guidelines4/5

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

The description explicitly notes this is 'Not the same as “claimed” (claimable only at end of cycle),' giving a clear when-not-to-use context. It also references getStargateTokens for finding token IDs, indicating a prerequisite. However, it does not explicitly compare against all sibling tools like getStargateTotalVetStaked, leaving some ambiguity for an agent.

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

getStargateTokensIndexer: Stargate tokensA
Read-onlyIdempotent

Fetch Stargate NFT information (VET staked, rewards, level, delegation status, validator id, etc.) via /api/v1/stargate/tokens. Supports filtering by owner, manager, or tokenId; supports pagination (page, size, direction).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
ownerNoFilter stargate nfts by current owner address
cursorNoOpaque cursor for fetching the next page when provided by the API
managerNoFilter stargate nft tokens by manager address
tokenIdNoFilter by specific tokenId
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds value by listing the data fields returned (VET staked, rewards, level, etc.) and the API endpoint, providing additional context beyond annotations.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the main action and key details. Every part is informative, with no unnecessary words.

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

Completeness4/5

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

Given the presence of an output schema and thorough parameter documentation, the description sufficiently covers the tool's core function. It lacks explicit guidance on pagination behavior or response format, but the output schema fills that gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The description adds minor extra context (e.g., default page size, filter options) but does not significantly enhance understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the tool fetches Stargate NFT information with specific data fields and API endpoint. It distinguishes itself among many sibling tools by focusing on individual token details.

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

Usage Guidelines3/5

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

The description specifies filtering and pagination support, implying when to use this tool (general NFT info extraction). However, it does not explicitly contrast with sibling tools like getStargateTokenRewards or getStargateTotalVetStaked, leaving the agent to infer the best tool for specific metrics.

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

getStargateTotalVetStakedIndexer: Total VET staked (with per-level breakdown)A
Read-onlyIdempotent

Get total VET staked in Stargate at latest or at a specific block via /api/v1/stargate/total-vet-staked. Returns block metadata, total, and byLevel breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
blockNumberNoOptional block number to query a historical snapshot. Defaults to latest.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoTotal VET staked in Stargate with block metadata and per-level breakdown
errorNo
networkYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds return structure (block metadata, total, byLevel) beyond annotations, but does not mention rate limits or authentication, though likely unnecessary given the hints.

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

Conciseness5/5

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

Two efficient sentences, no wasted words, front-loaded with verb and resource.

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

Completeness5/5

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

For a read-only tool with one optional parameter and an output schema, the description adequately explains purpose and return fields. Annotations cover safety, so no gaps.

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

Parameters3/5

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

Schema coverage is 100% for blockNumber, and the description 'at latest or at a specific block' mirrors the schema's description, adding no new meaning.

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

Purpose5/5

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

The description clearly states it retrieves total VET staked in Stargate, with optional block number. It distinguishes from sibling getStargateTotalVetStakedHistoric by specifying 'latest or at a specific block'.

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

Usage Guidelines3/5

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

The description implies usage for querying total staked VET at a point in time, but does not explicitly guide when to use alternatives like getStargateTotalVetStakedHistoric for historical ranges.

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

getStargateTotalVetStakedHistoricIndexer: Historic total VET stakedA
Read-onlyIdempotent

Running-total time series of total VET staked in Stargate, optionally filtered by NFT level. Endpoint: /api/v1/stargate/total-vet-staked/historic/{range}.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoStargate NFT level
rangeYesPreset time range to consider for historic totals: 1-hour | 1-day | 1-week | 1-month | 1-year | all

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare the tool as read-only, idempotent, non-destructive, and open-world. The description adds that it returns a 'running-total time series' and provides the endpoint, but does not disclose additional behavioral traits like pagination or rate limits. Annotations carry the burden here, so the description adds modest value.

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

Conciseness5/5

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

The description is two sentences, front-loads the core purpose, and includes the endpoint. Every word is necessary; no redundancy or fluff.

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

Completeness5/5

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

Given the tool's moderate complexity (historic time series, optional filter), the presence of an output schema, and full annotation coverage, the description is sufficiently complete. It clearly states what the tool does and provides the endpoint, which is enough for an AI agent to understand its usage.

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

Parameters3/5

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

The input schema has 100% description coverage for both parameters (range and level), with full enum values explained. The description only adds that the filter is optional, which is already implied by the schema's optional property flag. No additional semantic detail beyond the schema.

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

Purpose5/5

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

The description clearly states the tool returns a 'running-total time series of total VET staked in Stargate' and mentions the optional filter by NFT level. It distinguishes from sibling tools like getStargateTotalVetStaked (non-historic) and other historic Stargate tools by specifying the metric and endpoint.

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

Usage Guidelines4/5

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

The description implies usage for retrieving historic total VET staked with optional NFT level filtering but does not explicitly state when to avoid using it or mention alternatives. The context is clear but lacks explicit exclusions or comparative guidance.

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

getStargateTotalVthoClaimedIndexer: Stargate total VTHO claimedA
Read-onlyIdempotent

Fetch the total VTHO that Stargate users have actually claimed from rewards generated by delegations. Returns a numeric value encoded as a JSON string. Optional: blockNumber for historical snapshots; rewardsType can filter by LEGACY (pre‑Hayabusa) or DELEGATED (post‑Hayabusa).

ParametersJSON Schema
NameRequiredDescriptionDefault
blockNumberNoOptional block number to query a historical snapshot. Defaults to latest.
rewardsTypeNoType of rewards to include. If omitted, all Stargate rewards are counted. `LEGACY` refers to rewards claimed before the Hayabusa upgrade and is generally only useful for historical analysis. `DELEGATED` refers to rewards claimed after the Hayabusa upgrade and is the relevant type for current rewards.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoTotal VTHO claimed by Stargate users represented as a JSON string (API returns plain string).
errorNo
networkYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. The description adds value by specifying the return format ('encoded as a JSON string'), which goes beyond annotations.

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

Conciseness5/5

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

Three sentences: purpose, return format, optional parameters. Front-loaded, concise, no wasted words.

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

Completeness5/5

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

Given the output schema exists and annotations cover safety, the description is complete for this simple fetch tool. No missing behavioral details.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description restates the parameter purposes but does not add new meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool fetches the total VTHO claimed by Stargate users from delegation rewards, distinguishing it from per-account or historic variants among siblings.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives like getStargateTotalVthoClaimedByAccount or getStargateTotalVthoClaimedHistoric. Usage is implied by the name and description but not directly stated.

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

getStargateTotalVthoClaimedByAccountStargate: Total VTHO claimed by accountA
Read-onlyIdempotent

Get total VTHO claimed by a given account via /api/v1/stargate/total-vtho-claimed/{account}. Optional rewardsType filter: LEGACY (pre‑Hayabusa bootstrap) or DELEGATION (post‑Hayabusa delegated) if not provided, all rewards ever claimed are included.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYesAccount address to query total VTHO claimed for
rewardsTypeNoOptional rewards type filter. LEGACY refers to pre‑Hayabusa (bootstrap) rewards; DELEGATION refers to post‑Hayabusa delegated rewards. If omitted, all types are included.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoTotal VTHO claimed for an account as a string (API returns plain string).
errorNo
networkYes

TDQS

A4.4/5.0
Behavior4/5

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

Description adds endpoint detail and filter semantics beyond annotations which already declare readOnly, idempotent, and non-destructive. No contradiction; transparency is adequate for a read query.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the endpoint path, no extraneous words or redundancy.

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

Completeness4/5

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

Given the presence of an output schema and high parameter coverage, the description sufficiently explains the tool's purpose and filter options. Could note the return type, but output schema likely handles that.

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

Parameters4/5

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

Schema coverage is 100%, and the description adds value by explaining the filter values (LEGACY vs DELEGATION) more concretely than the schema's generic descriptions.

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

Purpose5/5

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

Description explicitly states 'Get total VTHO claimed by a given account' and includes the endpoint path, distinguishing it from sibling tools like getStargateTotalVthoClaimed (global) and getStargateTotalVthoClaimedByAccountToken (by account+token).

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

Usage Guidelines4/5

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

Describes the optional rewardsType filter with clear explanations of LEGACY and DELEGATION values, and notes that omitting the filter includes all rewards. Does not explicitly compare to siblings, but context is clear enough for selection.

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

getStargateTotalVthoClaimedByAccountTokenStargate: Total VTHO claimed by account and tokenA
Read-onlyIdempotent

Get total VTHO claimed by a given account and token via /api/v1/stargate/total-vtho-claimed/{account}/{tokenId}. Optional rewardsType filter: LEGACY (pre‑Hayabusa bootstrap) or DELEGATION (post‑Hayabusa delegated).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYesAccount address to query
tokenIdYesStargate token id to query
rewardsTypeNoOptional rewards type filter. LEGACY refers to pre‑Hayabusa (bootstrap) rewards; DELEGATION refers to post‑Hayabusa delegated rewards. If omitted, all types are included.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoTotal VTHO claimed for an account+token as a string (API returns plain string).
errorNo
networkYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds minor context (endpoint path, optional filter values) but does not disclose any additional behavioral traits beyond what annotations provide.

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

Conciseness5/5

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

The description is two sentences: first states the core purpose, second explains the optional filter. No wasted words, front-loaded with the main action.

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

Completeness4/5

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

Given the presence of an output schema and high schema coverage, the description covers the essential inputs and the filter nuance. It lacks explicit mention of output format but output schema fills that gap.

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

Parameters4/5

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

Schema coverage is 100% (all parameters described). The description adds useful context explaining the rewardsType filter values (LEGACY vs DELEGATION) and their meanings, which adds value beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'total VTHO claimed by a given account and token', and the endpoint path. It distinguishes from siblings like getStargateTotalVthoClaimed and getStargateTotalVthoClaimedByAccount by including both account and token parameters.

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus alternatives. There is no mention of prerequisites, when-not-to-use, or comparisons with similar tools like getStargateTotalVthoClaimed or getStargateTokenRewards.

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

getStargateTotalVthoClaimedHistoricIndexer: Historic total VTHO claimedA
Read-onlyIdempotent

Running-total time series of total VTHO claimed across Stargate. Endpoint: /api/v1/stargate/total-vtho-claimed/historic/{range}.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesPreset time range to consider for historic totals: 1-hour | 1-day | 1-week | 1-month | 1-year | all

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds that it returns a time series (running total), but does not elaborate on data freshness, pagination, or authentication. The added context is minimal and within expectations given the annotations.

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

Conciseness5/5

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

Two succinct sentences: the first explains the purpose, the second provides the endpoint. No unnecessary words. Ideal for quick comprehension.

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

Completeness4/5

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

For a simple historic data retrieval tool with one parameter, rich schema, output schema present, and complete annotations, the description is nearly sufficient. It lacks detail on output structure (e.g., time series format) but the presence of an output schema mitigates this. Slight gap in what 'running-total time series' entails.

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

Parameters3/5

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

Schema description coverage is 100% with a clear enum for 'range.' The tool description mentions the endpoint template but adds no additional semantics beyond the schema. Baseline 3 is appropriate as the schema fully describes the parameter.

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

Purpose5/5

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

The description clearly states it returns a 'Running-total time series of total VTHO claimed across Stargate.' Combined with the title 'Historic total VTHO claimed,' it specifies the verb (retrieve) and resource (historic total VTHO claimed) and differentiates from the non-historic sibling getStargateTotalVthoClaimed.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. Given siblings like getStargateTotalVthoClaimed, the agent must infer from names alone. No explicit when-to-use or when-not-to-use advice.

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

getStargateTotalVthoGeneratedIndexer: Stargate total VTHO generatedA
Read-onlyIdempotent

Fetch the total VTHO generated by Stargate delegations from validators’ block rewards (aggregate produced, whether or not claimed). Returns a numeric value encoded as a JSON string. Optional: blockNumber for historical snapshots.

ParametersJSON Schema
NameRequiredDescriptionDefault
blockNumberNoOptional block number to query a historical snapshot. Defaults to latest.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoTotal VTHO generated by Stargate delegations represented as a JSON string (API returns plain string).
errorNo
networkYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by clarifying 'aggregate produced, whether or not claimed' and 'Returns a numeric value encoded as a JSON string', which are behavioral details beyond annotations. 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.

Conciseness5/5

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

Two sentences, no redundant words. The first sentence clearly states the core purpose, and the second adds return format and parameter hint. Front-loaded and efficient.

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

Completeness4/5

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

Given the presence of an output schema, the description adequately covers the function's purpose, aggregate nature, optional historical parameter, and return format. It provides sufficient context for a simple read-only tool, though it could explicitly mention the default latest block behavior.

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

Parameters3/5

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

Schema coverage is 100%, and the description mentions 'Optional: blockNumber for historical snapshots', which essentially mirrors the schema's own description. No additional parameter meaning is added beyond what the schema already provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Fetch the total VTHO generated by Stargate delegations from validators’ block rewards', specifying the resource (total VTHO generated) and action (fetch). It distinguishes this from sibling tools like getStargateTotalVthoClaimed and getStargateTotalVetStaked by highlighting 'generated' vs 'claimed' and 'VTHO' vs 'VET'.

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

Usage Guidelines3/5

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

The description provides a usage hint: 'Optional: blockNumber for historical snapshots', which advises when to use the blockNumber parameter. However, it does not explicitly compare to siblings like getStargateTotalVthoGeneratedHistoric or explain when to use this tool over others. The context of sibling tools implies differentiation by metric, but more explicit guidance would improve.

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

getStargateTotalVthoGeneratedHistoricIndexer: Historic total VTHO generatedA
Read-onlyIdempotent

Running-total time series of total VTHO generated across Stargate. Endpoint: /api/v1/stargate/total-vtho-generated/historic/{range}.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesPreset time range to consider for historic totals: 1-hour | 1-day | 1-week | 1-month | 1-year | all

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the behavioral safety profile is clear. The description adds that it's a 'running-total time series' but does not disclose additional details like response structure or pagination. Minimal extra value beyond annotations.

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

Conciseness5/5

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

The description is extremely concise: one sentence describing the tool's purpose followed by the endpoint path. Every word is meaningful, with no redundancy.

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

Completeness4/5

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

For a simple tool with one parameter and an existing output schema, the description covers the core purpose and endpoint. It is sufficiently complete given the low complexity and rich annotations/schema.

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

Parameters3/5

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

The input schema provides full documentation for the single 'range' parameter with enum values and description (100% coverage). The description adds no further parameter semantics, achieving baseline adequacy without improvement.

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

Purpose5/5

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

The description clearly states it provides a 'running-total time series of total VTHO generated across Stargate', specifying the resource (total VTHO) and temporal nature (historic time series). This distinguishes it from siblings like getStargateTotalVthoGenerated (non-historic) and other Stargate tools.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus similar siblings (e.g., getStargateTotalVthoGenerated or getStargateVthoGeneratedByPeriod). No explicit context or alternative recommendations are given.

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

getStargateVetDelegatedByPeriodIndexer: Stargate VET delegated by periodA
Read-onlyIdempotent

Time‑series of VET delegated to validators via Stargate by period (DAY, WEEK, MONTH, YEAR, ALL). Useful for tracking delegation flows over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYesTime period to aggregate by; determines the granularity of the returned time‑series.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoArray of metric points for the requested period (exact shape varies per endpoint). Each element corresponds to one interval at the selected granularity.
errorNo
networkYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint as false, so the safety profile is clear. The description adds value by explaining the time-series nature and listing allowed period values, but does not reveal edge cases like behavior on invalid input.

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

Conciseness5/5

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

Two concise sentences: first defines purpose and lists periods, second states utility. No redundant information; front-loads key details.

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

Completeness4/5

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

The description is sufficient for a simple read-only tool with an output schema. It explains the resource and parameter, but could mention that it returns aggregated delegation data and possibly default behavior or limits.

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

Parameters4/5

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

Schema coverage is 100% and the schema describes the period parameter as 'Time period to aggregate by…'. The tool description adds value by listing the specific allowed period values (DAY, WEEK, MONTH, YEAR, ALL), which are not present as enums in the schema.

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

Purpose5/5

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

The description clearly states the tool returns a time-series of VET delegated via Stargate, and lists the specific period values (DAY, WEEK, MONTH, YEAR, ALL). This distinguishes it from siblings like getStargateVetStakedByPeriod and getValidatorDelegations.

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

Usage Guidelines4/5

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

The description indicates the tool is useful for tracking delegation flows over time, providing context for when to use it. However, it lacks explicit guidance on when not to use it or how it differs from related tools like getStargateVetStakedByPeriod.

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

getStargateVetStakedByPeriodIndexer: Stargate VET staked by periodA
Read-onlyIdempotent

Time‑series of VET staked (locked via Stargate) by period (DAY, WEEK, MONTH, YEAR, ALL). Each element is the total amount staked during that interval.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYesTime period to aggregate by; determines the granularity of the returned time‑series.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoArray of metric points for the requested period (exact shape varies per endpoint). Each element corresponds to one interval at the selected granularity.
errorNo
networkYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description doesn't need to repeat safety. It adds context about the data being a time-series with period granularity, which is sufficient beyond annotations.

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

Conciseness5/5

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

The description is one concise sentence (17 words) that front-loads the key idea and provides all necessary information without redundancy.

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

Completeness5/5

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

Given the tool has only one parameter and an output schema, the description covers the purpose, input, and output nature adequately. No missing information.

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

Parameters4/5

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

The schema already describes the parameter, but the description adds concrete valid values (DAY, WEEK, etc.) from the description text, and clarifies the meaning of the returned data. This enhances understanding beyond the schema description.

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

Purpose5/5

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

The description clearly states it returns a time-series of VET staked, aggregated by specified periods (DAY, WEEK, MONTH, YEAR, ALL). It distinguishes from sibling tools like getStargateTotalVetStaked (total) and getStargateVetDelegatedByPeriod (delegation).

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. It implies usage for time-series by period, but lacks explicit guidance like 'use for periodic aggregation; for totals, use getStargateTotalVetStaked'.

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

getStargateVthoClaimedByPeriodIndexer: Stargate VTHO claimed by periodA
Read-onlyIdempotent

Time‑series of VTHO that users actually claimed from Stargate rewards by period (DAY, WEEK, MONTH, YEAR, ALL). Values represent the claimed subset of generated rewards per interval. Only take into account rewaerds that were claimed post hayabusa.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYesTime period to aggregate by; determines the granularity of the returned time‑series.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoArray of metric points for the requested period (exact shape varies per endpoint). Each element corresponds to one interval at the selected granularity.
errorNo
networkYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds the behavioral constraint that only claimed rewards 'post hayabusa' are included, which is not in annotations. 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.

Conciseness5/5

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

Two sentences, front-loaded with the core purpose and periods. Every sentence adds value: the first defines the tool, the second clarifies scope (claimed subset, post-hayabusa). No unnecessary words.

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

Completeness5/5

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

Given the presence of an output schema (not shown but stated), the description does not need to explain return values. It covers the essential: what it returns (time-series), the periods, and a time constraint. With strong annotations, this is complete.

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

Parameters4/5

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

Schema coverage is 100% with one parameter 'period'. The description adds value by explicitly listing the allowed values (DAY, WEEK, MONTH, YEAR, ALL) which are not formally declared as enums in the schema. This helps the agent understand valid inputs.

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

Purpose5/5

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

The description clearly specifies the resource (VTHO claimed from Stargate rewards), the action (get time-series), and the aggregation periods (DAY, WEEK, MONTH, YEAR, ALL). It distinguishes itself from sibling tools like getStargateTotalVthoClaimed by focusing on time-series rather than total.

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

Usage Guidelines3/5

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

The description implies usage for time-series data but does not explicitly state when to use this tool versus alternatives (e.g., getStargateTotalVthoClaimedHistoric). No exclusions or when-not-to-use guidance is provided.

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

getStargateVthoGeneratedByPeriodIndexer: Stargate VTHO generated by periodA
Read-onlyIdempotent

Time‑series of VTHO generated from validators’ block rewards by period (DAY, WEEK, MONTH, YEAR, ALL). Each element represents the amount generated during that interval; use it to chart production over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYesTime period to aggregate by; determines the granularity of the returned time‑series.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoArray of metric points for the requested period (exact shape varies per endpoint). Each element corresponds to one interval at the selected granularity.
errorNo
networkYes

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the description carries less burden. It adds context about the return being a time-series with per-interval amounts, which is useful but not critical beyond annotations.

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

Conciseness5/5

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

Two sentences, no wasted words. Front-loaded with the core purpose and period options, followed by usage guidance. Highly efficient.

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

Completeness5/5

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

With an output schema present, the description does not need to detail return format. It covers the data nature (time-series, per-interval amounts) and intended use. Complete for a simple tool with few parameters.

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

Parameters5/5

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

The schema covers the parameter description but does not list allowed values. The description explicitly provides the valid enum values (DAY, WEEK, MONTH, YEAR, ALL), adding essential semantic information beyond the schema.

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

Purpose5/5

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

Clearly states it returns a time-series of VTHO generated from validators' block rewards by period, specifying the period granularities and use case for charting. Distinguishes from sibling tools like getStargateTotalVthoGenerated.

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

Usage Guidelines4/5

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

Explicitly says to use it for charting production over time, indicating the context. Does not specify when not to use or alternatives, but the period options and time-series nature imply differentiation from single-value tools.

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

getTokenBalancesGet Token BalanceA
Read-onlyIdempotent

Get the balance of any VIP-180/ERC-20 token for a wallet address by querying the smart contract directly. Returns the raw balance (smallest unit), formatted balance (human-readable), decimals, and token metadata (symbol, name) if available. Requires the token contract address.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesWallet address or VNS name to check token balance for
tokenAddressYesToken contract address (VIP-180/ERC-20)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
balanceNo
networkYes
walletAddressNoResolved wallet address

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description doesn't need to restate those. It adds value by detailing the output: raw balance, formatted balance, decimals, and token metadata (if available), and mentions direct smart contract querying. No contradictions with annotations.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, every sentence contributes value. No redundant information.

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

Completeness5/5

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

Given the presence of an output schema and comprehensive annotations, the description covers all necessary aspects for a read-only token balance tool. It explains input requirements and output structure, making it complete for an agent to use.

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

Parameters4/5

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

Schema coverage is 100% with parameter descriptions. The description adds extra meaning by clarifying that the 'address' parameter can be a VNS name (pattern \.vet$), which is not fully captured in the schema pattern description. Also states that tokenAddress is the contract address and queries the smart contract directly.

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

Purpose4/5

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

Clearly states the verb 'Get' and resource 'balance of VIP-180/ERC-20 token for a wallet address'. It differentiates from most sibling tools which focus on other domains (discourse, contracts, etc.), but does not explicitly distinguish from token-related siblings like getTokenFiatPrice or getTokenRegistry.

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

Usage Guidelines3/5

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

States the prerequisite 'Requires the token contract address', but does not provide guidance on when to use this tool versus alternatives, nor any exclusions. Usage is implied but not explicitly scoped.

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

getTokenFiatPriceGet token price in fiat (VET/VTHO/B3TR)A
Read-onlyIdempotent

Get the current price of VET, VTHO, or B3TR in a given fiat currency using the on-chain VeChain Energy Oracle.

ParametersJSON Schema
NameRequiredDescriptionDefault
fiatYesFiat currency to return the price in (USD, EUR, GBP), case-insensitive
tokenYesToken symbol to query (VET, VTHO, or B3TR, case-insensitive)

Output Schema

ParametersJSON Schema
NameRequiredDescription
fiatYes
errorNoOptional error message if the price could not be fetched
priceYesCurrent price of the token in the selected fiat currency; NaN when unavailable
tokenYes
sourceYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds the source ('on-chain VeChain Energy Oracle') but no further behavioral traits like failure modes or data freshness. With annotations covering safety, a score of 3 is appropriate.

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

Conciseness5/5

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

The description is a single sentence that front-loads the purpose and includes all essential information without any wasted words. It is optimally concise.

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

Completeness5/5

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

Given the tool's simplicity (2 parameters, fully described schema, annotations, and an output schema), the description is complete. It provides the core purpose and source, which is sufficient for correct usage.

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

Parameters3/5

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

The input schema provides full descriptions for both parameters (token and fiat), covering 100% of the schema. The description adds no additional meaning beyond what is in the schema, so baseline 3 is correct.

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

Purpose5/5

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

The title and description explicitly state the tool retrieves current prices of VET, VTHO, or B3TR in a fiat currency via the on-chain oracle. This clearly distinguishes it from siblings, which cover topics like discourse, transactions, or other crypto data.

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

Usage Guidelines3/5

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

The description does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. However, the purpose is clear, and the lack of similar sibling tools makes the usage context implied.

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

getTokenRegistryToken Registry: list known tokens (mainnet/testnet)A
Read-onlyIdempotent

Fetch the VeChain token registry curated list for the current network (VECHAIN_NETWORK=mainnet|testnet). Use this to identify official tokens, metadata (decimals, symbol, website), and bridge provenance. Supports optional filtering by symbol or contract address.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoOptional: filter by token symbol (case-insensitive exact match)
addressNoOptional: filter by token contract address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList of official tokens for the active VeChain network (mainnet/testnet)
errorNo
networkYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds context about network dependency (VECHAIN_NETWORK) but no contradictions or additional behavioral details beyond that.

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

Conciseness5/5

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

Two sentences with no fluff: first sentence states purpose and network dependency, second gives usage guidance. Every sentence earns its place.

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

Completeness4/5

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

Given rich annotations, full schema coverage, and existence of output schema (implied), the description is adequate. It covers purpose, usage, and filtering. Minor gap: could clarify if the list is exhaustive or only official tokens, but 'curated' implies official.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The description redundantly mentions filtering but adds no new meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Fetch' and the resource 'VeChain token registry curated list', distinguishing it from sibling tools like getTokenBalances or getFungibleTokenContracts by emphasizing it's a curated list for the current network.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this to identify official tokens, metadata, and bridge provenance', providing clear context for when to use. It also mentions optional filtering but lacks explicit when-not or alternatives.

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

getTransactionByIdIndexer: Transaction by ID (v1)A
Read-onlyIdempotent

Get a single decoded transaction (with events) by ID from VeWorld Indexer. Endpoint: /api/v1/transactions/{txId}.

ParametersJSON Schema
NameRequiredDescriptionDefault
txIdYesThe transaction hash to retrieve
expandedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoA decoded VeChain transaction as returned by the VeWorld Indexer
errorNo
networkYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint. The description adds value by specifying that the tool returns decoded data with events and the external endpoint, enhancing transparency beyond the annotations.

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

Conciseness5/5

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

Two concise sentences: the first states the purpose and the second provides the endpoint. No redundant information, efficiently front-loaded.

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

Completeness5/5

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

Given the tool's simplicity (2 parameters, annotations present, output schema exists), the description sufficiently explains what is returned ('decoded transaction with events') and the source. No additional context needed.

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

Parameters2/5

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

Schema description coverage is 50% (only txId has a description). The description does not explain the 'expanded' parameter or its behavior. It only indirectly mentions txId via the endpoint URL, failing to add meaning for the optional parameter.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get a single decoded transaction (with events) by ID'. It specifies the resource (transaction) and the action (get), and distinguishes from siblings like 'thorGetTransaction' by mentioning 'decoded (with events)' and the VeWorld Indexer source.

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

Usage Guidelines4/5

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

The description implies when to use (when you have a transaction ID and need decoded data with events), but does not explicitly state when not to use or highlight alternatives. The endpoint detail adds context but no exclusion criteria.

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

getTransactionsIndexer: Transactions by origin or delegator (v1)A
Read-only

Query VeWorld Indexer /api/v1/transactions. Provide either 'origin' or 'delegator' address with optional time filters and pagination. Returns decoded events.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
afterNoReturn txs at or after this Unix timestamp (seconds)
beforeNoReturn txs at or before this Unix timestamp (seconds)
cursorNoOpaque cursor for fetching the next page when provided by the API
originNoOrigin address, the address that initiated the transaction
expandedNoInclude decoded clause outputs/logs for richer results
delegatorNoDelegator address, the address that paid for the transaction
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoList response for transactions endpoints
errorNo
networkYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool returns decoded events and fetches from an external indexer with optional filters and pagination, providing behavioral context beyond what annotations offer.

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

Conciseness5/5

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

The description is one sentence that efficiently conveys the tool's purpose, source, required inputs, optional inputs, and return type. Every word adds value, and it is well front-loaded.

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

Completeness4/5

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

Given the tool's complexity (9 optional parameters, output schema provided), the description is complete enough. It covers the main input categories and return type. It could mention mutual exclusivity of origin and delegator, but overall it suffices.

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

Parameters3/5

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

Schema coverage is 100%, so the description's mention of 'origin or delegator address with optional time filters and pagination' does not add significant meaning beyond the schema. It summarizes but does not elaborate on parameter interactions or constraints.

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

Purpose5/5

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

The description clearly states the action (query), the resource (VeWorld Indexer /api/v1/transactions), and key parameters (origin/delegator, time filters, pagination). It distinguishes from siblings like getDelegatedTransactions and getContractTransactions by focusing on origin or delegator address and noting return of decoded events.

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

Usage Guidelines3/5

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

The description implies usage when querying by origin or delegator address but does not explicitly differentiate from siblings like getDelegatedTransactions or getContractTransactions. No when-not-to-use or exclusion criteria are provided.

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

getTransfersForBlockIndexer: Transfers for block (v1)A
Read-only

Query VeWorld Indexer /api/v1/transfers/forBlock for all transfers in a block. Required 'blockNumber'. Optional 'tokenAddress' to scope to a specific VIP‑180/721 contract and pagination. Use for 'transfers in block' or 'block activity'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
blockNumberYesThe block number to retrieve
tokenAddressNoThe account address to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds the external API source (VeWorld Indexer) but does not disclose rate limits, latency, or idempotency beyond annotations. Adequate given 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.

Conciseness5/5

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

Three efficient sentences; front-loaded with purpose and key parameters. No redundant or superfluous content.

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

Completeness5/5

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

All necessary context provided: required parameter, optional filtering, use cases. Output schema exists to detail return structure, so description does not need to cover that.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline 3. Description merely restates that blockNumber is required and tokenAddress/pagination are optional without adding new semantics beyond the schema's own descriptions.

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

Purpose5/5

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

Clearly states action (query transfers), resource (block), and endpoint. Distinguishes from siblings by specifying block-based filtering with optional tokenAddress and pagination.

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

Usage Guidelines4/5

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

Explicitly states when to use: 'for transfers in block' or 'block activity'. Does not mention when not to use or contrast with alternative tools like getTransfersOfAccount, but the positive guidance is clear.

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

getTransfersFromIndexer: Transfers from address (outgoing) (v1)A
Read-only

Query VeWorld Indexer /api/v1/transfers/from for outgoing transfers. Required 'address' (sender, accepts BOTH VNS names like roisin.vet AND 0x hex addresses). Optional 'tokenAddress' (accepts token symbol like VET, VTHO, B3TR OR 0x hex address) to scope to a specific VIP‑180/ERC-20 contract and pagination. Use for 'outgoing transfers' or 'payments from wallet'. NOTE: This is a directional filter of getTransfersOfAccount - prefer using getTransfersOfAccount unless you specifically need only outgoing transfers.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
addressYesSender wallet address (0x...) or VNS name (*.vet)
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
tokenAddressNoToken contract address (0x...) or token symbol (VET, VTHO, B3TR, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context: it tells that the tool accepts VNS names and token symbols, and supports pagination. This extra info about input flexibility and pagination goes beyond the schema and annotations. 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.

Conciseness4/5

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

The description is well-structured with a front-loaded purpose statement, followed by parameter highlights and usage guidance. It is efficient, covering all necessary points without redundancy. Slightly verbose but not wasteful.

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

Completeness5/5

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

Given the presence of an output schema (context signals indicate it exists), the description covers endpoint, parameter formats, usage guidance, and relationship to a sibling tool. It also mentions pagination. No gaps are apparent for the tool's complexity.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds value by explaining that 'address' accepts VNS names and 'tokenAddress' accepts token symbols, which are not mentioned in the schema descriptions. It also mentions pagination, tying together the page/size/cursor parameters.

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

Purpose5/5

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

The description clearly states it queries outgoing transfers from the VeWorld Indexer, specifies the endpoint, and identifies required/optional parameters. It also distinguishes from sibling tool getTransfersOfAccount by noting it is a directional filter, and advises preferring the sibling unless only outgoing transfers are needed.

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

Usage Guidelines5/5

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

Provides explicit when-to-use ('outgoing transfers', 'payments from wallet') and when-not-to-use ('prefer getTransfersOfAccount unless specifically need only outgoing transfers'). This gives clear decision criteria for the agent.

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

getTransfersOfAccountIndexer: List transfers for wallet or token (v1)A
Read-only

Query transfer events using VeWorld Indexer /api/v1/transfers. Provide either 'address' (wallet, accepts BOTH VNS names like roisin.vet AND 0x hex addresses) or 'tokenAddress' (accepts token symbol like VET, VTHO, B3TR OR 0x hex address) plus optional pagination. Returns enriched transfers with VNS names and token symbols when available. Use for 'wallet transfers', 'token movements', or 'activity for contract/wallet'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
addressNoWallet address (0x...) or VNS name (*.vet)
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
tokenAddressNoToken contract address (0x...) or token symbol (VET, VTHO, B3TR, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that results are enriched with VNS names and token symbols, but does not disclose other behaviors like rate limits or authentication. The description complements annotations without contradiction.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the main action, and contains no extraneous information. Every sentence adds value: the first states purpose and parameters, the second enriches with output details and use cases.

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

Completeness4/5

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

Given the tool's complexity (6 parameters, optional pagination, output schema), the description covers purpose, parameter usage, enrichment, and use cases. It implies mutual exclusivity of address and tokenAddress but does not explicitly state it, leaving a minor gap. Overall, it provides sufficient context for an AI agent to use the tool correctly.

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

Parameters4/5

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

All parameters are described in the schema (100% coverage), and the description adds valuable context beyond the schema, such as that address accepts VNS names and tokenAddress accepts symbols. This helps the agent understand valid inputs without extra inference.

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

Purpose4/5

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

The description clearly states it queries transfer events using the VeWorld Indexer, lists parameters and accepted formats, and specifies use cases like 'wallet transfers' and 'token movements'. However, it does not explicitly differentiate from sibling tools like getTransfersFrom and getTransfersTo, which serve similar purposes.

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

Usage Guidelines4/5

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

The description provides clear guidance on when to use the tool ('wallet transfers', 'token movements', 'activity for contract/wallet') and explains how to use it (providing either address or tokenAddress). It does not include exclusions or mention alternative tools, but the context is sufficient for basic usage.

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

getTransfersToIndexer: Transfers to address (incoming) (v1)A
Read-only

Query VeWorld Indexer /api/v1/transfers/to for incoming transfers. Required 'address' (recipient, accepts BOTH VNS names like roisin.vet AND 0x hex addresses). Optional 'tokenAddress' (accepts token symbol like VET, VTHO, B3TR OR 0x hex address) to scope to a specific VIP‑180/ERC-20 contract and pagination. Use for 'incoming transfers' or 'receipts to wallet'. NOTE: This is a directional filter of getTransfersOfAccount - prefer using getTransfersOfAccount unless you specifically need only incoming transfers.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
addressYesRecipient wallet address (0x...) or VNS name (*.vet)
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
tokenAddressNoToken contract address (0x...) or token symbol (VET, VTHO, B3TR, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read operation. The description adds valuable behavioral details: it accepts both VNS names and hex addresses for the 'address' parameter, and token symbols for 'tokenAddress'. It also discloses that it's a directional filter of getTransfersOfAccount. 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.

Conciseness5/5

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

The description is two sentences plus a note, all front-loaded with essential information. Every sentence adds value: the first states the purpose, the second adds parameter details, and the note provides usage guidance. No redundant or vague statements.

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

Completeness4/5

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

Given the tool has 6 parameters, an output schema, and is a query tool, the description is fairly complete. It covers purpose, usage, key parameter details, and relationship to siblings. It could optionally mention pagination defaults, but the schema already documents page/size/cursor. The existence of an output schema reduces the need to describe return values. Overall sufficient.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by clarifying that the 'address' parameter accepts both VNS names and 0x hex addresses, and that 'tokenAddress' accepts token symbols like VET, VTHO, B3TR in addition to hex addresses. This helps the agent understand valid input formats.

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

Purpose5/5

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

The description explicitly states the tool queries the VeWorld Indexer for incoming transfers, using a specific endpoint. It clearly states the resource (transfers to address) and the action (query). It also distinguishes from getTransfersOfAccount by noting it's a directional filter, which differentiates it from siblings.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Use for 'incoming transfers' or 'receipts to wallet'.' It also gives a strong preference for the broader tool: 'prefer using getTransfersOfAccount unless you specifically need only incoming transfers.' This clearly tells the agent when to use this tool versus alternatives.

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

getValidatorBlockRewardsIndexer: Validator block rewards (v1)A
Read-onlyIdempotent

Fetch VTHO rewards per block via /api/v1/validators/blocks. Returns blockReward (base), priorityReward (mempool priority fees), total, and the split into delegatorRewards and validatorRewards. Filter by blockNumber, validator, and status. Use status=VALIDATED for produced blocks or status=MISSED for blocks the validator missed. Supports pagination and sort direction.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
statusNoFilter by block status ('VALIDATED' or 'MISSED')
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
validatorNoOptional validator address filter
blockNumberNoOptional specific block number to query

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint true, and destructiveHint false. The description adds detail about the return structure (split into delegator/validator rewards) and the meaning of status filters. This context is beyond the annotations, enhancing transparency without contradiction.

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

Conciseness5/5

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

The description is three sentences, front-loaded with verb and resource. Every sentence provides essential information: endpoint, return fields, and filtering options. No fluff or redundancy.

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

Completeness5/5

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

Given the tool has no required parameters, 100% schema coverage, an output schema, and thorough annotations, the description covers purpose, filters, pagination, and return data. It is complete for a read-only, idempotent tool with good structured metadata.

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

Parameters4/5

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

Schema description coverage is 100% with well-described parameters. The description adds value by explaining the endpoint context and providing usage examples for the status parameter (status=VALIDATED for produced blocks, MISSED for missed). This goes beyond the schema's enum descriptions.

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

Purpose5/5

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

The description clearly states 'Fetch VTHO rewards per block' and specifies the endpoint. It lists return fields (blockReward, priorityReward, total, delegatorRewards, validatorRewards) and filters (blockNumber, validator, status). This distinguishes it from sibling tools like getValidatorDelegations which handle delegations.

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

Usage Guidelines4/5

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

The description explains when to use (for per-block rewards) and how to filter by status (VALIDATED vs MISSED), pagination, and sort direction. It implicitly differentiates from other validator tools but does not explicitly state when not to use or provide direct alternatives.

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

getValidatorDelegationsIndexer: Validator delegations (v1)A
Read-onlyIdempotent

Retrieve delegation records via /api/v1/validators/delegations. Filter by validator, tokenId, and one or more statuses. Supports pagination and sort direction. Get information on delegations to a validator and the Stargate NFTs that are delegated to the validator

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
tokenIdNoFilter by specific tokenId
statusesNoFilter by one or more delegation statuses
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
validatorNoFilter delegations by validator address

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint, so the description doesn't need to repeat safety traits. It adds useful context: the API endpoint, supported pagination, and that it returns both delegation and NFT information. No contradictions with annotations.

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

Conciseness5/5

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

Two sentences, no wasted words. Front-loaded with the core action and endpoint. Every sentence adds value.

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

Completeness4/5

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

Given 7 optional parameters, pagination, sort, and existence of output schema, the description covers all key aspects: what it retrieves, filters, pagination, sort, and the nature of returned data. Could mention that all parameters are optional, but schema handles that.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described. The description summarizes the filtering options (validator, tokenId, statuses) but adds no new meaning beyond the schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses specific verbs ('Retrieve delegation records') and names the exact endpoint, clearly distinguishing this tool from siblings like getValidatorBlockRewards. It also specifies what data is returned (delegations and associated Stargate NFTs).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like getStargateNftHoldersByPeriod or other delegation-related tools. With many siblings, explicit when-to-use or exclusions would be helpful.

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

getValidatorMissedPercentageIndexer: Validator missed blocks percentage (v1)A
Read-onlyIdempotent

Calculate percentage of missed blocks for a validator in a block range via /api/v1/validators/blocks/missed/{validator}. Provide startBlock (inclusive) and endBlock (inclusive). Returns a percentage (0..100).

ParametersJSON Schema
NameRequiredDescriptionDefault
endBlockNoOptional end block, inclusive; defaults to best/latest
validatorYesValidator address (path parameter)
startBlockYesStart block, inclusive

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNoPercentage of missed blocks in the given range (0..100, not a decimal)
errorNo
networkYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false) already indicate safe read operation. Description adds context about block range and output percentage, consistent with annotations.

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

Conciseness5/5

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

Two concise sentences efficiently convey purpose, parameters, and output. No redundancy or fluff.

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

Completeness5/5

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

Given the tool's simplicity, the description covers purpose, parameters, and output. Output schema exists, so return details are adequately handled.

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

Parameters4/5

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

Schema coverage is 100% and description adds useful detail: endBlock defaults to best/latest. This provides meaning beyond the schema's descriptions.

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

Purpose5/5

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

Description clearly states the tool calculates missed blocks percentage for a validator in a block range, with specific endpoint and result format. It distinguishes from sibling tools like getValidatorBlockRewards by focusing on missed blocks percentage.

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

Usage Guidelines4/5

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

Description specifies to provide startBlock and endBlock (inclusive) and notes endBlock defaults to best/latest. It lacks explicit guidance on when to use this tool versus alternatives, but the purpose is sufficiently clear.

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

getValidatorRegistryValidator Registry: list validator metadata (mainnet/testnet)A
Read-onlyIdempotent

Fetch validator metadata (name, location, description, website, logo) for the current network. Data source: validator-hub. Supports optional filtering by address.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressNoOptional: filter by validator address

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description adds the data source (validator-hub) and returned fields, but does not disclose other behavioral traits beyond what annotations provide. 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.

Conciseness5/5

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

Two concise sentences that front-load the main purpose and include relevant details (data source, filtering). No wasted words.

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

Completeness4/5

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

With annotations covering safety and idempotency, and an output schema present (indicated but not shown), the description is sufficient for a simple read-only tool. It could mention that filtered vs unfiltered returns differ, but not essential.

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

Parameters3/5

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

Schema coverage is 100% (only address parameter). The description merely restates the optional filter ability already present in the schema. No additional meaning is added.

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

Purpose5/5

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

The description clearly states 'Fetch validator metadata (name, location, description, website, logo) for the current network' and specifies the data source 'validator-hub'. The title reinforces it's for mainnet/testnet, distinguishing it from siblings like getValidators or getValidatorBlockRewards.

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

Usage Guidelines3/5

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

The description mentions 'Supports optional filtering by address' and implies use for fetching registry metadata. However, it does not explicitly state when to use this tool vs alternatives like getValidators (which may differ in scope).

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

getValidatorsIndexer: Validators (v1)A
Read-onlyIdempotent

Retrieve validator statistics via /api/v1/validators for Stargate NFT delegation decisions and validator performance. IMPORTANT: Look at all no status filter when getting validators when getting nft yields, when getting current validator not nft yields look at status=ACTIVE

KEY METRICS:

  • nftYieldsIfDelegatedNextCycle: Projected APY (%) for each Stargate NFT level in the next cycle if delegated to this validator (use this for delegation decisions)

  • nftYields: Current-cycle APY (%) for each Stargate NFT level already delegated to this validator

  • blockProbability: Validator's chance of producing blocks (higher = more rewards)

  • percentageOffline: Validator uptime reliability (lower = better)

  • delegatorTvl: Total USD value delegated by Stargate NFTs (higher = more competition)

FILTERS:

  • validatorId: Filter by specific validator address

  • endorser: Filter by endorser address

  • status: NONE, QUEUED, ACTIVE, EXITED, EXITING - only filter by ACTIVE for currently operating validators and all when getting nft yields

SORTING (sortBy parameter):

  • For NFT delegation: Use 'nft:' (e.g., 'nft:Dawn', 'nft:Thunder') to sort by APY IMPORTANT: When sorting by NFT yield, filter by status=ACTIVE or include QUEUED validators

  • Other options: validatorTvl, totalTvl, blockProbability, delegatorTvl

PAGINATION: Supports page, size, cursor, and direction (ASC/DESC)

VALIDATOR RECOMMENDATION GUIDELINES:

  1. Primary metric: nftYieldsIfDelegatedNextCycle[level] - this is APY percentage, NOT absolute VTHO

  2. Sort by the user's NFT level (e.g., sortBy='nft:Dawn' for Dawn NFTs)

  3. Filter to status=ACTIVE for currently operating validators

  4. Consider percentageOffline as secondary factor (reject if >30%)

  5. Present top 3-5 options with APY clearly labeled as percentage

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
sortByNoSort field for the results
statusNoFilter by validator status
endorserNoFilter by endorser address
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
validatorIdNoFilter by validator ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds significant behavioral context: the exact API endpoint, key metrics (nftYields, blockProbability, etc.), pagination support, and interpretation guidance. It does not contradict annotations, and the added detail is valuable beyond the structured data.

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

Conciseness4/5

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

The description is well-structured with clear sections (KEY METRICS, FILTERS, SORTING, PAGINATION, RECOMMENDATION GUIDELINES) and front-loaded with the purpose and an important note. It is somewhat lengthy but every section serves a purpose. Minor grammatical issues (e.g., 'all no status filter') slightly hinder conciseness.

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

Completeness5/5

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

Given the tool's complexity (8 parameters, output schema, multiple enums, and domain-specific NFT yield logic), the description covers all necessary aspects: metrics explanation, filter/sort options, pagination, and even recommendation criteria. It is complete enough for an AI agent to correctly select and invoke the tool for delegation decisions.

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

Parameters5/5

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

With 100% schema coverage, the description still adds substantial meaning by explaining each parameter's purpose in context: e.g., status filter conditions, sortBy options for NFT levels, pagination mechanics, and endpoint-specific constraints. This is a model example of enriching parameters beyond schema descriptions.

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

Purpose5/5

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

The description clearly states the tool retrieves validator statistics via a specific API endpoint for Stargate NFT delegation decisions and validator performance. It distinguishes itself from sibling tools like getValidatorBlockRewards by focusing on NFT yield metrics and delegation context.

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

Usage Guidelines4/5

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

It provides explicit when-to-use context for NFT delegation decisions, with detailed filtering and sorting instructions. It includes recommendation guidelines and explains status filter usage (e.g., using 'ACTIVE' for current validators, no filter for NFT yields). However, it does not explicitly compare with alternative tools, which is minor given the specificity.

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

getVeBetterDaoAppsVeBetterDAO: list xApps with on-chain status, roles and IPFS metadataA
Read-onlyIdempotent

List VeBetterDAO xApps directly from the on-chain X2EarnApps registry. For each app returns: id, on-chain name, owner (teamWalletAddress), createdAtTimestamp, roles (admin, moderators, creators, rewardDistributors), endorsement status (isEndorsed, endorsementScore vs threshold, isUnendorsed/grace period, isBlacklisted, isEligibleNow), whether the app is active in the current XAllocationVoting round, and IPFS metadata (description, website, logo, banner, social links, categories, distribution_strategy). Supports filtering to a single appId, to apps active in the current round, and by category (array of category ids, case-insensitive, OR semantics — sourced from IPFS metadata). Uses the VeChain SDK multicall for efficiency.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdNoOptional bytes32 app id; if provided, only that app is returned
categoriesNoOptional array of category ids to filter apps by (case-insensitive, OR semantics). Categories live in the IPFS metadata, so includeMetadata is forced to true when this is set. Known mainnet categories: nutrition, plastic-waste-recycling, fitness-wellness, renewable-energy-efficiency, sustainable-shopping, green-mobility-travel, pets, education-learning, green-finance-defi, others (deprecated: social-community-activism, carbon-footprint).
includeRolesNoFetch admin/moderators/creators/rewardDistributors per app
includeMetadataNoFetch off-chain IPFS metadata (description, logo, socials, categories...)
includeEndorsersNoFetch endorser addresses per app (extra on-chain calls)
includeUnendorsedNoInclude apps currently in grace period (lost endorsements)
metadataConcurrencyNoConcurrency limit for IPFS metadata fetches
onlyActiveInCurrentRoundNoReturn only apps included in the current round of voting

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds valuable context: using multicall for efficiency, forcing includeMetadata when categories are present, and detailing IPFS metadata fetching behavior. 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.

Conciseness5/5

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

The description is thoroughly detailed yet well-structured, starting with the primary purpose, then listing returns, followed by filtering options. Every sentence adds value, and it is appropriately sized for the tool's complexity.

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

Completeness5/5

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

Given the output schema exists, the description covers all necessary behavioral details: multi-call efficiency, filtering logic, IPFS metadata handling, and parameter interactions. No gaps are apparent.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds significant meaning: explains categories OR semantics, concurrency limits, defaults, and the dependency between categories and metadata. It clarifies behavior beyond the schema.

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

Purpose5/5

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

The description clearly states 'List VeBetterDAO xApps directly from the on-chain X2EarnApps registry' and enumerates all returned fields. It differentiates from siblings like getB3TRAppsLeaderboard and getAppHubApps by focusing on on-chain registry data with roles and IPFS metadata.

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

Usage Guidelines3/5

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

The description implies usage for listing xApps with various filters but lacks explicit when-to-use/alternatives guidance. It does not mention when not to use this tool or contrast with siblings, leaving the agent to infer from context.

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

getVevoteHistoricProposalsVeVote: legacy historic proposalsA
Read-onlyIdempotent

Query legacy VeVote (Stakeholder and Steering Committee Governance contracts) historic proposals from /api/v1/vevote/historic-proposals. By default excludes test proposals (testProposals=false). Supports filtering by proposalId or legacy contractAddress and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
proposalIdNoFilter by legacy proposal id
testProposalsNoInclude test proposals when true
contractAddressNoFilter by legacy smart contract address, there are two main contracts for governance: 0xa6416a72f816d3a69f33d0814700545c8e3fe4be (Stakeholder Governance) and 0x7e54f0790153647ec0651c35ced28171adb5d44a (Steering Committee Governance)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds the default testProposals=false and filtering behavior, which is useful context beyond annotations. 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.

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the main purpose and includes key details about defaults, filtering, and pagination. No unnecessary words.

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

Completeness5/5

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

With 7 parameters fully described in schema, output schema present, and annotations covering safety, the description is complete. It explains default behavior and filtering options, covering all necessary context for a query tool.

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

Parameters5/5

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

Schema coverage is 100%, but description adds meaning by stating default for testProposals, elaborating on contractAddress with specific legacy contract addresses, and explaining pagination parameters. This adds value beyond the schema.

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

Purpose5/5

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

The description clearly states it queries legacy VeVote historic proposals from a specific API endpoint, with default exclusion of test proposals, and mentions filtering and pagination. It distinguishes from siblings like getVevoteProposalResults (likely for current proposals).

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

Usage Guidelines4/5

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

The description provides context for when to use (legacy historic proposals) but does not explicitly mention when not to use or alternatives. However, given the sibling list, an agent can infer use cases. Minor improvement could be adding a note about using getVevoteProposalResults for current proposals.

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

getVevoteProposalResultsVeVote: proposal results (current governance)A
Read-onlyIdempotent

Fetch aggregated voting results per support from /api/v1/vevote/proposal/results. Optional filters: proposalId, support; supports pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoZero-based results page number (0 is the first page)
sizeNoResults per page (1..150); API default is typically 20
cursorNoOpaque cursor for fetching the next page when provided by the API
supportNoFilter by support
directionNoSort direction for time-based queries; defaults to 'DESC' (newest first)
proposalIdNoProposal ID to filter by

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as false, indicating a safe, idempotent operation. The description adds pagination behavior and the API endpoint, which are not fully captured by annotations. 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.

Conciseness5/5

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

Single sentence with all essential information: action, endpoint, filters, and pagination. No redundant words; front-loaded with the primary purpose. Highly efficient.

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

Completeness4/5

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

With a comprehensive input schema, rich annotations, and an output schema, the description is nearly complete. It covers the core functionality but could briefly note that results are for current governance (as hinted by the title) to further aid context.

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

Parameters3/5

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

Schema coverage is 100% with meaningful descriptions for all 6 parameters. The description adds a high-level grouping ('Optional filters: proposalId, support; supports pagination') but does not introduce new meaning beyond the schema, justifying the baseline score.

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

Purpose4/5

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

The description clearly states the action ('Fetch aggregated voting results per support') and identifies the API endpoint. The title adds 'current governance' which distinguishes from historic proposals (e.g., getVevoteHistoricProposals), but the description itself does not explicitly mention 'current', leaving subtle differentiation to the title.

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

Usage Guidelines3/5

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

The description lists optional filters and pagination support, implying usage for retrieving filtered voting results. However, it does not explicitly contrast with sibling tools like getVevoteHistoricProposals or getB3TRProposalsResults, nor does it provide when-to-use or when-not-to-use guidance.

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

listKnownContractsList contracts available to callContract / buildContractTransactionA
Read-onlyIdempotent

List the contracts the MCP server can talk to via the generic callContract and buildContractTransaction tools. For each entry returns the registry name (use this in clause.name), the on-chain addresses for mainnet and testnet, how many read / write / event fragments the ABI exposes, and whether an explicit address is required. The full ABI is NOT included to keep the context small — fetch it with getContractAbi when needed. Available categories: vebetterdao (B3TR, VOT3, governance, X2EarnApps, …), stargate (Stargate, StargateNFT, StargateDelegation, NodeManagement) and standard (erc20, erc721).

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter entries by category

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds value by explaining that the full ABI is intentionally omitted to keep context small, and provides category details that aid decision-making.

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

Conciseness5/5

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

Efficient and well-structured: starts with purpose, then details output contents, mentions omission of ABI and referral to getContractAbi, then lists categories. Every sentence adds value without redundancy.

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

Completeness5/5

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

Given the simple task (listing contracts with one optional filter) and the presence of an output schema, the description fully equips the agent to decide when to call this tool and what to expect. References sibling tool getContractAbi for further needs.

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

Parameters4/5

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

Only one optional parameter (category) with schema coverage 100%. The description goes beyond the schema by listing the enum values and giving examples of contracts within each category (e.g., vebetterdao includes B3TR, VOT3, etc.), which helps the agent understand the parameter's effect.

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

Purpose5/5

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

Clearly states the purpose: list contracts available for use with callContract/buildContractTransaction. Specifies returned fields (registry name, on-chain addresses, fragment counts, address requirement) and differentiates from getContractAbi by noting that full ABI is excluded.

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

Usage Guidelines4/5

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

Explains when to use (to see available contracts before using generic tools) and mentions getContractAbi as the tool for full ABI. Does not explicitly state when not to use, but context implies it's for overview, not for fetching ABI.

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

searchDiscourseForumSearch Discourse Forum (Optional)A
Read-onlyIdempotent

Search the VeBetterDAO Discourse forum (vechain.discourse.group) for topics, discussions, and community posts. Returns 10 results by default. OPTIONAL FEATURE: Requires Discourse MCP server running separately: npx -y @discourse/mcp@latest --transport http --site https://vechain.discourse.group. If not available, propose manually visiting forum links found in proposal descriptions. USE CASE: If a proposal's IPFS description doesn't contain a direct Discourse link, search by proposal ID or title to find related forum discussions.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for the forum
max_resultsNoOptional: Override default to get more/fewer results (1-50, default: 10)
with_privateNoOptional: Include private topics (default: false)

TDQS

A4.8/5.0
Behavior5/5

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

Description adds behavioral context beyond annotations: default 10 results, max 50, optional private topics, and server requirement. Annotations cover safety (readOnlyHint, etc.) and description enhances transparency without contradiction.

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

Conciseness4/5

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

Description is reasonably concise but includes setup instructions and use case. Front-loaded with main purpose. Could be slightly more compact but all sentences are meaningful.

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

Completeness5/5

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

For a search tool with 3 parameters, no output schema, and rich annotations, the description is highly complete: it explains purpose, usage scenario, setup requirements, and parameter defaults, leaving no significant gaps.

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

Parameters4/5

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

Input schema covers all 3 parameters with descriptions. Description adds the default of 10 results for max_results and usage context for with_private, providing value beyond the schema's static descriptions.

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

Purpose5/5

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

Description clearly states it searches the VeBetterDAO Discourse forum for topics, discussions, and community posts. It specifies the site and default returns, distinguishing from sibling tools like getDiscoursePost or getDiscourseTopic.

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

Usage Guidelines5/5

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

Explicitly says when to use: if a proposal's IPFS description lacks a direct Discourse link, search by proposal ID or title. Also provides setup instructions and fallback suggestion.

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

searchDocsStargateSearch Stargate DocumentationC
Read-onlyIdempotent

Search the Stargate documentation

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for documentation

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no behavioral context (e.g., result format, pagination, scope) beyond the annotations.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacking in useful information. It could be expanded slightly to add value without becoming verbose.

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

Completeness2/5

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

Given the tool's simplicity and the presence of annotations, the description is minimal and does not explain the scope of documentation, search behavior, or return format. Incomplete for an agent unfamiliar with the system.

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

Parameters3/5

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

Schema coverage is 100% with a single required 'query' parameter described. Description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states it searches Stargate documentation (verb+resource). However, it does not distinguish from sibling tools like searchDocsVechain, searchDocsVechainKit, etc., which have similar descriptions.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus similar searchDocs tools. No exclusions or alternative suggestions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchDocsVebetterDaoSearch VeBetterDao DocumentationB
Read-onlyIdempotent

Search the VeBetterDao documentation

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for documentation

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds no behavioral details beyond the imperative 'search', such as what is returned or how results are formatted. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the purpose without any redundancy or unnecessary words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is simple with one parameter and no output schema, the description is marginally complete. It could mention that it returns relevant documentation snippets or links, but the simplicity and annotations make it adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has full coverage (100%) for the single parameter 'query', with a description 'Search query for documentation'. The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'search' and the specific resource 'VeBetterDao documentation'. The title reinforces this, and among sibling tools like searchDocsVechain and searchDocsStargate, this tool is uniquely identifiable for VeBetterDao documentation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus other documentation search tools (e.g., searchDocsVechain, searchDocsStargate) or searchDiscourseForum. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchDocsVechainSearch VeChain DocumentationA
Read-onlyIdempotent

Search the VeChain documentation

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for documentation

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds no behavioral details beyond stating the basic function, which is acceptable given 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is direct and contains no extraneous information. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with one parameter and rich annotations, the description is complete enough. It could mention output format but is not required; current clarity suffices.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear parameter description in the schema. The tool description does not add additional meaning beyond what the schema provides, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Search the VeChain documentation' clearly states the verb (search) and the resource (VeChain documentation), distinguishing it from sibling search tools like searchDocsVechainKit, searchDocsVevote, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives such as searchDocsVechainKit or searchDocsVevote. Usage is implied by the resource name, but no exclusions or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchDocsVechainKitSearch VeChain Kit DocumentationB
Read-onlyIdempotent

Search the VeChain Kit documentation

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for documentation

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds no additional behavioral context such as authentication needs, rate limits, or result handling beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the essential action and resource, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimally adequate for a simple search tool with one parameter and output schema absent. However, it lacks details about search scope, result format, or pagination, which could improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (one parameter with description 'Search query for documentation'). The description does not add extra meaning about the parameter's format, constraints, or expected content, so it meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Search the VeChain Kit documentation' clearly states the verb (search) and resource (VeChain Kit documentation), and it distinguishes from sibling tools like searchDocsVechain by specifying 'Kit'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not specify when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchDocsVevoteSearch VeVote DocumentationB
Read-onlyIdempotent

Search the VeVote documentation

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for documentation

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds no additional behavioral context (e.g., rate limits, result format, pagination), so it provides no value beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It is front-loaded and perfectly concise for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, annotations present), the description is adequate but does not mention the nature of results or any other context, which would be helpful since there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'query', and the description does not add any meaning beyond the schema's description. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Search the VeVote documentation' clearly states the verb (search) and the resource (VeVote documentation), distinguishing it from sibling searchDocs tools for other documentation sets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention when to choose searchDocsVevote over searchDocsVechain, searchDocsStargate, etc.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

thorDecodeEventThor Decode EventB
Read-onlyIdempotent

Decode an event emitted by a contract on Thor network

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe data to decode as hex string starting with 0x
topicsYesThe topics to decode as hex string starting with 0x
addressYesThe address of the contract that emitted the event

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive behavior. Description adds no additional behavioral context, e.g., what if data is invalid or how ABI is resolved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 10 words, no fluff. Could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return value documentation is covered. However, description lacks context on decoding process, ABI requirement, or edge cases, making it minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters. Tool description does not add extra meaning beyond what schema already provides; baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (decode), the resource (event emitted by a contract), and the network (Thor). It is specific and distinct from sibling tools like callContract or getContractAbi.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. Does not specify prerequisites (e.g., need ABI) or context for decoding events.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

thorGetAccountThor Get AccountA
Read-only

Get account details from Thor network

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThor address (0x...) or VNS (.vet) name

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description's claim of 'Get account details' is consistent but adds no new behavioral insight. With annotations, the burden is lower, and the description does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence (6 words) that efficiently conveys the tool's purpose. It is front-loaded with the verb and resource, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of both input schema and output schema, the description need not explain return values. The simple getter operation is adequately covered for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the 'address' parameter with patterns and types (100% coverage). The description adds no further meaning beyond 'Get account details', so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'account details' from the Thor network. It is specific and distinguishable from sibling tools which retrieve different entities (e.g., thorGetBlock, thorGetTransaction).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs. alternatives like thorGetBlock or getHistoryOfAccount. The description does not mention prerequisites or scenarios, leaving the agent to infer usage from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

thorGetBlockThor Get BlockC
Read-onlyIdempotent

Get block details from Thor network

ParametersJSON Schema
NameRequiredDescriptionDefault
blockRevisionYesThe block number, label or id to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds no additional behavioral context, such as response structure or edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (one sentence) but under-informative. It front-loads the core purpose but lacks necessary details, giving a neutral score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with an output schema and comprehensive annotations, the description is minimally adequate but misses opportunities to explain usage context or distinctions from similar tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with a clear description for blockRevision. The tool description adds no extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'block details' from 'Thor network', distinguishing it from sibling tools like thorGetTransaction. However, it is somewhat generic about what 'details' entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as thorGetTransaction or getTransactions. The description lacks any context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

thorGetTransactionThor Get TransactionC
Read-onlyIdempotent

Get transaction details from Thor network

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionIdYesThe transaction hash to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo
networkYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds no additional behavioral context such as error handling, authentication needs, or rate limits, providing minimal extra value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no fluff. However, it is slightly too brief and omits useful context that could fit without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and annotations, so the description is partially adequate. However, missing usage guidelines and behavioral details make it incomplete for an agent to confidently select it from many similar siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%; the parameter 'transactionId' is well-described in the schema. The tool description does not add extra meaning beyond what the schema already provides, earning a baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the clear verb 'Get' and identifies the resource as 'transaction details from Thor network'. It is specific but does not differentiate from sibling tools like 'getTransactionById' or 'getTransactions', which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. Given the many sibling tools with similar purposes (e.g., 'getTransactionById', 'getTransactions'), the lack of usage context is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with detailed descriptions that prevent ambiguity. Even similar tools like getTransfersOfAccount, getTransfersFrom, getTransfersTo are explicitly differentiated by direction. The high number of tools is manageable because each targets a unique endpoint or action.

Naming Consistency4/5

Naming follows a consistent verb_noun pattern (e.g., getStargateNftHoldersTotal, callContract). Minor deviations exist such as thorGetBlock using a 'thor' prefix and 'getHistoryOfAccount' not matching the 'historic' pattern used elsewhere, but overall it's predictable.

Tool Count2/5

With 76 tools, the server is excessively large for a typical MCP server. While it covers many subdomains, the count overwhelms the purpose and could be consolidated (e.g., many Stargate time-series tools could be combined with parameters). This makes it harder for agents to navigate.

Completeness4/5

The server covers almost all aspects of the VeChain ecosystem: on-chain queries, staking, governance, token transfers, validators, and documentation. Minor gaps include lack of proposal creation tools and reliance on optional Discourse tools, but core workflows are well-supported.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vechain/vechain-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server