# Stock Data Assistant

> 统一的股票数据助手 Skill，整合： (1) 数据查询 — 通过 MCP 协议查询历史 K 线、财务报表等（A 股/港股/ETF/指数）； (2) 实时搜索 — 通过 WebSocket 订阅实时行情推送（每 3~5 秒更新）； (3) 微信联动 — 通过 picoclaw + WeChat Channel 实现微信端操作数据库和订阅实时数据。 触发此 Skill 时会自动下载 picoclaw、复用项目 LLM 配置、启动微信登录。

- Skill: `yourdaylight/stock-data-assistant` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add yourdaylight/stock-data-assistant`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yourdaylight/stock-data-assistant/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: yourdaylight (https://skillmd.com/u/yourdaylight)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yourdaylight/stock-data-assistant

---


# Stock Data Assistant（股票数据统一助手）

整合 **历史数据查询**、**实时行情搜索** 和 **微信联动** 三大能力的统一 Skill。DeepSeek Harness 接入见仓库 `docs/DEEPSEEK_HARNESS.md`（stdio MCP，不要使用 `8001/messages`）。

## 架构总览

```
┌─────────────┐     ┌──────────────┐     ┌─────────────────┐
│   微信用户    │────▶│  picoclaw     │────▶│ stock-mcp (8001) │
│  (WeChat)   │     │  (LLM Gateway)│     │  历史数据查询     │
└─────────────┘     │  port:18790  │     ├─────────────────┤
                    │  微信 Channel │     │  WS (8765)       │
┌─────────────┐     │              │────▶│  实时行情推送     │
│  Web 前端    │────▶│  MCP Client  │     └─────────────────┘
│  (18080)    │     └──────────────┘
└─────────────┘
```

## 核心能力

| 能力 | 协议 | 端口 | 说明 |
|------|------|------|------|
| 历史数据查询 | MCP (streamable-http) | 8001 | K线/财务/指数/ETF 等 |
| 实时行情推送 | WebSocket | 8765 | A股/港股/ETF 逐笔 |
| 微信交互 | picoclaw WeChat Channel | — | 自然语言 → MCP 工具调用 |

## 快速开始

### 一键启动

```bash
bash skills/stock-data-assistant/start_wechat_bridge.sh
```

该命令会依次完成：

1. **检查/下载 picoclaw** — 自动检测系统架构，从 GitHub Releases 下载
2. **生成配置** — 从 `.env` 读取 LLM 配置，生成 `picoclaw.yaml`
3. **启动 picoclaw** — 启动 Gateway (18790) + 微信 Channel
4. **启动实时订阅** — 启动 WebSocket 推送服务 (8765)

### 微信登录

```bash
# 显示微信登录二维码（扫码后即绑定）
.local/bin/picoclaw auth weixin

# 或者使用完整路径
./.local/bin/picoclaw auth weixin
```

扫码成功后，在微信中直接发消息即可操作股票数据。

### 微信对话示例

```
📱 你: 查一下贵州茅台最近的日K线
🤖 AI: 正在为您查询贵州茅台(600519.SH)的日线数据...

📱 你: 腾讯控股现在价格多少？
🤖 AI: 腾讯控股(00700.HK) 当前价 XXX.XX 港元，涨幅 X.XX%

📱 你: 监控 00700.HK 涨跌超过2%就通知我
🤖 AI: 已设置涨跌幅告警，触发条件：±2.00%

📱 你: 列出今天涨幅最大的10只A股
🤖 AI: 正在筛选今日涨幅榜 Top 10...
```

## 手动分步操作

### Step 1: 安装 picoclaw

```bash
bash skills/stock-data-assistant/setup_picoclaw.sh
# 或指定版本
bash skills/stock-data-assistant/setup_picoclaw.sh v0.2.5
```

### Step 2: 生成 picoclaw 配置

```bash
python3 skills/stock-data-assistant/generate_picoclaw_config.py
# 自定义参数
python3 skills/stock-data-assistant/generate_picoclaw_config.py \
    --mcp-token sk-your-token-here \
    --output ./my-config.yaml
