MCP server and client for WhiteBit cryptocurrency exchange API
Project description
aiowhitebit-mcp
Message Control Protocol (MCP) server and client implementation for WhiteBit cryptocurrency exchange API. Built on top of aiowhitebit library and fastmcp.
Features
- MCP server for WhiteBit API with public endpoints
- Support for multiple transport protocols (stdio, SSE, WebSocket)
- Easy-to-use client for interacting with the MCP server
- Command-line interface for running the server
- Integration with Claude Desktop
- Real-time market data via WebSocket
- Comprehensive test coverage and type checking
- Modern development tools (ruff, pyright, pre-commit)
- Caching with disk persistence
- Rate limiting and circuit breaker patterns
Quick Start
# Install the package
pip install aiowhitebit-mcp
# Run the server (stdio transport for Claude Desktop)
aiowhitebit-mcp --transport stdio
# Or run with SSE transport
aiowhitebit-mcp --transport sse --host 127.0.0.1 --port 8000
Basic Usage
Client with Network Transport
import asyncio
import os
from aiowhitebit_mcp.client import WhiteBitMCPClient
async def main():
# Set the server URL (or use environment variable)
server_url = "http://localhost:8000/sse"
os.environ["WHITEBIT_MCP_URL"] = server_url
async with WhiteBitMCPClient() as client:
# Get market info
btc_usdt = await client.get_market_resource("BTC_USDT")
print("BTC/USDT Market Info:", btc_usdt)
# Get real-time price via WebSocket
price = await client.get_last_price("BTC_USDT")
print("Current BTC/USDT price:", price)
# Get order book
orderbook = await client.get_orderbook("BTC_USDT")
print("Order book:", orderbook)
if __name__ == "__main__":
asyncio.run(main())
Server Configuration
from aiowhitebit_mcp.server import create_server
import asyncio
# Create the server with custom configuration
server = create_server(
name="WhiteBit API"
)
# Run the server with desired transport
if __name__ == "__main__":
asyncio.run(
server.run(
transport="stdio", # or "sse"
host="127.0.0.1", # for network transports
port=8000 # for network transports
)
)
Available Tools
Public API
get_server_time(): Get current server timeget_market_info(): Get all markets informationget_orderbook(market: str): Get order bookget_recent_trades(market: str, limit: int = 100): Get recent tradesget_ticker(market: str): Get ticker informationget_fee(market: str): Get trading feesget_server_status(): Get server statusget_asset_status_list(): Get status of all assets
WebSocket API
get_last_price(market: str): Get real-time priceget_market_depth(market: str): Get real-time order book
Resources
whitebit://markets: Get all markets informationwhitebit://markets/{market}: Get specific market informationwhitebit://assets: Get all assets informationwhitebit://assets/{asset}: Get specific asset information
Command-line Interface
# Show help
aiowhitebit-mcp --help
# Run with stdio transport (for Claude Desktop)
aiowhitebit-mcp --transport stdio
# Run with SSE transport
aiowhitebit-mcp --transport sse --host localhost --port 8000
Development
# Clone the repository
git clone https://github.com/yourusername/aiowhitebit-mcp.git
cd aiowhitebit-mcp
# Install development dependencies
pip install -e ".[dev]"
# Install pre-commit hooks
pre-commit install
# Run tests
pytest
# Run type checking
pyright src/aiowhitebit_mcp
# Run linting
ruff check .
Examples
Check the examples/ directory for more usage examples:
claude_desktop_server.py: Run the server with stdio transport for Claude Desktopclaude_desktop_client.py: Client for connecting to a stdio serversse_server.py: Run the server with SSE transportsse_client.py: Client for connecting to an SSE server
License
Apache License 2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aiowhitebit_mcp-0.2.5.tar.gz.
File metadata
- Download URL: aiowhitebit_mcp-0.2.5.tar.gz
- Upload date:
- Size: 35.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97ac1c2d51dbe39c5e4680fe1d74f9acd71658de0cb1780010456bb8a195a346
|
|
| MD5 |
551e7441caa1d1074c31c980f0b796a0
|
|
| BLAKE2b-256 |
9500393d4abcec6719c935bc183e219b42397fd8f69a84a79860ca2e20e0cfd1
|
File details
Details for the file aiowhitebit_mcp-0.2.5-py3-none-any.whl.
File metadata
- Download URL: aiowhitebit_mcp-0.2.5-py3-none-any.whl
- Upload date:
- Size: 31.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54353c8205064f4ff2090efafba70d7ea04ad7bf53a2f301350a04878a1722fd
|
|
| MD5 |
3b74296960dbc413aae407bb044e1ead
|
|
| BLAKE2b-256 |
a4a9798f0b1caa4f43f8a4ce49bbb95330400b02e968131f925deece27174994
|