使用说明
MCP加密市场数据服务器
基于Python MCP兼容加密市场数据服务器 它提供:
- 实时行情数据
- 历史OHLCV数据
- WebSocket流媒体更新
- Exchange+符号发现
- 缓存、重试逻辑和错误处理
- 使用CCXT的干净架构
- 自动后台轮询(FastAPI启动循环)
- 测试套件(pytest)
该项目是作为加密数据平台的实习任务而构建的,并遵循良好的后端/API实践。
🚀 特性
1.实时市场数据(Ticker)
使用CCXT从主要交易所获取实时价格信息。
GET /api/fetch/ticker?exchange=binance&symbol=BTC/USDT
包括:
- 自动重试(韧性)
- 缓存(cachetools TTLCache)
- 错误处理
2.历史数据(OHLCV)
检索烛台数据:
GET /api/historical?exchange=binance&symbol=BTC/USDT&timeframe=1m
3.WebSocket实时流媒体
订阅实时更新:
ws://localhost:8000/ws/ticker/binance/BTC/USDT
后台任务轮询交换并向连接的WS客户端广播更新。
4.公用设施端点
列出支持的交易所:
GET /api/exchanges
列出支持的符号:
GET /api/symbols?exchange=binance
5.背景广播
启动时,FastAPI会启动一个无限异步循环,轮询活动订阅并通过WebSocket推送更新。
📂 项目结构
mcp-crypto-server/
├── app/
│ ├── main.py
│ ├── api.py
│ ├── ccxt_client.py
│ ├── cache.py
│ ├── broadcaster.py
│ ├── config.py
│ ├── utils.py
│ └── __init__.py
├── tests/
│ ├── test_api.py
│ ├── test_ws.py
│ ├── test_cache.py
│ ├── test_broadcaster.py
│ └── conftest.py
├── .gitignore
├── requirements.txt
├── pytest.ini
└── README.md
🛠 安装
1.克隆存储库
git clone https://github.com/meetkavad/mcp-crypto-server
cd mcp-crypto-server
2.创建并激活虚拟环境
python -m venv env
source env/bin/activate # macOS/Linux
env\Scripts\activate # Windows
3.安装依赖项
pip install -r requirements.txt
▶️ 运行服务器
选项A——使用Python(推荐)
创建 run.py:
import uvicorn
uvicorn.run("app.main:app", host="127.0.0.1", port=8000, reload=True)
运行:
python run.py
📡 API终点
健康检查
GET /
取票
GET /api/fetch/ticker?exchange=binance&symbol=BTC/USDT
历史OHLCV
GET /api/historical?exchange=binance&symbol=BTC/USDT&timeframe=1m
列表交换
GET /api/exchanges
列出符号
GET /api/symbols?exchange=binance
🔌 WebSocket流媒体
ws://127.0.0.1:8000/ws/ticker/binance/BTC/USDT
您将定期收到JSON更新。
🧪 测试
运行:
pytest -q
测试包括:
- API终点测试
- 缓存测试
- WebSocket测试
- 背景广播测试(模拟)