Skip to main content
Glama
klever-io
by klever-io

Klever MCP Server

A Model Context Protocol (MCP) server tailored for Klever blockchain smart contract development. This server maintains and serves contextual knowledge including code patterns, best practices, and runtime behavior for developers working with the Klever VM SDK.

Features

  • šŸš€ Triple Mode Operation: Run as HTTP API server, MCP stdio server, or public hosted MCP server

  • šŸ’¾ Flexible Storage: In-memory or Redis backend support

  • šŸ” Smart Context Retrieval: Query by type, tags, or contract type

  • šŸ“ Automatic Pattern Extraction: Parse Klever contracts to extract examples and patterns

  • šŸŽÆ Relevance Ranking: Intelligent scoring and ranking of context

  • šŸ”„ Live Updates: Add and update context in real-time

  • šŸ›”ļø Type Safety: Full TypeScript with Zod validation

  • šŸ“š Comprehensive Knowledge Base: Pre-loaded with Klever VM patterns, best practices, and examples

  • šŸ”§ Contract Validation: Automatic detection of common issues and anti-patterns

  • šŸš€ Deployment Scripts: Ready-to-use scripts for contract deployment, upgrade, and querying

Related MCP server: code-graph-rag-mcp

Quick Start

Install and run instantly via npx — no cloning required:

npx -y @klever/mcp-server

Or connect to the hosted public server:

claude mcp add -t http klever-vm https://mcp.klever.org/mcp

See MCP Client Integration for client-specific configuration.

Architecture

mcp-klever-vm/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ api/          # HTTP API routes with validation
│   ā”œā”€ā”€ context/      # Context management service layer
│   ā”œā”€ā”€ mcp/          # MCP protocol server implementation
│   ā”œā”€ā”€ parsers/      # Klever contract parser and validator
│   ā”œā”€ā”€ storage/      # Storage backends (memory/Redis)
│   │   ā”œā”€ā”€ memory.ts # In-memory storage with size limits
│   │   └── redis.ts  # Redis storage with optimized queries
│   ā”œā”€ā”€ types/        # TypeScript type definitions
│   ā”œā”€ā”€ utils/        # Utilities and ingestion tools
│   └── knowledge/    # Modular knowledge base (95+ entries)
│       ā”œā”€ā”€ core/     # Core concepts and imports
│       ā”œā”€ā”€ storage/  # Storage patterns and mappers
│       ā”œā”€ā”€ events/   # Event handling and rules
│       ā”œā”€ā”€ tokens/   # Token operations and decimals
│       ā”œā”€ā”€ modules/  # Built-in modules (admin, pause)
│       ā”œā”€ā”€ tools/    # CLI tools (koperator, ksc)
│       ā”œā”€ā”€ scripts/  # Helper scripts
│       ā”œā”€ā”€ examples/ # Complete contract examples
│       ā”œā”€ā”€ errors/   # Error patterns
│       ā”œā”€ā”€ best-practices/ # Optimization and validation
│       └── documentation/  # API reference
ā”œā”€ā”€ tests/            # Test files
└── docs/             # Documentation

Key Improvements Made

  1. Storage Layer

    • Added memory limits to prevent OOM in InMemoryStorage

    • Optimized Redis queries to avoid O(N) KEYS command

    • Added atomic transactions for Redis operations

    • Improved error handling and validation

  2. API Security

    • Added input validation for all endpoints

    • Batch operation size limits

    • Proper error responses without leaking internals

    • Environment-aware error messages

  3. Type Safety

    • Centralized schema validation

    • Proper TypeScript interfaces for options

    • Runtime validation of stored data

  4. Performance

    • Batch operations using Redis MGET

    • Index-based queries instead of full scans

    • Optimized count operations

Installation

  1. Clone the repository:

git clone https://github.com/klever-io/mcp-klever-vm.git
cd mcp-klever-vm
  1. Install dependencies:

pnpm install
  1. Copy environment configuration:

cp .env.example .env
  1. Install Klever SDK tools (required for transactions):

chmod +x scripts/install-sdk.sh && ./scripts/install-sdk.sh
  1. Build the project:

pnpm run build

Configuration

Edit .env file to configure the server:

# Server Mode (http, mcp, or public)
MODE=http

# HTTP Server Port (only for http mode)
PORT=3000

# Storage Backend (memory or redis)
STORAGE_TYPE=memory

# Maximum contexts for in-memory storage (default: 10000)
MEMORY_MAX_SIZE=10000

# Redis URL (only if STORAGE_TYPE=redis)
REDIS_URL=redis://localhost:6379

# Node environment (development or production)
NODE_ENV=development

MCP Client Integration

Claude Code

# Add via npx (recommended)
claude mcp add klever-vm -- npx -y @klever/mcp-server

# Or connect to the public hosted server
claude mcp add -t http klever-vm https://mcp.klever.org/mcp

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "klever-vm": {
      "command": "npx",
      "args": ["-y", "@klever/mcp-server"]
    }
  }
}

For detailed setup, see the Claude Desktop Installation Guide.

Cursor

Add to your Cursor MCP settings (.cursor/mcp.json):

{
  "mcpServers": {
    "klever-vm": {
      "command": "npx",
      "args": ["-y", "@klever/mcp-server"]
    }
  }
}

VS Code (GitHub Copilot)

Add to .vscode/mcp.json in your project:

{
  "servers": {
    "klever-vm": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@klever/mcp-server"]
    }
  }
}

For detailed setup, see the VS Code Installation Guide.

Public MCP Server

The Klever MCP Server can be hosted as a public shared service, allowing any developer to connect without running it locally.

Connecting to the Public Server

# Add permanently (user-level)
claude mcp add -t http klever-vm https://mcp.klever.org/mcp

# Add for current project only
claude mcp add -t http -s project klever-vm https://mcp.klever.org/mcp

Available Tools (Public Mode)

The public server exposes a read-only subset of tools for security:

Tool

Description

query_context

Search the Klever VM knowledge base

get_context

Retrieve a specific context by ID

find_similar

Find contexts similar to a given context

get_knowledge_stats

Get knowledge base statistics

enhance_with_context

Enhance queries with relevant Klever VM context

Write operations (add_context) and shell-based tools (init_klever_project, add_helper_scripts) are disabled in public mode.

Self-Hosting with Docker

# Build and run
docker build -t mcp-klever-vm .
docker run -p 3000:3000 mcp-klever-vm

# Or using docker compose
docker compose up -d

Then connect:

claude mcp add -t http klever-vm-local http://localhost:3000/mcp

Self-Hosting without Docker

pnpm install
pnpm run build
pnpm run start:public

Environment Variables (Public Mode)

Variable

Default

Description

MODE

http

Set to public for hosted mode

PORT

3000

Server port

CORS_ORIGINS

(unset)

Comma-separated allowed origins. Unset or * allows all origins

RATE_LIMIT_MCP

60

