使用说明
🚀 加密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)
get_price–单个交易品种的实时价格get_prices–最多100个交易品种的批量价格get_historical–OHLCV蜡烛(可配置的时间范围和周期)get_market_summary–跨多个符号的组合快照get_sma–历史收盘价的简单移动平均线get_volatility基于标准差的波动率百分比get_orderbook–具有可配置深度的最佳出价/要价get_24h_change–24小时变化,高、低和音量cache_status–缓存大小、TTL和存储的密钥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_infoget_price为了BTC/USDTcache_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交换连接器逻辑- `测试
