Skip to main content
Glama
fyllepo

qubic-mcp

by fyllepo

qubic-mcp

MCP server for the Qubic cryptocurrency — enabling AI assistants to interact with the Qubic network.

npm version CI License: MIT PRs Welcome

Overview

qubic-mcp is an open-source Model Context Protocol (MCP) server that gives AI assistants — Claude, ChatGPT, Copilot, Cursor, and others — native access to the Qubic blockchain.

Query balances, inspect transactions, monitor the network, trade on QX, switch between networks, and interact with smart contracts — all through natural language.

Related MCP server: bybit-trading

What's New in v0.4

  • Smart Contract Profiles — Register custom SC interface definitions, then query them by name with automatic binary encoding/decoding

  • Network Management — Save and switch between mainnet, testnet, or your own local/lite node at runtime

  • Epoch Computors — Query the 676 computor identities for any epoch

  • MCP Prompts — Predefined workflows for portfolio analysis, market overview, and research

  • MCP Resources — Qubic reference documentation (network, tokenomics, smart contracts, address format)

  • HTTP Transport — Run as a standalone HTTP server for remote deployment

Features

Blockchain Query Tools

  • Balance & Transfers — Query any Qubic address balance and transfer history

  • Transactions — Look up transaction details by ID

  • Network Status — Current tick, epoch, supply, burned QUs, active addresses, market cap

  • Mining Phase — Current MINING/IDLE phase, cycle progress, and XMR marathon status

  • Epoch Computors — List all 676 computor identities for a given epoch

  • Rich List — Top holders ranked by balance

Market & Analytics

  • Token Price — Real-time QUBIC price compared across 3 sources (CoinGecko, Qubic API, CryptoCompare)

  • QU/USD Converter — Convert between QU and USD at live rates

  • Token Registry — List all registered Qubic tokens with issuer and website

  • QX DEX Orderbook — Live ask/bid orders for any token on the QX decentralized exchange

Smart Contract Tools

  • Register Contract — Save a custom SC interface definition (function names, input/output field schemas)

  • Query Contract — Query a registered SC function by name with automatic binary encoding/decoding

  • Raw SC Query — Low-level smart contract query with base64 input/output for advanced use

  • List/Remove Contracts — Manage your registered contract definitions

Local Management

  • Wallet Management — Save wallet addresses locally for quick access

  • Network Switching — Save and switch between mainnet, testnet, or custom RPC endpoints at runtime

  • Address Validation — Check format and on-chain activity

  • Explorer Links — Direct links to the official Qubic block explorer

AI Context

  • MCP Resources — Qubic reference docs (network, tokenomics, smart contracts, address format) available as context

  • MCP Prompts — Predefined workflows: portfolio analysis, market overview, and Qubic research

Quick Start

Works with any MCP-compatible AI client — Claude, ChatGPT, Copilot, Cursor, Windsurf, Gemini, JetBrains, and more.

Add this to your client's MCP config:

{
  "mcpServers": {
    "qubic": {
      "command": "npx",
      "args": ["mcp-server-qubic"]
    }
  }
}

Client

Config location

Claude Desktop (macOS)

~/Library/Application Support/Claude/claude_desktop_config.json

Claude Desktop (Windows)

%APPDATA%\Claude\claude_desktop_config.json

Claude Desktop (Linux)

~/.config/Claude/claude_desktop_config.json

Claude Code

Run claude mcp add qubic -- npx mcp-server-qubic in your terminal

VS Code / Cursor / Windsurf

.vscode/mcp.json or your editor's MCP settings

JetBrains IDEs

Settings > Tools > AI Assistant > MCP Servers

ChatGPT Desktop

Settings > MCP Servers > Add

For other clients, check your app's MCP documentation — the config above is universal.

Then just ask in plain English:

Wallet Management

"Save my wallet UXITJAGNXUE...RAPDBE as my-main"
"List my wallets"
"Remove my old-wallet"

Balances & Transfers

"What's the balance of my-main?"
"Show transfer history for my-main over the last 1000 ticks"

Price & Market

"What's the current QUBIC price?"
"How much is 1 billion QU worth in USD?"
"Convert $100 to QU"

Network & Mining

"What's the current tick?"
"Show me the network status"
"What mining phase are we in?"
"Who are the top Qubic holders?"

QX DEX & Tokens

"What tokens are available on Qubic?"
"Show the QX orderbook for CFB"
"Show bid orders for QMINE on QX"

Network Switching

"Add my local network at http://192.168.1.50:21841"
"Switch to my local network"
"Switch back to mainnet"
"List my networks"

Smart Contract Queries

"Register my counter contract at index 10 with these functions: [...]"
"Query counter getStats"
"Query counter getValue with key 1"
"List my registered contracts"

Smart Contract Development Workflow

One of the most powerful features of qubic-mcp is its smart contract profile system. If you're developing a Qubic smart contract on a local lite network, you can use the MCP to test your contract's RPC interface directly through your AI assistant.

Why This Matters

Qubic smart contracts communicate via binary-encoded structs over the /v1/querySmartContract RPC endpoint. Without tooling, this means manually encoding fields into base64, making HTTP calls, and decoding binary responses — error-prone and tedious.

With qubic-mcp, you register your contract's interface once, and then query it by name with human-readable input and output. Your AI assistant handles all the binary encoding/decoding automatically.

Step-by-Step

1. Point the MCP at your test network:

"Add my test network at http://192.168.1.50:21841 called my-testnet"
"Switch to my-testnet"

Your MCP server now talks to your local lite node instead of mainnet. This persists across sessions in ~/.qubic-mcp/networks.json.

2. Register your contract's interface:

Tell the assistant your contract's index and function definitions. Here's a simple counter contract at index 10 as an example:

Register my counter contract at index 10 with these functions:

- getStats (inputType 1): no input, output is totalKeys (uint32) and totalIncrements (uint64)
- getValue (inputType 2): input is key (uint32), output is value (uint64) and lastUpdatedTick (uint32)

The assistant will call register_contract with the proper field schema JSON. The definition is saved to ~/.qubic-mcp/contracts.json and persists across sessions.

Supported field types: uint8, uint16, uint32, uint64, int8, int16, int32, int64, identity (60-char Qubic address / 32-byte pubkey), padding (skipped bytes).

Fields support count for arrays and enum for value-to-label mapping.

3. Query your contract by name:

"Query counter getStats"
"Query counter getValue with key 1"

The MCP encodes your input into binary, calls the RPC endpoint, and decodes the response into named fields:

counter.getValue
================

  value: 42
  lastUpdatedTick: 22,345,678

4. Switch back to mainnet when done:

"Switch to mainnet"

Installation

npm install -g mcp-server-qubic

From source

git clone https://github.com/fyllepo/qubic-mcp.git
cd qubic-mcp
npm install
npm run build