MCP endpoint requests/min per IP

RATE_LIMIT_API

30

API endpoint requests/min per IP

BODY_SIZE_LIMIT

1mb

Max request body size

Deployment Notes

For production at mcp.klever.org:

  • Deploy Docker container behind a reverse proxy (nginx/Caddy/cloud LB) for TLS termination

  • Ensure proxy passes mcp-session-id header and supports SSE (disable response buffering)

  • Single instance is sufficient as the server is read-only with an in-memory knowledge base

  • Consider Cloudflare for DDoS protection (SSE is supported)

Usage

Knowledge Base Loading

The server automatically loads the Klever knowledge base based on your storage type:

Memory Storage (Default)

  • Knowledge is automatically loaded when the server starts

  • No need to run pnpm run ingest separately

  • Data exists only while server is running

  • Best for development and testing

Redis Storage

# First, ingest the knowledge base (one time)
pnpm run ingest

# Then start the server
pnpm run dev
  • Knowledge persists in Redis database

  • Survives server restarts

  • Best for production use

This will load:

  • Smart contract templates and examples

  • Annotation rules and best practices

  • Storage mapper patterns and comparisons

  • Deployment and query scripts

  • Common errors and solutions

  • Testing patterns

  • API reference documentation

Running as HTTP Server

# Development mode
pnpm run dev

# Production mode
pnpm run build && pnpm start

The HTTP API will be available at http://localhost:3000/api

Running as MCP Server

MODE=mcp pnpm start

Use with any MCP-compatible client.

API Endpoints

POST /api/context

Ingest new context into the system.

{
  "type": "code_example",
  "content": "contract code here",
  "metadata": {
    "title": "Token Contract Example",
    "description": "ERC20-like token implementation",
    "tags": ["token", "fungible"],
    "contractType": "token"
  }
}

GET /api/context/:id

Retrieve specific context by ID.

POST /api/context/query

Query contexts with filters.

{
  "query": "transfer",
  "types": ["code_example", "best_practice"],
  "tags": ["token"],
  "contractType": "token",
  "limit": 10,
  "offset": 0
}

PUT /api/context/:id

Update existing context.

DELETE /api/context/:id

Delete context.

GET /api/context/:id/similar

Find similar contexts.

POST /api/context/batch

Batch ingest multiple contexts.

MCP Tools

When running as MCP server, the following tools are available:

  • query_context: Search for relevant Klever development context

  • add_context: Add new context to the knowledge base

  • get_context: Retrieve specific context by ID

  • find_similar: Find contexts similar to a given context

  • get_knowledge_stats: Get statistics about the knowledge base

  • init_klever_project: Initialize a new Klever smart contract project with helper scripts

  • enhance_with_context: Automatically enhance queries with relevant Klever VM context

Context Types

  • code_example: Working code snippets and examples (Rust smart contract code)

  • best_practice: Recommended patterns and practices

  • security_tip: Security considerations and warnings

  • optimization: Performance optimization techniques

  • documentation: General documentation and guides

  • error_pattern: Common errors and solutions

  • deployment_tool: Deployment scripts and utilities (bash scripts, tools)

  • runtime_behavior: Runtime behavior explanations

Pre-loaded Knowledge Base

The MCP server includes a comprehensive knowledge base with 95+ entries organized into 11 categories:

Critical Patterns

  • Payment handling and token operations

  • Decimal conversions and calculations

  • Event emission and parameter rules

  • CLI tool usage and best practices

Contract Patterns & Examples

  • Basic contract structure templates

  • Complete lottery game implementation

  • Staking contract with rewards

  • Cross-contract communication patterns

  • Remote storage access patterns

  • Token mapper helper modules

Development Tools

  • Koperator: Complete CLI reference with argument encoding

  • KSC: Build commands and project setup

  • Deployment, upgrade, and query scripts

  • Interactive contract management tools

  • Common utilities library (bech32, network management)

Storage & Optimization

  • Storage mapper selection guide with performance comparisons

  • Namespace organization patterns

  • View endpoints for efficient queries

  • Gas optimization techniques

  • OptionalValue vs Option patterns

Best Practices & Security

  • Input validation patterns

  • Error handling strategies

  • Admin and pause module usage

  • Access control patterns

  • Common mistakes and solutions

Ingesting Contracts

Use the built-in ingestion utilities to parse and import Klever contracts:

import { StorageFactory } from './storage/index.js';
import { ContextService } from './context/service.js';
import { ContractIngester } from './utils/ingest.js';

const storage = StorageFactory.create('memory');
const contextService = new ContextService(storage);
const ingester = new ContractIngester(contextService);

// Ingest a single contract
await ingester.ingestContract('./path/to/contract.rs', 'AuthorName');

// Ingest entire directory
await ingester.ingestDirectory('./contracts', 'AuthorName');

// Add common patterns
await ingester.ingestCommonPatterns();

Development

# Run tests
pnpm test

# Lint code
pnpm run lint

# Format code
pnpm run format

# Watch mode
pnpm run dev

# Ingest/update knowledge base
pnpm run ingest

Contract Validation

The server can automatically validate Klever contracts and detect issues:

import { KleverValidator } from './parsers/validators.js';

const issues = KleverValidator.validateContract(contractCode);
// Returns array of detected issues with suggestions

Validation checks include:

  • Event annotation format (double quotes, camelCase)

  • Managed type API parameters

  • Zero address validation in transfers

  • Optimal storage mapper selection

  • Module naming conventions

Example Use Cases

1. Smart Contract Development Assistant

Integrate with your IDE to provide context-aware suggestions for Klever contract development.

2. Code Review Tool

Automatically check contracts against best practices and security patterns.

3. Learning Platform

Provide examples and explanations for developers learning Klever development.

4. Documentation Generator

Extract and organize contract documentation automatically.

Project Specifications and Examples

For complete project implementation examples and specifications, see:

  • Project Specification Template - A fill-in template for specifying Klever smart contract projects. Guides AI assistants through MCP knowledge discovery, task tracking, and phased implementation. Includes a KleverDice example.

Project Initialization

The MCP server includes a powerful project initialization tool that creates a new Klever smart contract project with all necessary helper scripts.

Using the init_klever_project Tool

When connected via MCP, use the init_klever_project tool:

{
  "name": "my-token-contract",
  "template": "empty",
  "noMove": false
}

Parameters:

  • name (required): The name of your contract

  • template (optional): Template to use (default: "empty")

  • noMove (optional): If true, keeps project in subdirectory (default: false)

Generated Helper Scripts

The tool creates the following scripts in the scripts/ directory:

  • build.sh: Builds the smart contract

  • deploy.sh: Deploys to Klever testnet with auto-detection of contract artifacts

  • upgrade.sh: Upgrades existing contract (auto-detects from history.json)

  • query.sh: Query contract endpoints with proper encoding/decoding

  • test.sh: Run contract tests

  • interact.sh: Shows usage examples and available commands

