加密货币数据服务

一个基于Python和FastAPI的轻量级后端服务器,用于获取加密货币的实时价格和历史OHLCV数据,采用模块化设计和缓存机制以提高性能。

  • by Deepikatingare
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Deepikatingare/crypto-mcp-server

使用说明

  1. 问题陈述

加密货币市场数据是动态的,每秒都在变化。 本次任务的目标是构建一个基于Python的轻量级MCP风格后端服务器,该服务器可以:

获取加密货币的实时价格

获取历史OHLCV数据

使用干净的Python结构、缓存和正确的API端点

遵循MCP式模块化设计

此服务器模拟模型上下文协议源如何提供结构化的外部数据。

  1. 使用的数据集/API

该项目使用加密货币交易所的实时API数据,而不是数据集。

数据来源:CCXT(币安API)

方式(数据类型):

实时价格反馈

OHLCV历史蜡烛(打开、高、低、关闭、音量)

返回格式:JSON

示例符号:“BTC/USDT”、“ETH/USDT”

  1. 方法/系统设计
  2. 模块化架构

crypto_service.py→ 处理交换连接+数据获取

cache.py→ 基于TTL的小型缓存

mcp_server.py→ 带路由的FastAPI服务器

  1. 已实现的功能

实时价格端点

历史数据端点

错误处理

用于减少API负载的内存内缓存

使用FastAPI进行干净的路由

  1. 评估

由于这是一个后端服务器,因此评估基于:

响应正确性

API正常运行时间

缓存前后的速度

结构清晰,可读性强

  1. 结果 ✔ 实时价格示例

价格/价格?symbol=BTC/USDT

输出:

{ “数据”:{ “符号”:“BTC/USDT”, “价格”:96018.44, “时间戳”:1763144986002 }, “cached”:false }

✔ 历史数据示例

GET/历史?symbol=BTC/USDT&时间框架=1h&限额=50

返回OHLCV蜡烛列表。

✔ 缓存性能 带缓存的无缓存功能 响应时间慢快 API负载高-低

📊 可视化(可选): /models/results_plot.png(如果稍后添加)

  1. 结论

FastAPI为MCP风格的服务器提供了一个干净可靠的结构。

CCXT允许轻松访问加密货币价格和历史数据。

缓存大大提高了性能并减少了外部调用。

该项目展示了后端开发、API设计和模块化Python技能,以满足任务要求。

  1. 如何跑步

  2. 创建虚拟环境 python-m venv-venv

  3. 激活

Windows PowerShell:

.\venv\Scripts\Activate.ps1

  1. 安装依赖项 pip安装-r要求.txt

  2. 运行服务器 uvicorn mcpserver:应用程序--reload

服务器运行时间:

http://127.0.0.1:8000

  1. API终点 GET/价格 http://127.0.0.1:8000/price?symbol=BTC/USDT

GET/历史 http://127.0.0.1:8000/history?symbol=BTC/USDT&timeframe=1h&limit=50

  1. 项目结构 加密mcp服务器/ │ ├── mcp_server.py ├── crypto_service.py ├── cache.py ├── 需求.txt └── README.md