Configuration

Network Management

The easiest way to configure which Qubic network you talk to is through the built-in tools — no env vars needed:

  1. Add a custom network: add_network — save your local node's IP with a friendly name

  2. Switch networks: switch_network — toggle between mainnet, testnet, or any saved network

  3. List networks: list_networks — see all available networks and which is active

Networks are saved to ~/.qubic-mcp/networks.json and persist across sessions. Built-in networks (mainnet, testnet) are always available.

Environment Variables

For advanced use or CI environments, you can also configure via env vars. See .env.example.

Variable

Default

Description

QUBIC_RPC_URL

(from active network)

Override the RPC endpoint (takes priority over saved networks)

QUBIC_API_URL

(from active network)

Override the Query API endpoint

QUBIC_NETWORK_LABEL

(auto)

Friendly label shown when using QUBIC_RPC_URL override

MCP_HTTP_PORT

(not set)

Set a port to run as an HTTP server instead of stdio

HTTP Transport

By default the server uses stdio, which is what most MCP clients expect. To run it as a standalone HTTP endpoint instead, set MCP_HTTP_PORT:

MCP_HTTP_PORT=3000 node dist/index.js

The server exposes a single /mcp endpoint that supports the MCP Streamable HTTP transport:

  • POST /mcp — send JSON-RPC requests (initialize creates a session)

  • GET /mcp — open an SSE stream for server notifications (requires mcp-session-id header)

  • DELETE /mcp — terminate a session

All Tools

Blockchain

Tool

Description

get_balance

Get balance and transfer activity for an address or saved wallet

get_tick_info

Get current tick number, epoch, and tick duration

get_network_status

Network stats: supply, burned QUs, active addresses, tick quality, market cap

get_transaction

Look up a transaction by its 60-character ID

get_transfer_history

Paginated transfer history for an address within a tick range

get_mining_phase

Current MINING/IDLE phase, cycle progress, and XMR marathon status

get_epoch_computors

List all 676 computor identities for a given epoch

get_rich_list

Top Qubic addresses ranked by balance with pagination

Market & Tokens

Tool

Description

get_token_price

QUBIC price compared across CoinGecko, Qubic API, and CryptoCompare

convert_qu_usd

Convert between QU and USD using live price

get_token_list

List all registered Qubic tokens with name, issuer address, and website

get_qx_orderbook

QX DEX orderbook — ask and/or bid orders for any token, with pagination

Smart Contract Development & Testing

Tool

Description

register_contract

Register a custom SC definition with typed function schemas

query_contract

Query a registered SC function by name (auto binary encode/decode)

query_smart_contract

Low-level SC query with raw base64 input/output

list_contracts

List all registered contract definitions

remove_contract

Remove a registered contract definition

Wallets

Tool

Description

save_wallet

Save a Qubic address with a friendly name for quick access

list_wallets

List all saved wallets

remove_wallet

Remove a saved wallet

Network Management

Tool

Description

add_network

Save a custom Qubic network (e.g., local lite node) for quick switching

switch_network

Switch the active network (mainnet, testnet, or any saved custom network)

list_networks

List all available networks and show which is currently active

remove_network

Remove a saved custom network

Utility

Tool

Description

validate_address

Validate address format and check on-chain activity

get_explorer_links

Get links to Qubic block explorers for an address or transaction

MCP Resources

Resource URI

Description

qubic://docs/network

Qubic network: epochs, ticks, quorum consensus, computor ranking

qubic://docs/tokenomics

Qubic tokenomics: supply cap, emission schedule, burning

qubic://docs/smart-contracts

Qubic smart contracts: governance, execution, IPO process

qubic://docs/address-format

Qubic identity system: seed to private key to public key to address

qubic://docs/oracles

Qubic Oracle Machines: bridging smart contracts with real-world data via QPI

qubic://docs/sc-architecture

Qubic smart contract architecture: state, procedures, functions, logging

qubic://docs/sc-lifecycle

Smart contract lifecycle: from research through proposal, IPO, deployment, and maintenance

qubic://docs/ticks-concurrency

Qubic ticks and concurrency: tick lifecycle, parallel execution, transaction ordering

qubic://docs/interact-sc

Interacting with Qubic smart contracts: calling functions, invoking procedures

qubic://docs/execution-fees

Qubic contract execution fees: fee reserves, invocation costs, burn mechanics

qubic://docs/rpc

Qubic RPC API: endpoints, smart contract queries, transaction broadcasting

qubic://docs/qpi

Qubic Protocol Interface (QPI): the API available to smart contracts

MCP Prompts

Prompt

Description

qubic-portfolio

Analyze your portfolio: wallet balances, token holdings, USD values

qubic-market

Market overview: price, network stats, mining phase, rich list

qubic-research

Research a Qubic topic using the built-in reference documentation

Local Data

qubic-mcp stores local data in ~/.qubic-mcp/:

File

Purpose

wallets.json

Saved wallet addresses (public addresses only, never private keys)

networks.json

Saved network profiles and active network selection

contracts.json

Registered smart contract interface definitions

Security

This project takes security seriously, especially given it interacts with a financial network.

  • No private keys — This server is read-only. It never asks for, stores, or transmits private keys or seeds.

  • Input validation — All inputs are validated with Zod schemas before processing.

  • No telemetry — No analytics, tracking, or data collection of any kind.

  • Auditable — Fully open source. Read every line.

See SECURITY.md for our vulnerability disclosure policy.

Contributing

Contributions are welcome and encouraged! Whether you're fixing a bug, adding a new tool, improving docs, or suggesting an idea — we'd love your help.

See CONTRIBUTING.md for guidelines.

Roadmap

See ROADMAP.md for our planned features and future direction.

License

MIT — see LICENSE.

Disclaimer

This software is provided "as is" without warranty of any kind. The authors and contributors are not responsible for any loss of funds, data, or other damages resulting from the use of this software.

This tool interacts with the Qubic blockchain where transactions are irreversible. Users are solely responsible for verifying all information and understanding the risks. This software does not provide financial advice.

Available Tools

27 tools
add_networkA

Save a custom Qubic network (e.g., a local lite node). Stored in ~/.qubic-mcp/networks.json. Use switch_network to activate it.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesA friendly name for this network (e.g., "local", "dev-node", "my-lite")
apiUrlNoOptional separate API/query endpoint. Defaults to the RPC URL if not provided.
rpcUrlYesThe RPC endpoint URL (e.g., "http://192.168.1.50:21841")

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing side effects. It discloses the persistence path (~/.qubic-mcp/networks.json) and implies the network is not activated immediately. However, it does not mention overwrite behavior, validation, or failure conditions, leaving some behavioral aspects undisclosed.

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 primary purpose, and includes only essential information (storage location and activation follow-up). Every word earns its place 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 3 parameters and no output schema, the description covers the core aspects: what it does, where it persists, and the required next step (activation). It does not mention duplicate handling or success/failure responses, but given the tool's simplicity, this is adequate and slightly above the minimum viable.

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