Example Workflow

  1. Initialize project:

    # Via MCP tool
    init_klever_project({"name": "my-contract"})
  2. Build contract:

    ./scripts/build.sh
  3. Deploy to testnet:

    ./scripts/deploy.sh
  4. Query contract:

    ./scripts/query.sh --endpoint getSum
    ./scripts/query.sh --endpoint getValue --arg myKey
  5. Upgrade contract:

    ./scripts/upgrade.sh

All deployment history is tracked in output/history.json for easy reference.

Automatic Context Enhancement

The MCP server can automatically enhance queries with relevant Klever VM context. This ensures your MCP client always has access to the most relevant information.

Using Context Enhancement

Use the enhance_with_context tool to automatically add relevant context to any query:

{
  "tool": "enhance_with_context",
  "arguments": {
    "query": "How do I create a storage mapper?",
    "autoInclude": true
  }
}

This will:

  1. Extract relevant keywords from the query

  2. Search the knowledge base for matching contexts

  3. Return an enhanced query with context included

  4. Provide metadata about what was found

Integration Pattern

For MCP clients that want to always check Klever context first:

// Always enhance Klever-related queries
if (query.match(/klever|kvm|smart contract|endpoint/i)) {
  const enhanced = await callTool('enhance_with_context', { query });
  // Use enhanced.enhancedQuery for processing
}

The context enhancement feature automatically enriches queries with relevant Klever VM knowledge from the comprehensive knowledge base.

Integration Examples

VS Code Extension

// Query for token transfer examples
const response = await fetch('http://localhost:3000/api/context/query', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    query: 'transfer',
    types: ['code_example'],
    contractType: 'token'
  })
});

CLI Tool

# Using curl to add context
curl -X POST http://localhost:3000/api/context \
  -H "Content-Type: application/json" \
  -d '{
    "type": "security_tip",
    "content": "Always check for zero address",
    "metadata": {
      "title": "Zero Address Check",
      "tags": ["security", "validation"]
    }
  }'

Contributing

Contributions are welcome! Please:

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests

  5. Submit a pull request

License

MIT License - see LICENSE file for details

Acknowledgments

Available Tools

23 tools
add_contextAInspect

Add a new knowledge entry to the Klever VM context store. Use this to save code examples, best practices, security tips, or documentation that can later be retrieved via query_context or search_documentation. Returns the generated ID of the new entry.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesThe category of this knowledge entry. Choose the most specific type: "code_example" for Rust snippets, "best_practice" for recommended patterns, "security_tip" for vulnerability guidance, "error_pattern" for known error solutions.
contentYesThe main content body — typically Rust source code, a CLI command, or a detailed explanation. For code, include the full working snippet.
metadataYesEntry metadata including title, tags, and categorization. At minimum, provide a title.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations (readOnlyHint=false) indicate write operation; description confirms it adds an entry and returns an ID. Adds context about storage for later retrieval. Does not contradict annotations. Could mention potential limits or failure modes, but sufficient.

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

Conciseness5/5

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

Two concise sentences: first states action and resource, second gives usage context and return value. No fluff, well-structured.

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

Completeness4/5

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

Covers purpose, usage, return value, and param details via schema. Lacks error handling or storage constraints, but for a simple add operation with complete schema, it's nearly complete.

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

Parameters3/5

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

Schema description coverage is 100% with detailed param docs (type enum, metadata nested fields). Description adds only return value info. Baseline score of 3 applies as schema handles semantics adequately.

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 verb ('add'), resource ('knowledge entry to Klever VM context store'), and purpose ('save code examples, best practices...'). Differentiates from sibling tools like query_context and search_documentation by noting retrieval. No tautology.

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

Usage Guidelines4/5

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

Provides explicit use cases (saving various knowledge types) and hints at alternatives for retrieval. Lacks explicit when-not-to-use or distinction from siblings like add_helper_scripts, but context is clear enough.

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

add_helper_scriptsA
Idempotent
Inspect

Add build, deploy, upgrade, query, test, and interact automation scripts to an existing Klever smart contract project. Creates a scripts/ directory with bash scripts and updates .gitignore. Run this from the project root directory (where Cargo.toml is located). This tool generates scaffold files — for koperator CLI syntax reference (correct flags like --args, --values for payments), use search_documentation instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
contractNameNoThe contract name to embed in scripts (e.g. "my-token"). If omitted, auto-detected from the `name` field in Cargo.toml.

TDQS

A4.5/5.0
Behavior4/5

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

Description adds behavioral context beyond annotations: it creates a scripts/ directory, updates .gitignore, and generates scaffold files. Annotations already mark it as idempotent and non-destructive. No contradictions. Slightly lacking details on overwrite behavior for existing files, but sufficient.

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

Conciseness5/5

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

Two efficient sentences: first lists script types, second gives prerequisite and alternative tool reference. No unnecessary words, well front-loaded.

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

Completeness5/5

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

For a simple tool with one optional parameter and no output schema, the description covers purpose, prerequisites, and boundary with search_documentation. It is complete enough for an agent to select and 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 single parameter contractName has full schema description coverage (100%). The schema already explains its purpose and auto-detection behavior. The tool description does not add further parameter details, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool adds automation scripts (build, deploy, upgrade, etc.) to an existing project. It uses a specific verb-resource combination and distinguishes itself from sibling tools like deploy_sc by clarifying it generates scaffold scripts, not performing deployments.

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

Usage Guidelines5/5

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

Explicitly says to run from the project root directory and directs users to search_documentation for CLI syntax reference, providing clear when-to-use and when-not-to-use guidance. Also implies the tool is for existing projects.

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

analyze_contractA
Read-onlyIdempotent
Inspect

Analyze Klever smart contract Rust source code for common issues. Checks for missing imports, missing #[klever_sc::contract] macro, missing endpoint annotations, payable handlers without call_value usage, storage mappers without #[storage_mapper], and missing event definitions. Returns findings with severity (error/warning/info) and links to relevant knowledge base entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceCodeYesThe full Rust source code of the Klever smart contract to analyze. Must be valid Rust code using klever_sc imports.
contractNameNoHuman-readable name for the contract (used in output labeling). Defaults to "contract" if omitted.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds value by detailing exactly what checks are performed and the output format (findings with severity and KB links), going beyond annotations without contradicting them.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, and every word earns its place. The first sentence lists the checks and the second describes the output, with no fluff 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?

The description covers the tool's purpose, the specific checks, and the output format. Since there is no output schema, it appropriately describes return values. It does not mention potential limitations (e.g., false positives) but is sufficiently complete for a static analysis tool.

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

Parameters3/5

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

Schema description coverage is 100%, with both sourceCode and contractName having clear descriptions. The tool description itself does not add parameter-level detail beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Analyze') and resource ('Klever smart contract Rust source code'), and enumerates the common issues checked (missing imports, macro, endpoint annotations, etc.). This clearly distinguishes it from sibling tools that query blockchain state or documentation.

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

