# dsh-stockmcp

[English](README.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md)

[![npm version](https://img.shields.io/npm/v/dsh-stockmcp)](https://www.npmjs.com/package/dsh-stockmcp) ![license](https://img.shields.io/npm/l/dsh-stockmcp)

**DeepSeek Harness (DSH) 股票市场插件** —— 把 [stockmcp.net](https://stockmcp.net) 远程 MCP 服务器的行情数据动态同步为模型工具：报价、财务报表、SEC 文件、财报、经济数据等。

工具列表和参数 Schema **永不冻结**：激活时、每 10 分钟、以及调用报未知工具时都会自动重新同步。

## 特性

- 📈 实时报价与历史价格、涨幅榜/跌幅榜/最活跃
- 📊 利润表、资产负债表、现金流量表、股息、拆股
- 🗂️ SEC 文件（列表/章节/内幕交易）、公司新闻
- 🌍 经济指标、国债利率、行业与板块快照
- ⚙️ API Key 热更新：设置页 / `settings.yaml` / 环境变量
- 🌐 多语言界面（中文 / English）：设置页、工具描述与错误提示自动跟随 DSH 语言环境——浏览器语言、设置 → 语言 的偏好，其次进程 locale
- 🧩 零依赖，纯 ESM，无构建步骤

## 环境要求

- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)（`dsh` CLI）及 `web` profile
- Node.js >= 20

## 安装（一键）

```bash
dsh plugin --profile web add dsh-stockmcp
```

或使用仓库自带的一键脚本（自动处理 pnpm 11 对全新版本 24 小时保护期等坑）：

```bash
bash <(curl -fsSL https://raw.githubusercontent.com/StockMCP-net/dsh-stockmcp/main/scripts/install.sh)
```

重启 web profile 后生效（`pm2 restart dsh-web` 或重启 `dsh web` 进程），行情工具即出现在模型的工具集中。

> 从旧版手动挂载迁移：如果 profile 的 `cordis.patch.yml` 里还有 `./node_modules/StockMCP/...` 的手动 insert 行，先删除再重启，避免双挂载。

## API Key 配置

工具调用需要 stockmcp.net 的 API Key，三种方式任选其一：

1. **设置页** — DSH web → 设置 → StockMCP（写入 `~/.dsh/settings.yaml`，热更新）
2. **配置文件** — 在 `~/.dsh/settings.yaml` 增加 `stockmcp: { apiKey: ... }`（热更新）
3. **环境变量** — `STOCKMCP_API_KEY`

未配置时插件保持运行，但工具调用会返回明确的配置错误。

## 工作原理

宿主插件把 stockmcp.net MCP 服务（HTTPS 上的 JSON-RPC 2.0）包装为模型工具，并通过同源 `/stockmcp-api` 路由为设置页（`lib/client.js`）提供接口。

## 开发与发布

```bash
pnpm pack --dry-run   # 检查将要发布的内容
pnpm publish          # 发布到 npm（先 pnpm login）
```

## 许可证

MIT
