使用说明
🚀 加密货币MCP服务器
实时和历史加密货币市场数据 需要零个API密钥
特征: 🔴 实时价格|📈 历史数据|💾 智能缓存|✅ 完全测试|🚀 生产就绪
📌 概述
轻便、可生产 MCP(模型上下文协议)服务器 用于加密货币市场数据检索。使用以下工具获取18种以上加密货币的实时价格和历史数据 免费CCXT库 -无需注册API密钥!
非常适合: 交易机器人、投资组合跟踪器、加密仪表板、市场分析工具和人工智能集成。
✨ 主要特点
- ✅ 实时价格 -18+加密货币(BTC、ETH、XRP、ADA、SOL、DOGE、MATIC、LINK、LTC、BCH、DOT、AVAX、ARB、OP、SHIB、PEPE、NEAR、UNI)
- ✅ 历史数据 -OHLCV蜡烛1-365天
- ✅ 智能缓存 -5分钟TTL减少API调用
- ✅ 错误处理 -日志记录的巧妙失败
- ✅ 综合测试 -13/13个测试用例通过
- ✅ 零依赖 -无需注册API密钥
- ✅ 现场演示 -查看所有带有上涨/下跌分析的价格
- ✅ 生产就绪 -稳健、经过测试和记录
🎯 快速开始
先决条件
- Python 3.8或更高版本
- pip(Python包管理器)
安装
# Clone the repository
git clone https://github.com/ShreyashPatil530/crypto-mcp-server.git
cd crypto-mcp-server
# Install dependencies
pip install -r requirements.txt
# Create data directory
mkdir -p data
运行实时演示
python live_demo.py
输出示例:
🔴 LIVE CRYPTOCURRENCY DATA - REAL-TIME PRICES
⏰ Time: 2025-12-09 21:02:04
[1/18] Fetching BTC... ✓ $91,064.23 📈 (+1.19%)
[2/18] Fetching ETH... ✓ $3,149.87 📈 (+1.38%)
[3/18] Fetching XRP... ✓ $2.08 📈 (+0.02%)
...
📋 SUMMARY TABLE - ALL CRYPTOCURRENCIES
Symbol Price (USDT) 24h High 24h Low Change %
BTC $ 91,064.23 $ 91,374.00 $ 89,500.00 1.19%
ETH $ 3,149.87 $ 3,168.43 $ 3,075.38 1.38%
🚀 TOP 5 GAINERS (24h)
1. ADA $ 0.46 📈 +6.30%
2. ARB $ 0.22 📈 +2.56%
运行主服务器
python main.py
运行测试
python tests.py
预期产量:
==================================================
🧪 Running Cryptocurrency MCP Server Tests
==================================================
Ran 13 tests in 19.702s
OK
✅ All tests passed! (13 tests)
==================================================
📁 项目结构
crypto-mcp-server/
├── main.py # Entry point - MCP server main logic
├── api.py # CCXT API integration (fetch prices & history)
├── cache.py # Caching system with TTL management
├── errors.py # Error handling & validation
├── tests.py # Comprehensive test suite (13 tests)
├── live_demo.py # Live demo showing all cryptocurrencies
├── requirements.txt # Python dependencies
├── README.md # This file
├── .gitignore # Git ignore rules
└── data/ # Data storage directory
├── cache.json # Cached cryptocurrency prices
├── live_prices.json # Latest live prices (generated by live_demo)
├── errors.log # Error logs
└── .gitkeep # Keep directory in git
🔧 API 参考
MCP服务器类
get_current_price(symbol)
获取加密货币的实时价格和市场数据。
from main import MCPServer
server = MCPServer()
btc = server.get_current_price('BTC')
print(f"Bitcoin: ${btc['price']:,.2f}")
print(f"24h Change: {btc['change_percent']}%")
退货:
{
"symbol": "BTC",
"price": 91064.23,
"high_24h": 91374.0,
"low_24h": 89500.0,
"volume": 1257916388.71,
"bid": 91064.22,
"ask": 91064.23,
"change_percent": 1.19,
"timestamp": "2025-12-09T21:02:04.123456"
}
get_multiple_prices(symbols)
一次获取多个加密货币的价格。
prices = server.get_multiple_prices(['BTC', 'ETH', 'XRP'])
for symbol, data in prices.items():
print(f"{symbol}: ${data['price']}")
get_historical_data(symbol, days=7)
获取历史OHLCV(打开、高、低、关闭、音量)数据。
history = server.get_historical_data('BTC', days=30)
for candle in history:
print(f"{candle['date']}: Close ${candle['close']:,.2f}")
退货:
[
{
"date": "2025-12-03T00:00:00",
"open": 91277.88,
"high": 94150.0,
"low": 90990.23,
"close": 93429.95,
"volume": 156432189.45
}
]
💾 缓存系统
服务器自动缓存加密货币数据,以减少API调用。
缓存文件: data/cache.json
它是如何工作的:
- 第一个请求 → 从Binance API获取→ 保存到缓存
- 后续请求(5分钟内) → 使用缓存数据(即时响应)
- 5分钟后 → 缓存过期→ 已获取新数据
缓存配置:
- TTL(生存时间): 5分钟
- 格式: JSON
- 自动清理: 自动删除过期条目
缓存示例:
{
"BTC": {
"symbol": "BTC",
"price": 91064.23,
"timestamp": "2025-12-09T21:02:04.123456",
"high_24h": 91374.0
},
"ETH": {
"symbol": "ETH",
"price": 3149.87,
"timestamp": "2025-12-09T21:02:05.456789",
"high_24h": 3168.43
}
}
🧪 测试覆盖率
13个综合测试用例 涵盖所有功能:
CryptoAPI测试(6个测试)
- ✓ 获取BTC价格(实时)
- ✓ 获取ETH价格(实时)
- ✓ 获取多个符号
- ✓ 历史数据检索(7天)
- ✓ 无效符号错误处理
- ✓ 支持的符号列表
CacheManager测试(4个测试)
- ✓ 保存和检索缓存
- ✓ 缓存过期(TTL)
- ✓ 清除缓存条目
- ✓ 缓存文件创建
错误处理程序测试(3个测试)
- ✓ 错误处理和日志
- ✓ 符号验证
- ✓ 天数参数验证
运行测试:
python tests.py
演出
Ran 13 tests in 19.702s
OK
✅ All tests passed!
🔗 支持的加密货币
| 符号 | 名称 | 价格范围 | 状态 |
|---|---|---|---|
| BTC | 比特币 | 9万至9.5万美元 | ✓ |
| ETH | 以太坊 | 3.0K-3.2K美元 | ✓ |
| XRP | 瑞波币 | 2.00美元-2.10美元 | ✓ |
| ADA | 卡尔达诺 | 0.45-0.47美元 | ✓ |
| SOL | 索拉纳 | 130-140美元 | ✓ |
| 狗狗 | 狗狗币 | 0.13-0.15美元 | ✓ |
| MATIC | 多边形 | 0.37-0.39美元 | ✓ |
| 链接 | 链接 | 13.5美元-14.0美元 | ✓ |
| LTC | 莱特币 | 80-85美元 | ✓ |
| BCH | 比特币现金 | 570-595美元 | ✓ |
| DOT | 波尔卡多特 | 2.10-2.20美元 | ✓ |
| AVAX | 雪崩 | 13.5-14.0美元 | ✓ |
| ARB | 仲裁 | 0.21-0.23美元 | ✓ |
| OP | 乐观 | 0.31美元-0.33美元 | ✓ |
| SHIB | 芝犬 | <0.01 | ✓ |
| PEPE | PEPE | <0.01 | ✓ |
| NEAR | NEAR协议 | 1.70-1.80美元 | ✓ |
| UNI | Uniswap | 5.40美元-5.70美元 | ✓ |
🛡️ 错误处理
所有错误都会被记录并优雅地显示。
日志文件: data/errors.log
错误输出示例:
❌ ERROR [ValueError]
Context: Invalid symbol
Message: Symbol XYZ not supported
Time: 2025-12-09T21:02:04.123456
已处理错误:
- 加密货币符号无效
- 网络/API连接失败
- 输入参数无效
- 缓存读/写失败
⚙️ 配置
编辑 cache.py 要自定义缓存行为,请执行以下操作:
# Default: 5 minutes
cache = CacheManager(cache_file='data/cache.json', ttl_minutes=5)
# Custom: 10 minutes
cache = CacheManager(cache_file='data/cache.json', ttl_minutes=10)
# Custom: 1 minute (for frequent updates)
cache = CacheManager(cache_file='data/cache.json', ttl_minutes=1)
📊 性能基准
| 操作 | 时间 | 来源 |
|---|---|---|
| 实时价格(缓存) | <10ms | 本地JSON |
| 实时价格(新鲜) | 200-500ms | Binance API |
| 历史数据(7天) | 300-600ms | Binance API |
| 多个符号(5) | 500-1000ms | Binance API |
🔑 为什么没有API密钥?
此项目使用 CCXT的公共API端点 不需要身份验证:
- ✅ 实时市场数据可用
- ✅ 历史数据可用
- ✅ 无费率限制(合理使用)
- ✅ 100%免费
- ✅ 无需注册帐户
- ✅ 即时设置
注: 对于高频交易或提高利率限制,请考虑使用经过验证的API密钥(本项目不需要)。
📦 依赖项
ccxt==4.0.92 # Cryptocurrency exchange library
python-dateutil==2.8.2 # Date utilities
requests==2.31.0 # HTTP library
所有依赖项都是免费和开源的。
🚀 用例
- 交易机器人 -获取自动交易策略的价格
- 投资组合跟踪器 -监控多个加密货币持有量
- 加密货币仪表板 -实时市场数据可视化
- 市场分析 -技术分析的历史数据
- AI/ML模型 -向机器学习模型提供加密数据
- 移动应用 -加密货币价格应用程序的后端API
- 价格提醒 -监控价格变化并发送通知
- 研究 -学术加密货币市场研究
🤝 贡献
欢迎投稿!请随意:
- 添加更多加密货币
- 实施新的交换API
- 改进缓存机制
- 加强错误处理
- 添加更多测试用例
- 更新文档
贡献步骤:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/AmazingFeature) - 提交更改(
git commit -m 'Add AmazingFeature') - 推送到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
📋 假设和限制
假设:
- API调用需要活动的internet连接
- Binance API是可访问的(在您所在的地区未被阻止)
- 所有价格均以USDT(美元Tether)计价
- 默认缓存过期时间:5分钟
- 合理使用API(非高频交易)
限制:
- 实时数据更新间隔:约1-2秒(API速率限制)
- 历史数据仅限于过去365天
- 不支持现货保证金交易或衍生品
- 单交易所(币安)-可轻松扩展到多个交易所
🐛 故障排除
问题:“没有名为'ccxt'的模块”
解决方案:
pip install -r requirements.txt
问题:“连接超时”
解决方案:
- 检查您的互联网连接
- 确保Binance API在您所在的地区可以访问
- 如果被阻止,请尝试使用VPN
问题:“符号不受支持”
解决方案: 使用18个支持的符号之一(BTC、ETH、XRP等)
问题:“权限被拒绝”(Windows)
解决方案:
python -m pip install --upgrade pip
pip install -r requirements.txt
问题:“模块故障”
解决方案:
# Reinstall all dependencies
pip install --upgrade -r requirements.txt
📞 支持和问题
对于问题、疑问或建议:
- 检查测试用例 在
tests.py使用示例 - 查看README示例 上方
- 检查错误日志 在
data/errors.log - 打开一个问题 在GitHub上
📄 许可证
该项目根据 MIT许可证 -看看 许可证 文件以获取详细信息。
您可以自由使用、修改和分发此软件。
🙏 致谢
- 仓储管理系统 -加密货币交易所库
- 币安 -免费公共API
- Python社区 -对于惊人的工具和库
📈 项目统计
- 代码行: ~800
- 测试覆盖范围: 13/13项测试通过(100%)
- 支持的加密货币: 18+
- API集成: CCXT(币安)
- 缓存系统: 是(5分钟TTL)
- 错误处理: 全面的
- 文档: 完成
- 许可证: 麻省理工学院(开源)
🎯 路线图
未来的增强功能(潜在功能):
- []多交易所支持(Coinbase、Kraken等)
- []WebSocket实时价格流
- []数据库集成(PostgreSQL、MongoDB)
- []REST API包装器
- []Docker容器化
- []价格预警系统
- []投资组合管理功能
- []高级图表功能
👨💻 作者
Shreysh Patil
- github: @ShreyashPalil530
- 项目: 加密mcp服务器
📅 项目时间表
- 创建: 2025年12月
- 最后更新时间: 2025年12月9日
- 状态: ✅ 完成并准备生产
- 版本: 1.0.0
由以下材料制成❤️ 面向加密社区|麻省理工学院许可证|开源
🌟 给一颗星!
如果这个项目对你有帮助,请考虑给它一个⭐ 在GitHub上!
https://github.com/ShreyashPatil530/crypto-mcp-server
感谢您使用加密货币MCP服务器! 🚀