Usage Guidelines4/5

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

The description clearly implies the tool is for static analysis of Klever contract Rust source, and there are no competing siblings for this purpose. However, it does not explicitly state when to use it over alternatives or exclude other use cases, missing the top tier for explicit exclusions.

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

check_sdk_statusA
Read-onlyIdempotent
Inspect

Check whether the Klever SDK is installed and report the status of each component. Returns JSON with installation state and versions for: ksc (smart contract compiler), koperator (blockchain CLI), VM library (libvmexeccapi), and wallet key file. Run this before init_klever_project or install_klever_sdk to verify prerequisites.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint; description adds useful detail about returned JSON with component status, beyond what annotations provide.

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

Conciseness5/5

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

Two concise sentences, front-loaded with purpose and actionable context, no superfluous 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 zero-parameter, read-only check tool, description adequately covers purpose, return format, and usage context. Lacks error handling details but sufficient.

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

Parameters4/5

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

No parameters, so schema coverage is trivial. Description does not need to add param info; baseline 4 applies.

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

Purpose5/5

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

Clearly states checking SDK installation and component status, listing specific components (ksc, koperator, etc.), distinguishing from sibling tools like init_klever_project and install_klever_sdk.

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

Usage Guidelines4/5

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

Explicitly advises running before init_klever_project or install_klever_sdk to verify prerequisites, providing clear context for appropriate use.

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

deploy_scAInspect

Build an unsigned smart contract deployment transaction for the Klever blockchain. Provide either wasmPath (preferred — reads the file server-side) or wasmHex. Returns the unsigned transaction for client-side signing. The MCP server NEVER handles private keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
senderYesDeployer address (klv1... bech32 format).
wasmPathNoAbsolute path to the compiled WASM file (preferred over wasmHex to avoid loading large binaries into AI context).
wasmHexNoSmart contract WASM bytecode as a hex-encoded string. Use wasmPath instead for large contracts.
initArgsNoOptional base64-encoded init arguments for the contract constructor.
networkNoNetwork to use. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate non-read-only behavior (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds critical behavioral context: the tool never handles private keys, returns an unsigned transaction for client-side signing, and reads files server-side. These details go beyond annotations and aid safe use.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the main purpose. Every sentence adds necessary information: action, parameter guidance, and security context. No wasted words.

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

Completeness4/5

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

Given the absence of an output schema and the tool's moderate complexity (5 params, 1 required), the description covers the core workflow adequately. It explains the transaction lifecycle (build unsigned → sign client-side). It could improve by specifying the return format or error handling, but for an agent the description is sufficiently complete.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema already describes each parameter. The description adds limited extra value: it explains the preference for wasmPath to avoid large context loads and mentions that network defaults to mainnet. However, it does not provide deeper semantics beyond what the schema offers.

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

Purpose5/5

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

The description clearly states it builds an unsigned smart contract deployment transaction for the Klever blockchain. It distinguishes the tool by specifying the two input methods (wasmPath and wasmHex) and their preference. No sibling tool performs deployment, so differentiation is inherently clear.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool (for deploying a smart contract) and gives guidance on parameter choice (prefer wasmPath). It does not explicitly exclude alternative tools like invoke_sc, but the purpose is specific enough that an agent can infer when to use it.

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

enhance_with_contextA
Read-onlyIdempotent
Inspect

Augment a natural-language query with relevant Klever VM knowledge base context. Extracts Klever-specific keywords, finds matching entries, and returns the original query combined with relevant code examples and documentation in markdown. Use this to enrich a user prompt before answering Klever development questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe user's natural-language question or prompt to enhance (e.g. "How do I handle KLV payments in my contract?").
autoIncludeNoWhen true (default), automatically appends the most relevant knowledge base entries to the response. Set to false to only return metadata without injecting context.

TDQS

A4.2/5.0
Behavior4/5

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

The description goes beyond the annotations by explaining the internal process (keyword extraction, matching entries) and the output format (markdown combining original query with examples/documentation). Since annotations already declare read-only, idempotent, and non-destructive behavior, this added context is valuable and does not contradict them.

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

Conciseness5/5

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

The description is two sentences long, immediately states the core purpose, and includes a practical usage hint. Every sentence contributes meaning without redundancy.

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

Completeness4/5

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

Given the tool has full schema coverage and no output schema, the description sufficiently conveys the output format (markdown), the processing steps, and the intended use case. It does not over-explain, and the provided context is adequate 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 description coverage is 100%, so both parameters ('query' and 'autoInclude') are already well-documented in the schema. The description reiterates the behavior (combining original query with context) but adds no new parameter-specific semantics beyond what the schema provides.

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

Purpose5/5

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

The description clearly states a specific action ('Augment a natural-language query') and a specific resource ('with relevant Klever VM knowledge base context'). It further elaborates on the process (extracting keywords, finding entries, returning combined markdown) and distinguishes itself from sibling search tools by focusing on enriching a prompt for downstream use.

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 context: 'Use this to enrich a user prompt before answering Klever development questions.' This implies a distinct stage (pre-processing) compared to sibling tools like query_context or search_documentation, but it does not explicitly mention when not to use it or name alternative tools.

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

find_similarA
Read-onlyIdempotent
Inspect

Find knowledge base entries similar to a given entry by comparing tags and content. Returns related contexts ranked by similarity score. Useful for discovering related patterns, examples, or documentation after finding one relevant entry.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe context ID to find similar entries for. Obtain from query_context or get_context results.
limitNoMaximum number of similar entries to return. Typical range is 1-20; higher values may be slower. Default: 5.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds behavioral context by explaining the comparison method ('comparing tags and content') and the output ranking ('ranked by similarity score'), providing value beyond the structured annotations.

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

Conciseness5/5

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

The description is two sentences with no fluff. The main action is front-loaded, and every phrase adds value: what it does, how it does it, and when to use it.

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

Completeness5/5

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

For a read-only tool with a straightforward purpose and no output schema, the description covers what, how, and when to use it. The input requirements are fully documented in the schema, so no further context 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?

Schema coverage is 100%, with both parameters (id and limit) having detailed descriptions. The tool description doesn't add additional parameter semantics beyond the schema, 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 explicitly states 'Find knowledge base entries similar to a given entry by comparing tags and content,' using a specific verb+resource. It distinguishes from sibling tools like query_context and get_context by focusing on similarity ranking rather than direct search or 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?

It provides a clear use case: 'Useful for discovering related patterns, examples, or documentation after finding one relevant entry.' This implies when to use it, though it doesn't explicitly name alternatives or exclusion scenarios, so it falls 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.

freeze_klvAInspect

Build an unsigned Freeze KLV transaction on the Klever blockchain. Freezing KLV provides energy/bandwidth for network operations and enables staking rewards. Returns the unsigned transaction for client-side signing.

ParametersJSON Schema
NameRequiredDescriptionDefault
senderYesAddress to freeze from (klv1... bech32 format).
amountYesAmount of KLV to freeze in the smallest unit (1 KLV = 1,000,000 units).
networkNoNetwork to use. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A4.5/5.0
Behavior5/5

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

Description discloses that the tool builds an unsigned transaction for client-side signing, which is critical behavioral information beyond annotations. It also explains the staking and resource benefits. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences efficiently convey the action, purpose, and return type without unnecessary words.

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

Completeness5/5

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

The description is complete for this straightforward tool. It covers the action, purpose, return type, and parameter context. No output schema is needed as the return is described.

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

Parameters3/5

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

Input schema covers all 3 parameters with descriptions (100% coverage). Description does not add additional per-parameter semantics beyond what schema provides.

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

Purpose5/5

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

Description clearly states the tool builds an unsigned Freeze KLV transaction on the Klever blockchain. It specifies the purpose (freezing KLV for energy/bandwidth and staking rewards) and differentiates from sibling tools like send_transfer or invoke_sc.

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

Usage Guidelines4/5

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

Description explains the benefit of freezing KLV (energy/bandwidth, staking rewards), implying when to use it. However, it does not explicitly state when not to use it or provide direct alternatives.

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

get_accountA
Read-onlyIdempotent
Inspect

Get full account details for a Klever blockchain address including nonce, balance, frozen balance, allowance, and permissions. Use this when you need comprehensive account state beyond just the balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesKlever address (klv1... bech32 format).
networkNoNetwork to query. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already include readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat safety traits. It adds context about the returned account state (nonce, balance, frozen balance, allowance, permissions), which is the core behavioral output. However, it does not disclose edge-case behavior like invalid addresses or network defaults beyond the schema, so a moderate score is appropriate.

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

Conciseness5/5

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

The description is two sentences, directly stating the purpose and usage guidance without redundant phrasing. It is front-loaded with the action and resource.

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

Completeness5/5

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

For a read-only tool with no output schema, the description adequately conveys the returned fields (nonce, balance, frozen balance, allowance, permissions), the address resource, and usage context. The annotations cover safety, and the schema covers parameters, so the description is complete for selecting and invoking this tool.

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

Parameters3/5

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

The input schema provides complete descriptions for both parameters, covering address format (klv1... bech32) and network options/default. The description adds no parameter-specific meaning beyond a high-level scope, but with 100% schema coverage, 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 uses a specific verb ('Get') and resource ('full account details for a Klever blockchain address') and explicitly lists the contained fields (nonce, balance, frozen balance, allowance, permissions). It also distinguishes from the sibling get_balance by stating 'beyond just the balance.'

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 an explicit usage scenario: 'Use this when you need comprehensive account state beyond just the balance.' This implies when a simple balance is needed, another tool (e.g., get_balance) would be used, although no alternative is explicitly named.

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

get_asset_infoA
Read-onlyIdempotent
Inspect

Get complete properties and configuration for any asset on the Klever blockchain (KLV, KFI, KDA tokens, NFT collections). Returns supply info, permissions (CanMint, CanBurn, etc.), roles, precision, and metadata. Note: string fields like ID, Name, Ticker are base64-encoded in the raw response.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetIdYesAsset identifier (e.g. "KLV", "KFI", "USDT-A1B2", "MYNFT-XY78").
networkNoNetwork to query. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read nature is covered. The description adds valuable behavioral context by warning that string fields (ID, Name, Ticker) are base64-encoded in the raw response, which is not inferable from annotations or schema. This goes beyond what annotations provide.

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

Conciseness5/5

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

Two sentences deliver all essential information: the first covers purpose and scope, the second highlights the base64 encoding caveat. There is no redundant phrasing or filler, making it ideal.

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

Completeness5/5

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

Despite lacking an output schema, the description enumerates the return contents (supply info, permissions, roles, precision, metadata) and the encoding caveat. Combined with thorough annotations and schema, this provides sufficient context for an agent to understand what will be returned and how to interpret 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?

The input schema already documents both parameters comprehensively (assetId with examples, network with enum values and default), achieving 100% coverage. The description adds no further parameter-level detail, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the tool gets complete properties and configuration for assets on the Klever blockchain, specifying asset types (KLV, KFI, KDA tokens, NFT collections). This verb-resource-scope combination distinctly differentiates it from sibling tools like get_account or get_balance.

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

Usage Guidelines4/5

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

The description provides clear context on what the tool does and the types of assets it covers, but does not explicitly mention alternatives or when not to use it. Since the name and description make its use case self-evident, the lack of exclusions is acceptable.

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

get_balanceA
Read-onlyIdempotent
Inspect

Get the KLV or KDA token balance for a Klever blockchain address. Returns the balance in the smallest unit (for KLV: 1 KLV = 1,000,000 units with 6 decimal places). Optionally specify an asset ID to query a specific KDA token balance instead of KLV.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesKlever address (klv1... bech32 format).
assetIdNoOptional KDA token ID (e.g. "USDT-A1B2", "LPKLVKFI-3I0N"). Omit for KLV balance.
networkNoNetwork to query. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint). The description adds valuable context about the return unit (smallest unit, 6 decimals) and the behavior when assetId is omitted, going beyond annotations.

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

