🚀 加密流MCP
*基于Python的MCP服务器,用于实时和历史加密货币市场数据*
______________________________________________________________________
📌 1.概述
加密流MCP 是完全异步的 模型上下文协议(MCP) 服务器构建于 快速API,旨在使用 CoinMarketCap沙盒API.
该项目支持:
- 使用实时加密货币价格 WebSockets
- 使用历史+最新市场数据 REST API
- 模块化、生产式架构
- 内存缓存以提高性能
- 全面的测试套件
- 关注点的干净分离(API/Core/WebSocket层)
______________________________________________________________________
📌 2.特点
🟦 核心MCP功能
| 特性 | 描述 |
|---|---|
| 最新列表 | 最新的加密货币市场列表 |
| 报价 | 价格+交易量+市场数据 |
| 历史数据 | OHLCV式历史定价 |
| 交易所数据 | 交易所+市场对数据 |
| 全球指标 | 市值、BTC主导地位 |
| 价格转换 | 加密货币↔ 菲亚特改装 |
| 实时流媒体 | WebSocket实时更新 |
| 缓存 | 异步TTL缓存 |
| 错误处理 | API错误的安全回退 |
| 测试 | REST+WS+缓存+模拟 |
______________________________________________________________________
📌 3.项目结构
______________________________________________________________________
📌 4.建筑
🟦 A.REST API层
每条路线执行:
- 输入验证
- 调用到
cmc_client - 通过缓存
TTLCache - 错误安全的JSON响应
______________________________________________________________________
🟦 B.CMC客户端(异步HTTP包装器)
位于:
app/core/cmc_client.py
责任:
- 与CoinMarketCap沙盒异步交互
- 请求签名+标头
- 端点路径构建
- 上游故障的错误处理
支持的模式:
/cryptocurrency/*/exchange/*/global-metrics/*/tools/*
______________________________________________________________________
🟦 C.缓存层(异步TTL缓存)
app/core/cache.py
提供:
- 异步
get()和set() - 自动过期TTL条目
- 适用于速率受限的API调用
______________________________________________________________________
🟦 D.实时WebSocket引擎
WebSocket路由
ws://localhost:8000/ws/价格/{符号}?转换=美元
运作原理
- 客户端连接→ 服务器接受
- 客户端已添加到订阅池
- 背景
broadcaster_loop()每隔几秒钟轮询CMC - 所有订阅的插座都会收到新的价格
- 客户必须发送
"ping"或任何文本以保持连接有效
其余API端点
| 方法 | 端点 | 描述 |
|---|---|---|
| 得到 | /api/crypto/listings | 最新加密货币列表 |
| 得到 | /api/crypto/quote | 按符号或ID报价 |
| 得到 | /api/crypto/historical | 历史OHLCV |
| 得到 | /api/crypto/info | 元数据 |
安装
1.pip安装-r要求.txt
2.SANDBOX_COIN_BASE_API_KEY=your_SANDBOX_KEY_here#将其添加到env文件中
3.uvicorn应用程序主:应用程序--reload
