# 悟道 A 股 MCP — 安装指南

悟道 MCP 暴露 67 个 A 股数据工具（行情、涨停板、资金、板块、
情报、事件日历、短线催化、基本面、集合竞价、官方披露、海外披露、工作流、自选股管理）。Agent 的 LLM 会根据
用户问题自动挑选合适的工具，**不需要安装多个 server**。

本指南默认使用 **稳定 HTTP 入口**（无 GET event-stream 长连接）。
悟道 MCP 的工具结果通过普通 POST JSON-RPC 返回；股票数据查询不需要
长连接。这样对 Codex、Claude Code、Hermes、OpenClaw、网关和自建
Agent 更稳定，也更不容易触发连接池熔断。

本指南末尾另附 3 个**场景能力包**（Skill），用于复杂场景的工具编排，
按需 fetch、零安装成本。

## 基本信息

- **稳定 URL（推荐）**：`<MCP_URL>`（线上通常是 `https://stock.quicktiny.cn/api/mcp`）
- **鉴权**：HTTP 头 `Authorization: Bearer <API_TOKEN>`
- **建议 server 名**：`wudao`
- **默认传输**：普通 HTTP JSON-RPC / stateless HTTP，不建立长连接
- **工具数量**：当前全量 67 个，以实际 `tools/list` 返回为准
- **场景能力包**：3 个（详见末尾「场景能力包索引」章节）

下面 6 个客户端配置任选其一应用——把 `<MCP_URL>` 与
`<API_TOKEN>` 替换为用户提示词里给出的真实值。

> 重要：悟道 MCP 默认不推荐 Streamable HTTP。旧版客户端如果只接受
> Streamable HTTP，可以临时联系服务端获取兼容入口；新配置优先使用
> `<MCP_URL>`。

---

## Cursor

配置文件路径：`~/.cursor/mcp.json`（也支持 workspace 级别的 `.cursor/mcp.json`）。

```json
{
  "mcpServers": {
    "wudao": {
      "type": "http",
      "url": "<MCP_URL>",
      "headers": {
        "Authorization": "Bearer <API_TOKEN>"
      }
    }
  }
}
```

保存后重启 Cursor（退出再打开，或 Cmd-Shift-P → "Developer: Reload Window"）。
在 Settings → MCP 里 `wudao` 应该显示"已连接"，工具数以 `tools/list` 返回为准。

> 如果你的 Cursor 版本只接受 Streamable HTTP，说明它暂时不适合走
> 悟道默认稳定入口。优先升级客户端或改用支持普通 HTTP MCP 的客户端。

---

## Codex CLI

配置文件路径：`~/.codex/config.toml`。

```toml
[mcp_servers.wudao]
url = "<MCP_URL>"
http_headers = { Authorization = "Bearer <API_TOKEN>" }
```

Codex 的两个易错点：

- **不要**写 `transport = "streamable-http"`——Codex 会根据 URL 自动
  识别 HTTP 模式，写多余字段反而可能被拒。
- header 字段必须是 `http_headers`（不是 `headers`），且必须用 TOML
  内联表语法 `http_headers = { ... }`，**不能**写成 `[mcp_servers.wudao.headers]`
  子表。

写完重启 `codex`，运行 `codex mcp list` 验证。

---

## Claude Code CLI

一行命令搞定：

```bash
claude mcp add wudao \
  --transport http \
  --header "Authorization: Bearer <API_TOKEN>" \
  <MCP_URL>
```

用 `claude mcp list` 验证 `wudao` 是否连上。在 Claude Code 会话中
输入 `/mcp` 可以查看工具列表。

---

## OpenClaw

方式 A — CLI 一行（推荐）：

```bash
openclaw mcp set wudao '{"url":"<MCP_URL>","transport":"http","headers":{"Authorization":"Bearer <API_TOKEN>"}}'
openclaw gateway restart
```

方式 B — 编辑 `~/.openclaw/config.json`。注意嵌套结构：顶层 key 是
`mcp.servers`，**不是** `mcpServers`。

```json
{
  "mcp": {
    "servers": {
      "wudao": {
        "url": "<MCP_URL>",
        "transport": "http",
        "headers": {
          "Authorization": "Bearer <API_TOKEN>"
        }
      }
    }
  }
}
```

---

## Hermes Agent

YAML 配置文件（一般在 `~/.hermes/config.yaml`）。注意顶层 key 是
`mcp_servers`（下划线分隔），**不是** `mcpServers`（驼峰）。

Hermes 推荐使用稳定 URL：`<MCP_URL>`。不要把 Hermes 配到
`<MCP_STREAM_URL>`，避免长连接连接池静默断开后触发熔断。

