Skip to main content
Glama

KawaFi - Hedera DeFi MCP Server

KawaFi provides unified access to the Hedera DeFi ecosystem through the Model Context Protocol (MCP), enabling AI assistants to interact with multiple DeFi platforms safely and efficiently.

MCP TypeScript License Tools Success Rate

šŸš€ Overview

A comprehensive Model Context Protocol (MCP) server that provides unified access to major Hedera DeFi platforms including SaucerSwap, Bonzo Finance, Stader, HeliSwap, and Hashport. This server enables AI assistants and applications to interact with Hedera's DeFi ecosystem through 36 standardized tools covering data analytics, transaction preparation, and cross-platform operations.

Related MCP server: Hedera Toolbox

✨ Features

šŸ” Dual-Mode Security System

  • Prepare Mode (Default): Generate unsigned transactions for external signing

  • Execute Mode (Advanced): Optionally sign and execute transactions directly

  • Security-First Design: Private keys only loaded when explicitly required

🌐 Multi-Platform DeFi Integration

šŸ› ļø Comprehensive Toolset

  • Data & Analytics: Real-time prices, pool reserves, APYs, lending rates

  • Transaction Preparation: Complete unsigned transaction data with proper encoding

  • Cross-chain Operations: Asset bridging across multiple networks

  • Yield Optimization: Staking, farming, and lending opportunities

šŸ“Š Tool Overview

Platform

Data Tools

Transaction Tools

Total

Status

SaucerSwap

10

9

19

āœ… 100% Working

Bonzo Finance

3

0*

3

āœ… 100% Working

Stader

1

2

3

āœ… 100% Working

HeliSwap

1

0

1

āœ… 100% Working

Hashport

10

0

10

āœ… 100% Working

TOTAL

25

11

36

āœ… 100% Working

*Bonzo transaction tools planned for future release

šŸ”§ Installation & Setup

Prerequisites

  • Node.js 18+

  • An MCP-compatible client (Claude Desktop, etc.)

1. Installation

# Install globally from npm
npm install -g kawa-fi-mcp

# Or run with npx (no installation needed)
npx kawa-fi-mcp --help

2. Environment Configuration

Create a .env file with your desired configuration (see .env.example for reference):

# Network Selection
HEDERA_NETWORK=mainnet  # or "testnet"

# Security Mode
EXECUTE_TX=false        # true for execution, false for prepare-only

# Platform API Keys
SAUCERSWAP_API_KEY=your_api_key_here  # Optional but recommended

# Hedera Credentials (choose based on network)
MAINNET_HEDERA_OPERATOR_ID=0.0.your_account
MAINNET_HEDERA_OPERATOR_KEY=your_private_key     # Only if EXECUTE_TX=true
TESTNET_HEDERA_OPERATOR_ID=0.0.your_testnet_account  
TESTNET_HEDERA_OPERATOR_KEY=your_testnet_private_key  # Only if EXECUTE_TX=true

3. MCP Client Configuration

Add to your MCP client:

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "hedera-defi": {
      "command": "npx",
      "args": ["kawa-fi-mcp"]
    }
  }
}

4. Verification

# Test the server directly
npx kawa-fi-mcp

# Or if installed globally
kawa-fi-mcp

# Check available tools (should show 13-36 tools based on configuration)

šŸ“‹ Available Tools

SaucerSwap (19 tools)

Data & Analytics Tools (10)

  • saucerswap_get_tokens - All available tokens with prices and metadata

  • saucerswap_get_stats - Platform statistics (TVL, volume, SAUCE circulation)

  • saucerswap_get_sss_stats - Single-Sided Staking statistics and XSAUCE ratio

  • saucerswap_get_hbar_prices - Historical HBAR price data (minutely resolution)

  • saucerswap_get_platform_data - Historical liquidity/volume data with intervals

  • saucerswap_get_farms - Active yield farming opportunities

  • saucerswap_get_farms_by_account - LP token amounts in farms by account

  • saucerswap_get_pools - All liquidity pools with reserves and token info

  • saucerswap_get_default_tokens - Default tokens with price changes

  • saucerswap_get_v2_pools - V2 pools with advanced metrics (fees, ticks, liquidity)

