内容
股票分析器 MCP
> 📡 **模型上下文协议** 服务器,随 [股票分析https://stockanalyzer.tw) — 适用于台湾和美国股票市场分析的 macOS 桌面应用程序。
>
> **台湾股票覆盖的 MCP 服务器** (TWSE / TPEx + 三大机构流量 + 芯片数据 + 每月15 类别中的 92 种工具 + 6 种资源。**本地优先** — 在 Electron 应用程序中进程内运行,无 API 成本,无云依赖。
**当前版本**:MCP 服务器 `1.3.0` · 股票分析器应用程序 `0.48.0-beta` · 更新于 2026-06-30
⚠️ 这个 MCP 服务器的实际工作原理仓库包含 **M 源代码** (mcp-server.js + lib/ai Dockerfile)。sh **薄的 HTTP 到 stdio 桥接** — 当 MCP 客户端调用工具时,shim 将调用代理到 `http://localhost:3000/api/*`,其中 **股票分析器桌面应用程序的嵌入式端** 执行实际工作(数据库查询、计算、分析)。
> **此仓库中的 MCP 服务器,单独运行(例如,通过 `docker run`),可以通过自省来宣传其 92 种工具,但无法执行它们。** 您需要 [股票分析器](httpsanalyzer.tw) 在同一台机器上运行,以便工具实际返回数据。
这种分割是故意的 — 分析引擎 + 市场数据 + 许可门控功能存在于闭源桌面应用程序中;MCP shim 是开源的(MIT),因此集成表面完全透明。
---
## 为什么这个仓库存在
股票分析器桌面应用程序本身是一款商业产品(Lite 层免费,标准 NT$1,499,高级 NT$2,999 — 均为一次性购买,无订阅)。该仓库存在的原因是:
- 在 MIT 许可下开源 **MCP shim 层**,以便市场(awesome-mcp-servers,mcpservers.org,PulseMCP,Glama)可以构建和验证工作镜像
- 为 MCP 发现提供公共规范链接
集成指南与闭源应用程序源代码分开托管
- 使 Claude Desktop / Claude Code / agentic 框架易于配置为与捆绑的 MCP 服务器配合使用
---
## 构建(Docker,用于 Glama / 市场)
```bash
docker build -t stock-analyzer-mcp .
docker run -i --rm stock-analyzer-mcp # stdio JSON-RPC on stdin/stdout
```
镜像大小约为 258 MB(node:20-alpine + 2 npm 依赖项)。构建过程跳过了 `better-sqlite3`、Electron 和其他仅限后端依赖项,因为 shim 本身从未导入它们 — 所有数据调用都通过 HTTP 请求到本地运行的股票分析器应用程序的 `/api/*` 端点。
---
## MCP 服务器中包含的内容
### 15 类别中的 92 种工具
| 类别 | 工具 | 示例 |
|---|---|---|
| 市场(14) | 行情、历史、热图、板块排名、新闻、外汇、季节性、ETF 持仓、交易日状态 | `get_stock_price`、`get_market_heatmap`、`get_seasonality` |
| 芯片(6) | 三大机构流量、基金流量桑基图、内幕警报、异常交易、保证金排名 | `get_institutional_flow`、`get_fund_flow_sankey` |
| 基本面(6) | 财务报表、每月收入、股息、每股收益、DCF 估值 | `get_financial_statements`、`calculate_dcf` 技术面(5) | RSI / MACD / 布林线 / 测试 / 相关性 / 烛图 `get_technical_indicators`、`detect_kline_patterns` |
| 宏观(8) | 美联储政策、收益率曲线、通货膨胀、就业、盈利日历 | `get_macro_snapshot`、`get_fed_policy_stance` |
| 情绪(5) | 新闻情绪、市场情绪、个股情绪、预测、入场策略 | `get_stock_sentiment_v2`、`get_sentiment_forecast |
| 投资组合(11) | 持仓、盈亏、业绩、集中度、信号、交易 CRUD |_portfolio`、`get_portfolio_concentration` 回测(5) | 单个股票、多策略、网格搜索、蒙特卡罗因子挖掘、随机投资组合backtest_strategy`、`monte_carlo_factor_mining| 风险(6 VaR、系统性风险、投资组合优化、边际/组件 VaR 贡献、压力测试、情景压力传播 | `get_systemic`、`get_risk_contribution`、`run_scenario` |
| AI 工作流(7) | 全股票分析、筛选器、工作流、笔记、**+ 深入辩 每日报告 + 候选比较 + 交易后 | `research_stock_deep_dive`、`portfolio_daily_briefing` |
论点(7) | 投资假设 CRUD + 质量评估 | `upsert_thesis`、`evaluate_thesis_quality` |
| 监控列表(4) | 监控列表 CRUD | `add_watchlist` |
| 警报(3) | 价格警报 | `set_price_alert` |
补填(2) | 管理员数据补填 | `trigger_backfill` |
| 预测(3) | 价格概率锥(GBM 蒙特卡罗)、不可游戏的预测-校准跟踪记录、台湾开市前跨市场上下文 | `get_price_forecast`、`get_calibration`、`open_context` |
每种工具都带有:
- **`annotations.readOnlyHint`** — 工具是否修改状态(客户端在破坏性操作前自动确认)
- **`annotations.destructiveHint`** — `delete_*` / `cancel_*` 标记为真
- **`annotations.idempotentHint`** — `upsert_*` / `update_*` 标记为真
- **`_meta.tw.stockanalyzer/estimated_cost_usd`** — 最坏情况下 成本(大多数工具为 0;深入分析0.16 美元)
### 6 种资源(Claude Desktop `@`
将上下文注入对话中,无需消耗工具调用:
| 资源 | 内容 |
|---|---|
| `saa://portfolio` | 完整持仓(台湾 + 美国,美元/新台币统一定价,未实现盈亏) |
| `saa://watchlist` | 所有监控列表条目,附带实时行情 + 警报状态 |
| `saa://thesis` | 活跃的投资假设(假设,主要水平,下次审查日期) |
| `saa://market/today` | 三大机构流量 / 板块领涨 / 系统性风险 / 外汇 |
| `saa://reports/recent` | 最新投资组合报告(免费;不会自动触发 LLM) |
| `saa://system/info` | 服务器自省(版本,模式版本,活跃配置文件,工具数量) |
### 配置文件(过滤暴露的内容)
设置 `SAA_MCP_PROFILE` 环境变量以控制哪些工具对 LLM 客户端可见:
| 配置文件 | 暴露的工具 | 用例 |
|---|---|---|
| `(省略) | 所有 85 种 | 您的个人 Claude Desktop |
| `safe_read | 72 种工具 | 共享 / 不受信任的 LLM 阻止 `add_trade` / `delete_*` / `upsert_thesis` / `set_price_alert` / 等 |
资源在两种配置文件中均可使用(按定义,它们是只读的)。
---
## 比较
| 服务器 | 台湾 | 美国覆盖范围 | | 许可模型---|---|---|---|---|
| Alpha Vantage MCP | ⚠️ 仅延迟行情 | ✅ 完整 | ❌ 云 API | 按次付费 |
| Financial Datasets MCP | ❌ 无 | ✅ 完整 | ❌ 云 API | 订阅 |
| EODHD MCP | ⚠️ 仅 EOD | ✅ 完整 | ❌ 云 API | |
| Lambda Finance | ❌ 无 | ✅ 完整 + 期权 | ❌ 云 | 订阅 |
|Yahoo) | ⚠️ 台湾数据不完整 | ✅ 完整 | ❌ 云 | 免费(限速) |
| **股票分析器 MCP** | ✅ **深度 TWSE + TPEx + 机构 + 芯片** | ✅ 完整 | ✅ **本地 SQLite** | 一次性许可(Lite 免费) |
对于读者:台湾股票市场有其自身的生态系统(TWSE,TPEx OpenAPI,三大机构投资者,每月收入报告),在英语金融数据平台上几乎不存在。如果您想让 AI 代理回答“最近台积电的机构投资者如何交易?”或“请帮我找到台湾的小盘股,过去一年营收增长超过 30%”,股票分析器 MCP 就是为此而设计的 — 确定性的台湾芯片/机构/收入工具,而英语通常缺乏这些。
---
## 快速入门:Claude Desktop
### 1. 安装股票分析器
从 [.tw](https://stockanalyzer.tw) 获取 Lite 版本。`0.47.4-beta` 或更高版本附带 MCP 服务器 v1.0。
### 2. 配置 Claude Desktop
编辑Library/Application Support/Claude/claude_desktop_config.json`:
```jsonc
{
"mcp {
"stock-analyzer": {
"command": "/Stock Analyzer.app/Contents/Resources/app.aspacked/bin/saa-mcp",
"env": { "PORT": "3000" }
}
}
}
```
> **为什么使用包装器?** 直接运行 `node mcp-server.js` 会遇到 `better-sqlite3` ABI 不匹配(绑定是为 Electron 的 Node 编译的,而不是系统的)。`bin/saa-mcp` 包装器自动查找 SAA Electron 运行时,并使用 `ELECTRON_RUN_AS_NODE=1` 运行 MCP 服务器。较旧的配置文件指向 `node` 需要更新。
### 3. (可选)限制为只读模式
如果 LLM 客户端不完全受信任(共享 Claude 项目,第三方代理),请添加:
```jsonc
"env": { "PORT": "3000", "SAA_MCP_PROFILE": "safe_readonly" }
```
这会阻止 15 种写入工具(`add_trade`、`delete_trade`、`upsert_thesisset_price_alert),但保留所有 + 所有 6 种资源。
### 4. 完全重启 Claude Desktop(`cmd+Q` 然后重新
### 试用
> “列出所有 SAA 股票分析工具”
>
> “分析 2330 — 过去一个月的机构流量 + 3 个量 + 雷达评分,并给我一个买入/卖出建议”
>
>saa://portfolio — 我的最大集中度风险是什么?”
>
> “比较 2330、245 3008 作为候选股票。包括它们。”
Claude 将协调多个工具调用(或资源的 `@` 提到)并综合研究报告。
---
## 头条工具(2026-05-18)
### 🎭 `research_stock_deep_dive` — 高级版
5 个专业 AI 代理并行辩论:
- 🐂 多头(只看到支持上涨的证据)
- 🐻 空头(只看到支持下跌的证据)
- 📰 情绪(新闻 + 社会信号)
- 🛡️ 风险(波动性,历史最大回撤,状态上下文)
- 🎯 综合器(看到所有四个;产生 6 级动作:`strong_buy` → `avoid`)
每个代理使用不同的 92 种工具的子集。输出包括每个代理的推理 + 最终动作 + 置信度。~$0.16/次 LLM 成本(Anthropic Sonnet / OpenAI)。
### 🌅 `portfolio_daily_briefing` — 免费版
开市前或闭市后的投资组合报告。汇总当前持仓、未实现盈亏、板块暴露、相关宏观/机构流量,生成可行的摘要。
- `mode='get'` → 读取最新的缓存报告(免费,立即)
- `mode='generate'` → 运行新的报告(~10-20 秒,~$0.04/次 LLM 成本)
### 🔍 `compare_investment_candidates` — 免费,成本 $0
2-5 个候选股票的并排深度分析。`get_full_stock_analysis` (基本面 + 技术面 + 芯片 + 机构 + 水平)对每个候选股票的并行扩展,以及现有的假设状态。**确定性** — 代理看到原始证据,而不是 LLM 综合的意见,这在经验上产生了更好的推理。
### 📓 `post_trade_review` — 免费,成本 $0
过去 N 天的反思。汇总 `analyze_trade_performance` (FIFO 盈亏,胜率,持有时间)+ `get_trade_journal` (最近交易)+ `get_portfolio_signals` (当前状态)。自动检测可观察的模式:
low_win_rate`(< 40%)→ 系统性选择或时机问题
- `over_trading`(平均持有 < 5 天)消耗收益
- `lopsided_pnl`(平均损失 > 平均收益)→ 不良止损纪律
为代理提供客观指标,以撰写叙述性评论。
---
## 文档
- **完整 MCP 使用指南**(zh-TW + en):[`MCP-USAGEE.md`](./MAGE-GUIDE.md) — Claude Desktop故障排除、对话示例
- **发布**(双语):[`docs/mcp-la2026-05.mddocs/mcp-launch-2026-05.md) — MCP 金融市场背景 + 为什么台湾覆盖范围
- **工具:在应用程序的 🔌 MCP / 代理中捆绑## 设计理念
- **本地优先**数据存储在 `~/.twse-analyzer_history.db`(SQLite,单个文件)。 服务器通过 stdio 传输在 Electron 应用程序内运行。
- **自带密钥的 LLM**:SAA 本身具有一个 AI 中心相同的 92 种工具。带上您自己的密钥(Claude / GPT / OllamaCP 服务器本身与任何 LLM 无绑定 — 它只公开确定性的数据 + 少数 LLM 支持的。
- **透明方法论**:16 个论页面(zh-TW + en)解释了每种分析工具的公式、数据源和局限性。在应用程序中可在 `/methodology.html` 访问。
- **无主动交易信号**:仅研究输出 — 不执行订单 + 产品定位决策。
- **成本诚实**:每都预先最坏情况下的 LLM 成本, `_meta.tw.stock_cost_us。无隐藏的云 API 支出。
---
## 版本控制
MCP 服务器使用两个版本号:
| 字段 | 含义 | 增量条件 |
|---|---|---|
| `server_version` | SAA MCP 二进制版本号(在 `initialize` 中显示 每次 SAA 应用程序发布 |
|_schema_version`(在 `saa://system/info` 中) | 工具/资源形状版本号工具添加/删除/重命名/需求更改:
- **补 — 累加,新资源)
- **小版本** — 新增必填参数,新枚举限制,`readOnlyHint` 更改
- **大版本** — 重删除,必填键更改
当前:服务器 `2.0模式 `1.0`。更改日志位于 `mcp-server 头部。
---
## 许可
此文档仓库采用 MIT 许可(参见 [`LICENSELICENSE))。股票应用程序本身是闭软件。
---
## 联系方式
- **网站**:[stockanalyzer.tw](https://stockanalyzer.tw)
- **电子邮件**:hello@stockanalyzer.tw
- **问题**:在该仓库的 GitHub 问题中提问,询问 MCP 集成- **应用程序功能请求或错误报告**电子邮件至上述地址