$npx -y skills add Yourdaylight/stock_datasource --skill stock-data-assistant统一的股票数据助手 Skill,整合: (1) 数据查询 — 通过 MCP 协议查询历史 K 线、财务报表等(A 股/港股/ETF/指数); (2) 实时搜索 — 通过 WebSocket 订阅实时行情推送(每 3~5 秒更新); (3) 微信联动 — 通过 picoclaw + WeChat Channel 实现微信端操作数据库和订阅实时数据。 触发此 Skill 时会自动下载 picoclaw、复用项目 LLM 配置、启动微信登录。
| 1 | # Stock Data Assistant(股票数据统一助手) |
| 2 | |
| 3 | 整合 **历史数据查询**、**实时行情搜索** 和 **微信联动** 三大能力的统一 Skill。 |
| 4 | |
| 5 | ## 架构总览 |
| 6 | |
| 7 | ``` |
| 8 | ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ |
| 9 | │ 微信用户 │────▶│ picoclaw │────▶│ stock-mcp (8001) │ |
| 10 | │ (WeChat) │ │ (LLM Gateway)│ │ 历史数据查询 │ |
| 11 | └─────────────┘ │ port:18790 │ ├─────────────────┤ |
| 12 | │ 微信 Channel │ │ WS (8765) │ |
| 13 | ┌─────────────┐ │ │────▶│ 实时行情推送 │ |
| 14 | │ Web 前端 │────▶│ MCP Client │ └─────────────────┘ |
| 15 | │ (18080) │ └──────────────┘ |
| 16 | └─────────────┘ |
| 17 | ``` |
| 18 | |
| 19 | ## 核心能力 |
| 20 | |
| 21 | | 能力 | 协议 | 端口 | 说明 | |
| 22 | |------|------|------|------| |
| 23 | | 历史数据查询 | MCP (streamable-http) | 8001 | K线/财务/指数/ETF 等 | |
| 24 | | 实时行情推送 | WebSocket | 8765 | A股/港股/ETF 逐笔 | |
| 25 | | 微信交互 | picoclaw WeChat Channel | — | 自然语言 → MCP 工具调用 | |
| 26 | |
| 27 | ## 快速开始 |
| 28 | |
| 29 | ### 一键启动 |
| 30 | |
| 31 | ```bash |
| 32 | bash skills/stock-data-assistant/start_wechat_bridge.sh |
| 33 | ``` |
| 34 | |
| 35 | 该命令会依次完成: |
| 36 | |
| 37 | 1. **检查/下载 picoclaw** — 自动检测系统架构,从 GitHub Releases 下载 |
| 38 | 2. **生成配置** — 从 `.env` 读取 LLM 配置,生成 `picoclaw.yaml` |
| 39 | 3. **启动 picoclaw** — 启动 Gateway (18790) + 微信 Channel |
| 40 | 4. **启动实时订阅** — 启动 WebSocket 推送服务 (8765) |
| 41 | |
| 42 | ### 微信登录 |
| 43 | |
| 44 | ```bash |
| 45 | # 显示微信登录二维码(扫码后即绑定) |
| 46 | .local/bin/picoclaw auth weixin |
| 47 | |
| 48 | # 或者使用完整路径 |
| 49 | ./.local/bin/picoclaw auth weixin |
| 50 | ``` |
| 51 | |
| 52 | 扫码成功后,在微信中直接发消息即可操作股票数据。 |
| 53 | |
| 54 | ### 微信对话示例 |
| 55 | |
| 56 | ``` |
| 57 | 📱 你: 查一下贵州茅台最近的日K线 |
| 58 | 🤖 AI: 正在为您查询贵州茅台(600519.SH)的日线数据... |
| 59 | |
| 60 | 📱 你: 腾讯控股现在价格多少? |
| 61 | 🤖 AI: 腾讯控股(00700.HK) 当前价 XXX.XX 港元,涨幅 X.XX% |
| 62 | |
| 63 | 📱 你: 监控 00700.HK 涨跌超过2%就通知我 |
| 64 | 🤖 AI: 已设置涨跌幅告警,触发条件:±2.00% |
| 65 | |
| 66 | 📱 你: 列出今天涨幅最大的10只A股 |
| 67 | 🤖 AI: 正在筛选今日涨幅榜 Top 10... |
| 68 | ``` |
| 69 | |
| 70 | ## 手动分步操作 |
| 71 | |
| 72 | ### Step 1: 安装 picoclaw |
| 73 | |
| 74 | ```bash |
| 75 | bash skills/stock-data-assistant/setup_picoclaw.sh |
| 76 | # 或指定版本 |
| 77 | bash skills/stock-data-assistant/setup_picoclaw.sh v0.2.5 |
| 78 | ``` |
| 79 | |
| 80 | ### Step 2: 生成 picoclaw 配置 |
| 81 | |
| 82 | ```bash |
| 83 | python3 skills/stock-data-assistant/generate_picoclaw_config.py |
| 84 | # 自定义参数 |
| 85 | python3 skills/stock-data-assistant/generate_picoclaw_config.py \ |
| 86 | --mcp-token sk-your-token-here \ |
| 87 | --output ./my-config.yaml |
| 88 | ``` |
| 89 | |
| 90 | ### Step 3: 启动 picoclaw |
| 91 | |
| 92 | ```bash |
| 93 | export PATH=".local/bin:$PATH" |
| 94 | picoclaw run --config .local/picoclaw.yaml |
| 95 | ``` |
| 96 | |
| 97 | ### Step 4: 登录微信 |
| 98 | |
| 99 | ```bash |
| 100 | picoclaw auth weixin |
| 101 | ``` |
| 102 | |
| 103 | ## 配置说明 |
| 104 | |
| 105 | ### LLM 配置(自动从 .env 复用) |
| 106 | |
| 107 | 配置生成器会自动读取以下环境变量: |
| 108 | |
| 109 | | 变量 | 说明 | 默认值 | |
| 110 | |------|------|--------| |
| 111 | | `OPENAI_API_KEY` | API 密钥 | *(必填)* | |
| 112 | | `OPENAI_BASE_URL` | API 端点 | `https://api.openai.com/v1` | |
| 113 | | `OPENAI_MODEL` | 模型名称 | `gpt-4` | |
| 114 | |
| 115 | ### MCP Server 配置 |
| 116 | |
| 117 | | 变量 | 说明 | |
| 118 | |------|------| |
| 119 | | `STOCK_MCP_SERVER_URL` | MCP 服务地址(默认 `http://localhost:8001/messages`) | |
| 120 | | `STOCK_MCP_TOKEN` | MCP 认证令牌 | |
| 121 | |
| 122 | ### 生成的配置文件结构 |
| 123 | |
| 124 | 见 [references/picoclaw_config_example.yaml](references/picoclaw_config_example.yaml) |
| 125 | |
| 126 | ## 管理命令 |
| 127 | |
| 128 | ```bash |
| 129 | # 查看状态 |
| 130 | bash skills/stock-data-assistant/start_wechat_bridge.sh --status |
| 131 | |
| 132 | # 停止所有服务 |
| 133 | bash skills/stock-data-assistant/start_wechat_bridge.sh --stop |
| 134 | |
| 135 | # 仅启动(不启用实时订阅) |
| 136 | bash skills/stock-data-assistant/start_wechat_bridge.sh --no-rt |
| 137 | |
| 138 | # 指定订阅股票 |
| 139 | bash skills/stock-data-assistant/start_wechat_bridge.sh --symbols 00700.HK,600519.SH |
| 140 | ``` |
| 141 | |
| 142 | ## MCP 工具一览(通过微信可用) |
| 143 | |
| 144 | picoclaw 通过 MCP 协议连接到 stock_datasource 后,以下工具在微信中均可使用: |
| 145 | |
| 146 | ### K 线数据 |
| 147 | - `tushare_daily_get_daily_data` — 日 K 线 (OHLCV) |
| 148 | - `tushare_daily_get_latest_daily` — 最新交易日数据 |
| 149 | - `akshare_hk_*` — 港股日线数据 |
| 150 | |
| 151 | ### 基本面 |
| 152 | - `tushare_daily_basic_get_daily_basic` — PE/PB/市值等指标 |
| 153 | - `tushare_balancesheet_*` — 资产负债表 |
| 154 | - `tushare_income_*` — 利润表 |
| 155 | - `tushare_cashflow_*` — 现金流量表 |
| 156 | |
| 157 | ### 指数与 ETF |
| 158 | - `tushare_index_*` — 指数数据 |
| 159 | - `tushare_fund_*` — ETF 数据 |
| 160 | |
| 161 | ### 市场 |
| 162 | - `tushare_trade_cal_get_cal` — 交易日历 |
| 163 | |
| 164 | > 完整工具列表可通过 MCP `tools/list` 接口动态获取(约 76+ 个工具) |
| 165 | |
| 166 | ## 实时数据(WebSocket) |
| 167 | |
| 168 | 通过 `skills/stock-rt-subscribe` 提供,支持: |
| 169 | |
| 170 | - **实时推送**: 每 3~5 秒更新行情 |
| 171 | - **多市场**: A 股 / 港股 / ETF |
| 172 | - **告警策略**: 涨停跌停、大幅波动、量能异动、价格突破 |
| 173 | |
| 174 | 详细文档: [../stock-rt-subscribe/SKILL.md](../stock-rt-subscribe/SKILL.md) |
| 175 | |
| 176 | ## 目录结构 |
| 177 | |
| 178 | ``` |
| 179 | skills/stock-data-assistant/ |
| 180 | ├── SKILL.md # 本文档 |
| 181 | ├── setup_picoclaw.sh # 自动下载 picoclaw |
| 182 | ├── generate_picoclaw_config.py # 从 .env 生成配置 |
| 183 | ├── start_wechat_bridge.sh # 一键启动脚本 |
| 184 | └── references/ |
| 185 | └── picoclaw_config_example.yaml # 配置示例 |
| 186 | ``` |
| 187 | |
| 188 | ## 故障排查 |
| 189 | |
| 190 | | 问题 | 解决方案 | |
| 191 | |------|----------| |
| 192 | | picoclaw 下载失败 | 检查网络/代理;或手动从 GitHub 下载放入 `.local/bin/` | |
| 193 | | `OPENAI_API_KEY not set` | 确保 `.env` 文件中有 `OPENAI_API_KEY` 字段 | |
| 194 | | `API key required` (MCP) | 设置 `STOCK_MCP_TOKEN` 环境变量或编辑配置文件 | |
| 195 | | 微信二维码过期 | 重新运行 `picoclaw auth weixin` | |
| 196 | | 实时数据无推送 | 检查 `subscribe_client.py` 是否正常运行,端口 8765 是否可达 | |
| 197 | | picoclaw 无法调用 MCP 工具 | 确认 MCP 服务 (8001) 正常运行且 token 有效 | |
| 198 | |
| 199 | ## 依赖关系 |
| 200 | |
| 201 | - **Python >= 3.9** — 用于配置生成和实时数据订阅 |
| 202 | - **picoclaw >= v0.2.5** — 由 `setup_picoclaw.sh` 自动安装 |
| 203 | - **stock_datasource MCP 服务** — 端口 8001(需先启动) |
| 204 | - **stock_datasource Backend** — 端口 6666(需先启动) |