Transaction Tools (9) šŸ†•

  • saucerswap_quote_exact_input - Get swap quote for exact input amount

  • saucerswap_quote_exact_output - Get swap quote for exact output amount

  • saucerswap_swap_hbar_for_tokens - Prepare HBAR → tokens swap with refunds

  • saucerswap_swap_tokens_for_hbar - Prepare tokens → HBAR swap with unwrapping

  • saucerswap_swap_tokens_for_tokens - Prepare token → token swaps

  • saucerswap_stake_sauce - Prepare SAUCE staking for xSAUCE

  • saucerswap_unstake_xsauce - Prepare xSAUCE unstaking for SAUCE

  • saucerswap_deposit_to_farm - Prepare LP token farm deposits

  • saucerswap_withdraw_from_farm - Prepare LP token farm withdrawals

Other Platform Tools (17)

Bonzo Finance (3)

  • bonzo_get_reserves - All lending/borrowing reserves

  • bonzo_get_account - Account positions and balances

  • bonzo_get_liquidations - Accounts eligible for liquidation

Stader (3)

  • stader_get_exchange_rate - Current HBAR to HBARX exchange rate

  • stader_stake_hbar - Stake HBAR for HBARX (transaction)

  • stader_unstake_hbarx - Unstake HBARX for HBAR (transaction)

HeliSwap (1)

  • heliswap_get_pair_info - Trading pair information

Hashport (10)

  • hashport_get_supported_assets - Bridge-supported assets

  • hashport_get_supported_networks - All supported networks

  • hashport_get_bridge_steps - Step-by-step bridging instructions

  • hashport_validate_bridge - Validate bridge parameters

  • hashport_get_assets_amounts - Asset reserve amounts

  • hashport_get_transfers - Paginated transfer history

  • hashport_get_network_assets - Assets on specific networks

  • hashport_get_network_asset_amounts - Asset amounts per network

  • hashport_get_network_asset_details - Detailed asset information

  • hashport_convert_hedera_tx_id - Transaction ID format conversion

šŸŽÆ Usage Examples

For comprehensive examples and test prompts for all 36 tools, see PROMPTS.md.

Basic DeFi Data

Get all tokens available on SaucerSwap
Show current HBAR to HBARX staking rate  
List active yield farms with APYs

Transaction Preparation šŸ†•

Prepare transaction to swap 10 HBAR for SAUCE tokens with 0.3% fee pool
Prepare transaction to stake 1000000 SAUCE for xSAUCE
Prepare transaction to deposit LP tokens to farm pool 1

Analytics & Cross-chain

Get HBAR price history from last week
Find accounts eligible for liquidation on Bonzo
Get bridge steps from Ethereum to Hedera for USDC

šŸ“Š Status & Testing

Current Status

  • Overall: 36/36 tools working (100% success rate)

  • Transaction Tools: 11/11 working (100% success rate)

  • Data Tools: 25/25 working (100% success rate)

Detailed Results

See TEST_RESULTS.md for:

  • Complete testing results with response sizes

  • Performance notes and API rate limiting info

  • Known issues and resolution steps

  • Platform-specific availability details

Known Issues

  • API Rate Limiting: Some SaucerSwap endpoints may timeout during high load

  • Network Dependencies: Stader and HeliSwap only available on mainnet

šŸ›”ļø Security & Transaction Modes

EXECUTE_TX=false  # or omit entirely
  • āœ… Secure: Private keys never loaded

  • āœ… Flexible: Sign with hardware wallets, dApps, or secure environments

  • āœ… Transparent: Complete unsigned transaction data provided

  • ⚔ Fast: No blockchain interaction delays

Execute Mode (Advanced)

EXECUTE_TX=true
MAINNET_HEDERA_OPERATOR_KEY=302e020100...
  • āš ļø Security: Private key loaded in memory

  • ⚔ Convenient: Automatic transaction signing and submission

  • šŸ“Š Results: Returns transaction IDs and confirmations

  • šŸŽÆ Use Case: Automated strategies, trusted environments

Transaction Output Example

Prepare Mode Output:

{
  "type": "prepared_transaction",
  "description": "Swap 10 HBAR for minimum 1000000 SAUCE tokens",
  "from": "0.0.123456",
  "to": "0x00000000000000000000000000000000002cc9B2",
  "function": "multicall(bytes[])",
  "gas": 400000,
  "value": "1000000000",
  "unsigned": {
    "contractId": "0x00000000000000000000000000000000002cc9B2",
    "functionName": "multicall",
    "functionParams": ["0xc04b8d59000000..."],
    "payableAmount": "1000000000"
  }
}

šŸ—ļø Architecture & Development

Project Structure