Parameters3/5

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

The schema provides 100% documentation of all three parameters, so the baseline is 3. The description adds minimal semantic value beyond the schema—it gives an example of a name and the storage purpose, but does not explain parameter relationships or constraints not already 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 uses a specific verb ('Save') and resource ('custom Qubic network'), provides a concrete example ('local lite node'), and clearly distinguishes it from sibling tools by noting that activation is handled by switch_network. This leaves no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The description states the storage location and explicitly directs the user to use switch_network to activate the saved network, providing clear context for when to use this tool. It does not include explicit exclusions (e.g., duplicate handling), but the guidance is sufficient for a simple add operation.

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

convert_qu_usdA

Convert between QU (Qubic Units) and USD using the current live price. Specify either a QU amount to get USD value, or a USD amount to get the equivalent in QU.

ParametersJSON Schema
NameRequiredDescriptionDefault
quNoAmount in QU to convert to USD
usdNoAmount in USD to convert to QU

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the use of 'current live price' but does not explain what happens if both qu and usd are provided, if neither is provided, or what the output format looks like. These are significant ambiguities for a conversion 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?

The description is two succinct sentences that front-load the primary action ('Convert between QU and USD') and then explain the two usage modes. There is no fluff or redundant repetition of schema details.

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?

While the tool is simple, the description does not explicitly require exactly one parameter or describe the return value structure. Since there is no output schema, the description should compensate for these gaps. It provides a minimum viable explanation but lacks some important behavioral specifics.

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 already describes both parameters with 100% coverage, so the baseline is 3. The description adds value by indicating the 'either/or' exclusivity of the parameters, which is not expressed in the schema. This helps the agent understand that exactly one should be specified.

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

Purpose5/5

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

The description clearly states the tool converts between QU and USD using the current live price. The verb 'Convert' and the explicit resource pair distinguish it from sibling tools like get_token_price, which focuses on price data rather than conversion.

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

Usage Guidelines4/5

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

The description gives clear usage context by saying 'Specify either a QU amount... or a USD amount', which tells the agent how to structure the input. However, it does not explicitly mention alternatives or when not to use the tool, so it stops short of full guidance.

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

get_balanceA

Get the current balance of a Qubic address or saved wallet. Accepts a 60-character Qubic address OR a saved wallet name (e.g., "my-main"). Use save_wallet to save addresses for quick access.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesQubic address (60 uppercase letters) or saved wallet name (e.g., "my-main")

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of disclosing behavior. It adds useful context like 'current balance' and accepts two input forms, but it does not state potential side effects (none expected), network specificity, or error handling for invalid addresses. It is adequate but lacks depth.

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 primary action, and every word earns its place. The example 'my-main' and the cross-reference to save_wallet are concise and useful without being verbose.

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 simplicity of the tool, no output schema, and rich sibling context, the description is sufficiently complete. It informs the agent about input formats and a related workflow, though it could optionally mention the return format or error behavior.

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

Parameters4/5

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

The input schema already describes the 'address' parameter with 100% coverage, including the dual nature (address or wallet name). The description reinforces this and adds a practical tip about using save_wallet, providing extra 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 tool's purpose: 'Get the current balance of a Qubic address or saved wallet.' It uses a specific verb ('Get') and resource ('balance'), and distinguishes it from sibling tools like get_transaction or get_transfer_history by focusing on balance retrieval.

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 this tool by specifying acceptable inputs (60-character Qubic address or saved wallet name) and provides a cross-reference to save_wallet for setting up named wallets. It does not explicitly exclude scenarios, but the context is sufficient for an agent to decide.

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

get_epoch_computorsA

List the computor identities for a given epoch. Computors are the 676 nodes that validate transactions on the Qubic network. Defaults to the current epoch if none is specified.

ParametersJSON Schema
NameRequiredDescriptionDefault
epochNoEpoch number (defaults to current epoch)

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It clearly implies a read-only operation ('List') and adds useful context about the meaning and size of the computor set. It does not describe return format or error behavior, but for a simple list tool this is acceptable. The description effectively communicates the default epoch behavior, which is the key non-obvious trait.

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-loaded with the action and resource. The second sentence adds valuable context without redundancy. Every phrase earns its place, and the structure is optimal for quick comprehension.

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 tool is simple: one optional parameter, no output schema, and a straightforward purpose. The description fully covers the domain context (what computors are, their count and role) and the default behavior. It is complete for an agent to invoke the tool correctly. No additional information is needed.

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% coverage for the single parameter 'epoch', including its description 'Epoch number (defaults to current epoch)'. The tool description repeats this default behavior but adds no further parameter-level detail. Since the schema already documents the parameter well, 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 states the tool's function clearly: 'List the computor identities for a given epoch.' It uses a specific verb ('list') and resource ('computor identities'), and adds context by explaining that computors are the 676 nodes that validate transactions on the Qubic network. This distinguishes it from sibling tools, none of which mention computors.

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 usage context by explaining the default behavior ('Defaults to the current epoch if none is specified') and the role of computors. It does not explicitly mention alternatives or exclusion cases, but for a unique getter tool, the context is sufficient. A score of 4 reflects clear context without explicit when-not guidance.

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

get_mining_phaseA

Get the current Qubic mining phase (MINING or IDLE) and whether it's an XMR marathon day. The network alternates between mining and idle phases every ~1,353 ticks, and between Qubic AI solution days and XMR mining days every 24 hours.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It explains the return values (phase and marathon day) and the underlying schedule, which is helpful. However, it does not explicitly state that this is a read-only operation or mention potential error conditions or side effects. The description is adequate but lacks richer behavioral disclosure.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the primary purpose, and every sentence adds value. It explains not only what the tool returns but also the context of the mining phases, all without unnecessary verbosity.

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 no-parameter getter with no output schema, the description is complete. It specifies the two pieces of information returned (mining phase and XMR marathon day) and provides the background needed to interpret them, satisfying the needs of an AI agent.

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

Parameters4/5

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

The tool has zero parameters and the schema description coverage is 100% (trivially). With no parameters to document, a baseline score of 4 is appropriate. The description adds no parameter information because none is needed.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get the current Qubic mining phase (MINING or IDLE) and whether it's an XMR marathon day.' This is a specific verb+resource (get phase and flag), and the additional context about alternating phases distinguishes it from any sibling tool.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (whenever mining phase or marathon day status is needed) and explains the network's periodic behavior, making the usage obvious. However, it does not explicitly name alternative tools or state when not to use it, so it falls short of a 5.

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