```

### Step 3: 启动 picoclaw

```bash
export PATH=".local/bin:$PATH"
picoclaw run --config .local/picoclaw.yaml
```

### Step 4: 登录微信

```bash
picoclaw auth weixin
```

## 配置说明

### LLM 配置（自动从 .env 复用）

配置生成器会自动读取以下环境变量：

| 变量 | 说明 | 默认值 |
|------|------|--------|
| `OPENAI_API_KEY` | API 密钥 | *(必填)* |
| `OPENAI_BASE_URL` | API 端点 | `https://api.openai.com/v1` |
| `OPENAI_MODEL` | 模型名称 | `gpt-4` |

### MCP Server 配置

| 变量 | 说明 |
|------|------|
| `STOCK_MCP_SERVER_URL` | MCP 服务地址（默认 `http://localhost:8001/messages`） |
| `STOCK_MCP_TOKEN` | MCP 认证令牌 |

### 生成的配置文件结构

见 [references/picoclaw_config_example.yaml](references/picoclaw_config_example.yaml)

## 管理命令

```bash
# 查看状态
bash skills/stock-data-assistant/start_wechat_bridge.sh --status

# 停止所有服务
bash skills/stock-data-assistant/start_wechat_bridge.sh --stop

# 仅启动（不启用实时订阅）
bash skills/stock-data-assistant/start_wechat_bridge.sh --no-rt

# 指定订阅股票
bash skills/stock-data-assistant/start_wechat_bridge.sh --symbols 00700.HK,600519.SH
```

## MCP 工具一览（通过微信可用）

picoclaw 通过 MCP 协议连接到 stock_datasource 后，以下工具在微信中均可使用：

### K 线数据
- `tushare_daily_get_daily_data` — 日 K 线 (OHLCV)
- `tushare_daily_get_latest_daily` — 最新交易日数据
- `akshare_hk_*` — 港股日线数据

### 基本面
- `tushare_daily_basic_get_daily_basic` — PE/PB/市值等指标
- `tushare_balancesheet_*` — 资产负债表
- `tushare_income_*` — 利润表
- `tushare_cashflow_*` — 现金流量表

### 指数与 ETF
- `tushare_index_*` — 指数数据
- `tushare_fund_*` — ETF 数据

### 市场
- `tushare_trade_cal_get_cal` — 交易日历

> 完整工具列表可通过 MCP `tools/list` 接口动态获取（约 76+ 个工具）

## 实时数据（WebSocket）

通过 `skills/stock-rt-subscribe` 提供，支持：

- **实时推送**: 每 3~5 秒更新行情
- **多市场**: A 股 / 港股 / ETF
- **告警策略**: 涨停跌停、大幅波动、量能异动、价格突破

详细文档: [../stock-rt-subscribe/SKILL.md](../stock-rt-subscribe/SKILL.md)

## 目录结构

```
skills/stock-data-assistant/
├── SKILL.md                              # 本文档
├── setup_picoclaw.sh                     # 自动下载 picoclaw
├── generate_picoclaw_config.py           # 从 .env 生成配置
├── start_wechat_bridge.sh                # 一键启动脚本
└── references/
    └── picoclaw_config_example.yaml     # 配置示例
```

## 故障排查

| 问题 | 解决方案 |
|------|----------|
| picoclaw 下载失败 | 检查网络/代理；或手动从 GitHub 下载放入 `.local/bin/` |
| `OPENAI_API_KEY not set` | 确保 `.env` 文件中有 `OPENAI_API_KEY` 字段 |
| `API key required` (MCP) | 设置 `STOCK_MCP_TOKEN` 环境变量或编辑配置文件 |
| 微信二维码过期 | 重新运行 `picoclaw auth weixin` |
| 实时数据无推送 | 检查 `subscribe_client.py` 是否正常运行，端口 8765 是否可达 |
| picoclaw 无法调用 MCP 工具 | 确认 MCP 服务 (8001) 正常运行且 token 有效 |

## 依赖关系

- **Python >= 3.9** — 用于配置生成和实时数据订阅
- **picoclaw >= v0.2.5** — 由 `setup_picoclaw.sh` 自动安装
- **stock_datasource MCP 服务** — 端口 8001（需先启动）
- **stock_datasource Backend** — 端口 6666（需先启动）

