加密货币市场数据协议

Python 实现的模型上下文协议(MCP)服务器,用于通过 ccxt 获取实时和历史加密货币市场数据。

  • by LifeHashed
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 LifeHashed/CryptoMCP

使用说明

加密货币市场MCP

基于Python的模型上下文协议(MCP)服务器,用于使用ccxt实时和历史加密货币市场数据。

特性

  • MCP工具用于:
    • get_ticker(symbol) –交易对的最新股票代码
    • get_ohlcv(symbol, timeframe, limit) –历史悠久的OHLCV蜡烛
    • get_order_book(symbol, limit) –订单簿快照
    • stream_ticker(symbol, interval_seconds) –通过轮询流式更新股票行情
  • 可插拔的交易后端(默认:币安通过 ccxt)
  • Redis缓存支持 用于跨多个服务器实例的分布式缓存
  • Redis发布/订阅 用于将请求委托给工作池
  • 简单TTL缓存回退(内存中)
  • 结构化错误处理
  • 小型CLI聊天机器人客户端,用于锻炼MCP服务器。

安装

python -m venv .venv
.venv\Scripts\activate
pip install -e .[dev]

或与 uv:

uv sync

运行MCP服务器

服务器作为名为的控制台脚本安装 crypto-market-mcp.

标准模式(stdio)

crypto-market-mcp

它通过stdio与MCP通信,因此可以连接到任何兼容MCP的主机。

工作模式(Redis发布/订阅)

启动一个或多个worker通过Redis处理请求:

crypto-market-worker

通过环境变量进行配置:

$env:REDIS_HOST="localhost"
$env:USE_REDIS_CACHE="true"
crypto-market-worker

看 REDIS_INTEGRATION.md 详细的Redis设置和使用。

聊天机器人客户端

提供了一个小型聊天机器人来在本地运行MCP服务器。

crypto-market-chatbot

对话示例:

you> price BTC/USDT
mcp> {"symbol": "BTC/USDT", "price": 50000.0, ...}

you> ohlcv BTC/USDT
mcp> [ {"timestamp": ..., "open": ...}, ... ]

运行测试

pytest

这将运行缓存、交换客户端包装器和MCP工具的单元测试。