```yaml
mcp_servers:
  wudao:
    url: "<MCP_URL>"
    headers:
      Authorization: "Bearer <API_TOKEN>"
    timeout: 180
    connect_timeout: 60
```

---

## 其他通用 MCP 客户端

如果你的客户端不在上面列表里、但接受通用的 `mcpServers` JSON：

```json
{
  "mcpServers": {
    "wudao": {
      "url": "<MCP_URL>",
      "transport": "http",
      "headers": {
        "Authorization": "Bearer <API_TOKEN>"
      }
    }
  }
}
```

---

## 验证

1. 写完配置后重启客户端。
2. 列出 MCP 工具（不同客户端方式不同：Claude Code 里输 `/mcp`，
   Cursor 在 Settings → MCP 查看，Codex CLI 跑 `codex mcp list` 等）。
3. 应该能在 `wudao` 下面看到当前工具列表，例如：
   - **涨停板**：`limit_up_ladder`、`limit_up_filter`、`hot_sectors`、
     `limit_stats`、`broken_limit_up`
   - **行情数据**：`kline`、`minute_data`、`stock_rank`、
     `stock_search`、`market_overview`
   - **资金与板块**：`capital_flow`、`sector_analysis`、
     `concept_stocks`、`anomaly_detection`
   - **市场情报**：`dragon_tiger`、`smart_hotlist`、`news_hotlist`、
     `research_reports`、`briefings`
   - **集合竞价**（新）：`auction_data`、`auction_market_scan`、
     `auction_theme_strength`、`auction_limitup_feedback`、
     `auction_weak_to_strong`
   - **基本面**：`valuation_snapshot`、`financial_summary`、
     `shareholder_structure`
   - **工作流**：`market_replay_workflow`、
     `stock_research_workflow`、`limitup_review_workflow`
   - **自选股管理**：`watchlist_list`、`watchlist_group_list`、
     `watchlist_group_create`、`watchlist_group_rename`、
     `watchlist_group_delete`、`watchlist_add`、`watchlist_remove`、
     `watchlist_update_stock`（总数最多 300 只、分组最多 20 个、每组最多 50 只；追加分组用 `groupMode=add`）
4. 试试下面几个 prompt 验证 LLM 能自动选对工具：
   - "今天 A 股连板梯队怎么样" → `limit_up_ladder`
   - "帮我跑一下今天 A 股市场复盘" → `market_replay_workflow`
   - "用工作流分析一下贵州茅台" → `stock_research_workflow`
   - "贵州茅台的估值和最新财报" → `valuation_snapshot` + `financial_summary`
   - "今天集合竞价最强的 10 只票" → `auction_market_scan`
   - "昨涨停今天竞价反馈、连板梯队有没有被核" → `auction_limitup_feedback`
   - "今天竞价资金主要打哪条主线" → `auction_theme_strength`
   - "今天有没有弱转强 / 昨炸板今反包" → `auction_weak_to_strong`
   - "昨涨停今天断板的有哪些 / 高标有没有被杀" → `board_break_analysis`

---

## 进阶 — 精简工具集（可选）

默认 URL 不带参数会返回全部工具，schema 较大。如果客户端
context 紧张，可以在 URL 上加 `?profile=...` 来缩减：

| profile           | 工具数 | 适用场景                |
|-------------------|--------|------------------------|
| （默认 / 不加）   | 67     | 全部工具，**推荐**     |
| `short_term`     | 53     | 短线交易核心（含竞价+断板+事件日历）|
| `market_replay`  | 53     | 盘后复盘（工作流+竞价+断板+事件日历）|
| `auction_review` | 25     | 集合竞价专项复盘       |
| `theme_research` | 45     | 题材、板块轮动与短线催化|
| `stock_research` | 42     | 单股深度研究           |
| `fundamental`    | 12     | 基本面、公司事件和海外披露|
| `workflows`      | 3      | 3 个分析工作流         |

> 工具数为大致值，以实际 `tools/list` 返回为准。

---

## 常见问题

- **Codex 报 "schema must have type 'object' and not have anyOf/oneOf/..."**：
  早期版本 schema 把 `anyOf` 暴露给客户端导致；v1.2+ 已修。如果还报，
  检查 URL 是否还指向旧版部署，应该用 `https://stock.quicktiny.cn`。
- **HTTP 401**：token 缺失或写错，或者客户端 header 配置字段名写错被
  静默忽略——回去对照上面对应客户端章节的字段名再检查一遍。
