EDUCHAIN Agent Kit
The EDUCHAIN Agent Kit server provides tools for interacting with the EDUCHAIN ecosystem through SailFish DEX, with capabilities including:
Token and Pool Information: Retrieve token prices, details, historical data, top tokens/pools by TVL, and total DEX TVL/volume
Wallet Operations: Check balances (EDU/tokens/NFTs), fetch wallet overviews, derive addresses from private keys, and send EDU/ERC20 tokens
Swap Operations: Get swap quotes with price impact details, perform token swaps (including EDU via WEDU), and manually wrap/unwrap EDU/WEDU
Arbitrage Operations: Fetch external EDU market data from centralized exchanges, check for arbitrage opportunities with configurable thresholds
Configuration: Set and retrieve RPC URLs for blockchain interactions and manage external market API settings
The MCP server is built on Node.js and requires it for installation and running
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., "@EDUCHAIN Agent Kitget the current price of EDU token"
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.
EDUCHAIN Agent Kit
This MCP (Model Context Protocol) server provides tools and resources for interacting with EDUCHAIN. It allows Claude to query information about tokens and pools and perform swaps through SailFish DEX.
Features
Token and Pool Information
Get token prices and details
Get pool information and statistics
View historical data for tokens and pools
Get top tokens and pools by TVL
Wallet Operations
Check EDU and token balances
Get wallet overviews including tokens and NFTs
Send EDU and ERC20 tokens
Swap Operations
Get swap quotes with price impact and route information
Swap tokens for tokens
Swap EDU for tokens (using WEDU internally)
Swap tokens for EDU (using WEDU internally)
Note: SailFish DEX, like other Uniswap v3 forks, doesn't support native token swaps directly. Instead, it uses WEDU (Wrapped EDU) internally. When you use the swap functions for EDU, the system automatically handles the wrapping/unwrapping process, so you can work directly with EDU in your transactions. If you need more control, you can also use the
wrap_eduandunwrap_wedufunctions to manually convert between EDU and WEDU.
Arbitrage Operations
Get external market data for EDU from centralized exchanges
Check for arbitrage opportunities between CEX and SailFish DEX
Configurable external market data API
Customizable arbitrage detection threshold
Related MCP server: GOAT MCP Server
Tools
Token and Pool Information
get_token_price: Get the current price of a token on SailFish DEXget_token_info: Get detailed information about a token on SailFish DEXget_pool_info: Get detailed information about a liquidity pool on SailFish DEXget_top_tokens: Get a list of top tokens by TVL on SailFish DEXget_top_pools: Get a list of top liquidity pools by TVL on SailFish DEXget_total_tvl: Get the total value locked (TVL) in SailFish DEXget_24h_volume: Get the 24-hour trading volume on SailFish DEXget_token_historical_data: Get historical data for a token on SailFish DEXget_pool_historical_data: Get historical data for a liquidity pool on SailFish DEX
Wallet Operations
get_edu_balance: Get the EDU balance of a wallet addressget_token_balance: Get the token balance of a wallet address with USD valueget_multiple_token_balances: Get multiple token balances for a wallet addressget_nft_balance: Get the NFT balance of a wallet address for a specific NFT collectionget_wallet_overview: Get an overview of a wallet including EDU, tokens, and NFTsget_wallet_address_from_private_key: Get wallet address from private keysend_edu: Send EDU native token to another wallet addresssend_erc20_token: Send ERC20 token to another wallet address
Swap Operations
get_swap_quote: Get a quote for swapping tokens on SailFish DEXswap_tokens: Swap tokens on SailFish DEX (token to token)swap_edu_for_tokens: Swap EDU for tokens on SailFish DEXswap_tokens_for_edu: Swap tokens for EDU on SailFish DEXwrap_edu: Wrap EDU to WEDU (Wrapped EDU)unwrap_wedu: Unwrap WEDU (Wrapped EDU) to EDU
Arbitrage Operations
get_external_market_data: Get external market data for EDU from centralized exchangescheck_arbitrage_opportunities: Check for arbitrage opportunities between CEX and SailFish DEXupdate_external_market_config: Update the configuration for external market data APIget_external_market_config: Get the current configuration for external market data API
Configuration
set_rpc_url: Set the RPC URL for blockchain interactionsget_rpc_url: Get the current RPC URL used for blockchain interactions
Resources
sailfish://overview: Overview of SailFish DEX including TVL, volume, and other metricssailfish://token/{tokenId}: Information about a specific token on SailFish DEXsailfish://pool/{poolId}: Information about a specific liquidity pool on SailFish DEX
Installation
Make sure you have Node.js installed
Clone this repository
Install dependencies:
npm installBuild the project:
npm run buildAdd the MCP server to your Claude Desktop configuration file:
{ "mcpServers": { "sailfish": { "command": "node", "args": ["/path/to/SubgraphMCP/build/index.js"], "env": { "RPC_URL": "https://your-edu-rpc-url.com" } } } }
Usage Examples
Get Token Price
use_mcp_tool("sailfish", "get_token_price", {
"tokenId": "0x836d275563bAb5E93Fd6Ca62a95dB7065Da94342"
});Get Swap Quote
use_mcp_tool("sailfish", "get_swap_quote", {
"tokenIn": "0xd02E8c38a8E3db71f8b2ae30B8186d7874934e12",
"tokenOut": "0x836d275563bAb5E93Fd6Ca62a95dB7065Da94342",
"amountIn": "10"
});Swap Tokens
use_mcp_tool("sailfish", "swap_tokens", {
"privateKey": "YOUR_PRIVATE_KEY",
"tokenIn": "0xd02E8c38a8E3db71f8b2ae30B8186d7874934e12",
"tokenOut": "0x836d275563bAb5E93Fd6Ca62a95dB7065Da94342",
"amountIn": "10",
"slippagePercentage": 0.5
});Check Arbitrage Opportunities
use_mcp_tool("sailfish", "check_arbitrage_opportunities", {
"threshold": 1.5
});Update External Market API Configuration
use_mcp_tool("sailfish", "update_external_market_config", {
"apiUrl": "https://api.example.com/crypto/prices",
"apiKey": "YOUR_API_KEY",
"symbols": {
"EDU": "EDU",
"USD": "USDT"
}
});Wrap EDU to WEDU
use_mcp_tool("sailfish", "wrap_edu", {
"privateKey": "YOUR_PRIVATE_KEY",
"amount": "10"
});Unwrap WEDU to EDU
use_mcp_tool("sailfish", "unwrap_wedu", {
"privateKey": "YOUR_PRIVATE_KEY",
"amount": "10"
});Testing
You can run the test script to verify the functionality:
node build/test.jsThis will test the routing and swap quote functionality without executing actual swaps.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
29 toolscheck_arbitrage_opportunitiesC
Check for arbitrage opportunities between centralized exchanges and SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| threshold | No | Minimum price difference percentage to consider as an arbitrage opportunity (default: 1.0) |
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 only states the purpose without detailing traits like rate limits, authentication needs, computational cost, or what constitutes an 'opportunity' (e.g., format, confidence). This leaves significant gaps for a tool that likely involves complex data analysis.
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 is 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 complexity (involving arbitrage across exchanges and DEX), lack of annotations, and no output schema, the description is insufficient. It doesn't explain what the output entails (e.g., list of opportunities, calculations), behavioral constraints, or error handling, leaving the agent under-informed 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 100% description coverage for its single parameter (threshold), clearly explaining it as a minimum price difference percentage with a default. The description adds no additional parameter semantics beyond what the schema provides, 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 ('Check for arbitrage opportunities') and specifies the resources involved ('between centralized exchanges and SailFish DEX'), which distinguishes it from most sibling tools that focus on data retrieval or transactions. However, it doesn't explicitly differentiate from potential arbitrage-related siblings (none are listed), keeping 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, such as other arbitrage tools (none in siblings) or related tools like get_token_price or get_swap_quote. It lacks context on prerequisites, timing, or exclusions, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_24h_volumeB
Get the 24-hour trading volume on SailFish DEX
| 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 of behavioral disclosure. It states the tool retrieves data ('Get'), implying it's a read operation, but doesn't specify whether it requires authentication, has rate limits, returns real-time or cached data, or what the output format is. For a tool with zero 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, clear sentence: 'Get the 24-hour trading volume on SailFish DEX'. It's front-loaded with the core purpose, has no unnecessary words, and efficiently conveys the essential information without waste.
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 annotations, no output schema), the description is adequate but incomplete. It states what the tool does but lacks details on behavioral aspects like data freshness, error handling, or output structure. For a read-only tool in a DEX context, more context on what '24-hour trading volume' entails (e.g., aggregated, per-pool) would enhance completeness.
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%, so there's no need for parameter details in the description. The description doesn't add parameter semantics, but this is appropriate given the lack of parameters, warranting a baseline high score as it doesn't mislead or omit necessary information.
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 the 24-hour trading volume on SailFish DEX'. It specifies the verb ('Get'), resource ('24-hour trading volume'), and context ('on SailFish DEX'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from siblings like 'get_pool_historical_data' or 'get_token_historical_data', which might also provide volume-related data, so it doesn't reach 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, exclusions, or compare it to siblings such as 'get_pool_historical_data' or 'get_token_historical_data', which could offer overlapping functionality. This leaves the agent without clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_edu_balanceC
Get the EDU balance of a wallet address
| Name | Required | Description | Default |
|---|---|---|---|
| walletAddress | Yes | Wallet address to check |
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' implies a read operation, it doesn't specify whether this requires authentication, has rate limits, returns real-time or cached data, or what happens with invalid addresses. For a financial query tool with zero annotation coverage, this leaves significant behavioral gaps.
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 states the core purpose without unnecessary words. It's appropriately sized for a simple query 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 financial balance query tool with no annotations and no output schema, the description is insufficient. It doesn't explain what EDU balance represents (native token? staked amount?), what format the response will be in, or error handling. Given the complexity of blockchain queries and lack of structured output documentation, more context is needed.
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 'walletAddress' clearly documented in the schema. The description adds no additional parameter information beyond what the schema already provides, so it meets the baseline for high schema coverage but doesn't enhance understanding of parameter usage or constraints.
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 ('EDU balance of a wallet address'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar sibling tools like 'get_token_balance' or 'get_wallet_overview', which could also involve wallet balance 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. With sibling tools like 'get_token_balance' and 'get_wallet_overview' available, there's no indication of when this specific EDU balance query is preferred, nor any mention of prerequisites or constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_external_market_configB
Get the current configuration for external market data API
| 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 it's a read operation ('Get'), implying it's likely non-destructive, but doesn't specify if it requires authentication, has rate limits, or what the return format looks like. This leaves significant gaps for a tool interacting with an external API.
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 directly states the tool's purpose without fluff or redundancy. It's appropriately sized for a no-parameter tool and front-loaded with 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?
Given the complexity of interacting with an external market data API, the description is incomplete. With no annotations and no output schema, it fails to explain what the configuration includes (e.g., endpoints, keys, limits) or the response structure. This makes it inadequate for an agent to use the tool effectively without additional context.
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 there's no need for parameter details in the description. The description appropriately doesn't mention parameters, earning a baseline score of 4 for not adding unnecessary information.
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 ('current configuration for external market data API'), making the purpose understandable. However, it doesn't explicitly distinguish this tool from its sibling 'update_external_market_config' beyond the verb difference, nor does it clarify what 'configuration' entails compared to 'data' from 'get_external_market_data'.
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 like 'update_external_market_config' or 'get_external_market_data'. It lacks context about prerequisites, such as whether the API must be set up first, or any exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_external_market_dataC
Get external market data for EDU from centralized exchanges
| 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 of behavioral disclosure. It mentions 'Get external market data' but doesn't specify if this is a read-only operation, requires authentication, has rate limits, or what the output format might be. For a tool with zero 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: 'Get external market data for EDU from centralized exchanges.' It's front-loaded with the core action and resource, with zero wasted words. Every part of the sentence contributes to understanding the tool's purpose.
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 market data tools and the lack of annotations and output schema, the description is incomplete. It doesn't explain what data is returned (e.g., price, volume, timestamps), how it's formatted, or any behavioral aspects like caching or errors. For a tool in a financial context with many siblings, more detail 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 tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The baseline for 0 parameters is 4, as the description doesn't need to compensate for any schema gaps. It appropriately avoids redundant information.
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 states the tool 'Get external market data for EDU from centralized exchanges' which provides a clear verb ('Get') and resource ('external market data for EDU'), but it's vague about what specific data is retrieved (e.g., price, volume, order book) and doesn't distinguish from siblings like 'get_token_price' or 'get_24h_volume' that might overlap in functionality. It's not tautological but lacks specificity.
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 offers no guidance on when to use this tool versus alternatives. With siblings like 'get_token_price' and 'get_24h_volume' that might provide similar market data, there's no indication of context, exclusions, or prerequisites. Usage is implied only by the name and description, but no explicit instructions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_multiple_token_balancesC
Get multiple token balances for a wallet address with USD values using SailFish as price oracle
| Name | Required | Description | Default |
|---|---|---|---|
| tokenAddresses | Yes | List of token contract addresses | |
| walletAddress | Yes | Wallet address to check |
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 mentions using SailFish as a price oracle, which adds some context about price sourcing, but doesn't cover critical aspects like rate limits, error handling, response format, or whether this is a read-only operation (implied but not stated).
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 core purpose. Every word earns its place by specifying the action, scope (multiple tokens), target (wallet address), key feature (USD values), and implementation detail (SailFish oracle) 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 no annotations and no output schema, the description is incomplete for a tool that likely returns complex financial data. It doesn't explain the return structure (e.g., balance arrays, USD conversions), error conditions, or dependencies like network requirements. For a 2-parameter tool with significant implied complexity, this is inadequate.
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 parameters are fully documented in the schema. The description adds no additional meaning about the parameters beyond what's in the schema (e.g., no examples, formatting details, or constraints). Baseline score of 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 ('Get multiple token balances') and the resource ('for a wallet address'), and specifies the inclusion of USD values and price oracle. It distinguishes from sibling 'get_token_balance' by handling multiple tokens, but doesn't explicitly contrast with other balance tools like 'get_edu_balance' or 'get_nft_balance'.
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. It doesn't mention when to prefer this over 'get_token_balance' for single tokens, or how it relates to 'get_wallet_overview' for broader wallet analysis. The description lacks context about use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nft_balanceC
Get the NFT balance of a wallet address for a specific NFT collection
| Name | Required | Description | Default |
|---|---|---|---|
| fetchTokenIds | No | Whether to fetch token IDs (default: true) | |
| nftAddress | Yes | NFT contract address | |
| walletAddress | Yes | Wallet address to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does without behavioral details. It doesn't disclose rate limits, error conditions, authentication needs, or what the output looks like (e.g., balance as integer, list of token IDs). This is a significant gap for a tool with potential network calls.
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 waste. It's front-loaded with the core purpose and includes key specifics (wallet address, NFT collection). Every word earns its place.
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 return values (e.g., balance count, token IDs if fetched), error handling, or dependencies like network connectivity. For a tool querying blockchain data, this leaves critical gaps.
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 fully documents parameters. The description adds no meaning beyond the schema, as it doesn't explain parameter relationships (e.g., nftAddress must be a valid ERC-721 contract) or usage nuances. Baseline 3 is appropriate when 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 verb 'Get' and the resource 'NFT balance', specifying it's for a wallet address and NFT collection. It distinguishes from siblings like get_token_balance (which is for fungible tokens) and get_edu_balance (which is for a specific token type), though it doesn't explicitly name these alternatives.
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 like get_token_balance or get_multiple_token_balances. It doesn't mention prerequisites, such as needing a valid NFT contract address, or exclusions, like not working for non-NFT collections.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pool_historical_dataC
Get historical data for a liquidity pool on SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days of data to return (default: 7) | |
| poolId | Yes | Pool 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 of behavioral disclosure. It states it's a read operation ('Get'), but doesn't mention rate limits, authentication needs, data format, pagination, or error handling. For a tool fetching historical data without annotations, 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 that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, 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 insufficient for a tool that fetches historical data. It doesn't explain what 'historical data' includes (e.g., prices, volumes, timestamps), return format, or any behavioral traits like rate limits. This leaves the agent with incomplete context for proper 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%, with clear documentation for both parameters (poolId and days). The description doesn't add any additional semantic context beyond what's in the schema, such as date range constraints or data granularity. Baseline 3 is appropriate since the schema adequately covers 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 verb 'Get' and the resource 'historical data for a liquidity pool on SailFish DEX', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_pool_info' or 'get_token_historical_data', which could cause confusion about scope.
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 siblings like 'get_pool_info' and 'get_token_historical_data' available, there's no indication of whether this tool is for time-series data, aggregated metrics, or how it differs in context from other data retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pool_infoC
Get detailed information about a liquidity pool on SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| poolId | Yes | Pool address |
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 states this is a read operation ('Get'), but doesn't mention potential rate limits, authentication needs, error conditions, or what 'detailed information' includes (e.g., pool composition, fees, reserves). This leaves significant gaps for agent understanding.
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 immediately conveys the core purpose. There's no wasted verbiage or unnecessary elaboration, making it perfectly front-loaded and concise.
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 insufficiently complete. It doesn't explain what 'detailed information' returns (e.g., data structure, fields), nor does it cover behavioral aspects like error handling or performance characteristics, leaving the agent with significant uncertainty.
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 'poolId' documented as 'Pool address' in the schema. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline for high coverage without adding 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 action ('Get detailed information') and resource ('about a liquidity pool on SailFish DEX'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_top_pools' or 'get_pool_historical_data', 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. It doesn't mention when to choose this over 'get_top_pools' (for listing pools) or 'get_pool_historical_data' (for time-series data), nor does it specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rpc_urlB
Get the current RPC URL used for blockchain interactions
| 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 of behavioral disclosure. It states the tool retrieves the current RPC URL, implying a read-only operation, but doesn't clarify aspects like error handling (e.g., if no URL is set), performance characteristics, or return format. This leaves gaps in understanding how the tool behaves in practice.
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: 'Get the current RPC URL used for blockchain interactions.' It is front-loaded with the core purpose, has no redundant information, and efficiently conveys the essential meaning without unnecessary details.
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 annotations, no output schema), the description is adequate but minimal. It explains what the tool does but lacks details on output (e.g., what format the URL is returned in) and behavioral context. For a read-only tool with no parameters, it meets basic needs but could be more informative about the result.
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%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. A baseline of 4 is applied as it meets expectations for a parameterless tool.
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 the current RPC URL used for blockchain interactions.' It specifies the verb ('Get') and resource ('current RPC URL'), and the context ('for blockchain interactions') provides additional clarity. However, it doesn't explicitly differentiate from its sibling tool 'set_rpc_url', which is a related but distinct operation.
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., whether an RPC URL must be set first), exclusions, or comparisons to other tools like 'set_rpc_url' for configuration. Usage is implied by the 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.
get_swap_quoteC
Get a quote for swapping tokens on SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| amountIn | Yes | Amount of input token to swap | |
| fee | No | Fee tier (100=0.01%, 500=0.05%, 3000=0.3%, 10000=1%) | |
| tokenIn | Yes | Address of the input token | |
| tokenOut | Yes | Address of the output token |
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 states what the tool does but doesn't describe important behavioral aspects: whether this is a read-only operation (likely, but not stated), whether it requires authentication, rate limits, network dependencies, or what the quote output looks like. For a financial tool with no annotation coverage, this is a significant gap.
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 states the core purpose without unnecessary words. It's appropriately sized for a straightforward 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?
Given the complexity of a financial quote tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the quote contains (e.g., expected output amount, price impact, fees), doesn't mention network/blockchain context, and doesn't clarify the tool's read-only nature. For a tool that likely returns structured financial data, more context is needed.
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 four parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in 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 action ('Get a quote') and resource ('swapping tokens on SailFish DEX'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'swap_tokens' or 'swap_edu_for_tokens', which likely perform the actual swap rather than just providing a quote.
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 that this is for quote estimation before executing a swap, nor does it reference sibling tools like 'swap_tokens' for actual execution. Without this context, an agent might not understand the tool's role in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_balanceA
Get the token balance of a wallet address with USD value using SailFish as price oracle
| Name | Required | Description | Default |
|---|---|---|---|
| tokenAddress | Yes | Token contract address | |
| walletAddress | Yes | Wallet address to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the price oracle (SailFish) which adds useful context, but doesn't disclose other behavioral traits like whether this is a read-only operation (implied by 'Get'), error conditions, rate limits, authentication needs, or response format. The description is minimal beyond the core 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, efficient sentence that front-loads the core purpose and includes key scope details (USD value, price oracle). Every word earns its place with zero waste or 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 2 parameters with full schema coverage and no output schema, the description covers the basic purpose and price oracle context adequately. However, as a financial tool with no annotations, it should ideally mention more about error handling, response format, or limitations to be fully complete for agent 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 both parameters (tokenAddress, walletAddress) adequately. The description doesn't add any parameter-specific details beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate when 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 specific action ('Get the token balance') with the resource ('wallet address') and includes important scope details ('with USD value using SailFish as price oracle'). It distinguishes from siblings like get_edu_balance (specific token) and get_multiple_token_balances (multiple vs single).
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 context (checking a specific token balance with USD conversion) but doesn't explicitly state when to use this tool versus alternatives like get_multiple_token_balances (for multiple tokens) or get_token_price (price only). No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_historical_dataC
Get historical data for a token on SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days of data to return (default: 7) | |
| tokenId | Yes | Token address |
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 lacks details on rate limits, authentication needs, data format, or potential side effects. This is inadequate for a tool that likely involves network calls and data retrieval.
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 historical data') and specifies the resource and context appropriately, 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 'historical data' includes (e.g., price, volume, timestamps) or the return format, which is critical for an agent to use this tool effectively in a DEX context with many sibling tools.
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 input schema fully documents the parameters ('days' and 'tokenId'). The description adds no additional semantic context beyond what's in the schema, such as token format examples or day range limitations, meeting 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 historical data') and resource ('for a token on SailFish DEX'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_pool_historical_data' or 'get_token_price', which might offer related historical or token data.
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, exclusions, or compare to siblings such as 'get_token_info' or 'get_pool_historical_data', leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_infoC
Get detailed information about a token on SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | 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 of behavioral disclosure. It states it 'gets' information, implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns structured data, or handles errors. For a tool with no annotation coverage, 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 that directly states the tool's purpose without any unnecessary words. It's front-loaded and easy to parse, making it highly concise and well-structured for quick understanding.
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 for a tool that likely returns complex token data. It doesn't hint at what 'detailed information' includes (e.g., metadata, pricing, supply), leaving the agent uncertain about the output. For a read operation with no structured output, 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 input schema has 100% description coverage, with 'tokenId' clearly documented as 'Token address'. The description adds no additional parameter details beyond what the schema provides, such as format examples or constraints. Given the high schema coverage, a 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 detailed information') and resource ('about a token on SailFish DEX'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_token_balance' or 'get_token_price', which might provide overlapping or related information, 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 provides no guidance on when to use this tool versus alternatives. With siblings like 'get_token_balance', 'get_token_price', and 'get_token_historical_data', there's no indication of what specific 'detailed information' this tool offers or when it's preferred over others, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_priceC
Get the current price of a token on SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | Token address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose if this is a read-only operation (implied by 'get'), rate limits, authentication needs, or what happens with invalid token IDs, leaving significant gaps 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 that front-loads the core purpose without unnecessary words. It's appropriately sized for a simple tool, with every part earning its place.
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 (1 parameter, no output schema, no annotations), the description is incomplete. It doesn't explain return values (e.g., price format, currency), error handling, or dependencies, which are needed for adequate agent use 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?
Schema description coverage is 100%, with the parameter 'tokenId' documented as 'Token address'. The description adds no additional parameter semantics beyond this, so it meets the baseline of 3 without compensating for or enhancing the schema information.
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 the current price') and resource ('of a token on SailFish DEX'), providing specific purpose. However, it doesn't explicitly differentiate from siblings like get_token_historical_data (historical vs current) or get_token_info (which might include price among other data), missing full sibling distinction.
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. For example, it doesn't specify if this is for real-time pricing only, or when to choose get_token_historical_data for past data, leaving the agent without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_poolsC
Get a list of top liquidity pools by TVL on SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of pools to return (default: 10) |
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 mentions TVL-based ranking but doesn't cover critical aspects like rate limits, data freshness, pagination, error conditions, or whether this is a read-only operation. For a tool with no annotations, 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 that directly states the tool's purpose without any fluff. It's front-loaded with the core functionality and uses minimal words to convey 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?
Given no annotations and no output schema, the description is insufficient for a tool that returns ranked data. It doesn't explain what information is included in the pool list (e.g., pool addresses, token pairs, TVL values), how TVL is calculated, or the format of the response. This leaves too many unknowns 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%, with the single parameter 'count' documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema, so it meets the baseline for adequate coverage but doesn't provide extra semantic context.
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 a list') and resource ('top liquidity pools by TVL on SailFish DEX'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_pool_info' or 'get_total_tvl', which reduces 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?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify if this is for general discovery vs. detailed analysis, or how it differs from 'get_pool_info' or 'get_top_tokens'. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_tokensC
Get a list of top tokens by TVL on SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of tokens to return (default: 10) |
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 a list' implies a read-only operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the TVL data is in (e.g., USD value, percentage). For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
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 immediately conveys the core functionality without unnecessary words. Every word earns its place, and there's no redundant information or structural issues.
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 should provide more context about what the tool returns (e.g., token symbols, TVL values, timestamps) and any behavioral constraints. As a data retrieval tool in a financial context, users need to understand the completeness and limitations of the TVL ranking data being provided.
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 'count' clearly documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema, so it meets the baseline expectation when schema coverage is complete.
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 a list') and resource ('top tokens by TVL on SailFish DEX'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_top_pools' or 'get_token_info', which would require more specific context about what distinguishes 'top tokens by TVL' from other token-related 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. With sibling tools like 'get_token_info', 'get_token_balance', and 'get_top_pools', there's no indication of when this specific TVL-based ranking is appropriate versus other token data retrieval methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_total_tvlB
Get the total value locked (TVL) in SailFish DEX
| 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 of behavioral disclosure. It states the tool retrieves TVL but does not disclose any behavioral traits such as rate limits, authentication needs, data freshness, or error handling. 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 that directly states the tool's purpose without any unnecessary words. It is 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 has 0 parameters, no annotations, and no output schema, the description is minimally adequate but lacks depth. It explains what the tool does but does not cover behavioral aspects or output details, which are important for a tool retrieving financial data like TVL.
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 does not add parameter semantics, but this is acceptable given the schema's completeness. A baseline of 4 is appropriate as the tool has no parameters to explain.
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 'total value locked (TVL) in SailFish DEX', making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like get_24h_volume or get_top_pools, which might also retrieve DEX metrics, so it misses full sibling distinction.
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 context, prerequisites, or exclusions, leaving the agent to infer usage based on the name alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_address_from_private_keyB
Get wallet address from private key with proper checksum formatting
| Name | Required | Description | Default |
|---|---|---|---|
| privateKey | Yes | Private key of the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'proper checksum formatting,' which adds some behavioral context about output formatting. However, it lacks details on security implications (e.g., private key handling), error conditions, or response format. For a tool handling sensitive data with zero annotation coverage, this is a significant gap.
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 waste. It's front-loaded with the core purpose and includes a key detail ('proper checksum formatting') that earns its place. No unnecessary words or 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 tool's moderate complexity (handles sensitive private key data), no annotations, and no output schema, the description is minimally adequate. It covers the transformation purpose and output formatting but lacks details on security, errors, or return values. It meets basic needs but has clear gaps for safe agent 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%, with the parameter 'privateKey' documented as 'Private key of the wallet.' The description adds no additional parameter semantics beyond what the schema provides, such as format requirements (e.g., hex string) or validation rules. Baseline 3 is appropriate since 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: 'Get wallet address from private key with proper checksum formatting.' It specifies the verb ('Get'), resource ('wallet address'), and key transformation ('from private key'), though it doesn't explicitly differentiate from siblings like 'get_wallet_overview' which might provide broader wallet information. The purpose is specific but lacks sibling distinction.
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 a private key), exclusions (e.g., not for public keys), or compare to siblings like 'get_wallet_overview' for broader data. Usage is implied from the purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_overviewC
Get an overview of a wallet including EDU, tokens, and NFTs
| Name | Required | Description | Default |
|---|---|---|---|
| nftAddresses | No | List of NFT contract addresses to check | |
| tokenAddresses | No | List of token contract addresses to check | |
| walletAddress | Yes | Wallet address to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it's a 'Get' operation (implying read-only) but doesn't disclose behavioral traits like rate limits, authentication needs, error conditions, or what happens with invalid addresses. For a tool with no annotations, this leaves significant gaps.
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?
Single sentence, front-loaded with the core purpose, zero waste. Every word earns its place by specifying the action and data scope efficiently.
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 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain return values, error handling, or behavioral context needed for safe invocation, leaving the agent with insufficient information.
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 (walletAddress, tokenAddresses, nftAddresses). The description mentions these data types but adds no additional meaning beyond what's in the schema, such as format examples or constraints.
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 'overview of a wallet', specifying what data is included (EDU, tokens, NFTs). It distinguishes from siblings like get_edu_balance or get_nft_balance by offering a combined overview, though it doesn't explicitly name alternatives.
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 on when to use this tool versus alternatives like get_edu_balance, get_token_balance, or get_nft_balance. The description implies a comprehensive overview but doesn't specify scenarios where this is preferable over individual balance tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_eduC
Send EDU native token to another wallet address
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of EDU to send | |
| privateKey | Yes | Private key of the sender wallet | |
| toAddress | Yes | Recipient wallet address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It fails to disclose critical behavioral traits: this is a write operation (sending tokens implies mutation), requires authentication via private key, involves irreversible transfer of funds, and may have network fees or rate limits. The description is minimal and misses key safety and operational details.
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 waste. It front-loads the core action and resource, making it immediately understandable. Every word earns its place, and there is no redundant or verbose phrasing.
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 (a financial transaction tool with no annotations and no output schema), the description is incomplete. It omits critical context: irreversible nature, authentication requirements, potential errors, return values, or relationship to sibling tools. For a tool handling sensitive operations like token transfers, this leaves significant gaps for an AI 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?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional meaning beyond implying 'EDU' relates to the 'amount' parameter. It doesn't clarify parameter interactions, units (e.g., decimals for amount), or validation rules. 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 ('send') and resource ('EDU native token') with the target ('to another wallet address'). It distinguishes from siblings like 'send_erc20_token' by specifying 'native token' rather than ERC20 tokens, though it doesn't explicitly contrast them. The purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'send_erc20_token' or 'swap_edu_for_tokens'. The description lacks context about prerequisites (e.g., needing sufficient balance) or exclusions. It merely states what it does without advising on its application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_erc20_tokenC
Send ERC20 token to another wallet address
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of tokens to send | |
| confirm | No | Confirm the transaction after verifying wallet address (default: true) | |
| privateKey | Yes | Private key of the sender wallet | |
| toAddress | Yes | Recipient wallet address | |
| tokenAddress | Yes | Token contract address |
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. While 'send' implies a write/mutation operation, the description doesn't address critical behavioral aspects like transaction confirmation requirements, gas fees, network dependencies, error conditions, or what happens after sending (e.g., returns transaction hash or success status). This leaves significant gaps 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 communicates the core functionality without any wasted words. It's front-loaded with the essential action and immediately understandable, making it optimally concise for its purpose.
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 financial transaction tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after the send operation, what the return value might be, error handling, or important behavioral constraints. Given the complexity of cryptocurrency transactions and the lack of structured metadata, the description should provide more contextual information.
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 all parameters are documented in the schema itself. The description adds no additional parameter semantics beyond what's already in the schema descriptions. The baseline score of 3 reflects adequate parameter documentation through the schema alone, though the description contributes nothing extra.
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 ('send') and resource ('ERC20 token') with the destination ('to another wallet address'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'send_edu', which appears to be a similar token transfer function for a specific token, leaving some ambiguity about when to choose one over the other.
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 like 'send_edu' or other transfer-related tools in the sibling list. There's no mention of prerequisites, constraints, or typical use cases, leaving the agent to infer usage context entirely from the tool name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_rpc_urlC
Set the RPC URL for blockchain interactions
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | RPC URL to use for blockchain interactions |
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 states it's a 'Set' operation (implying mutation) but doesn't clarify whether this is persistent, requires specific permissions, affects other tools, or has side effects like rate limits. The description is minimal and lacks crucial behavioral context for a configuration 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, clear sentence that directly states the tool's purpose without any fluff. It's appropriately sized for a simple tool with one parameter and efficiently communicates the core 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?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns (e.g., confirmation, error messages), how changes propagate, or potential impacts on sibling tools that might use the RPC URL. The lack of behavioral and output context makes it incomplete for safe agent 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 schema description coverage is 100%, with the single parameter 'url' well-documented in the schema as 'RPC URL to use for blockchain interactions'. The description adds no additional parameter semantics beyond what's already in the schema, 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 ('Set') and the resource ('RPC URL for blockchain interactions'), making the purpose immediately understandable. However, it doesn't differentiate from its sibling tool 'get_rpc_url' beyond the obvious verb difference, missing an opportunity to clarify their complementary relationship.
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 admin permissions), when it's appropriate (e.g., during setup or troubleshooting), or what happens if used incorrectly, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swap_edu_for_tokensC
Swap EDU for tokens on SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| amountIn | Yes | Amount of EDU to swap | |
| fee | No | Fee tier (100=0.01%, 500=0.05%, 3000=0.3%, 10000=1%) | |
| privateKey | Yes | Private key of the sender wallet | |
| slippagePercentage | No | Slippage tolerance percentage (default: 0.5) | |
| tokenOut | Yes | Address of the output token |
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 financial transaction but doesn't disclose critical traits like whether it's irreversible, requires network fees, has rate limits, returns transaction hash, or involves on-chain execution. For a swap tool with sensitive parameters like privateKey, this is a significant gap.
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 immediately conveys the core action without any wasted words. It's appropriately sized for the tool's complexity 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 financial swap tool with 5 parameters (including sensitive privateKey) and no annotations or output schema, the description is insufficient. It lacks information about transaction behavior, error conditions, return values, security implications, and how it differs from sibling swap tools, leaving critical gaps for agent understanding.
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 parameters are well-documented in the schema itself. The description adds no additional parameter context beyond implying the swap direction (EDU→tokens), which aligns with parameter names but doesn't enhance semantics. 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 ('Swap') and resources involved ('EDU for tokens on SailFish DEX'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'swap_tokens' or 'swap_tokens_for_edu', which would require mentioning the specific direction (EDU→tokens) to achieve full distinction.
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. The description doesn't mention prerequisites (like needing EDU balance), compare with 'swap_tokens' or 'swap_tokens_for_edu', or indicate appropriate contexts (e.g., trading vs. checking quotes). This leaves the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swap_tokensC
Swap tokens on SailFish DEX (token to token)
| Name | Required | Description | Default |
|---|---|---|---|
| amountIn | Yes | Amount of input token to swap | |
| fee | No | Fee tier (100=0.01%, 500=0.05%, 3000=0.3%, 10000=1%) | |
| privateKey | Yes | Private key of the sender wallet | |
| slippagePercentage | No | Slippage tolerance percentage (default: 0.5) | |
| tokenIn | Yes | Address of the input token | |
| tokenOut | Yes | Address of the output token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't mention that this executes a transaction (implied by 'swap'), requires blockchain interaction, involves gas fees, risk of slippage, or returns a transaction hash. This leaves critical gaps for a financial 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 with zero waste—it directly states the tool's purpose. 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?
For a complex financial tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It lacks details on execution behavior, error handling, return values, and risk factors like slippage or fees, leaving the agent under-informed for safe operation.
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 parameters are well-documented in the schema itself. The description adds no additional meaning beyond implying token-to-token swapping, which aligns with parameters like tokenIn and tokenOut. Baseline 3 is appropriate 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 action ('swap tokens') and specifies the platform ('on SailFish DEX'), with the parenthetical clarifying it's a token-to-token operation. It distinguishes from siblings like 'swap_edu_for_tokens' and 'swap_tokens_for_edu' by not mentioning EDU specifically, but doesn't explicitly contrast them.
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 'swap_edu_for_tokens', 'swap_tokens_for_edu', or 'get_swap_quote'. The description lacks context about prerequisites, such as needing token addresses or a private key, or when a quote might be needed first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swap_tokens_for_eduC
Swap tokens for EDU on SailFish DEX
| Name | Required | Description | Default |
|---|---|---|---|
| amountIn | Yes | Amount of tokens to swap | |
| fee | No | Fee tier (100=0.01%, 500=0.05%, 3000=0.3%, 10000=1%) | |
| privateKey | Yes | Private key of the sender wallet | |
| slippagePercentage | No | Slippage tolerance percentage (default: 0.5) | |
| tokenIn | Yes | Address of the input token |
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 financial transaction ('Swap') but doesn't disclose critical traits like whether it's read-only or destructive (likely destructive given privateKey parameter), potential costs beyond the fee parameter, rate limits, error conditions, or what happens on success/failure. The description adds almost no context beyond the basic action.
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 perfectly front-loaded with the core action and immediately communicates the essential purpose without unnecessary elaboration.
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 financial transaction tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what EDU is (presumably a token), what 'SailFish DEX' refers to, what happens after the swap, potential risks (slippage, failed transactions), or return values. The context signals indicate significant complexity that the description doesn't address.
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 parameters are well-documented in the schema itself. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain tokenIn/amountIn relationships or privateKey security implications). Baseline 3 is appropriate when 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 ('Swap') and resources ('tokens for EDU on SailFish DEX'), making the purpose immediately understandable. It distinguishes from siblings like 'swap_tokens' (general token swap) and 'swap_edu_for_tokens' (reverse direction), though it doesn't explicitly mention these distinctions in the description itself.
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 tokens to swap), differentiate from 'swap_tokens' (which might handle different token pairs), or explain why one would choose this specific EDU-focused swap over other swap tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unwrap_weduC
Unwrap WEDU (Wrapped EDU) to EDU
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of WEDU to unwrap | |
| privateKey | Yes | Private key of the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action ('Unwrap') but doesn't disclose behavioral traits such as whether this is a blockchain transaction (implying gas fees, confirmation time), if it's irreversible, what permissions are needed, or potential errors (e.g., insufficient balance). The description is minimal and lacks critical operational context.
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 extremely concise with a single, direct sentence that front-loads the core action. There is zero wasted verbiage or redundancy, making it efficient for quick comprehension, though this conciseness comes at the cost of completeness.
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 blockchain token conversion tool with no annotations and no output schema, the description is incomplete. It lacks details on what EDU/WEDU are, the transaction nature, expected outputs, error handling, or integration context. For a tool that likely involves sensitive operations (private key usage) and financial implications, this minimal description is inadequate.
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 parameter descriptions in the schema ('Amount of WEDU to unwrap', 'Private key of the wallet'). The tool description adds no additional parameter semantics beyond what's in the schema, such as format details (e.g., amount in wei/tokens) or security considerations for the private key. Baseline 3 is appropriate given 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 ('Unwrap') and the resource ('WEDU to EDU'), making the purpose understandable. It distinguishes from sibling 'wrap_edu' by indicating the opposite conversion direction. However, it doesn't specify what WEDU/EDU are (tokens, assets) or the platform context, leaving some ambiguity.
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 WEDU balance), compare to other conversion tools like 'swap_edu_for_tokens', or indicate typical use cases (e.g., redeeming wrapped tokens). Usage is implied from the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_external_market_configC
Update the configuration for external market data API
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | API key for external market data (if required) | |
| apiUrl | No | API URL for external market data | |
| symbols | No | Symbol mappings for the external API |
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. While 'Update' implies a mutation operation, the description doesn't disclose whether this requires special permissions, whether changes are persistent or reversible, what happens to existing configuration values not mentioned, or any rate limits/constraints. For a configuration mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
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 states the core purpose without unnecessary words. It's appropriately sized for a configuration update tool and front-loads the essential information. Every word earns its place with zero waste or 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?
For a configuration mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address permission requirements, side effects, error conditions, or what happens to existing configuration. The agent lacks crucial context about how this tool behaves and what to expect when using it, especially given it modifies system settings.
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 has 100% description coverage, so all parameters are documented in the structured schema. The description adds no additional parameter semantics beyond what's already in the schema descriptions. It doesn't explain relationships between parameters, provide examples, or clarify that 'symbols' contains specific token mappings. Baseline 3 is appropriate when 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 ('Update') and target resource ('configuration for external market data API'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'set_rpc_url' which also updates configurations, nor does it mention what specific aspects of the configuration are updated beyond the API parameters.
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 (like needing admin permissions), when this should be called versus using 'get_external_market_config' first, or how it relates to other configuration tools like 'set_rpc_url'. The agent receives no usage context 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.
wrap_eduC
Wrap EDU to WEDU (Wrapped EDU)
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of EDU to wrap | |
| privateKey | Yes | Private key of the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but fails to disclose behavioral traits. It doesn't indicate if this is a read-only or mutating operation (implied mutation from 'wrap'), potential costs (e.g., gas fees), security implications of providing a private key, or what happens on success/failure. Critical details like transaction finality or error handling are omitted.
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 very brief and front-loaded, with no wasted words. However, it's overly concise to the point of under-specification, as it lacks necessary operational details. While structurally efficient, it sacrifices clarity for brevity.
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 blockchain token-wrapping operation with no annotations and no output schema, the description is incomplete. It doesn't explain the purpose, behavior, or expected outcomes, leaving gaps in understanding how the tool functions or what it returns. More context is needed for safe and 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%, with clear parameter descriptions in the schema itself. The tool description adds no additional meaning beyond the schema, such as explaining the format of 'amount' (e.g., in wei or decimals) or security notes for 'privateKey'. Since the schema is well-documented, the baseline score of 3 applies.
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 'Wrap EDU to WEDU (Wrapped EDU)' restates the tool name 'wrap_edu' in slightly different words, making it tautological. It doesn't specify what 'wrap' means operationally (e.g., converting native EDU tokens to wrapped WEDU tokens on a blockchain) or distinguish it from sibling tools like 'unwrap_wedu' beyond the obvious directionality.
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. It doesn't mention prerequisites (e.g., needing EDU balance), related tools like 'unwrap_wedu' for reverse operations, or scenarios where wrapping is beneficial (e.g., for DeFi interactions). The description offers no context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes targeting specific resources like balances, pools, tokens, swaps, or configurations, with clear boundaries. However, some overlap exists between get_token_balance and get_multiple_token_balances, and between swap_edu_for_tokens, swap_tokens, and swap_tokens_for_edu, which could cause minor confusion in selection.
Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly. All tools start with verbs like 'get', 'send', 'swap', 'wrap', 'unwrap', 'check', 'set', or 'update', followed by descriptive nouns, making the naming predictable and readable.
With 29 tools, the count is borderline high for a DEX and wallet interaction server, potentially feeling heavy and overwhelming. While many tools are specialized, the number might exceed typical scoping (3-15 tools), suggesting some consolidation could improve usability without losing functionality.
The tool set provides comprehensive coverage for the SailFish DEX and wallet management domain, including data retrieval (balances, prices, pools, tokens), trading operations (swaps, arbitrage), configuration management (RPC, market data), and token handling (wrap/unwrap, sends). No obvious gaps are present, supporting full agent workflows.
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 connecting AI agents to non-custodial staking data across 130+ networks.
MCP server giving AI agents one-connection access to crypto & DeFi data: DeFi protocol TVL, stableco
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Related MCP Servers
- FlicenseBqualityFmaintenanceAn MCP server that enables AI models like Claude to interact with the Trading Simulator API for checking balances, viewing prices, and executing trades with automatic chain detection.15
- FlicenseNot gradedqualityDmaintenanceAn MCP server that connects Claude for Desktop with blockchain functionality, allowing users to check balances and send tokens on EVM and Solana chains through natural language interactions.
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables token listing, trading, and interaction with the Kaia blockchain via Claude Desktop.1Apache 2.0
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/SailFish-Finance/educhain-ai-agent-kit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server