Conciseness5/5

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

Three concise sentences, front-loaded with the main purpose, then return unit, then optional parameter behavior. No redundant or unessential information.

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

Completeness5/5

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

For a simple read-only balance tool with no output schema, the description covers the operation, return unit, and parameter usage. It is complete for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description reinforces the assetId semantics but does not add new meaning beyond what the schema already explains.

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

Purpose5/5

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

The description explicitly states the operation (Get), the resource (KLV or KDA token balance), and the target (a Klever blockchain address), distinguishing it from sibling tools like get_account or get_asset_info.

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?

Clear context is given for querying balances, including the optional assetId for KDA tokens. It does not explicitly exclude alternatives, but the purpose itself implies when to use this tool.

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

get_blockA
Read-onlyIdempotent
Inspect

Get block information from the Klever blockchain by nonce (block number). If no nonce is provided, returns the latest block. Returns hash, timestamp, proposer, number of transactions, and other block metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoBlock number (nonce). Omit to get the latest block.
networkNoNetwork to query. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already signal a safe, read-only, idempotent operation. The description adds value by specifying the returned fields (hash, timestamp, proposer, transaction count) and the latest-block behavior, which are not covered by annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the main action and resource. No unnecessary words.

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

Completeness5/5

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

For a simple read-only tool with two optional parameters and no output schema, the description covers the purpose, return payload, and parameter behavior sufficiently. It's complete for the tool's complexity.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are well-documented. The description adds further clarification for the nonce parameter by explaining the behavior when omitted, and the network parameter is already fully described in the schema.

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

Purpose5/5

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