get_network_statusA

Get comprehensive Qubic network status including current tick, epoch progress, circulating supply, burned QUs, active addresses, price, and market cap.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. The verb 'Get' clearly indicates a read-only operation, but the description adds no further behavioral context such as authentication needs, caching behavior, or network-dependency caveats.

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, well-structured sentence that front-loads the main purpose and then lists the key data points. Every word earns its place 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?

With no parameters and no output schema, the description's enumeration of returned fields is largely sufficient for an agent to understand the tool's output. However, it omits minor contextual details like whether the data is from the currently selected network or how fresh the data is.

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 parameter semantics are trivially satisfied; the baseline is 4. The description adds useful information about what data will be returned, compensating for the absence of schema parameter details.

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

Purpose5/5

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

The description uses a specific verb 'Get' and a specific resource 'Qubic network status', and enumerates distinct data categories (tick, epoch, supply, price, market cap). This clearly separates it from sibling tools like get_balance or get_tick_info.

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 this is for a broad overview of network health, but it does not explicitly state when to use this tool over siblings such as get_tick_info or get_token_price. No alternatives or exclusions are mentioned.

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

get_qx_orderbookA

Query the QX decentralized exchange orderbook for a Qubic token. Returns current ask (sell) and bid (buy) orders with price and quantity.

IMPORTANT: You MUST call get_token_list first to find the exact issuer address. NEVER guess or fabricate an issuer address. If the token is not in the registry, tell the user it was not found and ask them to provide the issuer address.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideNoWhich side of the orderbook to fetch (default: both)both
issuerYes60-character Qubic address of the token issuer
offsetNoPagination offset (256 orders per page, default: 0)
asset_nameYesToken name (e.g., "CFB", "QXMR", "QMINE")

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It reveals a key dependency (must call get_token_list first) and a correctness constraint (never fabricate an issuer address). It also specifies the return content (ask/bid orders with price and quantity). It does not mention rate limits or response structure, but the important prerequisite behavior is well disclosed.

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 and well structured. The main purpose is stated in one sentence, followed by an 'IMPORTANT' block that highlights the critical prerequisite. No wasted words or repetition of schema 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 tool has plausible complexity (orderbook sides, pagination) and no output schema. The description explains the return type (ask/bid orders with price and quantity) and gives essential workflow context. It does not detail the exact response schema or pagination behavior, but the core usage and prerequisites are adequately covered for an agent to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics for the issuer parameter by emphasizing that the exact address must come from get_token_list, and that guessing is prohibited. This goes beyond schema descriptions and helps agents use the parameter correctly.

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

Purpose5/5

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

The description clearly states the tool's function: 'Query the QX decentralized exchange orderbook for a Qubic token' and specifies the output: 'Returns current ask (sell) and bid (buy) orders with price and quantity.' It uses a specific verb ('Query'), names the resource (QX DEX orderbook), and differentiates itself from siblings like get_token_price and get_token_list.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance: 'You MUST call get_token_list first to find the exact issuer address. NEVER guess or fabricate an issuer address.' This establishes a clear prerequisite workflow and error handling ('tell the user it was not found and ask them to provide the issuer address'). However, it does not explicitly contrast with alternative tools, so it stops short of a perfect score.

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

get_rich_listA

Get the Qubic rich list — top addresses ranked by balance for the current epoch. Supports pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
pageSizeNoResults per page (default: 15, max: 50)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses ranking by balance, current epoch, and pagination support, but omits aspects like authentication needs, response format, or potential rate limits. For a read-only getter, this is acceptable but not rich.

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

Conciseness5/5

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

The description is a single sentence that front-loads the core purpose and ends with the pagination capability. Every word earns its place 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?

Given the tool's simplicity (2 optional params, no output schema), the description covers the essential behavior. It could mention what data is included per address (e.g., address, balance, rank) but the presence of an output schema would have reduced that burden. Sibling context is adequate to infer 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 description coverage is 100% for both page and pageSize, so baseline is 3. The description only mentions 'Supports pagination' generically, adding no syntax or behavior beyond the schema's own parameter descriptions.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('Qubic rich list'), and clearly qualifies the resource as 'top addresses ranked by balance for the current epoch.' This distinguishes it from sibling getters like get_balance (single address) and get_epoch_computors (different data).

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

Usage Guidelines3/5

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

The description implies usage context (rich list for current epoch) but provides no explicit when-to-use vs. alternatives or exclusions. The pagination note is a feature, not usage guidance. It is clear but not fully explicit.

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

get_tick_infoA

Get the current Qubic network tick information. Returns the current tick number, epoch, and tick duration. Qubic processes transactions in ticks (~5 seconds each) organized into epochs (~1 week each).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description must handle behavioral disclosure. It clearly indicates a read-only operation ('Get', 'Returns') and details the three output fields. It also provides useful domain context (tick duration, epoch length). It does not discuss potential errors or explicitly confirm no side effects, but the read-only nature is well conveyed.

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: purpose, returned fields, and background context. Every sentence carries meaningful information without redundancy. It is front-loaded with the primary action and 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?

With no output schema, the description explains return values (tick number, epoch, tick duration) and provides context on tick/epoch structure. For a zero-parameter, read-only tool, this is sufficient and complete, requiring no further elaboration.

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

Parameters4/5

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

The tool has zero parameters, so the input schema fully covers all inputs. Baseline for 0 params is 4; the description adds no parameter information because none is required. The description's mention of return fields 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?

Description clearly states the tool gets current Qubic network tick information, using specific verb 'Get' and resource 'tick information'. It lists returned fields (tick number, epoch, tick duration), which distinguishes it from other network tools like get_network_status or get_version.

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 context about ticks and epochs but does not explicitly state when to use this tool over siblings or when not to use it. Alternatives are not mentioned, so usage guidance is implied from the outlined purpose rather than explicitly stated.

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

get_token_listA

Get a list of all registered Qubic tokens with their name, issuer address, and website. Useful for finding token issuers needed for QX orderbook queries.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the output fields and that it lists all registered tokens, but does not explicitly mention that the operation is read-only, has no side effects, or requires any auth. For a simple get/list operation, the description is adequate but lacks extra behavioral context beyond the basic function.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary purpose and immediately adding a use-case context. Every word earns its place, with no redundancy or fluff.

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 zero-parameter read tool with no output schema, the description sufficiently explains what the tool returns and why it is useful. It does not explicitly state side effects or limitations, but none are expected for a get-list operation. The coverage is adequate but could be slightly more comprehensive by stating it is read-only.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds value by explaining the return fields, which helps the agent understand the output even without an output schema. No parameter-specific detail is needed.

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

Purpose5/5

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

