内容
# 加密货币投资组合管理服务器
基于模型上下文协议(MCP)构建的综合加密货币投资组合管理服务器。支持Binance、Coinbase和Kraken交易所,提供18多种分析工具,用于投资组合跟踪、风险评估和市场情报。
## 概述
该MCP服务器通过Claude Desktop或任何MCP兼容的客户端提供实时的加密货币投资组合分析。它提供对您的交易所账户的只读访问,确保您的资金保持安全,同时为您提供对您的资产的深入洞察。
### 关键功能
- 多交易所投资组合聚合(Binance、Coinbase、Kraken)
- 实时价格跟踪和提醒
- 风险和多元化分析
- 市场情报和情绪指标
- 套利机会检测
- 投资组合绩效指标
## 快速入门
### 先决条件
- Python 3.10 或更高版本
- 支持的交易所的API密钥(仅只读权限)
- Claude Desktop(可选,用于AI驱动的查询)
### 安装
1. 克隆仓库:
```bash
git clone https://github.com/lev-corrupted/CryptoPortfolioMCPServer.git
cd CryptoPortfolioMCPServer
```
2. 运行设置脚本:
```bash
chmod +x setup.sh
./setup.sh
```
3. 配置API凭证:
```bash
cp .env.example .env
# 编辑.env文件,填写您的交易所API密钥
```
4. 测试配置:
```bash
source venv/bin/activate
python test_config.py
```
### Claude Desktop 配置
将以下内容添加到您的Claude Desktop配置文件中:
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"crypto-portfolio": {
"command": "/absolute/path/to/CryptoPortfolioMCPServer/venv/bin/python",
"args": ["-m", "src.server"],
"cwd": "/absolute/path/to/CryptoPortfolioMCPServer"
}
}
}
```
将 `/absolute/path/to/` 替换为您的实际安装路径。
## API 密钥设置
### 重要:仅只读权限
创建具有只读权限的API密钥。永远不要启用交易或提现权限。
### Binance
1. 登录Binance并导航到API管理
2. 创建一个新的API密钥,仅具有“读取”权限
3. 将API密钥和密钥复制到您的 `.env` 文件中
### Coinbase
1. 登录Coinbase并前往设置 > API
2. 创建一个新的API密钥,仅具有“wallet:accounts:read”和“wallet:transactions:read”权限
3. 将凭证复制到 `.env` 中
### Kraken
1. 登录Kraken并前往设置 > API
2. 生成一个新的密钥,仅具有“查询资金”和“查询未成交订单和交易”权限
3. 将凭证复制到 `.env` 中
## 可用工具
服务器提供7类18种MCP工具:
### 投资组合管理(5种工具)
- `get_total_portfolio_value` - 聚合整个投资组合价值
- `get_all_balances` - 详细的余额明细,含美元价值
- `get_portfolio_allocation` - 资产分配百分比
- `get_current_prices` - 实时加密货币价格
- `calculate_portfolio_pnl` - 利润/亏损计算
### 分析(2种工具)
- `get_biggest_movers` - 涨幅和跌幅最大的资产
- `get_portfolio_performance` - 历史绩效指标
### 价格提醒(2种工具)
- `check_price_alert` - 单个价格条件监控
- `check_multiple_alerts` - 批量提醒检查
### 风险管理(3种工具)
- `get_diversification_score` - 投资组合多元化评级(1-10)
- `get_volatility_risk` - 基于资产波动性的风险评估
- `get_stablecoin_ratio` - 稳定币百分比
### 市场情报(3种工具)
- `check_arbitrage_opportunities` - 跨交易所价格差异
- `check_liquidity` - 交易量和流动性分析
- `get_fear_greed_index` - 加密货币市场情绪指标
### 投资组合洞察(2种工具)
- `detect_dust` - 识别小价值持有资产
- `get_exchange_distribution` - 投资组合在交易所的分布
### 实用工具(1种工具)
- `calculate_withdrawal_fees` - 估算转账成本
## 使用示例
### 使用Claude Desktop
配置完成后,向Claude提出自然语言问题:
```
"我的总投资组合价值是多少?"
"显示我的投资组合分配情况"
"今天我的投资组合中涨幅最大的资产是什么?"
"比特币是否超过 50,000 美元?"
"我的多元化得分是多少?"
"是否有套利机会?"
"当前的加密货币恐惧和贪婪指数是多少?"
```
## 架构
```
CryptoPortfolioMCPServer/
├── src/
│ ├── server.py # 主MCP服务器
│ ├── exchanges/ # 交易所客户端实现
│ │ ├── base_exchange.py
│ │ ├── binance_client.py
│ │ ├── coinbase_client.py
│ │ └── kraken_client.py
│ ├── analytics/ # 分析引擎
│ │ ├── portfolio.py
│ │ ├── risk.py
│ │ └── market.py
│ └── utils/ # 实用工具
│ ├── config.py
│ └── helpers.py
├── .github/ # GitHub模板
├── requirements.txt
├── setup.sh
├── test_config.py
└── .env.example
```
## 技术细节
- **交易所API集成:** 使用CCXT库进行统一交易所访问
- **缓存:** 内存缓存,TTL可配置(30秒价格,60秒余额)
- **速率限制:** 每个交易所的限制(Binance:15/s,Coinbase:8/s,Kraken:1/s)
- **错误处理:** 自动重试,指数退避(3次尝试)
- **安全性:** 只读操作,无交易或提现功能
## 配置
`.env`文件中的环境变量:
```bash
# 交易所API凭证
BINANCE_API_KEY=您的binance_api_key
BINANCE_API_SECRET=您的binance_secret
COINBASE_API_KEY=您的coinbase_api_key
COINBASE_API_SECRET=您的coinbase_secret
KRAKEN_API_KEY=您的kraken_api_key
KRAKEN_API_SECRET=您的kraken_secret
# 可选设置
MOCK_MODE=false
PRICE_CACHE_DURATION=30
BALANCE_CACHE_DURATION=60
```
## 故障排除
### “没有初始化交易所”
检查 `.env` 文件中是否正确设置了API密钥。
### “[交易所] 初始化失败”
验证API密钥权限是否设置为只读,并且凭证是否正确。
### 速率限制错误
服务器实现了自动速率限制和重试逻辑。
## 安全性
**重要的安全实践:**
1. 仅使用只读API密钥
2. 永远不要将 `.env` 文件提交到版本控制中
3. 在交易所API密钥上启用IP白名单(推荐)
4. 定期轮换API密钥
5. 保持依赖项更新
该服务器无法执行交易或提现 - 它只读取投资组合数据。
## 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取指南。
贡献必须:
- 遵循现有的代码模式
- 包含文档
- 保持安全最佳实践
- 永远不要添加交易/提现功能
## 许可证
MIT许可证 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 免责声明
本软件仅用于信息目的,不构成财务建议。用户对其投资决策承担全部责任。服务器以只读模式运行,无法执行交易或转账。
## 支持
如有问题或疑问:
1. 检查上面的故障排除部分
2. 查看 [CONTRIBUTING.md](CONTRIBUTING.md)
3. 检查服务器日志 `logs/crypto_mcp.log`
4. 在GitHub上提出问题
## 构建工具
- [CCXT](https://github.com/ccxt/ccxt) - 加密货币交易所交易库
- [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) - 模型上下文协议
- Python 3.10+