The description clearly states the tool's function—retrieving block information from the Klever blockchain—and identifies the distinguishing resource (block by nonce) and optional latest-block behavior. This sets it apart from sibling tools like get_transaction or get_account, which target other entities.

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

Usage Guidelines4/5

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

Provides clear context on when to use the tool (need block info, optionally by nonce) and explains the fallback to the latest block when nonce is omitted. However, it doesn't explicitly mention alternatives or when not to use it, 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_contextA
Read-onlyIdempotent
Inspect

Retrieve a single knowledge base entry by its unique ID. Returns the full entry including content, metadata, tags, and related context IDs. Use this after query_context or find_similar to get complete details for a specific entry.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe unique context ID (UUID format). Obtain IDs from query_context or find_similar results.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds return format details (content, metadata, tags, related context IDs), which goes beyond the annotations. No contradictions.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the action verb and resource. Every sentence adds value: purpose, return content, and usage context.

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 retrieval tool with one parameter and no output schema, the description sufficiently covers purpose, return content, and usage context. The annotations cover the safety profile, leaving no significant gaps.

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

Parameters3/5

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

The input schema fully documents the 'id' parameter with UUID format and source. The description's 'unique ID' adds no new meaning beyond the schema, so baseline 3 is appropriate given 100% schema description coverage.

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 'Retrieve a single knowledge base entry by its unique ID,' which is a specific verb+resource. It distinguishes from sibling tools by explaining that it returns full details and is intended for use after query_context or find_similar.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this after query_context or find_similar to get complete details for a specific entry,' providing clear when-to-use guidance. It implies this is a follow-up retrieval step rather than a search tool, though it doesn't list explicit when-not-to-use scenarios.

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

get_knowledge_statsA
Read-onlyIdempotent
Inspect

Get summary statistics of the Klever VM knowledge base. Returns total entry count, counts broken down by context type (code_example, best_practice, security_tip, etc.), and a sample entry title for each type. Useful for understanding what knowledge is available before querying.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior, and the description adds context about the exact output structure (total count, type breakdowns, sample titles). It does not contradict annotations and provides additional behavioral detail beyond the safety hints, such as the nature of the returned sample entries.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose and followed by specific output details. Every sentence adds useful information, with no fluff or redundancy. It is appropriately concise for a simple stats tool.

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

Completeness5/5

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

Since there is no output schema, the description fully explains the return values: total count, breakdown by context type with examples, and a sample title per type. It also provides a use case ('before querying'). For a zero-parameter tool with no output schema, this is complete and sufficient.

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

Parameters4/5

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

The tool has no parameters, so the input schema is empty. The description does not need to explain parameters, and per the rubric, 0 parameters earns a baseline of 4. It adds value by describing what the returned statistics include, which is relevant for understanding the tool's output.

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

Purpose5/5

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

The description uses a specific verb 'Get' and identifies the resource 'summary statistics of the Klever VM knowledge base', clearly distinguishing it from sibling tools like query_context or search_documentation. It also details what the tool returns (total entry count, counts by context type, sample entry titles), making its purpose unambiguous.

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

Usage Guidelines4/5

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

The description states 'Useful for understanding what knowledge is available before querying', providing clear context for when to use it. However, it does not explicitly state when not to use it or name alternative tools, so it lacks explicit exclusions but is still clear about placement in a workflow.

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

get_transactionA
Read-onlyIdempotent
Inspect

Get transaction details by hash from the Klever blockchain. Returns sender, receiver, status, block info, contracts, and receipts. Uses the API proxy for indexed data.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashYesTransaction hash (hex string).
networkNoNetwork to query. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A4.3/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds useful behavioral context beyond that: it mentions the use of the API proxy for indexed data and lists the exact categories of returned data, giving the agent a clearer picture of what to expect. No contradiction exists.

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

Conciseness5/5

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

The description is two concise sentences. The first sentence front-loads the core purpose and return contents; the second adds a relevant detail about the data source. 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.

Completeness5/5

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

Given the tool's simplicity (two parameters, no output schema), the description is complete. It covers what the tool does, what it returns, and how it accesses data. The annotations and schema handle safety and parameter details, so nothing critical is missing.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters (hash and network) fully described in the input schema. The description adds minimal extra meaning beyond the schema—it reiterates that the lookup is 'by hash' but does not provide additional syntax, constraints, or examples. Thus, 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 tool's purpose: 'Get transaction details by hash from the Klever blockchain.' It specifies the resource (transaction) and actionable verb ('get'), then enumerates the return fields (sender, receiver, status, block info, contracts, receipts), distinguishing it from sibling tools like get_block or get_account.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool: when you need transaction details by hash. It also mentions the data source ('Uses the API proxy for indexed data'), which implies the appropriate environment. However, it does not explicitly mention alternatives or when not to use it, so it stops short of full 5.

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

init_klever_projectAInspect

Scaffold a new Klever smart contract project using the SDK. Creates the Rust project structure via ksc new and generates automation scripts (build, deploy, upgrade, query, test, interact). Requires Klever SDK installed at ~/klever-sdk/. Run check_sdk_status first to verify.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe contract project name in kebab-case (e.g. "my-token", "nft-marketplace"). Used as the Cargo package name and directory name.
templateNoProject template to scaffold from. "empty" creates a blank contract with just an init function. "adder" creates a simple counter example. Default: "empty".empty
noMoveNoWhen true, keeps the project in the SDK output directory instead of moving it to the current working directory. Default: false.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, but the description adds some behavioral context: it 'Creates the Rust project structure' and 'generates automation scripts.' It also specifies the SDK requirement. However, it does not disclose behavior on re-run (idempotency), potential overwrites, or error conditions. With no annotation contradiction, the description adds moderate value beyond the hints.

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

Conciseness5/5

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

The description is three sentences with no fluff. The first sentence immediately states the primary action and resource. All sentences contribute useful information: purpose, what is created, and prerequisites. It is well-organized and easy to parse.

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

Completeness3/5

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

The description adequately covers the tool's purpose and prerequisites but lacks details about the return value or success/failure signals. Since there is no output schema, the description should indicate what the tool returns (e.g., path to new project). It also does not mention error cases or behaviors when the project already exists. Given the tool's side effects, this gap reduces completeness.

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

Parameters3/5

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

The input schema covers all parameters with descriptions (100% coverage), so the description adds no extra meaning beyond what the schema already provides. The description does not elaborate on parameter usage, formatting, or constraints. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Scaffold a new Klever smart contract project using the SDK.' It specifies the resource (Klever smart contract project), the action (scaffold), and the method (via `ksc new` and automation scripts). It also mentions the prerequisite SDK location, distinguishing it from sibling tools like install_klever_sdk or check_sdk_status.

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 prerequisite: 'Requires Klever SDK installed at ~/klever-sdk/. Run check_sdk_status first to verify.' This guides the agent to verify SDK status before invoking the tool. However, it does not explicitly state when not to use this tool (e.g., if SDK is not installed) or mention alternatives beyond check_sdk_status. Still, the context is helpful.

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

