Bybit MCP Server
Bybit MCP 服务器
模型上下文协议 (MCP)服务器提供对 Bybit 加密货币交换 API 的只读访问。
这是 Alpha 质量软件 - 使用风险自负!
请务必在此服务器上使用只读 API 密钥。我不会将您的“钱”托付给我的代码,您也一样!
Started integrated server
Chatting with llama-3.2-11b-instruct:Q8_0 (Ctrl+C to exit)
Tools are available - ask about cryptocurrency data!
You: Whats the current spot price for USDT/BTC?
Assistant: <tool>get_ticker</tool>
<arguments>
{
"category": "spot",
"symbol": "BTCUSDT"
}
</arguments>
Tool result: {
"timestamp": "2024-12-14T12:32:30.628Z",
"meta": {
"requestId": "ad5177bc-93d1-49ed-80a1-dd95b3ec970b"
},
"symbol": "BTCUSDT",
"category": "spot",
"lastPrice": "101368.71",
"price24hPcnt": "0.0107",
"highPrice24h": "102661.3",
"lowPrice24h": "99683.96",
"prevPrice24h": "100292.67",
"volume24h": "22543.911683",
"turnover24h": "2285318788.68303381",
"bid1Price": "101366.07",
"bid1Size": "0.136049",
"ask1Price": "101366.08",
"ask1Size": "0.648039",
"usdIndexPrice": "101365.707576"
}
Processing result...
The current spot price for USDT/BTC is $101,368.71.特征
该 MCP 服务器提供以下工具用于与 Bybit 的 API 交互:
get_ticker:获取交易对的实时股票行情信息get_orderbook:获取交易对的订单簿(市场深度)数据get_kline:获取交易对的 K 线/K 线数据get_market_info:获取交易对的详细市场信息get_trades:获取交易对的近期交易get_instrument_info:获取特定交易对的详细工具信息get_wallet_balance:获取已验证用户的钱包余额信息get_positions:获取已验证用户的当前位置信息get_order_history:获取经过身份验证的用户的订单历史记录
Related MCP server: Binance MCP Server
要求和安装
Node.js(v20+)
pnpm(
npm i -g pnpm)如果您想运行 Ollama 客户端(如下面的快速入门所示),您需要安装并运行 Ollama,以及您选择的模型。
pnpm i快速入门
要安装软件包,请构建所有内容并启动交互式客户端:
pnpm i将 .env.example 文件复制到 .env 并填写您的详细信息。
cp .env.example .env
code .envMCP 服务器(仅限)
pnpm serveMCP-Server 和 Ollama 客户端
安装所需的客户端包:
(cd client && pnpm i)将客户端 .env.example 文件复制到 .env 并填写您的详细信息。
cp client/.env.example client/.env
code client/.env然后通过一个命令启动客户端和服务器:
pnpm start配置
环境变量
服务器需要将 Bybit API 凭证设置为环境变量:
BYBIT_API_KEY:您的 Bybit API 密钥(必需)BYBIT_API_SECRET:您的 Bybit API 密钥(必需) -重要 - 仅创建只读 API 密钥!BYBIT_USE_TESTNET:设置为“true”以使用测试网而不是主网(可选,默认为 false)DEBUG:设置为“true”以启用调试日志记录(可选,默认为 false)
客户端环境变量(./client/.env):
OLLAMA_HOST:Ollama 服务器的主机(默认为http://localhost:11434 )DEFAULT_MODEL:用于聊天的默认模型(默认为 llama-3.2-11b-instruct:Q8_0)
MCP 设置配置
要将此服务器与 MCP 客户端一起使用,您需要将其添加到 MCP 设置配置文件中。文件位置取决于您的客户端:
MCP 示例 - Claude 桌面
位置: ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"bybit": {
"command": "node",
"args": ["/path/to/bybit-mcp/build/index.js"],
"env": {
"BYBIT_API_KEY": "your-api-key",
"BYBIT_API_SECRET": "your-api-secret",
"BYBIT_USE_TESTNET": "false"
}
}
}
}MCP 示例 - gomcp
位置: ~/.config/gomcp/config.yaml
mcp_servers:
- name: "bybit"
command: "cd /path/to/bybit-mcp && pnpm run serve"
arguments: []
env:
BYBIT_API_KEY: "" # Add your Bybit API **READ ONLY** key here
BYBIT_API_SECRET: "" # Add your Bybit API **READ ONLY** secret here
BYBIT_USE_TESTNET: "true" # Set to false for production
DEBUG: "false" # Optional: Set to true for debug logging客户端集成
此软件包包含一个 TypeScript 客户端,该客户端提供命令行界面,用于与 Ollama LLM 和 bybit-mcp 服务器交互。该客户端支持:
与 Ollama 模特互动聊天
直接访问所有 bybit-mcp 交易工具
自动服务器管理
基于环境的配置
调试日志记录
有关详细的客户端文档,请参阅客户端 README 。
运行服务器
生产
构建服务器:
pnpm build运行服务器:
node build/index.js发展
对于使用自动 TypeScript 重新编译进行开发:
pnpm watch在开发过程中检查 MCP 服务器:
pnpm inspector工具文档
获取股票信息
{
"name": "get_ticker",
"arguments": {
"symbol": "BTCUSDT",
"category": "spot" // optional, defaults to "spot"
}
}获取订单簿数据
{
"name": "get_orderbook",
"arguments": {
"symbol": "BTCUSDT",
"category": "spot", // optional, defaults to "spot"
"limit": 25 // optional, defaults to 25 (available: 1, 25, 50, 100, 200)
}
}获取K线/K线数据
{
"name": "get_kline",
"arguments": {
"symbol": "BTCUSDT",
"category": "spot", // optional, defaults to "spot"
"interval": "1", // optional, defaults to "1" (available: "1", "3", "5", "15", "30", "60", "120", "240", "360", "720", "D", "M", "W")
"limit": 200 // optional, defaults to 200 (max 1000)
}
}获取市场信息
{
"name": "get_market_info",
"arguments": {
"category": "spot", // optional, defaults to "spot"
"symbol": "BTCUSDT", // optional, if not provided returns info for all symbols in the category
"limit": 200 // optional, defaults to 200 (max 1000)
}
}获取最近交易
{
"name": "get_trades",
"arguments": {
"symbol": "BTCUSDT",
"category": "spot", // optional, defaults to "spot"
"limit": 200 // optional, defaults to 200 (max 1000)
}
}获取仪器信息
{
"name": "get_instrument_info",
"arguments": {
"symbol": "BTCUSDT", // required
"category": "spot" // optional, defaults to "spot"
}
}返回有关交易工具的详细信息,包括:
基础货币和报价货币
交易状态
批量过滤器(最小/最大订单数量)
价格过滤器(刻度大小)
杠杆设置(针对期货)
合约详情(针对期货)
获取钱包余额
{
"name": "get_wallet_balance",
"arguments": {
"accountType": "UNIFIED", // required (available: "UNIFIED", "CONTRACT", "SPOT")
"coin": "BTC" // optional, if not provided returns all coins
}
}获取职位
{
"name": "get_positions",
"arguments": {
"category": "linear", // required (available: "linear", "inverse")
"symbol": "BTCUSDT", // optional
"baseCoin": "BTC", // optional
"settleCoin": "USDT", // optional
"limit": 200 // optional, defaults to 200
}
}获取订单历史记录
{
"name": "get_order_history",
"arguments": {
"category": "spot", // required (available: "spot", "linear", "inverse")
"symbol": "BTCUSDT", // optional
"baseCoin": "BTC", // optional
"orderId": "1234567890", // optional
"orderLinkId": "myCustomId", // optional
"orderStatus": "Filled", // optional (available: "Created", "New", "Rejected", "PartiallyFilled", "PartiallyFilledCanceled", "Filled", "Cancelled", "Untriggered", "Triggered", "Deactivated")
"orderFilter": "Order", // optional (available: "Order", "StopOrder")
"limit": 200 // optional, defaults to 200
}
}支持的类别
spot:现货交易linear:线性永续合约inverse:逆向永续合约
执照
麻省理工学院
Available Tools
12 toolsget_instrument_infoC
Get detailed instrument information for a specific trading pair
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category of the instrument (spot, linear, inverse) | |
| symbol | Yes | Trading pair symbol (e.g., 'BTCUSDT') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'gets' information, implying a read-only operation, but does not address critical aspects like authentication requirements, rate limits, error handling, or the format and depth of the returned information. This leaves significant gaps in understanding how the tool behaves in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that directly states the tool's purpose without unnecessary words or fluff. It is front-loaded with the core action and resource, making it efficient and easy to parse, which is ideal for quick comprehension by an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is insufficient for a tool that retrieves 'detailed instrument information'. It does not specify what details are included (e.g., specifications, fees, limits), how the information is structured, or any behavioral constraints. For a read operation with potential complexity, more context is needed to ensure the agent can use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters ('category' and 'symbol') with details like enum values for 'category'. The description does not add any meaningful semantic context beyond what the schema provides, such as explaining how 'symbol' relates to 'category' or providing usage examples. Thus, it meets the baseline for high schema coverage without enhancing parameter 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 action ('Get detailed instrument information') and the target resource ('for a specific trading pair'), which is specific and unambiguous. However, it does not explicitly differentiate from sibling tools like 'get_market_info' or 'get_ticker', which might also provide instrument-related data, leaving some ambiguity about its unique scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as sibling tools like 'get_market_info' or 'get_ticker'. It lacks context about prerequisites, exclusions, or specific use cases, offering only a basic statement of purpose without comparative or situational advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_klineC
Get kline/candlestick data for a trading pair. Supports optional reference ID for data verification.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category of the instrument (spot, linear, inverse) | |
| includeReferenceId | No | Include reference ID and metadata for data verification (default: false) | |
| interval | No | Kline interval | |
| limit | No | Limit for the number of candles (max 1000) | |
| symbol | Yes | Trading pair symbol (e.g., 'BTCUSDT') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions data retrieval and an optional verification feature, lacking details on rate limits, authentication needs, error handling, or response format. This is insufficient for a tool with multiple parameters and 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 concise and front-loaded with the core purpose in the first sentence. The second sentence adds a specific feature without redundancy. However, it could be slightly more structured by explicitly naming key parameters or use cases, but overall it's efficient with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema, and no annotations), the description is incomplete. It doesn't explain return values, error conditions, or behavioral traits like pagination or data freshness, leaving significant gaps for an agent to operate effectively in this financial context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantic value beyond the input schema, which has 100% coverage. It hints at the purpose of 'reference ID for data verification,' loosely related to the includeReferenceId parameter, but doesn't elaborate on its use or other parameters. Baseline 3 is appropriate given the schema's thoroughness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get kline/candlestick data for a trading pair,' which is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like get_ticker or get_trades, which might also provide market data, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions an optional feature (reference ID for verification) but doesn't clarify use cases, prerequisites, or exclusions relative to siblings such as get_ticker or get_orderbook, leaving the agent without contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_infoC
Get detailed market information for trading pairs
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category of the instrument (spot, linear, inverse) | |
| limit | No | Limit for the number of results (max 1000) | |
| symbol | No | Optional: Trading pair symbol (e.g., 'BTCUSDT'). If not provided, returns info for all symbols in the category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool 'gets' information, implying a read-only operation, but doesn't cover aspects like rate limits, authentication needs, error handling, or response format. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'detailed market information' includes, how results are structured, or any behavioral traits like pagination or errors. For a tool with rich context signals and siblings, this leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the three parameters. The description adds no additional meaning beyond the schema, such as explaining how parameters interact or providing examples. Baseline 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('detailed market information for trading pairs'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_ticker' or 'get_instrument_info' that might provide similar market-related data, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'get_ticker', 'get_instrument_info', and 'get_market_structure', the description lacks any indication of context, prerequisites, or distinctions, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_structureC
Advanced market structure analysis combining ML-RSI, order blocks, and liquidity zones. Provides comprehensive market regime detection and trading recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| analysisDepth | No | How far back to analyse (default: 200) | |
| category | Yes | Category of the instrument | |
| includeLiquidityZones | No | Include liquidity analysis (default: true) | |
| includeMLRSI | No | Include ML-RSI analysis (default: true) | |
| includeOrderBlocks | No | Include order block analysis (default: true) | |
| interval | Yes | Kline interval | |
| symbol | Yes | Trading pair symbol (e.g., 'BTCUSDT') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool provides 'comprehensive market regime detection and trading recommendations,' implying it's a read-only analysis tool, but lacks details on permissions, rate limits, data freshness, or output format. This is inadequate for a complex analysis tool with 7 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 concise with two sentences that efficiently convey the tool's purpose and outputs. It's front-loaded with key information and avoids redundancy, though it could be slightly more structured by separating analysis components from outputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It lacks behavioral details (e.g., computational cost, error handling), usage context, and output specifics, making it insufficient for an agent to fully understand tool invocation and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 7 parameters. The description adds no specific parameter semantics beyond implying analysis involves ML-RSI, order blocks, and liquidity zones, which loosely relates to includeMLRSI, includeOrderBlocks, and includeLiquidityZones. Baseline 3 is appropriate as the schema handles parameter documentation.
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 performs 'Advanced market structure analysis combining ML-RSI, order blocks, and liquidity zones' and provides 'market regime detection and trading recommendations.' This specifies the verb (analysis) and resources (market structure with specific components), though it doesn't explicitly differentiate from siblings like get_ml_rsi or get_order_blocks beyond mentioning combination.
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 mentions what it does but doesn't indicate scenarios for its use, prerequisites, or comparisons to sibling tools like get_market_info or get_ml_rsi, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ml_rsiB
Get ML-enhanced RSI using K-Nearest Neighbors algorithm for pattern recognition. Provides adaptive overbought/oversold levels and enhanced RSI values based on historical pattern similarity.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category of the instrument | |
| featureCount | No | Number of features to use 1-5 (default: 3) | |
| interval | Yes | Kline interval | |
| knnLookback | No | Historical period for pattern matching (default: 100) | |
| knnNeighbors | No | Number of neighbors for KNN algorithm (default: 5) | |
| limit | No | Number of data points to return (default: 200) | |
| mlWeight | No | ML influence weight 0-1 (default: 0.4) | |
| rsiLength | No | RSI calculation period (default: 14) | |
| smoothingMethod | No | Smoothing method to apply (default: none) | |
| symbol | Yes | Trading pair symbol (e.g., 'BTCUSDT') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the algorithm and outputs but fails to describe critical behaviors like computational intensity, rate limits, error handling, or response format. For a complex ML tool with 10 parameters, this omission leaves significant gaps in understanding how the tool operates beyond its basic function.
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 appropriately sized with two sentences that efficiently convey the core purpose and outputs. It is front-loaded with the main action and avoids unnecessary details, though it could be slightly more structured by explicitly separating algorithm details from output descriptions. Overall, it earns its place without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, ML algorithm) and lack of annotations and output schema, the description is incomplete. It does not explain the return values, error conditions, performance characteristics, or how outputs differ from standard RSI tools. For a sophisticated financial analysis tool, this leaves too much unspecified for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by hinting at 'historical pattern similarity' (related to knnLookback) and 'ML influence' (related to mlWeight), but it does not provide additional syntax, format details, or deeper insights into parameter interactions. Baseline 3 is appropriate as the schema handles most of the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get ML-enhanced RSI') and resources ('using K-Nearest Neighbors algorithm'), distinguishing it from sibling tools that focus on market data, orders, or wallet information. It explicitly mentions what it provides ('adaptive overbought/oversold levels and enhanced RSI values') and the method ('historical pattern similarity'), making it distinct and well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as which sibling tools might be more appropriate for different scenarios (e.g., basic RSI vs. ML-enhanced). It lacks context on prerequisites, use cases, or exclusions, leaving the agent to infer usage based solely on the purpose statement without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_blocksC
Detect institutional order accumulation zones based on volume analysis. Identifies bullish and bearish order blocks using volume peaks and tracks their mitigation status.
| Name | Required | Description | Default |
|---|---|---|---|
| bearishBlocks | No | Number of bearish blocks to track (default: 3) | |
| bullishBlocks | No | Number of bullish blocks to track (default: 3) | |
| category | Yes | Category of the instrument | |
| interval | Yes | Kline interval | |
| limit | No | Historical data points to analyse (default: 200) | |
| mitigationMethod | No | Mitigation detection method (default: wick) | |
| symbol | Yes | Trading pair symbol (e.g., 'BTCUSDT') | |
| volumePivotLength | No | Volume pivot detection period (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the analysis method (volume peaks) and tracks mitigation status, but doesn't describe what the tool returns (e.g., data format, structure), whether it's a read-only operation, potential rate limits, or error conditions. For a tool with 8 parameters and complex financial analysis, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences that directly state the tool's purpose and methodology. There's no wasted language, though it could be slightly more front-loaded by explicitly stating this is for technical analysis of trading data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex financial analysis tool with 8 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the output looks like (critical for order block data), doesn't mention performance characteristics, and provides minimal behavioral context. The description should do more to compensate for the lack of structured metadata.
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 description mentions 'volume analysis', 'volume peaks', and 'mitigation status', which loosely relate to parameters like volumePivotLength and mitigationMethod. However, with 100% schema description coverage, all parameters are already documented in the schema. The description adds minimal semantic context beyond what the schema provides, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: detecting institutional order accumulation zones using volume analysis, identifying bullish/bearish order blocks, and tracking mitigation status. It uses specific verbs ('detect', 'identifies', 'tracks') and mentions the resource (order blocks). However, it doesn't explicitly differentiate from sibling tools like get_market_structure or get_kline, which might also analyze market data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like get_market_structure or get_kline that might provide related market analysis, nor does it specify prerequisites or appropriate contexts for order block detection versus other market indicators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderbookC
Get orderbook (market depth) data for a trading pair
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category of the instrument (spot, linear, inverse) | |
| limit | No | Limit for the number of bids and asks (1, 25, 50, 100, 200) | |
| symbol | Yes | Trading pair symbol (e.g., 'BTCUSDT') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but lacks critical details such as whether this is a read-only operation, potential rate limits, authentication requirements, or the format of the returned data. This is inadequate for a tool that likely interacts with financial markets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of financial market data tools and the absence of both annotations and an output schema, the description is insufficient. It doesn't explain what the returned orderbook data looks like, potential limitations, or error conditions, leaving significant gaps for an agent to understand the tool's 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?
The input schema has 100% description coverage, providing clear details for all three parameters (symbol, category, limit) including enums and patterns. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline score of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('orderbook (market depth) data for a trading pair'), making the purpose immediately understandable. It distinguishes this tool from siblings like get_ticker or get_trades by specifying market depth data, though it doesn't explicitly contrast with similar tools like get_market_structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention scenarios where orderbook data is needed over other market data tools like get_ticker or get_market_info, nor does it specify prerequisites or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_historyC
Get order history for the authenticated user
| Name | Required | Description | Default |
|---|---|---|---|
| baseCoin | No | Base coin. Used to get all symbols with this base coin | |
| category | Yes | Product type | spot |
| limit | No | Maximum number of results (default: 200) | |
| orderFilter | No | Order filter | |
| orderId | No | Order ID | |
| orderLinkId | No | User customised order ID | |
| orderStatus | No | Order status | |
| symbol | No | Trading symbol, e.g., BTCUSDT |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it retrieves order history but doesn't mention whether this is a read-only operation, if it requires authentication (implied by 'authenticated user' but not explicit), rate limits, pagination behavior, or what the return format looks like. For a tool with 8 parameters and no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and efficiently communicates the essential scope. Every part of the description earns its place by specifying what is retrieved and for whom.
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 annotations, no output schema), the description is insufficiently complete. It doesn't explain the return format, error conditions, authentication requirements beyond implication, or how parameters interact. For a tool that likely returns structured financial data, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are documented in the input schema. The description doesn't add any additional meaning about parameters beyond what's in the schema, such as explaining relationships between parameters or providing usage examples. The baseline score of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('order history') with scope ('for the authenticated user'), making the purpose immediately understandable. However, it doesn't differentiate from potential sibling tools that might also retrieve order-related data, such as 'get_order_blocks' or 'get_positions', which could have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_order_blocks' or 'get_positions' that might retrieve similar order-related information, nor does it specify prerequisites or exclusions. The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_positionsC
Get positions information for the authenticated user
| Name | Required | Description | Default |
|---|---|---|---|
| baseCoin | No | Base coin. Used to get all symbols with this base coin | |
| category | Yes | Product type | |
| limit | No | Maximum number of results (default: 200) | |
| settleCoin | No | Settle coin. Used to get all symbols with this settle coin | |
| symbol | No | Trading symbol, e.g., BTCUSDT |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it retrieves information (implying read-only), but doesn't cover aspects like authentication requirements, rate limits, response format, or potential side effects, which are critical 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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a financial positions tool with 5 parameters and no output schema, the description is insufficient. It lacks details on return values, error handling, or behavioral context, leaving significant gaps for the agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter information beyond what's in the schema, meeting the baseline for high coverage but not enhancing 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 action ('Get') and resource ('positions information'), specifying it's for the authenticated user. However, it doesn't differentiate from sibling tools like 'get_wallet_balance' or 'get_order_history' that might also retrieve user-specific financial data, so it lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tickerC
Get real-time ticker information for a trading pair. Supports optional reference ID for data verification.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category of the instrument (spot, linear, inverse) | |
| includeReferenceId | No | Include reference ID and metadata for data verification (default: false) | |
| symbol | Yes | Trading pair symbol (e.g., 'BTCUSDT') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'real-time' data and 'data verification' via reference ID, but doesn't cover critical aspects like rate limits, authentication requirements, error conditions, or what the response format looks like (e.g., fields returned). This leaves significant gaps for a tool that presumably fetches live market data.
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 just two sentences that are front-loaded and waste no words. Every sentence earns its place by stating the core purpose and a key optional feature.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a real-time market data tool with no annotations and no output schema, the description is insufficient. It doesn't explain what data is returned (e.g., price, volume, timestamp), how 'real-time' is defined (e.g., latency), or any behavioral traits like rate limits. For a tool with 3 parameters and no structured output documentation, this leaves too many unknowns.
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 fully documents all three parameters. The description adds minimal value beyond the schema by mentioning 'optional reference ID for data verification,' which loosely relates to the 'includeReferenceId' parameter but doesn't provide additional semantic context. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'real-time ticker information for a trading pair', making the purpose specific and understandable. It distinguishes from siblings like 'get_instrument_info' or 'get_market_info' by focusing specifically on ticker data, though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_instrument_info' or 'get_market_info', which might provide overlapping or related data. It mentions an optional reference ID feature but doesn't explain when that should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tradesC
Get recent trades for a trading pair
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category of the instrument (spot, linear, inverse) | |
| limit | No | Limit for the number of trades (max 1000) | |
| symbol | Yes | Trading pair symbol (e.g., 'BTCUSDT') |
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 mentions 'recent trades' but doesn't disclose behavioral traits such as time recency (e.g., last hour, day), data format, pagination, rate limits, or authentication needs. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple retrieval tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 3 parameters, the description is incomplete. It lacks details on return values (e.g., trade data format), error handling, or behavioral constraints like rate limits. For a tool in a trading context with siblings, more context is needed to ensure proper 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 description coverage is 100%, so the schema already documents all parameters (symbol, category, limit) with descriptions and enums. The description adds no additional meaning beyond implying 'recent' for time context, but doesn't specify how recency is defined or interact with parameters. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'recent trades for a trading pair', making the purpose understandable. However, it doesn't differentiate from sibling tools like get_order_history or get_ticker, which might also retrieve trade-related data, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like get_order_history (which might retrieve user-specific trades) or get_ticker (which provides price data), there's no indication of context, exclusions, or prerequisites for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_balanceC
Get wallet balance information for the authenticated user
| Name | Required | Description | Default |
|---|---|---|---|
| accountType | Yes | Account type | |
| coin | No | Cryptocurrency symbol, e.g., BTC, ETH, USDT. If not specified, returns all coins. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it implies a read operation ('Get'), it doesn't specify authentication requirements beyond 'authenticated user', rate limits, error conditions, or what the return format looks like. For a financial data tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of both annotations and an output schema, the description is incomplete. It doesn't explain what balance information is returned (e.g., available balance, locked balance, total balance) or the response format. For a financial tool with no structured behavioral or output documentation, this leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, so parameters are well-documented in the structured schema. The description adds no additional parameter information beyond what's already in the schema (accountType with enum values, coin with default behavior). This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('wallet balance information') with the scope ('for the authenticated user'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling wallet-related tools (though none are listed in the provided siblings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, constraints, or relationships with the sibling tools (which appear to be market data and trading tools rather than direct alternatives).
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.
12 tool updates
v1.0.0- First observed
get_instrument_info - First observed
get_kline - First observed
get_market_info - First observed
get_market_structure - First observed
get_ml_rsi - First observed
get_order_blocks - First observed
get_order_history - First observed
get_orderbook - First observed
get_positions - First observed
get_ticker - First observed
get_trades - First observed
get_wallet_balance
TDQS
Scored across 12 tools
Most tools have distinct purposes, but there is some overlap between get_market_info, get_instrument_info, and get_ticker, which all provide market-related data for trading pairs. The descriptions help differentiate them, but an agent might need to carefully choose between these for specific needs.
All tool names follow a consistent verb_noun pattern using snake_case, starting with 'get_' followed by a descriptive noun phrase. This uniformity makes the tool set predictable and easy to navigate for an agent.
With 12 tools, the count is well-scoped for a trading server, covering market data, analysis, and user account operations. Each tool appears to serve a specific function without redundancy, fitting the domain appropriately.
The tool set covers key areas like market data retrieval, advanced analysis, and user account management, but lacks tools for executing trades or managing orders, which are core actions in a trading domain. This gap might limit agent workflows for full trading automation.
Maintenance
Related MCP Connectors
Unlock the power of real-time cryptocurrency data with our Crypto Price Insights MCP server.
A Model Context Protocol server exposing real-time and historical Colombo Stock Exchange (CSE) data to AI agents and LLM applications. Provides quotes and OHLCV price history, full financial statements (income, balance sheet, cash flow), pre-computed technicals (moving averages, RS ratings, volume signals), macroeconomic indicators, corporate actions, and rule-based screening across CSE stocks and sector indices, everything needed to build CSE-aware trading assistants, research tools, and market-analysis agents. This is the official MCP server of www.ceyloncharts.com
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that provides access to CoinMarketCap's cryptocurrency data, enabling AI applications to retrieve cryptocurrency listings, quotes, and detailed information.36-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that exposes Binance cryptocurrency exchange data to LLMs, allowing agents to access real-time prices, order books, and historical market data without requiring API keys.20MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI coding tools like Claude Code and Cursor to interact with Bybit's trading platform for market data retrieval, account management, and trading operations.119 npm13MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server that provides real-time cryptocurrency price fetching capabilities using the CoinGecko API. It enables LLMs to retrieve and process the latest price for any coin by its name or symbol.2-