加密货币市场数据服务

一个基于FastAPI的微服务,使用CCXT库获取实时和历史加密货币市场数据,适用于金融分析和交易应用。

  • by aryan200601
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 aryan200601/crypto-mcp-server

使用说明

加密MCP服务器

基于FastAPI的微服务,用于使用CCXT库获取实时和历史加密货币市场数据。

特性

  • 实时票务数据:获取交易对的最新价格信息
  • 历史OHLCV数据:使用可定制的时间框架检索烛台数据
  • 交流信息:获取互联交易所的详细信息
  • 市场列表:获取可用的交易对
  • 错误处理:针对汇率问题和汇率限制的全面错误处理

设置

先决条件

  • Python 3.8+
  • 点

安装

  1. 克隆存储库:
git clone <repository-url>
cd crypto-mcp-server
  1. 安装依赖项:
pip install fastapi uvicorn ccxt pydantic pytest httpx

运行服务器

使用以下命令启动服务器:

uvicorn crypto_mcp_server:app --reload --port 8000

API文件将在以下网址提供:http://127.0.0.1:8000/docs

API终点

GET/api/v1/info

返回有关连接的交换机的信息。

GET/api/v1/markets

返回可用交易对列表。

GET/api/v1/ticker/{symbol}

获取某个交易品种的实时行情数据(例如BTC/USDT)。

GET/api/v1/ohlcv/{符号}

使用可选参数获取历史OHLCV数据:

  • timeframe:烛台间隔(1m、5m、15m、30m、1h、2h、4h、1d、1w、1m)
  • limit:蜡烛数(1-1000,默认值100)
  • since:开始时间戳(毫秒)

测试

使用以下工具运行测试:

pytest

配置

默认情况下,服务器配置为使用币安交易所。要更改交换,请修改 EXCHANGE_ID 在 crypto_mcp_server.py.

方法

此实现使用:

  • 快速API:用于使用自动OpenAPI文档构建REST API
  • 仓储管理系统:用于统一访问加密货币交易所
  • 派丹蒂克:用于数据验证和序列化
  • 异步/等待:用于非阻塞I/O操作
  • 依赖注入:用于管理交换机连接

假设

  • 默认交易所是币安(可以在代码中更改)
  • 利率限制是一个好的API公民
  • 初创公司加载市场以获得更快的后续请求
  • 符号不区分大小写(内部转换为大写)
  • 错误响应后面是HTTP状态代码和描述性消息

建筑

  • crypto_mcp_server.py:带端点的主FastAPI应用程序
  • test_server.py:具有模拟功能的全面测试套件
  • 使用依赖注入进行交换管理
  • CCXT操作的异步错误处理包装器
  • 正确连接管理的启动/关闭事件