The description clearly states the tool's action ('Get a list') and resource ('all registered Qubic tokens'), and specifies the return fields (name, issuer address, website). This distinguishes it from sibling tools like get_token_price or get_qx_orderbook, which have different purposes.

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

Usage Guidelines4/5

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

The description provides a clear use case: 'Useful for finding token issuers needed for QX orderbook queries.' This gives context for when to use the tool, but does not explicitly mention alternatives or when not to use it. Scoring 4 because clear context is present, 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.

get_token_priceA

Get the current QUBIC token price compared across multiple sources (CoinGecko, Qubic Official API, CryptoCompare). Shows price, 24h change, market cap, and volume with source-by-source comparison.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

NO ANNOTATIONS ARE AVAILABLE, SO THE DESCRIPTION FULLY CARRIES THE BURDEN OF EXPLAINING BEHAVIORAL TRAITS. IT DISCLOSES THAT THE TOOL AGGREGATES DATA FROM COINGECKO, QUBIC OFFICIAL API, AND CRYPTOCOMPARE, AND LISTS THE OUTPUT FIELDS, WHICH IS HELPFUL. HOWEVER, IT DOES NOT ADDRESS POTENTIAL ISSUES LIKE SOURCE UNAVAILABILITY, DATA FRESHNESS, OR HOW DISAGREEMENT AMONG SOURCES 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.

Conciseness5/5

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

THE DESCRIPTION IS A SINGLE, WELL-STRUCTURED SENTENCE THAT FRONT-LOADS THE PURPOSE AND IMMEDIATELY DETAILS THE OUTPUT FIELDS. EVERY PART OF THE SENTENCE ADDS VALUE, WITH NO EXTRANEOUS INFORMATION.

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

Completeness4/5

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

GIVEN THE TOOL'S SIMPLICITY (NO PARAMETERS) AND LACK OF AN OUTPUT SCHEMA, THE DESCRIPTION SUFFICIENTLY COMMUNICATES WHAT THE TOOL RETURNS: PRICE, 24H CHANGE, MARKET CAP, AND VOLUME, WITH A SOURCE-BY-SOURCE COMPARISON. IT COULD NOTE THE CURRENCY AND AGGREGATION METHOD, BUT THE ESSENTIALS ARE COVERED.

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

Parameters4/5

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

THE TOOL HAS ZERO PARAMETERS, AND THE INPUT SCHEMA CONFIRMS THIS. WITH NO PARAMETERS TO DOCUMENT, THE DESCRIPTION DOES NOT NEED TO ADD PARAMETER SEMANTICS BEYOND WHAT THE SCHEMA PROVIDES, EARNING THE BASELINE SCORE OF 4.

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

Purpose5/5

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

CLEARLY STATES A SPECIFIC ACTION (GET), A SPECIFIC RESOURCE (CURRENT QUBIC TOKEN PRICE), AND THE KEY DISTINGUISHING FEATURE (COMPARISON ACROSS MULTIPLE SOURCES). THIS DIFFERENTIATES IT FROM SIBLING PRICE-RELATED TOOLS LIKE CONVERT_QU_USD.

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 THAT THIS TOOL IS FOR RETRIEVING CURRENT PRICE DATA WITH CROSS-SOURCE COMPARISON, PROVIDING CLEAR CONTEXT FOR WHEN IT WOULD BE APPROPRIATE. HOWEVER, IT DOES NOT EXPLICITLY MENTION ALTERNATIVES OR CASES WHERE ANOTHER TOOL SHOULD BE USED INSTEAD, LEAVING NO EXCLUSIONS.

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

get_transactionA

Look up a Qubic transaction by its transaction ID. Returns source, destination, amount, tick, and execution status. Transaction IDs are 60 lowercase letters.

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionIdYesThe 60-character lowercase transaction ID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the return fields (source, destination, amount, tick, execution status) and the ID format constraint. However, it does not describe error handling (e.g., transaction not found) or any side effects, which would be expected for full transparency.

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

Conciseness5/5

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

The description is three short sentences, each adding value: purpose, return fields, and ID format. It is front-loaded with the primary action and has 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?

For a single-parameter lookup tool, the description covers the return fields and the input format, which is sufficient for basic use. However, it omits behavior when the transaction is not found, and since there is no output schema, the return field types/structures are not described, leaving a minor 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%, with the parameter described as 'The 60-character lowercase transaction ID'. The description adds the same constraint ('Transaction IDs are 60 lowercase letters') but no additional syntax or format details beyond what the schema already provides, 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's function with a specific verb ('Look up') and resource ('Qubic transaction') and specifies the lookup key (transaction ID). This distinguishes it from sibling tools like get_transfer_history, which lists transactions rather than retrieving a single one by ID.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you have a transaction ID and need its details. However, it does not explicitly state when not to use it or mention alternatives, such as get_transfer_history for broader transaction queries.

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

get_transfer_historyA

Get the transfer history for a Qubic address or saved wallet within a tick range. Returns incoming and outgoing transfers with details. Use get_tick_info first to find the current tick number.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
addressYesQubic address (60 uppercase letters) or saved wallet name (e.g., "my-main")
endTickYesEnd tick number for the range
pageSizeNoNumber of results per page (default: 25, max: 100)
startTickYesStart tick number for the range

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full transparency burden. It discloses the basic behavior: returns incoming and outgoing transfers with details, and is implicitly read-only via 'get'. However, it does not mention pagination behavior, ordering, or error handling. The description adds some behavioral context beyond the schema but lacks depth.

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 concise sentences, front-loaded with the main purpose and followed by a practical usage hint. Every sentence earns its place with no filler or redundancy.

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

Completeness3/5

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

The tool has 5 parameters and no output schema, and no annotations. The description explains the core purpose and a prerequisite, but it does not mention pagination (page/pageSize) behavior or the response structure beyond 'details'. This is adequate for basic use but leaves clear gaps about how to handle large result sets and what exactly is returned.

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 baseline is 3. The description's phrase 'within a tick range' echoes the startTick/endTick schema descriptions, and 'Qubic address or saved wallet' mirrors the address parameter description. It does not add meaningful new parameter semantics beyond what the schema already 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's function: 'Get the transfer history for a Qubic address or saved wallet within a tick range.' It specifies the resource (transfer history), the scope (address/wallet, tick range), and returns summary (incoming/outgoing transfers). This distinguishes it from siblings like get_transaction and get_balance, which handle different resources.

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 prerequisite: 'Use get_tick_info first to find the current tick number.' This gives context on when to use this tool and how to obtain a needed input. However, it does not explicitly contrast with alternatives (e.g., get_transaction) or provide when-not-to-use guidance, so it stops short of a 5.

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

get_versionA

Get the current qubic-mcp server version

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for disclosing behavior. It only states 'Get the current version' without mentioning that this is a read-only operation, whether it requires network access, potential errors, or the return format. This is a minimal behavioral disclosure.

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