src/
ā”œā”€ā”€ clients/           # Platform-specific client implementations
│   ā”œā”€ā”€ saucerswap.ts    # SaucerSwap API + transaction tools
│   ā”œā”€ā”€ bonzo.ts         # Bonzo Finance integration
│   ā”œā”€ā”€ stader.ts        # Stader staking with transactions  
│   ā”œā”€ā”€ hashport.ts      # Hashport bridge operations
│   └── heliswap.ts      # HeliSwap pair data
ā”œā”€ā”€ index.ts           # MCP server with 36 tool definitions
└── types/             # TypeScript definitions

Development Commands

# For local development (after git clone)
npm install            # Install dependencies
npm run dev            # Development with hot reload
npm run build          # Production build
npm run test           # Run test suite

# For users (npm package)
npm install -g kawa-fi-mcp  # Global installation
npx kawa-fi-mcp             # Direct execution

Technical Details

For complete technical overview, challenges, and architecture details, see SUBMISSION.md.

šŸ¤ Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature/amazing-feature

  3. Commit changes: git commit -m 'Add amazing feature'

  4. Push to branch: git push origin feature/amazing-feature

  5. Open a Pull Request

šŸ› Troubleshooting

Common Issues

Tools not appearing: Check MCP configuration and installation

npx kawa-fi-mcp --version  # Verify package is accessible

API timeouts: SaucerSwap has rate limits

# Retry requests or use smaller data ranges
# API tools may timeout but transaction tools work consistently

Contract errors: Verify network configuration

echo $HEDERA_NETWORK    # Should match your credentials
echo $EXECUTE_TX        # Should be "false" for prepare mode

Missing transaction tools: Ensure Hedera credentials are set

# For mainnet transaction tools:
echo $MAINNET_HEDERA_OPERATOR_ID    # Required for transaction preparation

Getting Help

  • Check TEST_RESULTS.md for current tool status

  • Review PROMPTS.md for working examples

  • Verify environment configuration matches requirements

šŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

šŸ™ Acknowledgments

  • Model Context Protocol for the integration framework

  • Hedera for the blockchain infrastructure

  • DeFi platforms: SaucerSwap, Bonzo Finance, Stader, HeliSwap, Hashport


KawaFi - Unifying Hedera DeFi for AI assistants šŸ¤–āš”

Built with MCP Hedera

Available Tools

17 tools
bonzo_get_accountC

Get account positions from Bonzo Finance

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdYesHedera account ID (e.g., 0.0.123456)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read-only operation ('Get') but doesn't disclose details like authentication requirements, rate limits, error conditions, or what 'positions' entail (e.g., types of assets, formatting). This is inadequate for a tool with potential financial data sensitivity.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It front-loads the core purpose ('Get account positions') and includes essential context ('from Bonzo Finance'), making it easy to parse quickly.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is insufficiently complete. It doesn't explain what 'positions' include (e.g., balances, tokens), return format, or error handling, which are critical for an agent to use this financial data tool effectively.

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

Parameters3/5

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

Schema description coverage is 100%, with the single parameter 'accountId' fully documented in the schema as a Hedera account ID with an example. The description adds no additional parameter context beyond what the schema provides, meeting the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('account positions') with the source ('from Bonzo Finance'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'bonzo_get_liquidations' or 'bonzo_get_reserves', which likely retrieve different financial data from the same platform.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing a valid account ID), exclusions, or comparisons to sibling tools, leaving the agent to infer usage context solely from the tool name and schema.

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

bonzo_get_liquidationsB

Get accounts with outstanding debt eligible for liquidation

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It implies a read-only operation ('Get') but doesn't address critical aspects like authentication requirements, rate limits, data freshness, or what 'eligible for liquidation' entails. This leaves significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's front-loaded and appropriately sized, making it easy to parse quickly.

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

Completeness2/5

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

Given the complexity of financial liquidation data and the lack of annotations and output schema, the description is insufficiently complete. It doesn't explain what information is returned (e.g., account details, debt amounts), how results are formatted, or any behavioral nuances, leaving the agent with inadequate context for effective use.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't mention parameters, aligning with the schema. A baseline of 4 is applied since it doesn't add unnecessary details, though it could theoretically note the absence of parameters for clarity.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('accounts with outstanding debt eligible for liquidation'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'bonzo_get_account' or 'bonzo_get_reserves', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as how it differs from 'bonzo_get_account' or other sibling tools. There are no explicit instructions on prerequisites, context, or exclusions, leaving usage unclear.

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

bonzo_get_reservesB