install_klever_sdkA
Idempotent
Inspect

Download and install Klever SDK tools to ~/klever-sdk/. Fetches the latest versions from the Klever CDN, installs binaries, and downloads required VM library dependencies. Supports macOS (arm64/amd64) and Linux. Run check_sdk_status first to see what is already installed.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNoWhich SDK component to install. "ksc" = smart contract compiler only, "koperator" = blockchain operator CLI + VM library, "all" = both ksc and koperator. Default: "all".all

TDQS

A4.3/5.0
Behavior4/5

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

Beyond annotations (idempotent, open-world), description adds detail on CDN downloads, installation of binaries and dependencies, and platform support. It does not mention side effects like PATH modifications, but idempotency and destructive hint false mitigate concerns.

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 well-structured sentences, front-loaded with main action, no fluff. Every sentence adds value.

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

Completeness5/5

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

For a simple 1-parameter tool with no output schema, the description covers purpose, parameter options, platform, dependencies, and prerequisite. Complete enough for effective selection and invocation.

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%; the parameter 'tool' is fully described in schema with enum and default. Description does not add additional semantic meaning beyond what schema provides.

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

Purpose5/5

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

The description clearly states the verb (download and install), resource (Klever SDK tools), and location (~/klever-sdk/). It specifies platforms and components, distinguishing it from siblings like check_sdk_status.

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

Usage Guidelines4/5

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

Explicitly advises to run check_sdk_status first, providing clear contextual guidance. However, it doesn't explicitly state when not to use it (e.g., if already installed).

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

invoke_scAInspect

Build an unsigned smart contract invocation transaction on the Klever blockchain. Calls a state-changing endpoint on a deployed contract. Returns the unsigned transaction for client-side signing. For read-only calls, use query_sc instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
senderYesCaller address (klv1... bech32 format).
scAddressYesSmart contract address (klv1... bech32 format).
funcNameYesEndpoint function name to invoke.
argsNoOptional base64-encoded arguments.
callValueNoOptional token amounts to send with the call, as a map of token ID to amount (e.g. {"KLV": 1000000}). Required for payable endpoints.
networkNoNetwork to use. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false. Description adds value by clarifying transaction is unsigned and requires client-side signing, which is beyond what annotations provide. No contradictions.

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

Conciseness5/5

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

Two sentences, no unnecessary words, front-loaded with key information. Highly concise.

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

Completeness4/5

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

No output schema, but description states it returns unsigned transaction. For a transaction builder, this is sufficient. Could mention signing requirements or output format, but complete enough given simplicity.

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

Parameters3/5

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

Schema coverage is 100% with descriptive parameter text. Description does not add parameter-level details but contextualizes the tool purpose. 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?

Description clearly states it builds an unsigned smart contract invocation transaction, calls a state-changing endpoint, and returns unsigned transaction. Distinguishes from query_sc for read-only calls, making the purpose very specific and distinct from siblings.

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

Usage Guidelines4/5

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

Explicitly provides when to use (state-changing calls) and points to alternative (query_sc for read-only). Does not include when-not scenarios beyond that, but sufficient guidance given the context.

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

list_validatorsA
Read-onlyIdempotent
Inspect

List active validators on the Klever blockchain network. Returns validator addresses, names, commission rates, delegation info, and staking amounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoNetwork to query. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds the specific return fields but does not mention pagination, limits, or other behavioral traits, so it goes only slightly beyond annotations.

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

Conciseness5/5

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

One clear sentence with a front-loaded purpose and a concise list of return fields. No filler or redundancy.

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

Completeness5/5

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

Given the tool's simplicity (one optional parameter, rich annotations, and explicit return-field description), the description is complete enough for an agent to select and invoke the tool correctly. The schema handles the network parameter, and the description covers the output.

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 covers 100% of the parameter (network) with an enum and default description, so the baseline is 3. The description adds no additional 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?

States directly that it lists active validators on the Klever blockchain and enumerates the data fields returned (addresses, names, commission rates, delegation info, staking amounts). This clearly distinguishes it from sibling tools like get_account or get_balance.

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

Usage Guidelines3/5

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

No explicit guidance on when to use vs alternatives; the purpose is clear from the description, but there is no mention of exclusions or other tools for specific validator queries. Usage is implied rather than explicit.

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

query_contextA
Read-onlyIdempotent
Inspect

Search the Klever VM knowledge base for smart contract development context. Returns structured JSON with matching entries, scores, and pagination. Use this for precise filtering by type or tags; use search_documentation for human-readable "how do I..." answers.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFree-text search query. Use Klever-specific terms for best results (e.g. "storage mapper SingleValueMapper", "payable endpoint KLV", "deploy contract testnet").
typesNoFilter results by context type. Omit to search all types. Common combinations: ["code_example", "documentation"] for learning, ["error_pattern"] for debugging, ["security_tip", "best_practice"] for reviews.
tagsNoFilter by tags (e.g. ["storage", "mapper"], ["tokens", "KLV"], ["events"]). Tags are matched with OR logic — any matching tag includes the entry.
contractTypeNoFilter by contract type (e.g. "token", "nft", "defi", "dao"). Only returns entries tagged for this contract category.
limitNoMaximum number of results to return (1-100). Default: 10.
offsetNoNumber of results to skip for pagination. Use with limit to page through results. Default: 0.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the read-only/idempotent annotations, the description adds that the tool returns structured JSON with matching entries, scores, and pagination, disclosing return format and pagination behavior. No contradictions with annotations.

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

Conciseness5/5

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

Three sentences, each earning its place: purpose, output format, and usage guidance. Front-loaded with the core action, no fluff.

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

Completeness5/5

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

Given no output schema, the description appropriately includes return format and pagination details. The 6 parameters are fully documented in the schema, and the description clarifies the tool's role relative to a key sibling, providing sufficient context.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter already has a detailed description. The tool description adds only a general reference to filtering by type/tags, which does not significantly enhance the schema-provided semantics, keeping the score at baseline.

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

Purpose5/5

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

The description clearly states the tool searches the Klever VM knowledge base for smart contract development context, with a specific verb ('Search') and resource. It distinguishes from search_documentation by noting it is for precise filtering, making the purpose unambiguous.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool ('precise filtering by type or tags') and when to use the alternative ('use search_documentation for human-readable ... answers'). This provides clear when/when-not guidance and names a specific sibling tool.

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

query_scA
Read-onlyIdempotent
Inspect

Execute a read-only query against a Klever smart contract (VM view call). Returns the contract function result as base64-encoded return data. Arguments must be base64-encoded. Use this to read contract state without modifying it.

