blofin-mcp
OfficialClick 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., "@blofin-mcpshow my open positions"
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.
BloFin MCP Server
A Model Context Protocol (MCP) server for the BloFin cryptocurrency exchange API. Provides tools for market data, account management, and trading operations.
Features
Public Data (no authentication required)
get_instruments- Get available trading instruments and contract specsget_tickers- Get latest prices, bid/ask, 24h volumeget_orderbook- Get order book depthget_trades- Get recent tradesget_mark_price- Get mark/index pricesget_candlesticks- Get OHLCV candlestick dataget_funding_rate- Get current funding ratesget_funding_rate_history- Get historical funding rates
Account (authentication required)
get_balance- Get futures account balanceget_positions- Get open positionsget_leverage_info- Get leverage info for an instrumentset_leverage- Set leverage for an instrumentget_margin_mode- Get current margin mode for an instrumentset_margin_mode- Set margin mode for an instrumentget_position_mode- Get current position modeset_position_mode- Set position modeget_account_config- Get account configuration
Trading (authentication required)
place_order- Place a new order (market, limit, post_only, fok, ioc)cancel_order- Cancel an orderbatch_orders- Place multiple orders at oncecancel_batch_orders- Cancel multiple orders at onceclose_position- Close a positionget_open_orders- Get pending ordersget_order_history- Get order historyget_order_detail- Get specific order detailsget_fills_history- Get trade fill historyplace_tpsl- Place take-profit/stop-loss ordercancel_tpsl- Cancel a take-profit/stop-loss orderget_pending_tpsl- Get pending TP/SL ordersget_tpsl_history- Get TP/SL order historyplace_algo_order- Place an algo order (trigger/conditional)cancel_algo_order- Cancel algo ordersget_pending_algo_orders- Get pending algo ordersget_algo_order_history- Get algo order history
Asset Management (authentication required)
get_asset_balances- Get balances across account typesfund_transfer- Transfer funds between accountsget_fund_transfer_history- Get transfer historyget_deposit_history- Get deposit historyget_withdrawal_history- Get withdrawal historyget_apikey_info- Get API key information
Related MCP server: gate-local-mcp
Important Risk Notice
Trading tools can place and cancel real orders.
Use demo environment first, then switch to production only when ready.
Create API keys with least privilege and restrict by IP whenever possible.
Never share your API key, secret, or passphrase.
Tool Coverage
Current implementation registers 40 tools in total:
Public Market Data: 8 tools
Account: 9 tools
Trading: 17 tools
Asset Management: 6 tools
Getting Your API Key
Go to blofin.com and log in (or create an account)
Navigate to APIs page
Click Create API Key and select BloFin MCP as the API type
Set your permissions (read-only for market data, or enable trading as needed)
Save your API Key, Secret Key, and Passphrase — you'll need them for configuration below
Environment Variables
Variable | Required | Description |
| Yes | Your BloFin API key |
| Yes | Your BloFin API secret |
| Yes | Your BloFin API passphrase |
| No | API base URL (defaults to demo trading) |
Base URLs
Demo Trading:
https://demo-trading-openapi.blofin.com(default)Production:
https://openapi.blofin.com
Install and Build
npm install
npm run typecheck
npm run buildInstallation
Claude Desktop (Extension)
Download the latest blofin-mcp.mcpb from GitHub Releases and double-click to install. Claude Desktop will prompt you to enter your API Key, API Secret, and Passphrase.
Claude Desktop (Manual)
Add to your Claude Desktop config (Settings → Developer → Edit Config):
{
"mcpServers": {
"blofin": {
"command": "npx",
"args": ["-y", "blofin-mcp"],
"env": {
"BLOFIN_API_KEY": "your-api-key",
"BLOFIN_API_SECRET": "your-api-secret",
"BLOFIN_PASSPHRASE": "your-passphrase",
"BLOFIN_BASE_URL": "https://openapi.blofin.com"
}
}
}
}Claude Code
claude mcp add blofin -- npx -y blofin-mcpThen set environment variables in your shell profile or .env file:
export BLOFIN_API_KEY="your-api-key"
export BLOFIN_API_SECRET="your-api-secret"
export BLOFIN_PASSPHRASE="your-passphrase"
export BLOFIN_BASE_URL="https://openapi.blofin.com"Cursor
Add to .cursor/mcp.json in your project root (or global config at ~/.cursor/mcp.json):
{
"mcpServers": {
"blofin": {
"command": "npx",
"args": ["-y", "blofin-mcp"],
"env": {
"BLOFIN_API_KEY": "your-api-key",
"BLOFIN_API_SECRET": "your-api-secret",
"BLOFIN_PASSPHRASE": "your-passphrase",
"BLOFIN_BASE_URL": "https://openapi.blofin.com"
}
}
}
}Windsurf
Add to your Windsurf MCP config (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"blofin": {
"command": "npx",
"args": ["-y", "blofin-mcp"],
"env": {
"BLOFIN_API_KEY": "your-api-key",
"BLOFIN_API_SECRET": "your-api-secret",
"BLOFIN_PASSPHRASE": "your-passphrase",
"BLOFIN_BASE_URL": "https://openapi.blofin.com"
}
}
}
}Cline (VS Code)
Open Cline MCP settings (Cline → MCP Servers → Configure) and add:
{
"mcpServers": {
"blofin": {
"command": "npx",
"args": ["-y", "blofin-mcp"],
"env": {
"BLOFIN_API_KEY": "your-api-key",
"BLOFIN_API_SECRET": "your-api-secret",
"BLOFIN_PASSPHRASE": "your-passphrase",
"BLOFIN_BASE_URL": "https://openapi.blofin.com"
}
}
}
}OpenClaw
Add "mcpServers" to your ~/.openclaw/openclaw.json (top-level field, alongside identity, agent, etc.):
{
"identity": { "name": "Clawd", "emoji": "🦞" },
"agent": { "workspace": "~/.openclaw/workspace" },
// Add this section ↓
"mcpServers": {
"blofin": {
"command": "npx",
"args": ["-y", "blofin-mcp"],
"env": {
"BLOFIN_API_KEY": "your-api-key",
"BLOFIN_API_SECRET": "your-api-secret",
"BLOFIN_PASSPHRASE": "your-passphrase",
"BLOFIN_BASE_URL": "https://openapi.blofin.com"
}
}
}
}If your openclaw.json already has a "mcpServers" section with other servers, just add "blofin": { ... } inside it.
Restart OpenClaw after saving. The agent will automatically discover the 40 BloFin tools.
Open Source Project Files
License:
LICENSEContributing guide:
CONTRIBUTING.mdSecurity policy:
SECURITY.mdCommunity behavior policy:
CODE_OF_CONDUCT.mdChange history:
CHANGELOG.md
Reporting and Support
Bug reports and feature requests: GitHub Issues
Security issues: follow
SECURITY.mdAPI reference: BloFin API Docs
Available Tools
40 toolsbatch_ordersA
Place multiple orders at once (up to 20). All must share same instId and marginMode.
| Name | Required | Description | Default |
|---|---|---|---|
| orders | Yes | JSON array string of order objects. Each needs: instId, marginMode, side, orderType, size, and optionally price, positionSide, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description only mentions the operation and constraints. It does not disclose error handling, partial success behavior, rate limits, or other side effects, leaving the agent underinformed for a write 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, compact sentence with no wasted words, front-loading the core purpose and constraints.
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?
The description lacks details on return values, error scenarios, and usage context relative to siblings. For a batch tool with no output schema or annotations, more information 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 coverage is 100% for the single parameter. The description adds the critical constraint that all orders must share instId and marginMode, which is not captured in the schema 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 tool places multiple orders at once, with specific constraints (up to 20, same instId and marginMode), distinguishing it from single-order 'place_order'.
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 when to use (batching with shared attributes) but does not explicitly mention when not to use or alternative tools like 'place_order' for single orders.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_algo_orderB
Cancel an algo order.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT | |
| algoId | No | Algo order ID | |
| clientOrderId | No | Client-supplied order ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It lacks details about idempotency, failure cases, or side effects. Just 'cancel an algo order' provides minimal behavioral insight.
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 is extremely concise. However, it lacks any structure or front-loading of key information. Still, it is not verbose.
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 and no output schema, the description is too minimal. Missing return value information, error handling, or behavioral details needed for correct invocation.
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 coverage is 100% with short descriptions on each parameter. The description adds no extra meaning beyond the schema, so 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 explicitly states 'Cancel an algo order,' using a specific verb and resource. It distinguishes from sibling tools like cancel_order (regular orders) and cancel_tpsl (TP/SL orders).
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 (e.g., cancel_order, cancel_batch_orders). Missing context about prerequisites or which order states are eligible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_batch_ordersB
Cancel multiple orders at once.
| Name | Required | Description | Default |
|---|---|---|---|
| orders | Yes | JSON array string of cancel objects. Each needs: instId, orderId or clientOrderId. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states cancellation without details on atomicity, partial success, error handling, or rate limits.
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 is front-loaded and efficient, but lacks detail that could be added without much verbosity.
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?
No output schema or annotations, and description omits critical context like return behavior, error handling, or constraints for batch operations.
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 coverage is 100% and description adds no additional meaning beyond what the schema already provides for the 'orders' parameter.
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?
Description uses specific verb 'cancel' with resource 'multiple orders', clearly distinguishing from sibling tools like cancel_order (single) and cancel_algo_order (algo).
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 vs alternatives (e.g., cancel_order for single orders) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_orderC
Cancel an existing order.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT | |
| orderId | Yes | Order ID | |
| clientOrderId | No | Client-supplied order ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states action without side effects, permissions, or error conditions. As a mutation tool, more detail on limitations (e.g., order status constraints) is expected.
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 is short but lacks detail needed for clarity. Not excessively wordy, but too brief for a cancellation tool with sibling variations.
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 many sibling cancellation tools and no output schema, description fails to differentiate order types or specify behavior (e.g., partial fills, cancellation scope). Incomplete for safe invocation.
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 coverage is 100%, so descriptions already document each parameter. Description adds no extra meaning beyond schema.
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?
Clear verb 'cancel' and resource 'existing order'. Distinguishes from sibling tools like cancel_algo_order and cancel_tpsl by implication, but does not explicitly state it is for regular spot/margin orders.
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 vs alternatives like cancel_algo_order or cancel_batch_orders. Agent must infer from tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_tpslB
Cancel take-profit/stop-loss orders. Accepts a JSON array of cancel objects.
| Name | Required | Description | Default |
|---|---|---|---|
| orders | Yes | JSON array string of cancel objects. Each needs: instId, tpslId. Optional: clientOrderId. E.g. [{"instId":"BTC-USDT","tpslId":"123"}] |
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 lacks disclosure of key behaviors like idempotency, effect on existing orders, or error handling. Only parameter structure is explained.
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?
Two sentences that are direct and free of unnecessary information. The structure is efficient 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?
Without an output schema or annotations, the description is minimal. It covers the input but omits outcome details (success/failure, return format). For a basic cancel operation, it is borderline adequate but not comprehensive.
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 coverage is 100% with the description of the 'orders' parameter being detailed: it specifies required fields (instId, tpslId), optional field (clientOrderId), and provides an example, adding value beyond schema types.
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?
Description clearly states verb 'cancel' and resource 'take-profit/stop-loss orders', differentiating from siblings like cancel_order and cancel_algo_order. However, it could be more specific about the 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?
No explicit guidance on when to use this tool versus alternatives such as cancel_order or cancel_algo_order. The description does not provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_positionC
Close a position for an instrument via a market order.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| marginMode | Yes | Margin mode: cross or isolated | |
| positionSide | Yes | Position side: net (One-way Mode), long or short (Hedge Mode) | |
| clientOrderId | No | Client-supplied order ID | |
| brokerId | No | Broker ID provided by BloFin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only mentions it closes via market order, but lacks details about whether the position is fully closed, partial closure behavior, slippage, or other behavioral traits.
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?
One sentence, no wasted words. Concise but lacks additional detail that could be helpful.
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?
No output schema, but the description does not explain what the tool returns. It is somewhat complete given schema parameter descriptions, but could mention return value or behavior.
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 coverage is 100% with descriptions for all parameters. The description adds no extra meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool closes a position using a market order. It specifies the verb ('Close') and resource ('position for an instrument'), but does not differentiate from siblings like place_order which could also close positions.
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. No prerequisites, exclusions, or context about when a market order close is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fund_transferB
Transfer funds between accounts (funding, futures, copy_trading, earn, spot, inverse_contract).
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | Currency, e.g. USDT | |
| amount | Yes | Transfer amount | |
| fromAccount | Yes | Source account: funding, futures, copy_trading, earn, spot, inverse_contract | |
| toAccount | Yes | Destination account: funding, futures, copy_trading, earn, spot, inverse_contract | |
| clientId | No | Client-supplied transfer ID | |
| subAccount | No | Sub account UID (for inter-account transfer) | |
| mainToSubAccount | No | 'true': master->sub, 'false': sub->master. Required for inter-account transfer. |
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 'Transfer funds' indicating mutation but does not disclose side effects, reversibility, permission requirements, or behavior for sub-account transfers.
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?
One sentence with a clear verb and list of account types. No redundant words, front-loads the action.
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 7 parameters including optional sub-account fields and no output schema, the description is too minimal. It does not explain optional parameters or expected return value, leaving gaps for complex scenarios.
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 coverage is 100%, so the schema documents all parameters. The description adds no extra meaning beyond what the schema provides (e.g., listing account types mirrors schema descriptions). Baseline 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 clearly states the tool transfers funds between accounts and lists the specific account types (funding, futures, copy_trading, earn, spot, inverse_contract). This distinguishes it from sibling tools like place_order or get_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The description implies usage by listing account types, but does not compare with siblings or state prerequisites like API permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_configA
Get account configuration including position mode, account level, etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It correctly indicates a read operation via 'get' and lists example contents. Could be more explicit about authentication or response structure, but is sufficient for a simple getter.
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, front-loaded sentence with no waste. 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 output schema and no annotations, the description covers the tool's purpose adequately. Lacks details on response format, but for a simple config getter it is fairly complete.
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?
There are zero parameters, so schema coverage is 100%. The description adds value by specifying that the response includes position mode, account level, etc., which enriches the schema's empty properties.
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 retrieves account configuration, listing examples like position mode and account level, which distinguishes it from more specific sibling tools like get_position_mode.
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 the many specific getter siblings. The description implies it's for general config, but lacks explicit when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_algo_order_historyC
Get algo order history.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT | |
| algoId | No | Algo order ID | |
| clientOrderId | No | Client-supplied order ID | |
| state | No | State: live, effective, canceled, order_failed | |
| orderType | Yes | Algo type (required): trigger | |
| after | No | Pagination - records earlier than this ID | |
| before | No | Pagination - records newer than this ID | |
| limit | No | Number of results, max 100. Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose any behavioral traits beyond the basic read operation. No mention of pagination behavior, rate limits, or response format.
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 sentence, which is concise but lacks substance. It could be expanded to include key usage details without being verbose.
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?
With 8 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the purpose of filtering parameters or the expected return structure.
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 has 100% coverage with descriptions for each parameter, so the description adds no extra meaning beyond what is already provided. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get' and resource 'algo order history'. However, it does not distinguish from sibling tools like get_order_history or get_pending_algo_orders.
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 vs alternatives such as get_order_history or get_pending_algo_orders. Missing context on typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_apikey_infoA
Get API key information including permissions, IP whitelist, and expiration.
| 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 must convey behavioral traits. It correctly indicates a read operation ('Get') and lists returned information, but does not disclose whether repeated calls are safe, if rate limits apply, or if the API key's own privileges affect the result.
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, focused sentence. Every word contributes meaning: the verb, the resource, and three specific examples of included information. No unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description provides a reasonable overview of its purpose and output categories. However, it could be more explicit that it returns info for the currently authenticated API key, and it omits any mention of error conditions or response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the description adds value by enumerating the categories of information provided (permissions, IP whitelist, expiration). This goes beyond the empty schema, meeting the baseline expectation for 0-parameter tools.
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 uses a specific verb ('Get') and resource ('API key information') and lists concrete aspects (permissions, IP whitelist, expiration). This clearly distinguishes it from sibling tools that deal with orders, balances, or other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as authentication requirements, or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_asset_balancesC
Get asset balances across different account types (funding, futures, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| accountType | Yes | Account type: funding, futures, copy_trading, earn, spot, inverse_contract. Unified account use futures. | |
| currency | No | Currency, e.g. USDT |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states what the tool does without disclosing behavioral traits such as idempotency, authentication requirements, rate limits, or whether it's a read-only operation. The description is minimal.
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, concise sentence with no unnecessary words. It is front-loaded with the action and resource. However, it could slightly expand to include key behavioral context without losing conciseness.
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 output schema and the tool's importance (balance retrieval for multiple account types), the description is incomplete. It does not explain the response format, what happens when currency is omitted, or how to interpret different account types. More context is needed for safe invocation.
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 adequately. The description adds no new parameter information beyond the schema. Per guidelines, baseline is 3.
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 identifies the tool's function: retrieving asset balances across multiple account types. It uses a specific verb ('Get') and resource ('asset balances'), and mentions examples of account types. However, it does not explicitly differentiate from the similar sibling tool 'get_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?
The description provides no guidance on when to use this tool versus alternatives like 'get_balance', nor does it mention prerequisites or exclusions. The context of 'across different account types' is implied but not explicitly stated as a differentiator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceA
Get futures account balance details including equity, available balance, frozen amounts.
| Name | Required | Description | Default |
|---|---|---|---|
| productType | No | Product type: USDT-FUTURES or COIN-FUTURES. Default USDT-FUTURES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must convey behavioral traits. It implies a read operation and lists returned fields, but does not explicitly state read-only nature or any constraints. Adequate but not detailed.
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, no redundancy, front-loaded with key information. 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?
For a simple read tool with one optional parameter and no output schema, the description adequately specifies what is returned. However, it could mention that the productType parameter filters the result, though the schema already indicates this.
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 documentation covers the parameter fully (100% coverage), so baseline is 3. The description adds value by outlining the output fields (equity, available balance, frozen amounts), providing semantic context beyond parameter names.
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 the resource 'futures account balance details', listing specific fields (equity, available balance, frozen amounts). This distinguishes it from sibling tools like get_asset_balances which likely covers spot balances.
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 vs. alternatives (e.g., get_asset_balances, get_account_config). Does not mention prerequisites or context like authentication requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_candlesticksC
Get candlestick/kline data for an instrument.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| bar | No | Bar size, e.g. 1m, 5m, 15m, 30m, 1H, 4H, 1D, 1W, 1M. Default 1m. | |
| after | No | Pagination - return records earlier than this timestamp (ms) | |
| before | No | Pagination - return records newer than this timestamp (ms) | |
| limit | No | Number of results, max 300. Default 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Get ... data,' which implies a read operation, but does not disclose behavioral details such as data range limits, rate limits, or whether the data is historical only. This is insufficient for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no superfluous words. It is front-loaded and efficiently conveys 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 tool has 5 parameters and no output schema, the description should provide more context about the return format (e.g., array of OHLCV data) and any constraints (e.g., max range). It is too minimal, leaving 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 coverage is 100%, so the input schema already describes each parameter. The tool description adds no extra meaning beyond stating the resource. Baseline is 3 since the description does not enhance understanding of the parameters.
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 'candlestick/kline data for an instrument,' which distinguishes it from sibling tools like `get_orderbook` or `get_tickers`. However, it doesn't explicitly emphasize that this is historical time-series data, which could further differentiate it from similar tools.
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_tickers` (current price) or `get_funding_rate_history`. It also lacks information on prerequisites (e.g., valid instrument ID) or context for pagination parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deposit_historyC
Get deposit history.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Currency, e.g. USDT | |
| depositId | No | Deposit ID | |
| txId | No | Hash record of the deposit | |
| state | No | Status: 0=pending, 1=done, 2=failed, 3=kyt | |
| before | No | Pagination - records newer than this timestamp (ms) | |
| after | No | Pagination - records earlier than this timestamp (ms) | |
| limit | No | Number of results, max 100. Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like pagination semantics, default ordering, rate limits, or data freshness. The schema hints at pagination via 'before' and 'after' but the description omits how they work.
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 (one sentence) but overly minimal. For a tool with 7 parameters and no annotations, important context is missing, making it under-specified rather than efficiently 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?
Given the tool has 7 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return format, pagination behavior, or any constraints like max date range.
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 coverage is 100%, so the description does not need to add parameter details. Baseline score of 3 is appropriate since the schema already documents all parameters clearly.
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 retrieves deposit history, aligning with the name. However, it does not differentiate from sibling tools like get_withdrawal_history or get_order_history, which could be ambiguous.
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 such as get_withdrawal_history or get_fund_transfer_history. Context signals and sibling names exist but are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fills_historyC
Get trade fill history for futures.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT | |
| orderId | No | Order ID | |
| after | No | Pagination - records earlier than this tradeId | |
| before | No | Pagination - records newer than this tradeId | |
| begin | No | Filter begin timestamp (ms) | |
| end | No | Filter end timestamp (ms) | |
| limit | No | Number of results, max 100. Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose any behavioral traits such as read-only nature, pagination behavior, or potential side effects. The agent cannot infer safe usage from the description alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is appropriately sized and efficient.
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?
Despite having 7 parameters and no output schema or annotations, the description does not explain return values, pagination details, or how fills differ from order history. It is insufficient for an AI agent to use correctly 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?
Input schema coverage is 100% with descriptions for all 7 parameters. The description adds no additional meaning beyond the schema, so it meets the baseline but does not enhance understanding.
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 retrieves trade fill history for futures, using a specific verb and resource. However, it does not differentiate from similar sibling tools like get_trades or get_order_history, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The agent lacks context for selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_rateB
Get current funding rate for instruments.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT |
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 only states 'Get current funding rate', omitting information on idempotency, error behavior (e.g., invalid instrument ID), authentication, or rate limits. Insufficient for an agent to understand side effects or constraints.
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?
One sentence, no filler, front-loaded with verb and resource. Efficient and to the point.
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?
No output schema, and the description fails to explain the return value structure (e.g., fields, format). For a simple tool, this is a significant gap. An agent cannot infer what data it will receive.
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 coverage is 100% with 'instId' described as 'Instrument ID, e.g. BTC-USDT'. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate. No additional format or optionality 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 'Get current funding rate for instruments' uses a specific verb (Get) and resource (current funding rate), clearly distinguishing it from sibling like 'get_funding_rate_history' (historical rates) and 'get_mark_price' (different rate). It is explicit 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 on when to use this tool versus alternatives such as 'get_funding_rate_history' or 'get_mark_price'. The description does not clarify context or conditions for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_rate_historyB
Get historical funding rate data.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| after | No | Pagination - return records earlier than this timestamp (ms) | |
| before | No | Pagination - return records newer than this timestamp (ms) | |
| limit | No | Number of results, max 100. Default 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fails to disclose any behavioral details such as pagination behavior, rate limits, or data freshness. It adds no value beyond the verb 'get'.
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, zero wasted words. Appropriately concise for a simple retrieval tool.
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 presence of pagination parameters and no output schema, the description is too minimal. It should explain pagination behavior or return format, but it does not.
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 coverage is 100% with descriptions, so baseline is 3. Description adds no additional meaning beyond what the schema already provides.
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 it retrieves historical funding rate data, distinguishing it from sibling get_funding_rate (which likely gets current rate). Verb and resource are specific.
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 vs alternatives (e.g., get_funding_rate). No context about prerequisites or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fund_transfer_historyB
Get fund transfer history between accounts.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Currency, e.g. USDT | |
| fromAccount | No | Source account filter | |
| toAccount | No | Destination account filter | |
| before | No | Pagination - records newer than this timestamp (ms) | |
| after | No | Pagination - records earlier than this timestamp (ms) | |
| limit | No | Number of results, max 100. Default 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It does not state that the operation is read-only, whether authentication is required, or describe pagination behavior (though parameters hint at it). The description adds no behavioral context beyond the schema.
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, no wasted words. It is appropriately concise for a straightforward read tool, though it could incorporate pagination or filtering hints without losing conciseness.
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 6 parameters including pagination controls (before, after, limit) with detailed schema descriptions, the description does not mention pagination or result ordering. The missing output schema increases the need for return format context, which is absent. The description is incomplete for an agent to fully understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 6 parameters have descriptions), so baseline is 3. The description 'between accounts' adds minimal extra meaning beyond the fromAccount and toAccount parameter names, providing no new semantic 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 tool retrieves fund transfer history, distinguishing it from related sibling tools like fund_transfer (which creates transfers) and other history tools (e.g., get_deposit_history). The verb 'Get' and resource 'fund transfer history' are 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 on when to use this tool versus alternatives like get_deposit_history, get_withdrawal_history, or fund_transfer. There is no mention of prerequisites, recommended scenarios, or exclusions, leaving the agent without directional cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instrumentsA
Get available trading instruments. Returns contract specifications including min size, tick size, leverage limits.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description uses the verb 'Get' implying a read-only operation, but with no annotations provided, it does not explicitly state that there are no side effects, no destructive actions, or authorization requirements. It is adequate but minimal.
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 sentence with a list of return fields, no fluff or repetition. It is concise and to the point.
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?
The description mentions returned fields but is ambiguous about behavior when the optional 'instId' parameter is omitted. It says 'Get available trading instruments' (plural) without clarifying if it returns a list of all instruments or only the one specified. No output schema is provided, so this ambiguity could lead to misuse.
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 covers the single parameter 'instId' with a description and example. The tool description does not add additional context beyond what the schema provides; thus it adds minimal 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 'Get available trading instruments' and specifies that it returns contract specifications such as min size, tick size, and leverage limits. This distinguishes it from sibling tools like get_balance or get_positions which deal with different resources.
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 vs alternatives like get_tickers or get_candlesticks. There is no mention of prerequisites or scenario-specific usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_leverage_infoB
Get leverage info for an instrument.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| marginMode | Yes | Margin mode: cross or isolated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description implies a read operation with no destructive consequences, but fails to disclose any behavioral traits such as requiring specific permissions, rate limits, or data freshness. Without annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no extraneous information. Perfectly concise for a simple getter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two required parameters and no output schema, the description is adequate but lacks detail on return format, error scenarios, or possible values. Could be more complete.
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 coverage is 100% with descriptions for both instId and marginMode. Description adds no additional meaning beyond schema, so baseline 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?
Clearly states the action 'Get' and resource 'leverage info' for an instrument, distinguishing it from sibling 'set_leverage'. However, 'leverage info' is somewhat vague, not specifying what exact information is returned.
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 vs alternatives like set_leverage or get_margin_mode. No explicit context or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_margin_modeA
Get current account-level margin mode (cross or isolated).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full behavioral disclosure burden but only states the function. It does not mention that this is a safe read operation, any authentication requirements, rate limits, or potential side effects. The minimal description lacks depth for a tool with zero annotations.
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 sentence of 10 words, directly stating the function. It is concise and front-loaded with the key action and result.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter getter with no output schema, the description is mostly complete. However, it could briefly note the response type (e.g., 'Returns a string indicating the mode') to fully satisfy contextual 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 zero parameters, so schema description coverage is trivially 100%. Per guidelines, baseline is 4. The description adds no parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'account-level margin mode', and specifies the possible values 'cross or isolated', distinguishing it from siblings like 'set_margin_mode' and 'get_position_mode'.
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 that this is a read operation to check current mode before trading, or that 'set_margin_mode' is used to change it. No usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mark_priceB
Get mark price and index price for instruments.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the basic action. It does not mention rate limits, multiple instrument support, or any side effects. For a read operation, more context is expected.
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?
A single sentence that is front-loaded and contains no unnecessary words. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description provides essential information. However, it lacks explanation of return format or edge cases, which could be 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?
Schema coverage is 100% with a description for the instId parameter. The description adds minimal additional meaning beyond 'for instruments,' but it is adequate given the baseline.
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 retrieves mark price and index price for instruments, with a specific verb and resource. This distinguishes it from sibling tools like get_tickers or get_funding_rate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention scenarios or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_open_ordersC
Get list of currently open/pending orders.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT | |
| orderType | No | Order type filter: market, limit, post_only, fok, ioc | |
| state | No | State filter: live, partially_filled | |
| after | No | Pagination - records earlier than this orderId | |
| before | No | Pagination - records newer than this orderId | |
| limit | No | Number of results, max 100. Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states it returns open/pending orders but omits details like pagination behavior, response format, or any side effects. The schema covers parameters but the description lacks behavioral 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 a single concise sentence with no wasted words. It lacks structural elements like bullet points or grouping, but it is efficient.
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 6 optional parameters, no output schema, and no annotations, the description is too brief. It does not explain return values, pagination behavior, or defaults beyond what is in the schema, leaving 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 coverage is 100%, so each parameter has a description in the schema. The tool description adds no additional meaning beyond what is already in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a list of currently open/pending orders, using a specific verb and resource. While it does not explicitly distinguish from siblings like get_order_history, the scope is clear.
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 alternative tools such as get_order_history or get_pending_algo_orders. No context or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderbookA
Get order book depth for an instrument.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| size | No | Depth per side, max 100. Default 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. While 'Get' implies a read-only operation, the description does not specify authentication requirements, rate limits, or whether the depth is a snapshot or incremental update. Basic transparency but missing important 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?
A single sentence that is direct and free of unnecessary words. It efficiently communicates the tool's purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple query tool with well-documented parameters, but it does not explain the format of the returned order book or whether it is aggregated. More context would be beneficial for a complete 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?
Both parameters have descriptions in the schema (instId and size), covering 100% of parameters. The description adds no additional meaning beyond the schema, so baseline 3 applies. No enrichment of parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'order book depth', and the scope 'for an instrument'. This distinguishes it from sibling tools like 'get_tickers' or 'get_balance' which retrieve different 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 implies usage when order book depth is needed, but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_detailA
Get details of a specific order. Either orderId or clientOrderId or algoClientOrderId is required.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| orderId | No | Order ID (takes priority if all provided) | |
| clientOrderId | No | Client-supplied order ID | |
| algoClientOrderId | No | Algo client order ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'Get details' which implies a read operation, but it does not mention any side effects, authentication requirements, error conditions, or rate limits. This is insufficient for a tool with no annotation fallback.
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 sentence that is both concise and informative. It front-loads the purpose and immediately states the parameter requirement. No unnecessary words.
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?
The tool has 4 parameters with 1 required, moderate complexity. Without an output schema, the description could mention the return format or typical fields. However, the tool's purpose is simple and the description adequately covers the input constraints. It is minimally complete but could be enhanced.
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% coverage with descriptions for all parameters. The description adds crucial semantics by clarifying that exactly one of orderId, clientOrderId, or algoClientOrderId is required, which is not captured in the schema required field (only instId is marked required). This is a valuable addition.
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 'Get details of a specific order' which is a specific verb+resource combination. It distinguishes from sibling tools like get_open_orders and get_order_history by focusing on a single order and mentioning required identifiers.
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 minimal usage guidance by stating that one of orderId, clientOrderId, or algoClientOrderId is required. However, it does not explicitly explain when to use this tool versus alternatives like get_open_orders or batch_orders, leaving the agent to infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_historyC
Get order history.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT | |
| orderType | No | Order type filter: market, limit, post_only, fok, ioc | |
| state | No | State filter: canceled, filled, partially_canceled | |
| after | No | Pagination - records earlier than this orderId | |
| before | No | Pagination - records newer than this orderId | |
| begin | No | Filter begin timestamp (ms) | |
| end | No | Filter end timestamp (ms) | |
| limit | No | Number of results, max 100. Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits such as pagination behavior, ordering, rate limits, or any nuances beyond the schema.
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 sentence with no wasted words, but it is so brief that it borders on under-specification rather than optimal conciseness.
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?
With 8 parameters, no output schema, and no annotations, the description is too minimal; it fails to explain output format, pagination, or filtering behavior.
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 description adds no extra meaning beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get order history' clearly states the verb and resource, but does not differentiate from sibling tools like get_open_orders or get_order_detail.
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; no exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pending_algo_ordersC
Get pending algo orders.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT | |
| algoId | No | Algo order ID | |
| clientOrderId | No | Client-supplied order ID | |
| orderType | No | Algo type filter: trigger | |
| after | No | Pagination - records earlier than this algoId | |
| before | No | Pagination - records newer than this algoId | |
| limit | No | Number of results, max 100. Default 20. |
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 restates the name. It does not disclose behavioral traits like authentication requirements, data freshness, pagination behavior, or that it returns a list. Schema parameters hint at filtering, but description adds no behavioral 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?
Extremely concise (4 words), but under-specified. It does not earn its brevity by covering essential information; instead, it omits usage guidance and behavioral context, making it insufficient.
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 7 parameters (all optional, for filtering and pagination) and no output schema, the description should explain what 'pending' means, what the response contains, and how pagination works. It fails to do so, leaving the agent with ambiguous expectations.
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 baseline is 3. The description adds no parameter meaning beyond the schema. All parameter details are already in the input schema.
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?
Description clearly states verb 'Get' and resource 'pending algo orders', distinguishing it from siblings like get_algo_order_history (history) and cancel_algo_order (cancel). However, it lacks explicit scope or filter details that could further differentiate it.
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 such as get_algo_order_history or get_open_orders. The description does not mention selection criteria or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pending_tpslB
Get pending take-profit/stop-loss orders.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT | |
| tpslId | No | TPSL order ID | |
| clientOrderId | No | Client-supplied order ID | |
| after | No | Pagination - records earlier than this tpslId | |
| before | No | Pagination - records newer than this tpslId | |
| limit | No | Number of results, max 100. Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It only states the basic purpose, omitting details about pagination, filtering, or the nature of the return data (e.g., list vs single object).
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, concise sentence that efficiently conveys the core purpose without extraneous words.
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 6 optional parameters, no output schema, and no annotations, the description is too minimal. It does not explain the return format, pagination behavior, or how to distinguish pending from historical orders.
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 parameters are well-documented in the schema. The description adds no additional context or constraints beyond what the schema already provides.
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 function with a specific verb ('Get') and resource ('pending take-profit/stop-loss orders'). It distinguishes from sibling tools like 'place_tpsl' and 'get_tpsl_history'.
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 explicit guidance on when to use this tool versus alternatives like 'get_tpsl_history'. The name implies 'pending' orders, but the description does not provide when-not or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_position_modeA
Get current position mode (long_short_mode or net_mode).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations and no explicit behavioral details (e.g., read-only, no side effects). However, the word 'Get' implies idempotency, and the simplicity of the tool mitigates the lack of 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?
Single sentence, front-loaded, with no wasted words. Perfectly 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?
The description is sufficient for the tool's simplicity. It states what the tool retrieves and the possible return values, covering all necessary 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?
Zero parameters, so the description does not need to add any. The baseline score of 4 applies because schema coverage is 100% and there is nothing 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 action (get) and the resource (current position mode) and lists the two possible values (long_short_mode or net_mode), leaving no 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?
No guidance on when to use this tool versus alternatives like set_position_mode. Usage context is implied by 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.
get_positionsC
Get current open positions.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states 'Get current open positions' without explaining what constitutes 'open', whether it returns only positions with size>0, or any potential side effects. This is insufficient for a financial 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 sentence with no fluff. It is appropriately sized and gets straight to the point.
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 output schema, the description should provide more context about what the tool returns (e.g., list of positions with details like size, PnL). The minimal description leaves agents guessing about the response format.
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 covers the parameter 'instId' with its description, so the baseline is 3. The tool description does not add any extra meaning beyond the schema, but it also does not contradict or confuse.
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 retrieves current open positions, which differentiates it from mutation tools like close_position or order placement tools. However, it does not explicitly contrast with sibling tools that also retrieve data, such as get_open_orders, 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?
No guidance is provided on when to use this tool versus alternatives. For example, when to filter by instId or how it differs from trade-related queries like get_fills_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tickersA
Get latest price snapshot, best bid/ask, and 24h trading volume for instruments.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT. If omitted, returns all tickers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations. Describes returned data but does not disclose behavioral traits like rate limits, authentication requirements, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no waste, front-loaded with key 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?
Low complexity (1 optional param, no output schema). Description covers core output, though lacks detail on response structure.
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 coverage is 100% and schema already describes instId well. Description adds no extra meaning beyond schema.
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?
Clear verb 'Get' and specific resources: price snapshot, best bid/ask, 24h volume. Distinguishes from siblings like get_orderbook and get_candlesticks.
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?
Implies usage for current market data but does not explicitly state when to use vs alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tpsl_historyB
Get take-profit/stop-loss order history.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | No | Instrument ID, e.g. BTC-USDT | |
| tpslId | No | TPSL order ID | |
| after | No | Pagination - records earlier than this ID | |
| before | No | Pagination - records newer than this ID | |
| limit | No | Number of results, max 100. Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only states 'Get take-profit/stop-loss order history' without disclosing what the history includes (e.g., filled, cancelled, expired), whether authentication is needed, rate limits, or pagination behavior. The schema implies pagination via 'after'/'before' parameters, but the description does not mention this.
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 sentence, which is concise and front-loaded. However, it may be too brief to cover necessary details, but it earns its place by stating the core purpose without fluff.
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 output schema, no annotations, and 5 parameters, the description is insufficient. It does not explain what data is returned, the scope of the history (e.g., time range, order statuses), or any constraints. The tool is simple but still lacks completeness for an agent to fully understand its behavior.
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%, and the schema already describes each parameter (instId, tpslId, after, before, limit) clearly. The description adds no extra meaning beyond the schema, meeting the baseline of 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'take-profit/stop-loss order history', which distinguishes it from sibling tools like 'get_order_history' (general orders) and 'get_pending_tpsl' (pending orders). It 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?
The description provides no guidance on when to use this tool versus alternatives like 'get_pending_tpsl' or 'get_order_history'. There is no mention of prerequisites, context, or when not to use it. The name implies history, but no explicit usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tradesB
Get recent trades for an instrument.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| limit | No | Number of results, max 100. Default 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full transparency burden. It only states 'Get recent trades' without disclosing behavioral traits like authentication requirements, rate limits, whether truncation occurs, or if results are ordered. The tool's internal behavior is opaque.
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 short sentence, which is efficient and front-loaded with the core action. No superfluous text. However, it could benefit from a brief structure like including usage context, but it remains 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?
Given the tool's simplicity (2 params, no nested objects) and no output schema, the description is minimally complete for understanding its basic function. However, it lacks information about the return format or field details, which would be helpful for a data retrieval tool.
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% — both parameters (instId, limit) have clear descriptions. The tool description adds no extra parameter meaning beyond what's already in the schema. 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 states the tool's action ('Get recent trades') and resource ('for an instrument'), which is specific. It distinguishes from siblings like get_candlesticks or get_orderbook by mentioning 'trades'. However, it lacks detail on what 'recent' means (e.g., time range, number of trades), so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives implied usage for fetching recent trades but provides no explicit guidance on when to use this tool versus alternatives (e.g., get_fills_history for filled orders). No exclusion or prerequisite info is given, making it minimally adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_withdrawal_historyC
Get withdrawal history.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Currency, e.g. USDT | |
| withdrawId | No | Withdrawal ID | |
| type | No | Withdraw type: 0=blockchain withdraw, 1=internal transfers | |
| txId | No | Hash record of the withdrawal | |
| state | No | Status: 0=waiting review, 2=failed, 3=success, 4=canceled, 6=kyt, 7=processing | |
| before | No | Pagination - records newer than this timestamp (ms) | |
| after | No | Pagination - records earlier than this timestamp (ms) | |
| limit | No | Number of results, max 100. Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the basic function. It does not disclose that the operation is read-only or any other behavioral traits, leaving the agent uninformed about safety or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but it is too brief for a tool with 8 optional parameters and no other context. It lacks structure or organization.
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 (8 parameters, no output schema, no annotations), the description is incomplete. It does not explain pagination, default behavior, or the nature of the returned data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so all parameters are documented in the schema. The description adds no additional meaning beyond the schema, warranting the baseline score.
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 'Get withdrawal history' clearly states the verb and resource, but does not differentiate from sibling tools like get_deposit_history or get_fills_history.
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, nor any context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_algo_orderC
Place an algo order (trigger order).
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| marginMode | Yes | Margin mode: cross or isolated | |
| positionSide | Yes | Position side: net (One-way Mode), long or short (Hedge Mode) | |
| side | Yes | Order side: buy or sell | |
| orderType | Yes | Algo type: trigger | |
| size | Yes | Size in contracts. -1 for entire position. | |
| triggerPrice | Yes | Trigger price | |
| triggerPriceType | No | Trigger price type: last (last price). Default last. | |
| orderPrice | No | Order price after trigger. -1 for market. | |
| reduceOnly | No | Whether reduce-only order: 'true' or 'false'. Default 'false'. | |
| clientOrderId | No | Client-supplied order ID | |
| attachAlgoOrders | No | JSON array string of attached TP/SL orders. Each can have: tpTriggerPrice, tpOrderPrice, tpTriggerPriceType, slTriggerPrice, slOrderPrice, slTriggerPriceType | |
| brokerId | No | Broker ID provided by BloFin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It does not mention any behavioral traits such as destructiveness, authorization requirements, rate limits, or side effects. The description merely restates the tool's name.
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 short (one sentence) but is under-specified. It lacks structure and does not convey useful information beyond the name. Being concise is not a virtue when it omits critical content.
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 13 parameters, 7 required, no output schema, and many sibling tools, the description is severely incomplete. It does not explain return values, error behavior, or how the algo order works in practice.
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 coverage is 100%, so baseline is 3. The description adds no additional meaning or context beyond what is already in the input schema. It does not explain parameter relationships, provide defaults, or offer usage tips.
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 says 'Place an algo order (trigger order).' This provides a specific verb and resource, but it's vague about what 'algo order' means and how it differs from sibling tools like 'place_order' and 'place_tpsl'. It does not clearly distinguish the tool's purpose.
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?
There is no explanation of when to use this tool versus alternatives like 'place_order' for regular orders or 'place_tpsl' for TP/SL. No prerequisites or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_orderC
Place a new futures order. Supports limit, market, post_only, fok, ioc order types.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| marginMode | Yes | Margin mode: cross or isolated | |
| positionSide | Yes | Position side: net (One-way Mode), long or short (Hedge Mode) | |
| side | Yes | Order side: buy or sell | |
| orderType | Yes | Order type: market, limit, post_only, fok, ioc | |
| price | No | Price (required for limit orders, not applicable to market) | |
| size | Yes | Order size in contracts | |
| reduceOnly | No | Whether reduce-only order: 'true' or 'false'. Default 'false'. | |
| clientOrderId | No | Client-supplied order ID | |
| tpTriggerPrice | No | Take profit trigger price | |
| tpOrderPrice | No | Take profit order price. -1 for market price. | |
| slTriggerPrice | No | Stop loss trigger price | |
| slOrderPrice | No | Stop loss order price. -1 for market price. | |
| brokerId | No | Broker ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only mentions order types; it does not disclose important behaviors like return values, error handling, permission requirements, or side effects (e.g., immediate submission vs. validation).
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 short and to the point, with no wasted words. However, it could include more critical behavioral details without becoming verbose.
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 (14 parameters, no output schema) and sibling tools, the description is incomplete. It lacks information on return values, prerequisites, and how it interacts with TP/SL parameters or reduce-only. The agent may miss important constraints.
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 already documented. The description adds only the supported order types, which aligns with the orderType parameter. Minimal added value beyond the schema.
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 places a new futures order and lists supported order types (limit, market, etc.), making the purpose obvious. However, it does not differentiate from siblings like place_algo_order or place_tpsl, which also place orders.
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 alternative order-placing siblings (e.g., place_algo_order, place_tpsl, batch_orders). The agent must infer from the order types mentioned, but no explicit 'do not use' or context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_tpslB
Place take-profit/stop-loss order for a position. Either tpTriggerPrice or slTriggerPrice (or both) must be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| marginMode | Yes | Margin mode: cross or isolated | |
| positionSide | Yes | Position side: net (One-way Mode), long or short (Hedge Mode). Must be sent in Hedge Mode. | |
| side | Yes | Order side: buy or sell | |
| tpTriggerPrice | No | Take-profit trigger price. If provided, tpOrderPrice should also be filled. Either tpTriggerPrice or slTriggerPrice must be provided. | |
| tpOrderPrice | No | Take-profit order price. If provided, tpTriggerPrice should also be filled. -1 for market price. | |
| slTriggerPrice | No | Stop-loss trigger price. If provided, slOrderPrice should also be filled. Either tpTriggerPrice or slTriggerPrice must be provided. | |
| slOrderPrice | No | Stop-loss order price. If provided, slTriggerPrice should also be filled. -1 for market price. | |
| size | Yes | Quantity in contracts. -1 for entire position. | |
| reduceOnly | No | Whether orders can only reduce position size: 'true' or 'false'. Default 'false'. When true and opposite order exceeds position size, position is fully closed without opening a new one. | |
| clientOrderId | No | Client Order ID. Up to 32 case-sensitive alphanumeric characters. | |
| brokerId | No | Broker ID provided by BloFin. Up to 16 case-sensitive alphanumeric characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It mentions the required trigger prices but omits behavioral details such as whether it modifies existing TPSL orders, ordering guarantees, or error scenarios. The description is too sparse for a mutation tool with 12 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose and key constraint. No redundant or extraneous content.
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 12 parameters, 5 required, no output schema, and no annotations, the description is inadequate. It does not explain return values, error handling, or behavior when both tp and sl are set. A more complete description 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%, so baseline is 3. The description adds no new meaning beyond what the schema already provides (e.g., the constraint on tpTriggerPrice/slTriggerPrice is already in the schema). Hence no additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Place' and resource 'take-profit/stop-loss order', and highlights the critical constraint that either trigger price must be provided. It effectively distinguishes from sibling tools like 'place_order' and 'place_algo_order' by specifying it's for TPSL orders.
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 explicit guidance on when to use this tool versus alternatives. Sibling tools include many order types, but the description does not differentiate contexts or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_leverageB
Set leverage for an instrument.
| Name | Required | Description | Default |
|---|---|---|---|
| instId | Yes | Instrument ID, e.g. BTC-USDT | |
| leverage | Yes | Leverage value, e.g. '10' | |
| marginMode | Yes | Margin mode: cross or isolated | |
| positionSide | No | Position side: long, short, or net |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description offers minimal behavioral insight beyond 'set', missing details on side effects, permissions, or rate limits.
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, no wasted words; appropriately 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?
Despite full schema coverage, the description lacks essential context such as return value, prerequisites, and behavioral details, making it insufficient for a tool with no annotations and no output schema.
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 coverage is 100% with parameter descriptions, so baseline is 3; the description adds no extra semantic value beyond the schema.
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 (leverage for an instrument), distinguishing it from sibling tools like get_leverage_info.
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, nor any prerequisites or context for its invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_margin_modeC
Set account-level margin mode.
| Name | Required | Description | Default |
|---|---|---|---|
| marginMode | Yes | Margin mode: cross or isolated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description offers no behavioral details (e.g., side effects, reversibility, permission requirements). The agent is left to assume standard mutable operations without safety cues.
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, focused sentence. It is concise but might benefit from slight expansion to improve completeness; however, it avoids unnecessary words.
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 output schema and no annotations, the description is too minimal. It fails to convey the scope of the change, any dependencies on other settings, or the expected outcome, leaving completeness low.
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 coverage is 100% and includes a description for the parameter listing allowed values. The tool description adds no additional meaning or constraints beyond the schema, meeting the baseline.
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 resource (margin mode), which differentiates it from sibling tools like get_margin_mode. However, it could be more specific about 'account-level' but is sufficient.
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, prerequisites (e.g., position status), or alternatives. The agent must infer usage from context; no explicit when-not-to-use advice is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_position_modeC
Set position mode.
| Name | Required | Description | Default |
|---|---|---|---|
| positionMode | Yes | Position mode: long_short_mode or net_mode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authorization needs, reversibility, or effects on other settings.
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 one sentence, but it omits important details that could be included without becoming verbose.
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 too sparse. It does not explain return values, side effects, or any prerequisites.
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 coverage is 100%, and the schema description already explains the parameter. The tool description adds no additional meaning beyond the schema.
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 'Set position mode' uses a specific verb and resource, clearly distinguishing it from siblings like 'get_position_mode', 'set_leverage', and 'set_margin_mode'.
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 vs alternatives. The description does not mention prerequisites, side effects, or appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
40 tool updates
v1.2.0- First observed
batch_orders - First observed
cancel_algo_order - First observed
cancel_batch_orders - First observed
cancel_order - First observed
cancel_tpsl - First observed
close_position - First observed
fund_transfer - First observed
get_account_config - First observed
get_algo_order_history - First observed
get_apikey_info - First observed
get_asset_balances - First observed
get_balance - First observed
get_candlesticks - First observed
get_deposit_history - First observed
get_fills_history - First observed
get_fund_transfer_history - First observed
get_funding_rate - First observed
get_funding_rate_history - First observed
get_instruments - First observed
get_leverage_info - First observed
get_margin_mode - First observed
get_mark_price - First observed
get_open_orders - First observed
get_order_detail - First observed
get_order_history - First observed
get_orderbook - First observed
get_pending_algo_orders - First observed
get_pending_tpsl - First observed
get_position_mode - First observed
get_positions - First observed
get_tickers - First observed
get_tpsl_history - First observed
get_trades - First observed
get_withdrawal_history - First observed
place_algo_order - First observed
place_order - First observed
place_tpsl - First observed
set_leverage - First observed
set_margin_mode - First observed
set_position_mode
TDQS
Scored across 40 tools
Each tool targets a distinct resource or action, with clear separation between data retrieval (get_*), order placement (place_*), cancellation (cancel_*), and configuration (set_*). Even within similar categories like cancellations, the tool descriptions specify different order types or modes, avoiding ambiguity.
Most tools follow a consistent verb_noun pattern with underscores (e.g., get_balance, place_order). Minor deviations like 'batch_orders' (noun phrase as command) and 'fund_transfer' (two nouns) are present, but the overall pattern is predictable and readable.
With 40 tools, the set is comprehensive for a crypto exchange API covering orders, positions, account, market data, and transfers. While it is on the higher end, each tool serves a distinct purpose and is justified by the complexity of the domain.
The tool surface covers full lifecycle operations for orders (place, cancel, query), positions (close, leverage, margin mode), account configuration, market data (orderbook, candlesticks, tickers), transfers, and history. No obvious gaps are present for a typical futures trading workflow.
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
Crypto trading intelligence MCP — 34+ endpoints, x402 pay-per-use, AI agent strategy & execution
Trade 16 crypto exchanges + MetaTrader 5 from your AI assistant via one MCP connection.
33 pay-per-call market and news data tools over MCP with free discovery and x402 payments.
Binance - 340 tools for market data, order books, and trading pairs
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceMCP server for the Crypto.com Exchange API, providing 86 dynamically generated tools for market data, trading, account management, and more with real-time WebSocket streaming and safety enforcement.3725Apache 2.0
gate-local-mcpofficial
AlicenseNot gradedqualityDmaintenanceExposes the full Gate API v4 to MCP clients with 384 tools for spot, futures, margin, wallet, and more. Supports both public endpoints (no auth) and authenticated trading operations.481MIT- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Interactive Brokers through 48 tools for market data, orders, account management, and more, via the MCP protocol.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI tools to execute trades and fetch market data across six crypto exchanges via natural language or API, with dual Telegram and MCP interfaces.2-