# Crypto MCP 项目总结
## 项目概述
`crypto_mcp` 是从 Go 自动交易系统中抽取的加密货币技术指标计算服务,完整重写为 Python,并封装为标准的 MCP(Model Context Protocol)服务。
## 核心价值
1. **独立服务**: 将技术指标计算能力从主交易系统中分离,可独立部署和使用
2. **MCP 集成**: 支持标准的 MCP 协议,可被 AI 模型(如 Claude)直接调用
3. **完全兼容**: 保持与 Go 项目相同的数据结构和计算逻辑
4. **易于使用**: Python 实现,简洁易懂,便于扩展和调试
## 项目结构
```
crypto_mcp/
├── crypto_indicators_mcp.py # 主服务文件(741行)
├── crypto_indicators_client_example.py # MCP 客户端示例(106行)
├── test_crypto_indicators.py # 测试脚本(165行)
├── requirements.txt # Python 依赖
├── .gitignore # Git 忽略规则
├── README.md # 完整文档(366行)
├── QUICKSTART.md # 快速启动指南(127行)
├── COMPARISON.md # 与 Go 项目对比(321行)
└── PROJECT_SUMMARY.md # 本文件
总计: ~1826 行代码和文档
```
## 技术栈
### 核心依赖
- **Python 3.8+**: 基础运行环境
- **numpy**: 数值计算
- **TA-Lib**: 技术指标计算库
- **requests**: HTTP 请求
- **mcp**: Model Context Protocol SDK
### 数据源
- **Aster DEX API**: 获取加密货币市场数据
- 无需 API 密钥
- 支持所有 USDT 交易对
- 支持多时间框架(1m-1w)
## 功能特性
### 1. 技术指标计算
支持以下技术指标:
**趋势指标**:
- EMA20: 20周期指数移动平均线
- EMA60: 60周期指数移动平均线
**动量指标**:
- MACD: DIF、DEA、HIST(柱状图 × 2,与交易所规则一致)
- RSI7: 7周期相对强弱指标
- RSI14: 14周期相对强弱指标
**波动性指标**:
- ATR14: 14周期平均真实波动幅度
- 布林带: 上轨、中轨、下轨(20周期,2倍标准差)
**市场数据**:
- 价格变化百分比(1小时、4小时)
- 持仓量(Open Interest)
- 资金费率(Funding Rate)
### 2. MCP 工具
提供两个 MCP 工具:
1. **get_crypto_indicators**: 获取单个交易对的完整技术指标
- 参数: symbol, timeframe, limit
- 返回: 完整的 MarketData 对象
2. **get_multi_timeframe_analysis**: 多时间框架分析
- 参数: symbol, timeframes[]
- 返回: 多周期汇总数据
### 3. 支持的时间框架
- **分钟级**: 1m, 3m, 5m, 15m, 30m
- **小时级**: 1h, 2h, 4h, 6h, 12h
- **日周级**: 1d, 1w
### 4. 支持的交易对
所有 Aster DEX USDT 交易对,包括:
- 主流币: BTC, ETH, BNB
- Layer1: SOL, AVAX, MATIC, ARB, OP
- DeFi: UNI, AAVE, CRV, COMP
- Meme: DOGE, SHIB
- 其他: LINK, DOT, ATOM, 等
## 与 Go 项目的对应关系
### 文件对应
```
Go 项目 → Python crypto_mcp
---------------------------------------------------
pkg/market/data.go → crypto_indicators_mcp.py
- Data struct → MarketData dataclass
- IntradayData struct → IntradaySeriesData dataclass
- OIData struct → OIData dataclass
- calculateEMASequence() → calculate_ema_sequence()
- calculateMACDSequence() → calculate_macd_sequence()
- calculateRSISequence() → calculate_rsi_sequence()
- calculateATR() → calculate_atr_sequence()
- getKlines() → get_klines()
- getOpenInterestData() → get_open_interest()
- getFundingRate() → get_funding_rate()
- Format() → _format_market_data()
```
### 核心算法一致性
1. **MACD 计算**: HIST 值乘以 2,与交易所规则一致
2. **序列增量计算**: O(n) 时间复杂度,避免重复计算
3. **NaN 处理**: 安全处理数据不足的情况
4. **数据格式**: 保持相同的输出格式
## 使用场景
### 1. AI 模型调用
```
Claude Desktop → MCP Protocol → crypto_mcp → Aster API
```
AI 可以直接调用技术指标服务,无需理解底层实现。
### 2. 独立分析工具
```python
from crypto_indicators_mcp import CryptoDataProvider
provider = CryptoDataProvider()
data = provider.get_market_data("BTC", "1h")
# 分析数据
if data.current_rsi7 > 70:
print("超买")
elif data.current_rsi7 < 30:
print("超卖")
```
### 3. 量化交易策略
```python
# 多时间框架确认
for tf in ["1d", "4h", "1h"]:
data = provider.get_market_data("ETH", tf)
if data.current_macd_hist > 0:
print(f"{tf}: 多头信号")
```
### 4. 集成到其他系统
- 作为 MCP 服务集成到任何支持 MCP 的系统
- 作为 Python 模块直接导入使用
- 通过 REST API 封装(待实现)
## 性能特点
### 优化策略
1. **序列增量计算**: 一次遍历计算所有指标,O(n) 复杂度
2. **TA-Lib 优化**: 使用成熟的 C 语言实现
3. **数据缓存**: 返回最近10个数据点的序列
4. **异步支持**: MCP 服务使用 asyncio
### 性能对比
- **计算速度**: 与 Go 项目相当(TA-Lib 是 C 实现)
- **内存使用**: 略高于 Go(Python 开销)
- **启动时间**: Python 启动较慢,但运行时性能接近
## 测试覆盖
### 测试类型
1. **单元测试**: 技术指标计算正确性
2. **集成测试**: API 数据获取
3. **MCP 测试**: 协议兼容性
4. **多时间框架测试**: 不同周期的价格变化计算
### 测试命令
```bash
# 核心功能测试
python test_crypto_indicators.py
# MCP 客户端测试
python crypto_indicators_client_example.py
# MCP Inspector 测试
npx @modelcontextprotocol/inspector python3 crypto_indicators_mcp.py
```
## 部署方式
### 1. 本地开发
```bash
pip install -r requirements.txt
python test_crypto_indicators.py
```
### 2. MCP 服务
```bash
python crypto_indicators_mcp.py
```
### 3. Claude Desktop 集成
编辑 `claude_desktop_config.json`,添加服务配置。
### 4. Docker(待实现)
```dockerfile
FROM python:3.10
RUN apt-get update && apt-get install -y ta-lib
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python", "crypto_indicators_mcp.py"]
```
## 未来扩展
### 短期计划
- [ ] 添加数据缓存机制
- [ ] 实现 WebSocket 实时数据
- [ ] 添加更多技术指标(KDJ, CCI, OBV)
- [ ] 支持更多交易所(Binance, OKX)
### 中期计划
- [ ] REST API 封装
- [ ] Docker 容器化
- [ ] 性能监控和日志
- [ ] 数据持久化(Redis缓存)
### 长期计划
- [ ] 分布式部署
- [ ] 高可用架构
- [ ] 历史数据回测
- [ ] 策略回测框架集成
## 贡献指南
### 代码风格
- 遵循 PEP 8 规范
- 使用 type hints
- 添加详细的 docstrings
- 保持与 Go 项目的一致性
### 提交规范
```
feat: 添加新功能
fix: 修复bug
docs: 更新文档
refactor: 重构代码
test: 添加测试
```
## 许可证
MIT License
## 相关资源
### 文档
- [README.md](README.md): 完整使用文档
- [QUICKSTART.md](QUICKSTART.md): 快速启动指南
- [COMPARISON.md](COMPARISON.md): 与 Go 项目对比
### 代码
- [crypto_indicators_mcp.py](crypto_indicators_mcp.py): 主服务
- [test_crypto_indicators.py](test_crypto_indicators.py): 测试脚本
- [crypto_indicators_client_example.py](crypto_indicators_client_example.py): 客户端示例
### 外部链接
- [Go 项目主目录](../)
- [Aster DEX 文档](https://docs.asterdex.com)
- [MCP 协议规范](https://modelcontextprotocol.io/)
- [TA-Lib 文档](https://ta-lib.org/)
## 联系方式
如有问题或建议,请通过以下方式联系:
- 提交 GitHub Issue
- 查看 Go 项目的 CLAUDE.md
---
**最后更新**: 2025-01-17
**版本**: 1.0.0
**维护者**: NOFX Team