加密货币交易所API控制协议

WhiteBit加密货币交易所的MCP服务器和客户端实现,支持多种传输协议和实时市场数据。

  • by doubledare704
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 doubledare704/aiowhitebit-mcp

使用说明

aiowhitebit-mcp 翻译为中文可以是“aiowhitebit多重签名钱包”或“aiowhitebit多重控制协议”,具体取决于上下文和该术语的具体用途。不过,由于“aiowhitebit”可能是一个特定项目或平台的名称,且“mcp”在不同上下文中可能有不同的含义,因此最准确的翻译可能需要结合具体背景来确定。如果“aiowhitebit”是一个知名的项目或平台,建议直接使用其官方中文名称(如果有的话)

白比特加密货币交易所API的消息控制协议(MCP)服务器和客户端实现。基于 顶部;顶端 Aiowhitebit(注:这可能是一个特定平台或项目的名称,直接翻译无实际意义,保持原样) 图书馆和 fastmcp。

特点/特性

  • WhiteBit API的MCP服务器,具有公开端点
  • 支持多种传输协议(stdio、SSE、WebSocket)
  • 用于与MCP服务器交互的易用客户端
  • 用于运行服务器的命令行界面
  • 与Claude桌面版的集成
  • 通过WebSocket获取实时市场数据
  • 全面的测试覆盖率和类型检查
  • 现代开发工具(ruff、pyright、pre-commit)
  • 使用磁盘持久化进行缓存
  • 限流和断路器模式

aiowhitebit 0.3.0版本中的新集成功能

  • BookTicker WebSocket 流实时最优买入/卖出报价更新
  • 期货资金历史获取期货市场的历史融资利率
  • 增强的WebSocket事件现在,所有WebSocket事件都包含可选的元数据(事件时间,更新ID)

快速入门

# 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

基本用法

带有网络传输功能的客户端

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)

        # Get funding history for futures market
        funding_history = await client.get_funding_history("BTC_USDT")
        print("Funding history:", funding_history)

        # Subscribe to BookTicker for real-time best bid/ask
        subscription = await client.bookticker_subscribe("BTC_USDT")
        print("BookTicker subscription:", subscription)

if __name__ == "__main__":
    asyncio.run(main())

服务器配置

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
        )
    )

可用工具

公共API

  • get_server_time()获取当前服务器时间
  • get_market_info()获取所有市场信息
  • get_orderbook(market: str)获取订单簿
  • get_recent_trades(market: str, limit: int = 100)获取最近交易
  • get_ticker(market: str)获取股票行情信息
  • get_fee(market: str)获取交易费用
  • get_server_status()获取服务器状态
  • get_asset_status_list()获取所有资产的状态
  • get_funding_history(market: str)获取期货市场的资金费率历史数据

WebSocket API

  • get_last_price(market: str)获取实时价格
  • get_market_depth(market: str)获取实时订单簿
  • bookticker_subscribe(market: str)订阅BookTicker流以获取最优买/卖报价
  • bookticker_unsubscribe(market: str)取消订阅BookTicker流
  • connect_websocket()连接到WebSocket API
  • disconnect_websocket()从WebSocket API断开连接

资源

  • whitebit://markets获取所有市场信息
  • whitebit://markets/{market}获取特定市场信息
  • whitebit://assets获取所有资产信息
  • whitebit://assets/{asset}获取特定资产信息

命令行界面

# 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

发展

# 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/ 更多使用示例的目录:

  • claude_desktop_server.py为Claude Desktop运行使用stdio传输的服务器
  • claude_desktop_client.py连接到stdio服务器的客户端
  • sse_server.py使用SSE传输方式运行服务器
  • sse_client.py用于连接SSE服务器的客户端

许可证

Apache许可证2.0