加密货币市场数据服务器

一个生产级的加密货币市场数据服务器,提供实时和历史市场数据,支持多交易所(如Binance、Coinbase等),包含缓存、指标和完整的Python代码库。

  • by HarshadPanchal12
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 HarshadPanchal12/MCP_server_assignment

使用说明

🚀 加密MCP服务器

A生产级 模型上下文协议(MCP)服务器 它公开了来自多个交易所(币安、Coinbase、Kraken、Bybit、KuCoin)的实时和历史加密货币市场数据,包括缓存、指标和经过充分测试的Python代码库。


📦 项目概述

该项目实现了 加密MCP服务器 它提供:

  • 10个完全实施的市场数据和分析MCP工具
  • 42个功能跨干净分离的模块(crypto, mcp_server, utils)
  • 基于TTL的智能缓存,提供性能和速率限制保护
  • 使用自定义异常层次结构进行强大的验证和错误处理
  • 32个自动化测试(单元+集成),覆盖率超过90%

代码库的结构和记录就像它是真实生产系统的一部分一样。


📁 文件夹结构

crypto-mcp-server/
├── main.py
├── requirements.txt
├── config.yaml
├── Dockerfile
├── .gitignore
├── README.md
├── API.md
├── SETUP.md
├── src/
│   ├── __init__.py
│   ├── mcp_server/
│   │   ├── __init__.py
│   │   ├── server.py
│   │   └── handlers.py
│   ├── crypto/
│   │   ├── __init__.py
│   │   ├── exchange.py
│   │   ├── market_data.py
│   │   └── cache.py
│   └── utils/
│       ├── __init__.py
│       ├── errors.py
│       ├── logger.py
│       └── validators.py
├── tests/
│   ├── __init__.py
│   ├── unit/
│   │   ├── __init__.py
│   │   ├── test_cache.py
│   │   ├── test_exchange.py
│   │   └── test_market_data.py
│   └── integration/
│       ├── __init__.py
│       └── test_mcp_server.py
├── config/
│   └── __init__.py
└── logs/
    └── __init__.py

🔧 特性

核心MCP工具(10)

  1. get_price –单个交易品种的实时价格
  2. get_prices –最多100个交易品种的批量价格
  3. get_historical –OHLCV蜡烛(可配置的时间范围和周期)
  4. get_market_summary –跨多个符号的组合快照
  5. get_sma –历史收盘价的简单移动平均线
  6. get_volatility 基于标准差的波动率百分比
  7. get_orderbook –具有可配置深度的最佳出价/要价
  8. get_24h_change –24小时变化,高、低和音量
  9. cache_status –缓存大小、TTL和存储的密钥
  10. exchange_info –互联交易所的能力和时间框架

技术亮点

  • 通过以下方式提供多交换支持 仓储管理系统
  • 智能 TTL缓存 基于模式的失效
  • 集中式 验证 用于符号、时间框架和限制
  • 自定义错误 用于交换、缓存、速率限制和验证失败
  • 彩色测井 控制台+旋转日志文件
  • 可重复使用的模块化设计 MarketDataService 在其他项目中

📊 项目报告

  • 功能: 42
  • MCP工具: 10
  • 测试用例: 32(单元+集成)
  • 新闻报道: 90%+(线路覆盖率 src/)
  • 支持的交易所: 5
  • 支持的时间范围: 9(1米→ 1M)

这些数字可以包含在提交电子邮件或文档中。


🚀 入门指南

1.克隆并进入项目

git clone https://github.com/YOUR_USERNAME/crypto-mcp-server.git
cd crypto-mcp-server

2.创建并激活虚拟环境

python -m venv venv

# Windows
venv\Scripts\activate

# macOS / Linux
source venv/bin/activate

3.安装依赖项

pip install --upgrade pip
pip install -r requirements.txt

4.运行测试套件

pytest -v --cov=src

您应该看到所有32个测试都通过,覆盖率超过90%。


🖥 用法

交互模式

启动一个交互式循环,您可以在其中键入对工具的JSON请求。

python main.py --mode interactive --exchange binance

请求示例:

>>> {"tool": "get_price", "arguments": {"symbol": "BTC/USDT"}}

示例(其他有用的命令):

  • tools –列出所有可用工具及其说明
  • quit –退出交互模式

示范模式

运行一些预定义的请求以显示典型输出。

python main.py --mode demo --exchange binance

这将自动调用:

  • exchange_info
  • get_price 为了 BTC/USDT
  • cache_status

⚙️ 配置

主要配置如下 config.yaml:

  • server.host / server.port –基本运行时设置
  • cache.enabled, cache.max_size, cache.ttl_seconds –缓存调优
  • exchange.default, exchange.supported –交换选择
  • logging.level, logging.file_path –日志记录行为
  • data.timeframes, data.max_periods –允许的OHLCV参数

您可以在不更改代码的情况下调整这些值。


🐳 码头工人

使用Docker构建和运行:

docker build -t crypto-mcp-server .
docker run -it --rm crypto-mcp-server

这使用了相同的入口点(main.py)并阅读 config.yaml 从容器中取出。


🧪 测试策略

测试分为 单元 和 整合:

  • tests/unit/test_cache.py –缓存行为、密钥生成、无效
  • tests/unit/test_exchange.py –模拟CCXT交换连接器逻辑
  • `测试