Get all lending/borrowing reserves from Bonzo Finance

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't disclose behavioral traits such as rate limits, authentication needs, data freshness, or response format. This leaves significant gaps for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words, clearly front-loading the purpose. It's appropriately sized for a simple tool with no parameters.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on output format, error handling, or integration context, which could be helpful despite the low 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?

The tool has 0 parameters with 100% schema description coverage, so no parameter information is needed. The description appropriately doesn't add parameter details, aligning with the baseline for zero parameters, though it could hint at implicit filtering if applicable.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('all lending/borrowing reserves from Bonzo Finance'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from its sibling 'bonzo_get_account' or 'bonzo_get_liquidations' beyond the resource type, missing explicit differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'bonzo_get_account' or 'bonzo_get_liquidations'. The description implies usage for retrieving reserves data but lacks explicit context, prerequisites, or exclusions.

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

hashport_convert_hedera_tx_idC

Convert Hedera transaction ID format

ParametersJSON Schema
NameRequiredDescriptionDefault
txIdYesHedera transaction ID to convert

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It states 'convert' but doesn't clarify if this is a read-only operation, what the output looks like (e.g., transformed string), error conditions, or any side effects. This is a significant gap for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple conversion tool and front-loaded with the core action, making it easy to parse quickly.

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

Completeness2/5

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

Given the tool's apparent simplicity (1 parameter, no output schema, no annotations), the description is incomplete. It doesn't explain the conversion purpose (e.g., to a standard format for cross-chain use), output format, or error handling, leaving the agent with insufficient context to use it effectively beyond basic parameter passing.

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

Parameters3/5

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

The schema description coverage is 100%, with the parameter 'txId' documented as 'Hedera transaction ID to convert'. The description adds no additional meaning beyond this, such as format examples or conversion specifics, so it meets the baseline for high schema coverage without compensating value.

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

Purpose4/5

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

The description clearly states the verb 'convert' and the resource 'Hedera transaction ID format', making the purpose understandable. However, it doesn't specify what format it converts from/to or distinguish itself from sibling tools like hashport_get_transfers, which might handle transaction data differently.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., after a bridge operation), or exclusions, leaving the agent to infer usage from the tool name alone among many siblings.

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

hashport_get_assets_amountsB

Get reserve amounts for all assets on Hashport

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden of behavioral disclosure. While 'Get' implies a read operation, the description doesn't specify whether this requires authentication, has rate limits, returns real-time or cached data, or what format the response takes. For a tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a zero-parameter tool and front-loads the essential information.

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

Completeness3/5

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

For a zero-parameter tool with no output schema, the description adequately states what the tool does. However, without annotations or output schema, it should ideally provide more behavioral context about what 'reserve amounts' means and what format the response takes. The description is minimally viable but lacks completeness for a tool that presumably returns financial data.

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

Parameters4/5

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

The tool has zero parameters, and schema description coverage is 100%. The description appropriately doesn't discuss parameters since none exist. It correctly focuses on the tool's purpose rather than parameter details.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('reserve amounts for all assets on Hashport'), providing specific purpose. However, it doesn't explicitly differentiate from sibling tools like 'hashport_get_network_asset_amounts' or 'hashport_get_supported_assets', which might have overlapping functionality.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. With multiple hashport_get_* siblings available, the description doesn't indicate whether this is the comprehensive reserve amounts tool or how it differs from similar-sounding tools like 'hashport_get_network_asset_amounts'.

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

hashport_get_bridge_stepsC

Get step-by-step instructions for bridging assets via Hashport

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNetworkIdYesSource network ID
targetNetworkIdYesTarget network ID
sourceAssetIdYesAsset ID on source network
recipientYesRecipient address on target network
amountNoAmount to bridge
tokenIdNoToken ID for NFTs

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves 'step-by-step instructions', implying a read-only operation, but doesn't clarify if this is a simulation, requires authentication, has rate limits, or what the output format looks like (e.g., textual steps vs. structured data). For a tool with no annotations and no output schema, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence: 'Get step-by-step instructions for bridging assets via Hashport'. It is front-loaded with the core purpose, has zero wasted words, and is appropriately sized for the tool's complexity. Every part of the sentence contributes directly to understanding the tool's function.

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

Completeness2/5

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

Given the tool's complexity (6 parameters, no annotations, no output schema), the description is insufficiently complete. It doesn't explain what the step-by-step instructions entail, how they are returned, or any behavioral traits like error handling. For a tool that likely involves cross-network asset bridging, more context on output format and usage constraints is needed to be fully helpful to an agent.

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

