Skip to main content
Glama
README.md
# qlib-mcp

> **全网首个** Microsoft Qlib 量化研究平台的 MCP Server — 让 AI Agent 直接调用 Qlib 做数据查询、因子分析和策略回测。

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
[![MCP](https://img.shields.io/badge/MCP-1.26%2B-green)](https://modelcontextprotocol.io/)
[![Qlib](https://img.shields.io/badge/Qlib-0.9%2B-orange)](https://github.com/microsoft/qlib)

---

## 功能概览

| 工具 | 说明 |
|------|------|
| `qlib_init` | 初始化 Qlib 数据环境(必须首先调用) |
| `qlib_download_data` | 获取 A 股/美股数据集下载命令 |
| `qlib_list_instruments` | 查询 CSI300/CSI500 等指数成分股列表 |
| `qlib_get_data` | 查询历史价格与因子数据(支持 Qlib 表达式) |
| `qlib_backtest_topk` | TopK 动量策略回测,返回年化收益/夏普/最大回撤 |
| `qlib_factor_analysis` | IC 分析 + 分位数收益,快速验证因子有效性 |
| `qlib_expression_help` | 表达式语法帮助(算子列��� / Alpha158 说明) |

---

## 安装

### 前置依赖

```bash
# Python 3.10+(推荐 3.12)
pip install pyqlib mcp
```

### 下载 Qlib 数据(A 股日线,约 500MB)

```bash
python -m qlib.run.get_data qlib_data \
  --target_dir ~/.qlib/qlib_data/cn_data \
  --region cn
```

### 注册到 MCP 客户端

**Claude Desktop / mcporter / Cursor:**

```json
{
  "mcpServers": {
    "qlib": {
      "command": "python",
      "args": ["/path/to/qlib-mcp/server.py"],
      "description": "Microsoft Qlib 量化研究平台"
    }
  }
}
```

> 请将 `python` 替换为你实际的 Python 路径(如 `/Users/你/.pyenv/versions/3.12.12/bin/python`)

---

## 使用示例

### 1. 初始化

```
调用 qlib_init,data_path = "~/.qlib/qlib_data/cn_data",region = "cn"
```

### 2. 查询 CSI300 成分股

```
调用 qlib_list_instruments,market = "csi300",start_date = "2024-01-01"
```

### 3. 获取平安银行近 60 日收盘价

```
调用 qlib_get_data,symbols = "SZ000001",fields = "$close,$volume",start_date = "2024-10-01"
```

### 4. 20 日动量因子 IC 分析

```
调用 qlib_factor_analysis,factor_expr = "$close / Ref($close, 20) - 1"
```

### 5. TopK 策略回测(CSI300,2020-2023)

```
调用 qlib_backtest_topk,market = "csi300",topk = 50,signal_field = "$close / Ref($close, 20) - 1"
```

---

## Qlib 表达式语法速查

```
# 价格动量
$close / Ref($close, 20) - 1      # 20 日动量

# 技术指标
EMA($close, 12) - EMA($close, 26) # MACD
($close - Mean($close, 20)) / Std($close, 20)  # 布林带位置

# 成交量因子
$volume / Mean($volume, 20)        # 相对成交量
Corr($close, $volume, 10)          # 价量相关性(聪明钱)
```

完整算子列表:调用 `qlib_expression_help(topic="operators")`

---

## 受支持的市场

| 区域 | 常用成分股池 |
|------|------------|
| A 股(cn) | all, csi300, csi500, csi100, sz50 |
| 美股(us) | sp500, nasdaq100 |

---

## 许可证

MIT License

---

## 相关链接

- [Microsoft Qlib 官方仓库](https://github.com/microsoft/qlib)
- [Model Context Protocol](https://modelcontextprotocol.io/)
- [Qlib 文档](https://qlib.readthedocs.io/)