加密货币市场数据服务

一个基于Python的轻量级加密货币市场数据服务器,提供实时价格跟踪、历史数据查询和简洁的Web界面。

  • by Vrushabh100
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Vrushabh100/Crypto_MCP_Server

使用说明

加密MCP服务器

一个简单的基于Python的MCP(市场上下文协议)服务器,用于通过web界面检索加密货币市场数据。

概述

该项目提供了一个轻量级的加密货币市场数据服务器,具有实时价格跟踪、历史数据查询和使用红色和灰色主题的干净web界面。

特性

  • 实时价格数据:获取主要加密货币的当前价格
  • 市场概述:查看总交易量、上涨者和下跌者
  • 缓存系统:内置60秒缓存以优化性能
  • 错误处理:在整个应用程序中进行稳健的错误处理
  • 网络界面:简单、干净的UI,红色/灰色主题
  • 测试套件:用于验证的综合单元测试

项目结构

.
├── server.py           # Python MCP server implementation
├── test_server.py      # Unit tests for server
├── src/
│   └── App.tsx         # React web interface
└── README.md           # This file

设置

后端(Python服务器)

  1. 确保已安装Python 3.7+

  2. 运行服务器:

    python server.py
    
  3. 运行测试:

    python -m unittest test_server.py
    

前端(Web界面)

  1. 安装依赖项:

    npm install
    
  2. 启动开发服务器:

    npm run dev
    
  3. 生产建设:

    npm run build
    

API终点

MCP服务器提供以下方法:

1.获取当前价格

server.get_current_price('BTC')

返回特定加密货币的当前价格数据。

2.获取所有价格

server.get_all_prices()

返回所有可用加密货币的价格数据。

3.获取历史数据

server.get_historical_data('ETH', days=7)

返回指定天数的历史价格数据。

4.获取市场摘要

server.get_market_summary()

返回汇总的市场统计数据,包括交易量、上涨者和下跌者。

技术方案

建筑

  • 简单的设计:简单的基于类的Python结构
  • 模拟数据:使用模拟数据进行演示(可替换为真实的API调用)
  • 缓存层:基于时间的缓存,以减少冗余计算
  • 关注点分离:服务器逻辑与web界面分离

缓存策略

  • 缓存数据的60秒TTL(生存时间)
  • 过期时自动缓存失效
  • 在响应元数据中缓存命中/未命中跟踪

错误处理

  • 尝试在所有操作周围设置catch块
  • 响应对象中的描述性错误消息
  • 对缺失数据的优雅降级

测试

  • 缓存功能的单元测试
  • 所有服务器方法的集成测试
  • 成功和失败场景的测试覆盖率

假设

  1. 模拟数据:服务器使用模拟的加密货币数据。在生产过程中,这将被对CoinMarketCap或CCXT等服务的真正API调用所取代。

  2. 简化架构:实施优先考虑简单性和清晰度,而不是高级功能。没有数据库持久性或复杂的状态管理。

  3. 基本保障:未实施身份验证/授权。生产部署应添加适当的安全层。

  4. 有限的加密货币:目前追踪5种主要加密货币(BTC、ETH、BNB、SOL、ADA)。可以很容易地扩展。

  5. 缓存持续时间:60秒缓存适合演示。生产系统可能需要根据用例配置缓存持续时间。

色彩主题

web界面使用红色和灰色配色方案:

  • 初级:红色(#EF4444,#DC2626)
  • 背景:灰色(#111827,#1F2937)
  • 文字:白色/浅灰色
  • 口音:绿色表示收益,红色表示损失

未来的增强功能

  • 与真实的加密货币API(CCXT、CoinMarketCap)集成
  • WebSocket支持实时更新
  • 历史数据的数据库持久性
  • 高级图表功能
  • 用户身份验证和监视列表
  • 更全面的错误记录
  • 利率限制和API配额

许可证

MIT许可证