Parameters3/5

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

The input schema has 100% description coverage, with all parameters documented (e.g., sourceNetworkId as 'Source network ID'). The description adds no additional semantic context beyond implying these parameters are used to generate bridging instructions. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get step-by-step instructions for bridging assets via Hashport'. It specifies the verb 'Get' and the resource 'step-by-step instructions', making it distinct from sibling tools like hashport_validate_bridge or hashport_get_transfers. However, it doesn't explicitly differentiate from hashport_get_network_assets or hashport_get_supported_assets in terms of output type, which keeps it from a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing to validate a bridge first with hashport_validate_bridge, or when to choose this over other hashport_get_* tools for asset or network information. Without any context on usage scenarios or exclusions, the agent must infer based on tool names alone.

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

hashport_get_network_asset_amountsC

Get amounts for a specific asset on a network

ParametersJSON Schema
NameRequiredDescriptionDefault
networkIdYesNetwork ID
assetIdYesAsset ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action without details on permissions, rate limits, error handling, or what 'amounts' entails (e.g., balances, totals, or other metrics). This leaves significant gaps for an agent to understand the tool's behavior.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It is front-loaded and efficiently conveys the core purpose without unnecessary elaboration, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'amounts' means in the return value, potential constraints, or how it fits with sibling tools. For a tool with no structured behavioral data, more context is needed to be fully helpful.

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

Parameters3/5

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

The schema description coverage is 100%, with both parameters ('networkId' and 'assetId') documented in the schema. The description adds no additional meaning beyond implying these parameters are needed, so it meets the baseline for adequate but not enhanced parameter semantics.

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

Purpose4/5

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