Conciseness5/5

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

The description is a single, short sentence that immediately states the tool's purpose. It is perfectly sized for the tool's simplicity with no unnecessary words or repetition.

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

Completeness4/5

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

Despite the absence of an output schema, the description effectively explains the tool's function for a trivial version-getter. The lack of edge cases or prerequisites keeps the tool simple, so the description is mostly complete, though a note about the return type would have made it fully 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?

The tool has zero parameters, so the baseline is 4 per the guidelines. The description correctly adds no parameter information since the schema already documents an empty properties object; there is nothing more 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 uses a clear verb ('Get') and a specific resource ('qubic-mcp server version'), making its purpose unmistakable. It naturally distinguishes itself from all sibling tools, none of which relate to version retrieval.

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

Usage Guidelines3/5

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

The tool's intended use is implied by its name and description, but there is no explicit guidance on when to use it versus alternatives. Since no sibling performs a similar function, this is acceptable yet still lacks any contextual instruction.

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

list_contractsA

List all registered custom smart contract definitions with their functions and field schemas.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It clearly indicates a read-only operation ('List all') and specifies the return content (definitions with functions and field schemas). It does not mention any side effects or potential pagination, but for a parameterless list tool this is adequate.

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, front-loaded sentence with no filler. It states the action and scope efficiently.

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

Completeness5/5

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

For a parameterless tool with no output schema, the description fully informs the agent of what will be returned: all contract definitions with functions and field schemas. No further context is 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?

The tool has zero parameters and schema coverage is trivially 100%, so the baseline is 4. The description does not need to explain parameters and focuses on the output, which adds context beyond the empty 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 'List' and the resource 'all registered custom smart contract definitions' with added detail about including functions and field schemas. This distinguishes it from siblings like register_contract or query_contract.

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 usage is implied by the wording 'List all' but there is no explicit guidance on when to use this tool versus alternatives such as query_contract or query_smart_contract. No exclusions or alternative naming is provided.

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

list_networksA

List all available Qubic networks (built-in and custom) and show which is currently active.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It accurately describes a read-only listing operation, which is inherently non-destructive. However, it does not explicitly state that there are no side effects or that no special permissions are required. This is a minor gap for a simple list 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?

The description is a single, well-structured sentence that front-loads the verb 'List' and conveys all key information without any wasted 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?

For a zero-parameter tool with no output schema, the description sufficiently covers the core functionality: listing all networks and indicating the active one. It could potentially mention the output format, but this is not necessary given the simplicity of the tool.

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

Parameters4/5

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

The tool has zero parameters, and the schema confirms this. The baseline for 0-parameter tools is 4, and there are no parameter semantics to explain. The description adds no parameter info but none is needed.

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

Purpose5/5

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

The description clearly states the action (List), the resource (all available Qubic networks), and adds specificity ('built-in and custom') and the key feature of showing the active one. This distinguishes it from sibling tools like switch_network or add_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 implies the primary use case: viewing networks and identifying the active one. It does not explicitly state when not to use this tool or mention alternatives, but the context is clear given the sibling tools. A score of 4 reflects the clear context without explicit exclusions.

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

list_walletsA

List all saved Qubic wallet addresses. These are public addresses only — no private keys are ever stored.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does add meaningful behavioral context: addresses are public and private keys are never stored. It also indicates the operation lists all saved wallets, implying no filtering. However, it does not describe the return format or edge cases like an empty list.

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

Conciseness5/5

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

Two short, front-loaded sentences with no redundancy. The first sentence states the action and resource, the second adds a security clarifier, and 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?

For a zero-parameter tool with no annotations and no output schema, the description is nearly complete: it specifies the action, resource, and a key security property. It falls short only in explaining the exact response structure, but that is largely inferable from the described purpose.

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, which warrants a baseline score of 4. The description reinforces that all wallets are listed without any filtering, aligning perfectly with the absence of 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 uses a specific verb ('List') and a clear resource ('all saved Qubic wallet addresses'), which immediately distinguishes it from sibling tools like save_wallet and remove_wallet. The inclusion of 'Qubic' and 'saved' clarifies the exact scope.

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

Usage Guidelines3/5

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

The description implies usage by stating the action but provides no explicit guidance on when to use this tool versus alternatives like save_wallet or remove_wallet. There is no mention of prerequisites or scenarios where this tool is preferred.

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

query_contractA

Query a registered smart contract function with automatic binary encoding/decoding.

Use register_contract first to define the contract's functions and their field schemas. Then call this tool by contract name and function name.

Input values are provided as a JSON object with field names as keys. For example: {"gateId": 1}

The response is automatically decoded into human-readable named fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputNoJSON object of named input parameters (e.g., {"gateId": 1}). Omit for functions with no input.
contractYesName of the registered contract
functionYesName of the function to call

TDQS

A4.1/5.0
Behavior4/5

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

Despite no annotations, the description discloses key behaviors: automatic binary encoding/decoding, input as JSON object with named fields, and response decoded to human-readable fields. This goes beyond the schema and helps the agent anticipate input/output transformations.

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

Conciseness5/5

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

Four short sentences efficiently cover purpose, prerequisite, input format, and output behavior without redundancy. Each sentence contributes 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?

The description covers the full workflow: registration prerequisite, invocation method, input format, and decoded output. It lacks an explicit comparison to query_smart_contract, but the registered-contract scope and automatic decoding are sufficient for the agent.

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 covers 100% of parameters with descriptions, and the description repeats the input format without adding new details. It reinforces the example but doesn't add meaning beyond what the schema already provides, so baseline 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 clearly states the tool 'Quer[ies] a registered smart contract function' with specific encoding/decoding behavior. It is distinct from raw queries by requiring registration, though it doesn't explicitly differentiate from the sibling query_smart_contract.

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

Usage Guidelines4/5

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

It explicitly instructs to 'Use register_contract first' and then call by contract/function name, providing a clear usage sequence. It does not list alternatives or when-not-to-use scenarios, so it misses explicit exclusions.

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

query_smart_contractB

Query a Qubic smart contract (read-only). Returns the contract's response data as base64-encoded bytes.

Known contracts: 1: QX (Decentralized Exchange) 2: Quottery (Betting & Oracles) 3: Random (Random Number Generation) 4: QUTIL (Utility Functions) 5: MLM (My Last Match - Gaming)

This is a low-level query tool. Use inputType to specify which contract function to call, and inputHex for the function parameters (hex-encoded bytes). If unsure about parameters, start with inputType=0 and empty input to get contract info.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputSizeNoSize of input data in bytes (default: 0)
inputTypeYesFunction input type ID (contract-specific)
requestDataNoBase64-encoded input data for the contract function (default: empty)
contractIndexYesSmart contract index (1=QX, 2=Quottery, 3=Random, 4=QUTIL, 5=MLM)

