加密货币市场数据服务

MCP是一个基于FastAPI和CCXT的加密货币市场数据服务,提供实时和历史数据,支持WebSocket更新、API密钥认证、速率限制和缓存等功能。

  • by Mylavarapu-Sowmya
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Mylavarapu-Sowmya/mcp-crypto-proxy

使用说明

🚀 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\activate

Mac/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)