The description clearly states the action ('Get amounts') and target ('for a specific asset on a network'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'hashport_get_assets_amounts' or 'hashport_get_network_assets', which appear related but have different scopes.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites, such as needing valid network and asset IDs, or how it differs from similar tools like 'hashport_get_assets_amounts' or 'hashport_get_network_assets'.

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

hashport_get_network_asset_detailsC

Get detailed information for a specific asset on a network

ParametersJSON Schema
NameRequiredDescriptionDefault
networkIdYesNetwork ID
assetIdYesAsset ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get detailed information', implying a read-only operation, but does not specify aspects like rate limits, authentication requirements, error handling, or what 'detailed information' entails (e.g., format, fields). This leaves significant gaps in understanding the tool's behavior beyond basic functionality.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized for a simple tool, with no wasted information, making it easy for an AI agent to parse quickly.

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

Completeness2/5

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

Given the complexity of fetching asset details (which may involve network-specific data), no annotations, and no output schema, the description is incomplete. It does not explain what 'detailed information' includes, potential response formats, or any behavioral traits like error cases. This leaves the AI agent with insufficient context to fully understand the tool's operation and outputs.

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

Parameters3/5

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

The input schema has 100% description coverage, with parameters 'networkId' and 'assetId' clearly documented. The description adds no additional semantic context beyond implying these are used to fetch asset details, which is already inferred from the schema. Thus, it meets the baseline score of 3, as the schema adequately covers parameter meanings without extra value from the description.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'detailed information for a specific asset on a network', which is specific and unambiguous. However, it does not explicitly differentiate from sibling tools like 'hashport_get_network_assets' (which likely lists multiple assets) or 'hashport_get_supported_assets' (which might list supported assets), leaving room for ambiguity in sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclusions, such as how it differs from 'hashport_get_network_assets' or when asset details are needed versus general asset lists. This lack of guidance could lead to incorrect tool selection by an AI agent.

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

hashport_get_network_assetsC

Get assets available on a specific network

ParametersJSON Schema
NameRequiredDescriptionDefault
networkIdYesNetwork ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get assets available on a specific network', implying a read-only operation, but doesn't specify whether it returns a list, details, or amounts; whether it requires authentication; or any rate limits. This leaves significant gaps for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand at a glance.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'assets' means in this context (e.g., tokens, NFTs), the format of the return value, or any behavioral traits like error handling. For a tool with no structured support, this minimal description leaves too many open questions.

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

Parameters3/5

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

The input schema has 100% description coverage, with 'networkId' documented as 'Network ID'. The description adds no additional meaning beyond this, as it doesn't clarify what constitutes a valid network ID or provide examples. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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

Purpose4/5

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

The description clearly states the action ('Get assets') and the target ('available on a specific network'), providing a specific verb+resource combination. However, it doesn't distinguish itself from sibling tools like 'hashport_get_supported_assets' or 'hashport_get_network_asset_details', which appear to serve related but potentially different purposes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools related to assets and networks (e.g., 'hashport_get_supported_assets', 'hashport_get_network_asset_details'), there's no indication of context, prerequisites, or exclusions for this specific tool.

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

hashport_get_supported_assetsB

Get list of assets supported by Hashport bridge

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNetworkNoSource network ID
targetNetworkNoTarget network ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get list' implies a read-only operation, the description doesn't mention authentication requirements, rate limits, error conditions, pagination, or what format the returned list takes. This leaves significant behavioral gaps for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple lookup tool and front-loads the essential information.

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

Completeness3/5

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

For a simple read operation with 2 parameters and 100% schema coverage, the description is minimally adequate. However, with no annotations and no output schema, it should ideally provide more context about the return format, authentication, or error handling. The description meets basic requirements but leaves gaps in behavioral transparency.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (sourceNetwork and targetNetwork) adequately. The description doesn't add any additional meaning about these parameters beyond what the schema provides, such as explaining what networks are supported or how they interact. With high schema coverage, baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Get list') and resource ('assets supported by Hashport bridge'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling tools like 'hashport_get_network_assets' or 'hashport_get_network_asset_details', which might have overlapping functionality.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. With multiple Hashport-related sibling tools (like hashport_get_network_assets, hashport_get_network_asset_details, hashport_get_assets_amounts), the description offers no context about which tool to choose for different scenarios.

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

hashport_get_supported_networksB

Get all networks supported by Hashport

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states it's a read operation ('Get'), implying non-destructive behavior, but lacks details on rate limits, authentication needs, response format, or error conditions. This is a significant gap for a tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, clear sentence with zero waste. It's front-loaded with the core action and resource, making it efficient 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?

Given the tool's simplicity (0 parameters, no output schema), the description is minimally adequate. However, without annotations or output schema, it should ideally provide more behavioral context (e.g., response structure, typical use cases) to fully guide the agent.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, aligning with the schema's completeness.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('all networks supported by Hashport'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'hashport_get_network_assets' or 'hashport_get_network_asset_details', but the resource focus is specific enough to avoid confusion.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., before initiating a bridge), or exclusions, leaving the agent to infer usage from the name alone.

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

hashport_get_transfersC

Get paginated list of transfers with optional filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number (starts from 1)
pageSizeYesPage size (max 50)
filterNoOptional filters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions pagination and filtering but doesn't describe what a 'transfer' represents in this context, what data is returned, whether this is a read-only operation, authentication requirements, rate limits, or error conditions. The description provides minimal behavioral context beyond the basic operation.

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

Conciseness5/5

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

The description is a single, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized for a list operation with filtering and gets straight to the point with zero wasted text.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what constitutes a 'transfer' in this system, what data fields are returned, or the significance of the operation. Given the complexity (3 parameters including a nested filter object) and lack of structured metadata, the description should provide more context about the domain and expected results.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds the concept of 'optional filtering' which aligns with the filter object in the schema, but doesn't provide additional semantic context beyond what's in the parameter descriptions. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Get paginated list') and resource ('transfers'), and specifies optional filtering. It distinguishes from siblings by focusing on transfers rather than accounts, assets, or other resources. However, it doesn't explicitly differentiate from potential similar list operations on other servers.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when this tool is appropriate versus other transfer-related tools (none exist in siblings), or any contextual constraints. The agent must infer usage from the name and description alone.

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

hashport_validate_bridgeC

Validate bridge parameters before initiating a bridge

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNetworkIdYesSource network ID
targetNetworkIdYesTarget network ID
sourceAssetIdYesAsset ID on source network
recipientYesRecipient address on target network
amountNoAmount to bridge
tokenIdNoToken ID for NFTs

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'validate bridge parameters', implying a read-only or check operation, but doesn't disclose behavioral traits such as whether it's safe (non-destructive), authentication needs, rate limits, or what validation entails (e.g., format checks, availability). This leaves significant gaps for a tool with potential complexity.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the purpose without any wasted words. It's appropriately sized for the tool's function, making it easy to understand quickly.

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

Completeness2/5

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

Given no annotations, no output schema, and a tool that likely involves complex validation logic (e.g., cross-network asset transfers), the description is incomplete. It lacks details on what validation checks are performed, error handling, or return values, leaving the agent with insufficient context for effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 6 parameters with basic descriptions. The description doesn't add any additional meaning beyond implying validation of these parameters, but it doesn't explain parameter interactions, validation rules, or semantics. Baseline 3 is appropriate as the schema handles the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('validate bridge parameters') and the context ('before initiating a bridge'), providing a specific verb and purpose. However, it doesn't explicitly differentiate from sibling tools like 'hashport_get_bridge_steps' or 'hashport_get_transfers', which might also relate to bridge operations, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description implies usage 'before initiating a bridge', suggesting a pre-check step, but it doesn't provide explicit guidance on when to use this tool versus alternatives (e.g., other validation or bridge-related tools) or any exclusions. No clear context or alternatives are mentioned, making it minimal guidance.

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

heliswap_get_pair_infoC

Get trading pair information from HeliSwap

ParametersJSON Schema
NameRequiredDescriptionDefault
token0YesFirst token address
token1YesSecond token address

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states it 'gets' information, implying a read-only operation, but doesn't disclose behavioral traits like rate limits, error handling, or response format. This is inadequate for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'trading pair information' includes (e.g., liquidity, fees) or behavioral aspects, leaving gaps for a tool that likely returns complex data.

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 clear descriptions for token0 and token1 as token addresses. The description adds no extra meaning beyond the schema, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('trading pair information from HeliSwap'), making the purpose understandable. However, it doesn't differentiate from sibling tools, which are unrelated (e.g., Bonzo, Hashport, Stader tools), so it's not a 5.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites, timing, or comparisons with other tools, leaving usage unclear beyond the basic purpose.

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

stader_get_exchange_rateA

Get current HBAR to HBARX exchange rate

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool's function but doesn't describe any behavioral traits such as whether it's read-only, requires authentication, has rate limits, returns real-time or cached data, or what format the output takes. This leaves significant gaps for an agent to understand how to interact with it effectively.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains what the tool does but lacks details on behavioral aspects (e.g., output format, data freshness, error handling). For a basic query tool, this is minimally viable but could be more informative to fully guide an agent.

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

Parameters4/5

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

The tool has 0 parameters, and the schema description coverage is 100% (though trivial since there are no parameters). The description doesn't need to add parameter semantics, so it meets the baseline expectation for a parameterless tool. No additional value is required beyond stating the purpose.

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 specific action ('Get') and resource ('current HBAR to HBARX exchange rate'), distinguishing it from sibling tools like 'stader_stake_hbar' and 'stader_unstake_hbarx' which involve staking/unstaking operations rather than rate queries.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. While it's clear this tool retrieves exchange rates, there's no mention of when to choose it over other tools for similar data (e.g., if other tools provide historical rates or different asset pairs), nor any prerequisites or exclusions.

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

stader_stake_hbarC

Prepare HBAR staking transaction (returns unsigned transaction)

ParametersJSON Schema
NameRequiredDescriptionDefault
amountHbarYesAmount of HBAR to stake (e.g., '10' for 10 HBAR)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool prepares a transaction and returns an unsigned transaction, which implies a read-only operation that doesn't execute changes. However, it lacks details on permissions required, rate limits, error conditions, or what happens after the transaction is signed. For a financial tool with no annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence: 'Prepare HBAR staking transaction (returns unsigned transaction)'. It is front-loaded with the core action and output, with zero wasted words. Every part of the sentence earns its place by clarifying the tool's function.

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

Completeness2/5

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

Given the complexity of a staking transaction tool with no annotations and no output schema, the description is incomplete. It doesn't explain the return format (e.g., structure of the unsigned transaction), potential side effects, or how to proceed after preparation. For a tool that likely involves financial operations, more context is needed to ensure safe and correct usage.

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

Parameters3/5

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

The input schema has 100% description coverage, with the single parameter 'amountHbar' documented as 'Amount of HBAR to stake (e.g., '10' for 10 HBAR)'. The description adds no additional parameter information beyond what the schema provides. According to the rules, with high schema coverage (>80%), the baseline score is 3, as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Prepare HBAR staking transaction (returns unsigned transaction)'. It specifies the verb ('prepare'), resource ('HBAR staking transaction'), and output type ('unsigned transaction'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'stader_unstake_hbarx' beyond the 'stake' vs 'unstake' distinction in names, so it falls short of a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an account or specific conditions), compare to siblings like 'stader_unstake_hbarx' or 'stader_get_exchange_rate', or indicate when not to use it. Usage is implied by the name and purpose but lacks explicit context.

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

stader_unstake_hbarxC

Prepare HBARX unstaking transaction (returns unsigned transaction)

ParametersJSON Schema
NameRequiredDescriptionDefault
amountHbarxYesAmount of HBARX to unstake in smallest unit

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool returns an 'unsigned transaction,' which implies a read-only operation that doesn't execute immediately, but it lacks details on permissions required, potential fees, rate limits, or what happens after preparation (e.g., how to sign and submit). This is a significant gap for a financial transaction tool.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the key action and output. There is no wasted verbiage, and it directly communicates the tool's purpose without redundancy.

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

Completeness2/5

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

Given the complexity of a financial unstaking operation, no annotations, and no output schema, the description is insufficient. It doesn't explain the return format (e.g., transaction structure), error conditions, or next steps after preparation, leaving critical gaps for an AI agent to use the tool effectively.

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

Parameters3/5

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

The input schema has 100% description coverage, with 'amountHbarx' clearly documented as 'Amount of HBARX to unstake in smallest unit.' The description doesn't add any parameter-specific information beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Prepare HBARX unstaking transaction') and specifies the resource (HBARX). It distinguishes from sibling tools like 'stader_stake_hbar' by focusing on unstaking rather than staking. However, it doesn't explicitly differentiate from other potential transaction preparation tools that might exist in a broader context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing HBARX tokens), when not to use it (e.g., if immediate execution is required), or refer to sibling tools like 'stader_get_exchange_rate' for rate information before unstaking.

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. Dates show when Glama detected each change.

  1. 17 tool updatesv1.0.6
    • First observedbonzo_get_account
    • First observedbonzo_get_liquidations
    • First observedbonzo_get_reserves
    • First observedhashport_convert_hedera_tx_id
    • First observedhashport_get_assets_amounts
    • First observedhashport_get_bridge_steps
    • First observedhashport_get_network_asset_amounts
    • First observedhashport_get_network_asset_details
    • First observedhashport_get_network_assets
    • First observedhashport_get_supported_assets
    • First observedhashport_get_supported_networks
    • First observedhashport_get_transfers
    • First observedhashport_validate_bridge
    • First observedheliswap_get_pair_info
    • First observedstader_get_exchange_rate
    • First observedstader_stake_hbar
    • First observedstader_unstake_hbarx

