Skip to main content
Glama
kukapay

crypto-orderbook-mcp

by kukapay

Crypto Orderbook MCP

An MCP server that analyzes order book depth and imbalance across major crypto exchanges, empowering AI agents and trading systems with real-time market structure insights.

License Python Status

Features

  • Order Book Metrics: Calculate bid/ask depth and imbalance for a specified trading pair on a given exchange.

  • Cross-Exchange Comparison: Compare order book depth and imbalance across multiple exchanges in a unified Markdown table.

  • Supported Exchanges: Binance, Kraken, Coinbase, Bitfinex, Okx, Bybit

Related MCP server: crypto-sentiment-mcp

Installation

Prerequisites

  • Python 3.10 or higher

  • uv (Python package and project manager)

Setup

  1. Clone the Repository

    git clone https://github.com/kukapay/crypto-orderbook-mcp.git
    cd crypto-orderbook-mcp
  2. Install Dependencies

    Use uv to install the required packages:

    uv sync
  3. Configure the MCP Client(Claude Desktop)

    "mcpServers": { 
      "crypto-orderbook-mcp": { 
        "command": "uv", 
        "args": [ "--directory", "/absolute/path/to/crypto-orderbook-mcp", "run", "main.py" ]
      } 
    }

Usage

The server provides two main tools:

  1. calculate_orderbook: Computes bid depth, ask depth, and imbalance for a trading pair on a specified exchange.

  2. compare_orderbook: Compares bid depth, ask depth, and imbalance across multiple exchanges, returning a Markdown table.

Example: Calculate Order Book Metrics

Prompt: "Calculate the order book metrics for BTC/USDT on Binance with a 1% depth range."

Expected Output (JSON object):

{
  "exchange": "binance",
  "symbol": "BTC/USDT",
  "bid_depth": 123.45,
  "ask_depth": 234.56,
  "imbalance": 0.1234,
  "mid_price": 50000.0,
  "timestamp": 1698765432000
}

Example: Compare Order Book Across Exchanges

Prompt: "Compare the order book metrics for BTC/USDT across Binance, Kraken, and OKX with a 1% depth range."

Expected Output (Markdown table):

| exchange | bid_depth | ask_depth | imbalance |
|----------|-----------|-----------|-----------|
| binance  |    123.45 |    234.56 |    0.1234 |
| kraken   |     89.12 |    178.34 |    0.0987 |
| okx      |    145.67 |    256.78 |    0.1345 |

License

This project is licensed under the MIT License. See the LICENSE file for details.

Available Tools

2 tools
calculate_orderbookA
Calculate the order book depth and imbalance for a given trading pair on a specified exchange.

Args:
    exchange_id: The exchange identifier (e.g., 'binance', 'kraken')
    symbol: The trading pair (e.g., 'BTC/USDT')
    depth_percentage: Percentage range from mid-price to calculate depth and imbalance (default: 1.0%)

Returns:
    Dictionary containing bid depth, ask depth, imbalance, mid-price, and timestamp.
ParametersJSON Schema
NameRequiredDescriptionDefault
exchange_idYes
symbolYes
depth_percentageNo

TDQS

A3.5/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 what the tool returns but lacks details on rate limits, authentication needs, error handling, or whether it's a read-only operation. The description is minimal beyond basic functionality.

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 well-structured and concise, with a clear purpose statement followed by parameter and return value sections. Every sentence adds value without redundancy, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 calculation tool with no annotations and no output schema, the description is moderately complete. It covers parameters and return values but lacks behavioral context like performance implications or error conditions, which are important for such operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains each parameter's purpose with examples (e.g., 'binance', 'BTC/USDT', '1.0%'), clarifying semantics that the schema alone does not provide.

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 ('calculate') and resources ('order book depth and imbalance'), specifying it's for a trading pair on an exchange. It distinguishes from the sibling tool 'compare_orderbook' by focusing on calculation rather than comparison.

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 the sibling 'compare_orderbook' or other alternatives. It mentions the parameters but offers no context about appropriate use cases or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_orderbookA
Compare order book depth and imbalance for a trading pair across multiple exchanges, returning a Markdown table.

Args:
    symbol: The trading pair (e.g., 'BTC/USDT')
    depth_percentage: Percentage range from mid-price to calculate depth and imbalance (default: 1.0%)
    exchanges: List of exchange IDs to compare (default: all supported exchanges)

Returns:
    String containing a Markdown table with exchanges as rows and bid/ask depths and imbalance as columns.
ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
depth_percentageNo
exchangesNo

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the tool's behavior (comparison across exchanges, Markdown table output) and default values, but lacks details on potential limitations like rate limits, authentication requirements, or what happens with unsupported exchanges. It doesn't contradict any annotations.

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 efficiently structured with a clear purpose statement followed by Args and Returns sections. Every sentence adds value: the first establishes the tool's function, the parameter explanations provide necessary context, and the return statement clarifies output format. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters with 0% schema coverage and no output schema, the description does well by explaining all parameters and the return format. However, as a comparison tool with no annotations, it could benefit from mentioning performance considerations or data freshness, though the current information is largely complete for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaningful context for all 3 parameters: explains 'symbol' as trading pair with an example, clarifies 'depth_percentage' as percentage range from mid-price with default, and describes 'exchanges' as list of IDs with default. However, it doesn't specify format for exchange IDs or valid ranges for depth_percentage.

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 specific action ('compare order book depth and imbalance'), the resource ('for a trading pair across multiple exchanges'), and the output format ('returning a Markdown table'). It distinguishes itself from the sibling tool 'calculate_orderbook' by focusing on comparison across exchanges rather than calculation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (comparing order books across exchanges) and mentions a default behavior ('default: all supported exchanges'). However, it doesn't explicitly state when NOT to use it or provide alternatives to the sibling tool 'calculate_orderbook'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: calculate_orderbook focuses on a single exchange, while compare_orderbook aggregates data across multiple exchanges. There is no overlap in functionality, and the descriptions clearly differentiate between individual analysis and comparative analysis.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (calculate_orderbook, compare_orderbook) with clear, descriptive names that reflect their actions. The naming is uniform and predictable across the tool set.

Tool Count2/5

With only 2 tools, the server feels thin for a crypto orderbook domain. While the tools cover calculation and comparison, there are likely missing operations such as fetching raw orderbook data, historical analysis, or alerts for imbalances, making the scope incomplete.

Completeness2/5

The tool set is severely incomplete for a crypto orderbook server. It lacks basic CRUD operations like fetching raw orderbook data, updating or deleting calculations, and monitoring features. The two tools provide only calculation and comparison, leaving significant gaps for agent workflows.

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

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/kukapay/crypto-orderbook-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server