- **HTTP 404 / "transport not supported"**：URL 必须正好是端点路径，
  **不要**加任何后缀（不加 `/initialize`、`/tools/list` 等——那些是
  JSON-RPC 的 method 名，不是 URL path）。也不要带末尾的斜杠。
- **Hermes / MCP 网关报长连接、connection pool、circuit breaker、GET
  event-stream 405 或 session expired**：请使用稳定入口 `<MCP_URL>`。
  悟道数据查询工具不需要长连接；每次 tool call 走 POST JSON-RPC 即可。
- **工具能列出但调用返回空 / 数据陈旧**：先看响应里的
  `tradeDate`、`actualTradeDate`、`qualityWarnings`
  字段；如结果带有时效或数据质量提示，需要在结论里说明。
  服务端默认中性，不给买卖建议，分析角度由用户自己决定。

---

## 安装完后怎么提问

服务端工具描述里已经内置了使用约束（批量上限、日期语义、链接规范），
**不需要**在 system prompt 里重复。直接用中文或英文自然提问就行，
例如：

- 帮我看一下今天 A 股连板梯队，最高板是谁？2 板以上有哪些？
- 用短线视角复盘今天的 A 股市场。
- 今天机器人题材强不强？板块轮动到哪里？
- 帮我分析中国长城最近为什么涨，逻辑是题材、资金还是消息驱动？
- 贵州茅台的估值和最新财务摘要。
- 未来七天有哪些短线催化？有没有重要发布会、行业大会或宏观数据？
- 这只票未来有没有解禁、增减持、分红除权、两融或北向持股变化？
- 今天集合竞价资金打哪条主线？昨高标有没有被核？

LLM 会自动选用合适的工具组合。

---

## 场景能力包索引（Skills）

除了 MCP 工具本身，悟道还提供 **3 个场景化能力包**（Skill），
用于复杂场景的工具编排。Skill 是一段 Markdown 文档，告诉 LLM
**怎么用现有工具回答某类问题**，本身不增加新工具，**零安装成本**：
LLM 遇到匹配场景时，直接 fetch 对应 URL 把 Markdown 加进上下文即可。

| Skill | 触发场景 | URL（可直接 fetch） |
|---|---|---|
| **wudao-auction-review**<br>集合竞价复盘 | "今天竞价最强是谁 / 哪条主线 / 昨高标有没有被核 / 退潮还是修复 / 9:25 盯盘名单" | <code>&lt;BASE_URL&gt;/api/openclaw/skills/wudao-auction-review/skill.md</code> |
| **wudao-theme-research**<br>题材/板块研究 | "某题材热不热 / 板块轮动到哪 / 资金真买入还是出货 / XX 概念的成分股和龙头" | <code>&lt;BASE_URL&gt;/api/openclaw/skills/wudao-theme-research/skill.md</code> |
| **wudao-stock-attribution**<br>个股短线归因 | "为什么 XX 股票涨 / 涨停 / 异动 / 短线核心原因 / 题材-资金-消息哪个驱动" | <code>&lt;BASE_URL&gt;/api/openclaw/skills/wudao-stock-attribution/skill.md</code> |

> `<BASE_URL>` 取 MCP URL 去掉 `/api/mcp` 后的部分，例如
> `https://stock.quicktiny.cn`。

### Skill 使用方式

**对客户端**：什么都不用做，Skill 不在 `tools/list` 里，不占工具
token，不影响现有工具调用。

**对 LLM**：遇到上面"触发场景"列的问题时，先 fetch 对应 Skill
URL（任何 HTTP 工具都行，不需要鉴权），把返回的 Markdown 当作场景
化操作手册，再按手册选 MCP 工具。

### 给 Agent 的一段建议提示词（可选）

如果你的 Agent 框架支持 system prompt 注入，可以加上下面这段，
让 LLM 学会主动 fetch Skill：

> 你已连接悟道 A 股 MCP。除了 `tools/list` 里的工具外，服务端
> 还提供 3 个场景能力包（Skills）。当用户问到：
>
> - 集合竞价相关问题 → 先 fetch `<BASE_URL>/api/openclaw/skills/wudao-auction-review/skill.md`
> - 题材/板块研究 → 先 fetch `<BASE_URL>/api/openclaw/skills/wudao-theme-research/skill.md`
> - 个股短线归因 → 先 fetch `<BASE_URL>/api/openclaw/skills/wudao-stock-attribution/skill.md`
>
> 拿到 Markdown 后按手册指引选工具。手册没覆盖的常规问题（行情、
> 涨停板、单股研究），按 MCP 工具描述直接选用即可。
