加密货币市场数据服务

一个轻量级的MCP兼容服务器,用于通过CCXT获取实时和历史加密货币市场数据,包括缓存、错误处理和模块化架构。

  • by sijanpaudel
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sijanpaudel/crypto-mcp-server

使用说明

加密MCP服务器

一个轻量级的MCP兼容服务器,使用Python和FastAPI构建,用于使用CCXT(带模拟回退)获取实时和历史加密货币市场数据。 包括缓存、错误处理、测试和用于评估的干净抽象。

🚀 特性

  • HTTP端点

    • /health –服务器状态
    • /tick?symbol=BTC/USDT –最新市场价格
    • /historical?symbol=BTC/USDT&limit=50 –OHLCV历史数据
  • WebSocket端点

    • /ws –实时价格流(通过JSON订阅)
  • 适配器

    • CCXTAdapter –使用公共交换端点(不需要API密钥)
    • MockAdapter –当CCXT不可用时回退
  • 其他功能

    • 内存中TTL缓存
    • 简单的错误处理
    • 干净、模块化的架构
    • 带pytest的完整测试套件

⚙️ 安装和设置

1.创建虚拟环境并安装依赖项

python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .

可选(如果使用紫外线):

pip install uv
uv pip install -e .

2.在本地运行服务器

uvicorn crypto_mcp.server:app --reload

📡 API示例

健康检查

GET http://localhost:8000/health

最新价格

GET http://localhost:8000/tick?symbol=BTC/USDT

历史OHLCV数据

GET http://localhost:8000/historical?symbol=BTC/USDT&limit=50

🔗 使用真实交易所(CCXT)

安装ccxt:

pip install ccxt

公开市场数据(无需API密钥)

您可以获取:

  • 票务
  • OHLCV
  • 订单簿

使用公共、未经身份验证的端点。

可选:专用终结点的API密钥

export BINANCE_APIKEY="your_key"
export BINANCE_SECRET="your_secret"

支持的交换: 比恩斯、克拉肯、coinbasepro、bybit、bitfinex

测试CCXT适配器:

pytest tests/test_ccxt_adapter.py

🧪 运行测试

pytest -q

📝 假设和注意事项

这是为实习任务设计的最小演示。 在生产系统中,您将:

  • 添加适当的适配器配置和密钥管理
  • 对汇率限制使用重试/回退处理
  • 使用分布式缓存(Redis)进行数据共享
  • 添加沙箱交换的集成测试
  • 实施结构化日志记录和监控

📄 许可证

该项目在MIT许可证下发布。 有关详细信息,请参阅LICENSE文件。