TDQS

B3.3/5.0
Behavior3/5

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

The description explicitly states 'read-only' and that it returns base64-encoded bytes, which is useful given there are no annotations. However, it introduces an inconsistency by mentioning 'inputHex' while the schema's parameter is 'requestData' (base64), which could confuse an agent about the actual input format.

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 a numbered list of known contracts, but that list largely duplicates the schema's contractIndex descriptions. The mention of 'inputHex' adds unnecessary confusion, so it is not fully concise or waste-free.

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

Completeness3/5

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

It covers the return format (base64 bytes), known contract indexes, and provides a starter tip. However, it lacks explanation of inputSize, and the encoding inconsistency (hex vs base64) creates a clear gap. Given no output schema, it's moderately complete but not fully self-sufficient.

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

Parameters2/5

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

Schema coverage is 100% with descriptions for all four parameters, so the baseline is 3. The description adds a helpful tip about inputType=0, but it also mentions a nonexistent parameter 'inputHex', conflicting with the schema's 'requestData' and potentially misleading the agent. This reduces the 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?

Clearly states it queries a Qubic smart contract (read-only) and lists known contracts, providing a specific verb and resource. However, it does not explicitly differentiate from the sibling tool 'query_contract', so it loses the fifth point.

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

Usage Guidelines4/5

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

Provides clear usage guidance: it labels the tool as low-level, instructs to use inputType for function selection, and suggests starting with inputType=0 and empty input to get contract info. This gives practical direction, though it does not discuss alternatives or exclusions.

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

register_contractA

Register a custom smart contract definition for use with query_contract.

Provide the contract's on-chain index and a JSON array of function definitions describing the binary input/output layout. Once registered, you can query the contract by name with automatic encoding and decoding.

Supported field types: uint8, uint16, uint32, uint64, int8, int16, int32, int64, identity (32-byte pubkey ↔ 60-char address), padding (skipped bytes).

Fields support "count" for arrays (e.g., 8 recipients) and "enum" for value→label mapping.

Example functions JSON: [{ "name": "getGateCount", "inputType": 6, "input": [], "output": [ { "name": "totalGates", "type": "uint64" }, { "name": "activeGates", "type": "uint64" } ] }]

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesContract name (e.g., QGate)
identityNoContract's 60-character Qubic identity (optional, informational)
functionsYesJSON array of function definitions with input/output field schemas
descriptionNoHuman-readable description of the contract
contractIndexYesOn-chain contract index

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It discloses supported field types, array count, enum mapping, and post-registration behavior, but omits side effects such as overwrite semantics, validation errors, or required permissions. This is a clear gap for a mutation tool.

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

Conciseness4/5

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

The description is front-loaded with the core purpose, followed by usage summary, type details, and an example. It is longer than a one-liner but every sentence earns its place; the example is essential for understanding the expected JSON structure.

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

Completeness3/5

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

For a tool with 5 parameters and no output schema, the input side is well covered, but the description does not mention what the tool returns or how failures are reported. A brief note on return value and error handling would make it more complete, especially 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.

Parameters5/5

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

Schema coverage is 100%, but the schema's description of the 'functions' parameter is generic. The description adds substantial meaning by detailing the JSON structure, supported field types, count/enum syntax, and providing a complete example. This goes well beyond the structured field 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 opens with "Register a custom smart contract definition for use with query_contract," clearly identifying the verb, resource, and intended downstream use. It distinguishes the tool from siblings like list_contracts and remove_contract by explicitly naming query_contract as the consumer.

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 that registration enables querying by name with automatic encoding/decoding, giving a clear context for when to use it. It does not explicitly exclude alternatives (e.g., query_smart_contract for built-in contracts), but the term 'custom' and the link to query_contract imply the scope.

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

remove_contractB

Remove a registered smart contract definition by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the contract to remove

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It only states the removal action and does not mention side effects, irreversibility, error handling for non-existent names, or permission requirements. Minimal information beyond the core operation.

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

Conciseness5/5

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

The description is a single, concise sentence with no unnecessary words. It efficiently communicates the essential purpose without filler.

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

Completeness2/5

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

The tool is a mutation with no annotations and no output schema, so the description must explain more about expected behavior. It lacks information about return values, error cases, or side effects, making it incomplete for an agent to fully anticipate outcomes.

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% for the single 'name' parameter, and the schema provides a clear description. The tool description only repeats 'by name', adding no additional meaning. 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 action ('Remove'), the resource ('registered smart contract definition'), and the method ('by name'). It effectively distinguishes this tool from siblings like register_contract, list_contracts, and query_contract.

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

Usage Guidelines3/5

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

The description implies usage when one wants to remove a contract, but it does not provide explicit context such as prerequisites (e.g., contract must exist) or when to prefer alternatives. No exclusions or alternative tool references are given, making it a basic implied usage.

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

remove_networkA

Remove a saved custom network. Cannot remove built-in networks (mainnet, testnet). If the removed network was active, switches back to mainnet.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the custom network to remove

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It clearly states two key behaviors: built-in networks cannot be removed, and if the removed network was active, the tool switches back to mainnet. This goes beyond the basic 'delete' action and helps the agent anticipate side effects.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, and no wasted words. The description efficiently covers purpose, a key restriction, and a behavioral consequence in a compact form.

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 a single parameter and no output schema, the description is complete. It addresses the main action, the critical edge case (built-in networks), and a relevant fallback behavior (switching to mainnet), covering all necessary context.

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

Parameters4/5

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

The schema fully documents the 'name' parameter (100% coverage), so the baseline is 3. The description adds value by clarifying that the name refers to a 'saved custom network' and that built-in names are invalid, which helps the agent select an appropriate value for 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 uses a specific verb ('Remove') and resource ('saved custom network'), clearly distinguishing it from sibling tools like add_network, switch_network, and list_networks. It also states what it cannot do (removing built-in networks), further clarifying 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 implicitly guides usage by restricting to custom networks and explicitly noting that built-in networks cannot be removed. While it doesn't name alternative tools, the context signals and siblings make it clear when to use this tool. The built-in network exclusion is a useful usage constraint.

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

remove_walletA

Remove a saved wallet by name. This only removes the local reference — it does not affect the actual blockchain address in any way.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the wallet to remove

TDQS

A3.8/5.0
Behavior4/5

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

The description clearly discloses a crucial behavioral trait: it only removes the local reference and does not affect the blockchain address. This is particularly important for a deletion operation, though it does not mention potential errors or side effects like wallet-not-found behavior.

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

Conciseness5/5

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

The description is two sentences long, directly states the action and the key caveat, and contains no extraneous information. It is front-loaded with the verb and resource.

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, the description adequately covers purpose and the most important behavioral nuance. It lacks details about return values or error handling, but since there is no output schema and the operation is straightforward, this is a minor 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?

