KawaFi
Supports cross-chain bridging operations via Hashport, allowing users to validate bridge parameters and get step-by-step instructions for transferring assets between Ethereum and the Hedera network.
Provides comprehensive access to the Hedera DeFi ecosystem, including tools for data analytics, transaction preparation, and asset management across platforms like SaucerSwap, Bonzo Finance, Stader, and HeliSwap.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@KawaFiFind the best yield farming opportunities on SaucerSwap"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
š 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
SaucerSwap: Leading AMM DEX (19 tools)
Bonzo Finance: Lending and borrowing (3 tools)
Stader: HBAR liquid staking (3 tools)
HeliSwap: Trading pair data (1 tool)
Hashport: Cross-chain bridging (10 tools)
š ļø 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 --help2. 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=true3. 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 metadatasaucerswap_get_stats- Platform statistics (TVL, volume, SAUCE circulation)saucerswap_get_sss_stats- Single-Sided Staking statistics and XSAUCE ratiosaucerswap_get_hbar_prices- Historical HBAR price data (minutely resolution)saucerswap_get_platform_data- Historical liquidity/volume data with intervalssaucerswap_get_farms- Active yield farming opportunitiessaucerswap_get_farms_by_account- LP token amounts in farms by accountsaucerswap_get_pools- All liquidity pools with reserves and token infosaucerswap_get_default_tokens- Default tokens with price changessaucerswap_get_v2_pools- V2 pools with advanced metrics (fees, ticks, liquidity)
Transaction Tools (9) š
saucerswap_quote_exact_input- Get swap quote for exact input amountsaucerswap_quote_exact_output- Get swap quote for exact output amountsaucerswap_swap_hbar_for_tokens- Prepare HBAR ā tokens swap with refundssaucerswap_swap_tokens_for_hbar- Prepare tokens ā HBAR swap with unwrappingsaucerswap_swap_tokens_for_tokens- Prepare token ā token swapssaucerswap_stake_sauce- Prepare SAUCE staking for xSAUCEsaucerswap_unstake_xsauce- Prepare xSAUCE unstaking for SAUCEsaucerswap_deposit_to_farm- Prepare LP token farm depositssaucerswap_withdraw_from_farm- Prepare LP token farm withdrawals
Other Platform Tools (17)
Bonzo Finance (3)
bonzo_get_reserves- All lending/borrowing reservesbonzo_get_account- Account positions and balancesbonzo_get_liquidations- Accounts eligible for liquidation
Stader (3)
stader_get_exchange_rate- Current HBAR to HBARX exchange ratestader_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 assetshashport_get_supported_networks- All supported networkshashport_get_bridge_steps- Step-by-step bridging instructionshashport_validate_bridge- Validate bridge parametershashport_get_assets_amounts- Asset reserve amountshashport_get_transfers- Paginated transfer historyhashport_get_network_assets- Assets on specific networkshashport_get_network_asset_amounts- Asset amounts per networkhashport_get_network_asset_details- Detailed asset informationhashport_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 SaucerSwapShow current HBAR to HBARX staking rate List active yield farms with APYsTransaction Preparation š
Prepare transaction to swap 10 HBAR for SAUCE tokens with 0.3% fee poolPrepare transaction to stake 1000000 SAUCE for xSAUCEPrepare transaction to deposit LP tokens to farm pool 1Analytics & Cross-chain
Get HBAR price history from last weekFind accounts eligible for liquidation on BonzoGet 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
Prepare Mode (Recommended)
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 definitionsDevelopment 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 executionTechnical Details
For complete technical overview, challenges, and architecture details, see SUBMISSION.md.
š Documentation Links
PROMPTS.md - Test prompts for all 36 tools
TEST_RESULTS.md - Comprehensive testing results (100% success rate)
SUBMISSION.md - Technical overview and project details
š¤ Contributing
Fork the repository
Create a feature branch:
git checkout -b feature/amazing-featureCommit changes:
git commit -m 'Add amazing feature'Push to branch:
git push origin feature/amazing-featureOpen a Pull Request
š Troubleshooting
Common Issues
Tools not appearing: Check MCP configuration and installation
npx kawa-fi-mcp --version # Verify package is accessibleAPI timeouts: SaucerSwap has rate limits
# Retry requests or use smaller data ranges
# API tools may timeout but transaction tools work consistentlyContract errors: Verify network configuration
echo $HEDERA_NETWORK # Should match your credentials
echo $EXECUTE_TX # Should be "false" for prepare modeMissing transaction tools: Ensure Hedera credentials are set
# For mainnet transaction tools:
echo $MAINNET_HEDERA_OPERATOR_ID # Required for transaction preparationGetting 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 š¤ā”
Available Tools
17 toolsbonzo_get_accountC
Get account positions from Bonzo Finance
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | Hedera account ID (e.g., 0.0.123456) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| txId | Yes | Hedera transaction ID to convert |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| sourceNetworkId | Yes | Source network ID | |
| targetNetworkId | Yes | Target network ID | |
| sourceAssetId | Yes | Asset ID on source network | |
| recipient | Yes | Recipient address on target network | |
| amount | No | Amount to bridge | |
| tokenId | No | Token ID for NFTs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| networkId | Yes | Network ID | |
| assetId | Yes | Asset ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| networkId | Yes | Network ID | |
| assetId | Yes | Asset ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| networkId | Yes | Network ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| sourceNetwork | No | Source network ID | |
| targetNetwork | No | Target network ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | Page number (starts from 1) | |
| pageSize | Yes | Page size (max 50) | |
| filter | No | Optional filters |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| sourceNetworkId | Yes | Source network ID | |
| targetNetworkId | Yes | Target network ID | |
| sourceAssetId | Yes | Asset ID on source network | |
| recipient | Yes | Recipient address on target network | |
| amount | No | Amount to bridge | |
| tokenId | No | Token ID for NFTs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states '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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| token0 | Yes | First token address | |
| token1 | Yes | Second token address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool'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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| amountHbar | Yes | Amount of HBAR to stake (e.g., '10' for 10 HBAR) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| amountHbarx | Yes | Amount of HBARX to unstake in smallest unit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 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.
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.
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.
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.
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.
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.
17 tool updates
v1.0.6- First observed
bonzo_get_account - First observed
bonzo_get_liquidations - First observed
bonzo_get_reserves - First observed
hashport_convert_hedera_tx_id - First observed
hashport_get_assets_amounts - First observed
hashport_get_bridge_steps - First observed
hashport_get_network_asset_amounts - First observed
hashport_get_network_asset_details - First observed
hashport_get_network_assets - First observed
hashport_get_supported_assets - First observed
hashport_get_supported_networks - First observed
hashport_get_transfers - First observed
hashport_validate_bridge - First observed
heliswap_get_pair_info - First observed
stader_get_exchange_rate - First observed
stader_stake_hbar - First observed
stader_unstake_hbarx
TDQS
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).
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.
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.
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
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
MCP server giving AI agents one-connection access to crypto & DeFi data: DeFi protocol TVL, stableco
MCP server for Gainium ā manage trading bots, deals, and balances via AI assistants
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA 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-
- FlicenseAqualityCmaintenanceProduction 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.2059-
- FlicenseAqualityBmaintenanceMCP 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-

Haiku DeFi MCPofficial
AlicenseAqualityFmaintenanceMCP 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.7832MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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