使用说明
加密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服务器)
-
确保已安装Python 3.7+
-
运行服务器:
python server.py -
运行测试:
python -m unittest test_server.py
前端(Web界面)
-
安装依赖项:
npm install -
启动开发服务器:
npm run dev -
生产建设:
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块
- 响应对象中的描述性错误消息
- 对缺失数据的优雅降级
测试
- 缓存功能的单元测试
- 所有服务器方法的集成测试
- 成功和失败场景的测试覆盖率
假设
-
模拟数据:服务器使用模拟的加密货币数据。在生产过程中,这将被对CoinMarketCap或CCXT等服务的真正API调用所取代。
-
简化架构:实施优先考虑简单性和清晰度,而不是高级功能。没有数据库持久性或复杂的状态管理。
-
基本保障:未实施身份验证/授权。生产部署应添加适当的安全层。
-
有限的加密货币:目前追踪5种主要加密货币(BTC、ETH、BNB、SOL、ADA)。可以很容易地扩展。
-
缓存持续时间:60秒缓存适合演示。生产系统可能需要根据用例配置缓存持续时间。
色彩主题
web界面使用红色和灰色配色方案:
- 初级:红色(#EF4444,#DC2626)
- 背景:灰色(#111827,#1F2937)
- 文字:白色/浅灰色
- 口音:绿色表示收益,红色表示损失
未来的增强功能
- 与真实的加密货币API(CCXT、CoinMarketCap)集成
- WebSocket支持实时更新
- 历史数据的数据库持久性
- 高级图表功能
- 用户身份验证和监视列表
- 更全面的错误记录
- 利率限制和API配额
许可证
MIT许可证