TDQS

B3.3/5.0
Disambiguation4/5

Tools are clearly grouped by service (Bonzo, Hashport, HeliSwap, Stader), with distinct purposes within each group. Minor potential confusion exists between hashport_get_assets_amounts and hashport_get_network_asset_amounts, but descriptions clarify the scope differences (all assets vs. specific asset).

Naming Consistency5/5

Perfectly consistent naming throughout: all tools follow a service_action_resource pattern with snake_case (e.g., bonzo_get_account, hashport_get_assets_amounts). This makes it easy to understand which service each tool belongs to and what it does.

Tool Count4/5

17 tools is reasonable for a multi-service DeFi server covering four distinct platforms. It's slightly on the higher side but well-organized by service, with each tool serving a specific purpose without obvious redundancy.

Completeness3/5

Coverage varies by service: Hashport has comprehensive tools for bridging (get, validate, convert), but Bonzo lacks update/delete operations for positions, and HeliSwap only has get_pair_info without broader DEX functionality. Gaps exist, but core workflows for each service are partially covered.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server providing unified access to over 144 tools for lending, trading, and staking across six major DeFi protocols on the Stacks Bitcoin Layer 2. It enables AI agents to perform complex blockchain operations and interact with the DeFi ecosystem using natural language commands.
    3
    -
  • F
    license
    A
    quality
    C
    maintenance
    Production MCP server giving AI agents metered access to live Hedera blockchain data. Query token prices, screen identities, monitor governance, write tamper-evident HCS compliance records, and analyze smart contracts — all paid in HBAR micropayments per call.
    20
    59
    -
  • F
    license
    A
    quality
    B
    maintenance
    MCP server providing AI agents with native access to Jupiter's full DeFi stack on Solana. It offers 17 tools covering swaps, tokens, lending, limit orders, DCA, prediction markets, perpetuals, and portfolio management.
    16
    -
  • A
    license
    A
    quality
    F
    maintenance
    MCP server for DeFi execution — lets AI agents swap, provide liquidity, lend, bridge, and run yield strategies across 22 chains in a single transaction. 7 tools for token discovery, portfolio analysis, quoting, and execution via the Haiku API.
    7
    83
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gabrielantonyxaviour/kawa-fi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server