The input schema already fully describes the single parameter ('name' with 'The name of the wallet to remove'), and the description reinforces this with 'by name'. With 100% schema description coverage, the description adds no extra parameter context, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Remove') and resource ('a saved wallet by name'), making the tool's function immediately clear. It also implicitly distinguishes itself from sibling tools like 'save_wallet' and 'list_wallets' by focusing on removal.

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

Usage Guidelines2/5

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

No explicit guidance is given on when to use this tool versus alternatives. It does not name alternatives or provide context for specific scenarios, leaving the agent to infer usage solely from the tool's name.

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

save_walletA

Save a Qubic wallet address with a friendly name for quick access. Only saves the public address — never stores seeds or private keys. Stored locally in ~/.qubic-mcp/wallets.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesA friendly name for this wallet (e.g., "my-main", "trading", "savings")
addressYesThe 60-character Qubic address to save

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description fully carries the burden of disclosure. It explicitly states that only public addresses are saved, never seeds/private keys, and that data is stored locally in ~/.qubic-mcp/wallets.json. This is critical behavioral context for an agent handling wallet information.

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 primary action, and each sentence contributes unique value: purpose and security/storage detail. There is 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?

For a simple 2-parameter save tool with no output schema, the description covers the core purpose, the privacy implications, and the storage location. This is sufficient for an agent to understand what the tool does and what side effects to expect, without needing additional return-value 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 the schema already provides full parameter meaning. The description adds a small reinforcement ('friendly name' aligns with the name parameter) but does not add any extra constraints or format details beyond the schema, matching the baseline expectation.

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+resource: 'Save a Qubic wallet address with a friendly name for quick access.' It distinguishes from sibling tools (list_wallets, remove_wallet) by explicitly focusing on the save action, and adds a specific safety clarification that only the public address is stored, never seeds/private keys.

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 conveys clear context: use when you want to store a wallet for quick access. It does not explicitly mention alternatives or when not to use, but the sibling tool names ('list_wallets', 'remove_wallet') implicitly provide the decision boundary, and the phrase 'for quick access' gives a concrete use case.

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

switch_networkA

Switch the active Qubic network. All subsequent tool calls will use the new endpoint. Built-in networks: "mainnet", "testnet". Use add_network to save custom networks.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNetwork name to switch to (e.g., "mainnet", "testnet", "local")

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the key behavioral trait that all subsequent tool calls use the new endpoint, which is essential. It doesn't mention failure modes or permissions, but for a simple switch tool this is adequate.

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 short sentences, front-loaded with the core action, and every sentence adds value. No redundant or artificial detail.

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

Completeness5/5

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

For a single-parameter tool with no output schema, the description covers purpose, effect, built-in options, and the alternative for custom networks. It is fully sufficient for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100% and the schema already describes the 'name' parameter with examples. The description adds little beyond that, only noting built-in networks, so it meets the baseline without adding extra 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 uses a specific verb ('switch') and resource ('active Qubic network'), clearly distinguishing it from sibling tools like add_network, list_networks, and remove_network. It also states the consequence of the switching action.

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

Usage Guidelines5/5

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

It explicitly names the alternative tool for custom networks ('Use add_network to save custom networks'), and implies this tool is for switching to built-in networks. It also notes that the switch affects all subsequent calls, providing clear context.

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

validate_addressA

Validate a Qubic address format and check if it exists on-chain with balance or transfer activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesQubic address to validate (should be 60 uppercase letters)

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly explains that validity is determined by format plus on-chain existence with balance or transfer activity, which is transparent about the validation criteria. It does not state side effects, but as a validation tool it is implicitly read-only, and the description adds meaningful context beyond the tool name.

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, front-loaded sentence that conveys the complete purpose and validation criteria without any filler. It is concise and efficient, earning the highest score for structure.

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

Completeness4/5

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

For a tool with one required parameter and no output schema, the description covers the core function well: it defines what 'validate' means (format + on-chain existence). It does not describe the return format, which would be helpful but is not strictly necessary given the tool's simplicity. The description is reasonably complete for an agent to invoke correctly.

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

Parameters3/5

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

The input schema already documents the single parameter with a clear description ('Qubic address to validate (should be 60 uppercase letters)'), and schema_description_coverage is 100%. The tool description does not add any extra meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('validate') and identifies the resource ('Qubic address'), then clearly distinguishes itself from siblings by specifying the two-part check: format and on-chain existence with balance or transfer activity. No other sibling tool performs validation, so this tool is unambiguous.

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

Usage Guidelines3/5

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

The description implies usage for validating an address before operations, but it does not explicitly state when to use this tool versus alternatives (e.g., get_balance or get_transfer_history for checking activity). It provides no when-not-to-use guidance or references to sibling tools.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 27 tool updatesv0.5.2
    • First observedadd_network
    • First observedconvert_qu_usd
    • First observedget_balance
    • First observedget_epoch_computors
    • First observedget_explorer_links
    • First observedget_mining_phase
    • First observedget_network_status
    • First observedget_qx_orderbook
    • First observedget_rich_list
    • First observedget_tick_info
    • First observedget_token_list
    • First observedget_token_price
    • First observedget_transaction
    • First observedget_transfer_history
    • First observedget_version
    • First observedlist_contracts
    • First observedlist_networks
    • First observedlist_wallets
    • First observedquery_contract
    • First observedquery_smart_contract
    • First observedregister_contract
    • First observedremove_contract
    • First observedremove_network
    • First observedremove_wallet
    • First observedsave_wallet
    • First observedswitch_network
    • First observedvalidate_address

TDQS

A3.6/5.0

Scored across 27 tools

Disambiguation3/5

Several tools have overlapping purposes, such as get_tick_info and get_network_status both returning tick data, and query_smart_contract vs query_contract both dealing with contract queries. Descriptions help distinguish them, but the boundaries are not always clear, especially for agents choosing between the two contract query tools.

Naming Consistency4/5

Most tools use a consistent verb_noun pattern (e.g., save_wallet, list_wallets, get_balance). Minor deviations include the confusing similarity between query_smart_contract and query_contract, and the use of 'qu_usd' instead of a more standard naming convention, but overall the pattern is predictable.

Tool Count2/5

With 27 tools, the server exceeds the threshold for a heavy tool set (25+). While the breadth covers many Qubic features, the count feels excessive and could be consolidated, such as merging the two contract query tools or reducing the number of local config tools.

Completeness3/5

The server covers a wide range of read-only Qubic operations: balances, transfers, network status, mining, DEX orderbooks, and smart contract queries. However, there is no ability to send transactions or perform any on-chain write, which is a notable gap for a wallet and network management server, even if intentional for security.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers