Bybit MCP Server
The Bybit MCP Server provides read-only access to Bybit's cryptocurrency exchange API, enabling programmatic interaction with trading data and account management.
Access Market Data: Get real-time ticker information, orderbook data, kline/candlestick data, market information, and recent trades for trading pairs
Retrieve Instrument Details: Obtain detailed information about trading pairs, including base/quote currencies and trading parameters
Manage User Data: Access wallet balances, current positions, and order history (requires authentication)
Multiple Trading Categories: Supports spot, linear, and inverse trading
Interactive Tools: Includes CLI for Ollama LLM interaction and direct access to trading functions
Customizable: Configure server and client through environment variables
Provides integration with Ollama's LLM server, allowing interactive chat with Ollama models while using the Bybit tools to access cryptocurrency data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bybit MCP Serverwhat's the current price of Bitcoin?"
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.
Bybit MCP Server
A Model Context Protocol (MCP) server that provides read-only access to Bybit's cryptocurrency exchange API.
THIS IS ALPHA QUALITY SOFTWARE - USE AT YOUR OWN RISK!
Only ever use a read-only API key with this server. I wouldn't trust my code with your "money" and neither should you!
Features
This MCP server provides the following tools for interacting with Bybit's API:
get_ticker: Get real-time ticker information for a trading pairget_orderbook: Get orderbook (market depth) data for a trading pairget_kline: Get kline/candlestick data for a trading pairget_market_info: Get detailed market information for trading pairsget_trades: Get recent trades for a trading pairget_instrument_info: Get detailed instrument information for a specific trading pairget_wallet_balance: Get wallet balance information for the authenticated userget_positions: Get current positions information for the authenticated userget_order_history: Get order history for the authenticated userget_ml_rsi: Get machine learning-based RSI (Relative Strength Index) for a trading pairget_market_structure: Get market structure information for a trading pairget_order_blocks: Detect institutional order accumulation zonesget_order_history: Get order history for the authenticated userget_orderbook: Get orderbook (market depth) data for a trading pairget_ticker: Get real-time ticker information for a trading pair
There is also a highly experimental WebUI, see WebUI README for details.

All code is subject to breaking changes and feature additions / removals as I continue to develop this project.
Related MCP server: Binance MCP Server
Requirements & Installation
Node.js (v22+)
pnpm (
npm i -g pnpm)If you want to run the Ollama client as shown in the quick start below, you'll need Ollama installed and running, as well as your model of choice.
pnpm iQuick Start
To install packages build everything and start the interactive client:
pnpm iCopy the .env.example file to .env and fill in your details.
cp .env.example .env
code .envMCP-Server (Only)
Stdio Transport (Default)
pnpm serveHTTP/SSE Transport
pnpm start:httpThe HTTP server runs on port 8080 by default and provides both modern Streamable HTTP and legacy SSE transports, making it compatible with web applications and various MCP clients. See HTTP Server Documentation for detailed information.
MCP-Server and Ollama client
Install required client packages:
(cd client && pnpm i)Copy the client .env.example file to .env and fill in your details.
cp client/.env.example client/.env
code client/.envThen to start the client and server in one command:
pnpm startConfiguration
Environment Variables
The server requires Bybit API credentials to be set as environment variables:
BYBIT_API_KEY: Your Bybit API key (required)BYBIT_API_SECRET: Your Bybit API secret (required) - IMPORTANT - Only ever create a read-only API key!BYBIT_USE_TESTNET: Set to "true" to use testnet instead of mainnet (optional, defaults to false)DEBUG: Set to "true" to enable debug logging (optional, defaults to false)
Client environment variables (./client/.env):
OLLAMA_HOST: The host of the Ollama server (defaults to http://localhost:11434)DEFAULT_MODEL: The default model to use for chat (defaults to qwen3-30b-a3b-ud-nothink-128k:q4_k_xl)
MCP Settings Configuration
To use this server with MCP clients, you need to add it to your MCP settings configuration file. The file location depends on your client:
MCP Example - Claude Desktop
Location: ~/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 Example - gomcp
Location: ~/.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 loggingClient Integration
This package includes a TypeScript client that provides a command-line interface for interacting with both Ollama LLMs and the bybit-mcp server. The client supports:
Interactive chat with Ollama models
Direct access to all bybit-mcp trading tools
Automatic server management
Environment-based configuration
Debug logging
For detailed client documentation, see the client README.
Running the Server
Production
Build the server:
pnpm buildRun the server:
node build/index.jsDevelopment
For development with automatic TypeScript recompilation:
pnpm watchTo inspect the MCP server during development:
pnpm inspectorTool Documentation
Get Ticker Information
{
"name": "get_ticker",
"arguments": {
"symbol": "BTCUSDT",
"category": "spot" // optional, defaults to "spot"
}
}Get Orderbook Data
{
"name": "get_orderbook",
"arguments": {
"symbol": "BTCUSDT",
"category": "spot", // optional, defaults to "spot"
"limit": 25 // optional, defaults to 25 (available: 1, 25, 50, 100, 200)
}
}Get Kline/Candlestick Data
{
"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)
}
}Get Market Information
{
"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)
}
}Get Recent Trades
{
"name": "get_trades",
"arguments": {
"symbol": "BTCUSDT",
"category": "spot", // optional, defaults to "spot"
"limit": 200 // optional, defaults to 200 (max 1000)
}
}Get Instrument Information
{
"name": "get_instrument_info",
"arguments": {
"symbol": "BTCUSDT", // required
"category": "spot" // optional, defaults to "spot"
}
}Returns detailed information about a trading instrument including:
Base and quote currencies
Trading status
Lot size filters (min/max order quantities)
Price filters (tick size)
Leverage settings (for futures)
Contract details (for futures)
Get Wallet Balance
{
"name": "get_wallet_balance",
"arguments": {
"accountType": "UNIFIED", // required (available: "UNIFIED", "CONTRACT", "SPOT")
"coin": "BTC" // optional, if not provided returns all coins
}
}Get Positions
{
"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
}
}Get Order History
{
"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
}
}Supported Categories
spot: Spot tradinglinear: Linear perpetual contractsinverse: Inverse perpetual contracts
License
MIT
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.
TDQS
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
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
Unlock the power of real-time cryptocurrency data with our Crypto Price Insights MCP server.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Live financial data MCP: FX, crypto, stocks, news, URL reader. x402 on Base: $0.001/call.
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.37
- 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.111613MIT
- 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
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sammcj/bybit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server