Skip to main content
Glama
sammcj

Bybit MCP Server

by sammcj

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 pair

  • get_orderbook: Get orderbook (market depth) data for a trading pair

  • get_kline: Get kline/candlestick data for a trading pair

  • get_market_info: Get detailed market information for trading pairs

  • get_trades: Get recent trades for a trading pair

  • get_instrument_info: Get detailed instrument information for a specific trading pair

  • get_wallet_balance: Get wallet balance information for the authenticated user

  • get_positions: Get current positions information for the authenticated user

  • get_order_history: Get order history for the authenticated user

  • get_ml_rsi: Get machine learning-based RSI (Relative Strength Index) for a trading pair

  • get_market_structure: Get market structure information for a trading pair

  • get_order_blocks: Detect institutional order accumulation zones

  • get_order_history: Get order history for the authenticated user

  • get_orderbook: Get orderbook (market depth) data for a trading pair

  • get_ticker: Get real-time ticker information for a trading pair

There is also a highly experimental WebUI, see WebUI README for details.

WebUI Screenshot

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

  1. Node.js (v22+)

  2. pnpm (npm i -g pnpm)

  3. 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 i

Quick Start

To install packages build everything and start the interactive client:

pnpm i

Copy the .env.example file to .env and fill in your details.

cp .env.example .env
code .env

MCP-Server (Only)

Stdio Transport (Default)

pnpm serve

HTTP/SSE Transport

pnpm start:http

The 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/.env

Then to start the client and server in one command:

pnpm start

Configuration

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 logging

Client 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

  1. Build the server:

pnpm build
  1. Run the server:

node build/index.js

Development

For development with automatic TypeScript recompilation:

pnpm watch

To inspect the MCP server during development:

pnpm inspector

Tool 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 trading

  • linear: Linear perpetual contracts

  • inverse: Inverse perpetual contracts

License

MIT

Available Tools

12 tools
get_instrument_infoC

Get detailed instrument information for a specific trading pair

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoCategory of the instrument (spot, linear, inverse)
symbolYesTrading pair symbol (e.g., 'BTCUSDT')

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoCategory of the instrument (spot, linear, inverse)
includeReferenceIdNoInclude reference ID and metadata for data verification (default: false)
intervalNoKline interval
limitNoLimit for the number of candles (max 1000)
symbolYesTrading pair symbol (e.g., 'BTCUSDT')

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoCategory of the instrument (spot, linear, inverse)
limitNoLimit for the number of results (max 1000)
symbolNoOptional: Trading pair symbol (e.g., 'BTCUSDT'). If not provided, returns info for all symbols in the category

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysisDepthNoHow far back to analyse (default: 200)
categoryYesCategory of the instrument
includeLiquidityZonesNoInclude liquidity analysis (default: true)
includeMLRSINoInclude ML-RSI analysis (default: true)
includeOrderBlocksNoInclude order block analysis (default: true)
intervalYesKline interval
symbolYesTrading pair symbol (e.g., 'BTCUSDT')

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYesCategory of the instrument
featureCountNoNumber of features to use 1-5 (default: 3)
intervalYesKline interval
knnLookbackNoHistorical period for pattern matching (default: 100)
knnNeighborsNoNumber of neighbors for KNN algorithm (default: 5)
limitNoNumber of data points to return (default: 200)
mlWeightNoML influence weight 0-1 (default: 0.4)
rsiLengthNoRSI calculation period (default: 14)
smoothingMethodNoSmoothing method to apply (default: none)
symbolYesTrading pair symbol (e.g., 'BTCUSDT')

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bearishBlocksNoNumber of bearish blocks to track (default: 3)
bullishBlocksNoNumber of bullish blocks to track (default: 3)
categoryYesCategory of the instrument
intervalYesKline interval
limitNoHistorical data points to analyse (default: 200)
mitigationMethodNoMitigation detection method (default: wick)
symbolYesTrading pair symbol (e.g., 'BTCUSDT')
volumePivotLengthNoVolume pivot detection period (default: 5)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoCategory of the instrument (spot, linear, inverse)
limitNoLimit for the number of bids and asks (1, 25, 50, 100, 200)
symbolYesTrading pair symbol (e.g., 'BTCUSDT')

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
baseCoinNoBase coin. Used to get all symbols with this base coin
categoryYesProduct typespot
limitNoMaximum number of results (default: 200)
orderFilterNoOrder filter
orderIdNoOrder ID
orderLinkIdNoUser customised order ID
orderStatusNoOrder status
symbolNoTrading symbol, e.g., BTCUSDT

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
baseCoinNoBase coin. Used to get all symbols with this base coin
categoryYesProduct type
limitNoMaximum number of results (default: 200)
settleCoinNoSettle coin. Used to get all symbols with this settle coin
symbolNoTrading symbol, e.g., BTCUSDT

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoCategory of the instrument (spot, linear, inverse)
includeReferenceIdNoInclude reference ID and metadata for data verification (default: false)
symbolYesTrading pair symbol (e.g., 'BTCUSDT')

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoCategory of the instrument (spot, linear, inverse)
limitNoLimit for the number of trades (max 1000)
symbolYesTrading pair symbol (e.g., 'BTCUSDT')

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
accountTypeYesAccount type
coinNoCryptocurrency symbol, e.g., BTC, ETH, USDT. If not specified, returns all coins.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

B3.4/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    20
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A 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.
    11
    16
    13
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    A 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

Latest Blog Posts

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