ParametersJSON Schema
NameRequiredDescriptionDefault
scAddressYesSmart contract address (klv1... bech32 format).
funcNameYesFunction name to call (must be a #[view] function on the contract).
argsNoOptional base64-encoded arguments. For addresses, encode the hex-decoded bech32 bytes. For numbers, use big-endian byte encoding.
callerNoOptional caller address (klv1... bech32 format). Some view functions use the caller to look up address-keyed storage mappers.
networkNoNetwork to query. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable context: it returns base64-encoded data, requires base64-encoded arguments, and explicitly confirms state is not modified. It goes beyond what annotations provide without contradicting them.

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

Conciseness5/5

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

Three focused sentences, front-loaded with the primary action. Every sentence adds value: what it does, return format, argument encoding, and usage intent. 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?

The description adequately covers the tool's purpose, input requirements (base64), and return type (base64-encoded return data). Given the rich schema and annotations, it provides sufficient context for an agent to invoke it correctly, though it could mention decoding the response or error handling.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The description reinforces the base64 requirement but adds no new information beyond the schema. Since schema already explains encoding details for addresses and numbers, the description's contribution is minimal.

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: executing a read-only query against a Klever smart contract via a VM view call. It distinguishes this from sibling tools like get_account or get_balance by specifying the resource (smart contract) and the read-only nature.

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

Usage Guidelines4/5

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

Provides clear usage context: 'Use this to read contract state without modifying it.' This implies when to use it, though it doesn't explicitly mention alternatives or exclusions. The read-only hint and view call language effectively guide selection.

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

search_documentationA
Read-onlyIdempotent
Inspect

Search Klever VM documentation and knowledge base. Returns human-readable markdown with titles, descriptions, and code snippets. Covers koperator CLI syntax (sc invoke, sc create, sc upgrade), --args type prefixes, --values payment flags, contract metadata flags, ABI decoding, and all smart contract development topics. ALWAYS use this tool first when you need to know the correct flags or argument syntax for koperator commands. Use this instead of query_context when you need formatted developer documentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query in natural language (e.g. "how to use storage mappers", "koperator sc invoke payment values", "deploy contract to testnet", "--args type prefixes", "handle KDA token transfers").
categoryNoNarrow results to a specific knowledge category. Available: core, storage, events, tokens, modules, tools, scripts, examples, errors, best-practices, documentation.

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that returns markdown and covers specific topics, but does not disclose additional behavioral traits beyond what annotations provide. It does not contradict annotations.

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

Conciseness5/5

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

The description is brief and front-loaded with the main purpose and output format. Every sentence contributes useful information, and there is no extraneous content.

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

Completeness5/5

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

Given the tool has only 2 parameters and no output schema, the description adequately covers what the tool does, what it returns (markdown), its scope (koperator CLI, smart contract topics), and provides usage guidance. It is complete for an agent to select and invoke this tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline 3. The description adds value by providing concrete example queries and listing the topics covered, which enriches the understanding of the 'query' parameter beyond the schema description.

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

Purpose5/5

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

The description clearly states the tool's function: searching Klever VM documentation and knowledge base, and specifies the output format (human-readable markdown). It also distinguishes itself from sibling tool 'query_context' by recommending its use for formatted developer documentation.

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?

Explicit guidance is provided: 'ALWAYS use this tool first when you need to know the correct flags or argument syntax for koperator commands' and 'Use this instead of query_context when you need formatted developer documentation.' This clearly states when to use and when not to use alternatives.

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

send_transferAInspect

Build an unsigned KLV or KDA token transfer transaction on the Klever blockchain. Returns the unsigned transaction data and hash for client-side signing. The MCP server NEVER handles private keys — signing must be done externally.

ParametersJSON Schema
NameRequiredDescriptionDefault
senderYesSender address (klv1... bech32 format).
receiverYesReceiver address (klv1... bech32 format).
amountYesAmount in the smallest unit. For KLV: 1 KLV = 1,000,000 units (6 decimals). Example: to send 10 KLV, use 10000000.
assetIdNoOptional KDA token ID for non-KLV transfers (e.g. "USDT-A1B2"). Omit for KLV.
networkNoNetwork to use. Options: "mainnet", "testnet", "devnet", "local". Defaults to server default (mainnet).

TDQS

A4.4/5.0
Behavior5/5

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

The description adds critical behavioral context beyond annotations: it confirms the tool only builds unsigned transactions and that signing must occur externally. This aligns with openWorldHint=true and destructiveHint=false, adding valuable detail about security and process.

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 that are front-loaded with the core purpose and then add the critical security note. Every sentence adds value without redundancy.

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

Completeness4/5

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

The description explains the return value (unsigned transaction data and hash) and the need for external signing, which is sufficient for a tool with moderate complexity. No output schema is present, but the description covers the essential output. Minor gap: no error handling or edge cases are mentioned, but not critical for this use case.

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 covers 100% of parameters with clear descriptions. The tool description provides a high-level purpose but does not add additional meaning for individual parameters beyond what the schema already provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool builds an unsigned KLV or KDA token transfer transaction on the Klever blockchain, specifying the output and the need for external signing. This distinguishes it from sibling tools like freeze_klv or invoke_sc.

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

Usage Guidelines4/5

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

The description explicitly states when to use it (building an unsigned transaction for client-side signing) and that the server never handles private keys. It does not explicitly list when not to use it or alternative tools, but the context is clear enough for an AI agent to infer appropriate usage.

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. 23 tool updatesv1.3.0
    • First observedadd_context
    • First observedadd_helper_scripts
    • First observedanalyze_contract
    • First observedcheck_sdk_status
    • First observeddeploy_sc
    • First observedenhance_with_context
    • First observedfind_similar
    • First observedfreeze_klv
    • First observedget_account
    • First observedget_asset_info
    • First observedget_balance
    • First observedget_block
    • First observedget_context
    • First observedget_knowledge_stats
    • First observedget_transaction
    • First observedinit_klever_project
    • First observedinstall_klever_sdk
    • First observedinvoke_sc
    • First observedlist_validators
    • First observedquery_context
    • First observedquery_sc
    • First observedsearch_documentation
    • First observedsend_transfer

TDQS

A4.2/5.0

Scored across 23 tools

Disambiguation5/5

Tools have clearly distinct purposes. For example, query_context and search_documentation both search the knowledge base but differ in output format (structured JSON vs human-readable markdown). All other tools target different resources or actions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with underscores, such as add_context, get_balance, deploy_sc. No mixing of conventions.

Tool Count4/5

23 tools is on the higher end of the acceptable range. The server covers a broad domain including blockchain queries, smart contract lifecycle, and knowledge management, so the count is justified but some consolidation (e.g., reducing knowledge base tools) could improve coherence.

Completeness4/5

The tool set covers major workflows: SDK installation, project scaffolding, code analysis, deployment, invocation, queries, transfers, and knowledge base management. A minor gap is the lack of an explicit contract upgrade tool, though helper scripts include an upgrade script.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers