🚀 MCP–市场加密代理
生产级加密货币市场数据服务器(FastAPI+CXT)
最终实习任务——已完成和延期
______________________________________________________________________
📌 概述
MCP(市场加密代理)是 基于Python的FastAPI服务器 这提供了 实时的 和 历史的 使用CCXT的加密货币市场数据。\ 此实现使用 选项B-查询参数API (行业标准风格),包括 所有必需的功能和高级增强功能.
______________________________________________________________________
✅ 核心功能
- 实时行情数据
- 历史OHLCV数据
- 市场列表
- WebSocket实时更新
- 错误处理
- 缓存(基于TTL)
______________________________________________________________________
🔥 高级功能
| 特性 | 描述 |
|---|---|
| 速率限制 | 每个IP的令牌桶(60个请求/分钟) |
| 重试逻辑 | CCXT故障的指数回退 |
| API密钥验证 | 使用安全端点 X-API-KEY |
| TTL缓存 | 更快地响应自动收报机和OHLCV |
| 日志中间件 | 结构化请求日志 |
| 普罗米修斯指标 | /metrics 端点 |
| 分页 | page + limit 对于OHLCV |
| Docker支持 | Dockerfile+Docker组合 |
| GitHub Actions CI | 自动化测试 |
| React前端演示 | 测试API的基本界面 |
______________________________________________________________________
🛠 技术栈
- 快速API
- Uvicorn
- 仓储管理系统
- 缓存工具
- 坚韧
- 普罗米修斯客户端
- React.js
- 码头工人
- GitHub操作
- PyTest
______________________________________________________________________
📂 项目结构
mcp/
│── app.py
│── adapters.py
│── auth.py
│── cache.py
│── config.py
│── exceptions.py
│── metrics.py
│── middleware.py
│── ratelimit.py
│── retries.py
│── models.py
tests/
frontend/
config.yaml
requirements.txt
Dockerfile
docker-compose.yml
README.md______________________________________________________________________
⚙️ 安装
创建虚拟环境:
python -m venv venv激活virtualenv
窗户:
venv\Scripts\activateMac/Linux:
source venv/bin/activate安装依赖项
pip install -r requirements.txt______________________________________________________________________
▶️ 运行服务器
开发(自动重新加载):
uvicorn mcp.app:app --reload --host 0.0.0.0 --port 8000注:使用 --reload 只有在发展。对于生产,无需运行 --reload 并考虑使用流程管理器。
健康检查:
GET /health______________________________________________________________________
🔑 API密钥验证
添加标题:
X-API-KEY: demo-key-123您还可以将密钥存储在 .env 文件并从中加载 config.yaml 或生产环境变量。
在中配置 config.yaml.
______________________________________________________________________
📡 API使用
✔ 股票行情自动收录器
GET /ticker?exchange=binance&symbol=BTC/USDT✔ 历史(分页)
GET /historical?exchange=binance&symbol=BTC/USDT&limit=100&page=1✔ 市场
GET /markets?exchange=binance✔ 双向通信
ws://localhost:8000/ws?exchange=binance&symbol=BTC/USDT______________________________________________________________________
🧪 测试
运行:
pytest -q模拟的CCXT确保了可靠的测试。
______________________________________________________________________
🐳 码头工人
使用docker compose构建并运行:
docker-compose up --build服务暴露端口8000(根据需要调整docker组成)。
______________________________________________________________________
🖥 反应前端
cd frontend
npm install
npm start______________________________________________________________________
🎯 最后说明
该项目满足并扩展了任务期望,并展示了:
- API设计
- 后端工程
- 可靠性(重试、速率限制、缓存)
- DevOps(CI/CD、Docker)
- 监控(普罗米修斯)
- 全栈能力(React UI)
______________________________________________________________________
