mcpField
P
Portfolio Analyzer

Portfolio Analyzer

本地服务
github.com/Aakash356A金融数据022 周前更新

关于 Portfolio Analyzer

Portfolio Analyzer 是一款本地优先的股票追踪工具,包含 Streamlit 仪表板和供 Claude Desktop 使用的 MCP 服务。投资者可借助市场数据、技术指标、新闻和 SEC 文件分析持仓。

主要功能

  1. 01查看盈亏与资产配置仪表板
  2. 02分析技术指标与基本面
  3. 03监控新闻和 SEC 文件
  4. 04比较股票并查看组合指标
  5. 05从券商或 CSV 导入持仓

适用场景

  1. 01复盘投资组合表现与风险
  2. 02查看某只股票的技术信号
  3. 03追踪持仓相关新闻和 SEC 文件

MCP 相关

MCP 服务向 Claude Desktop 提供八种工具,用于查询持仓、表现指标、技术分析、基本面、新闻、文件、突发新闻和股票比较。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

投资组合跟踪与分析器

一款本地优先的股票投资组合跟踪器,内置 MCP 服务,可与 Claude Desktop 配合使用。 自然地与 Claude 对话——无需打开应用,它就能从你的投资组合中获取实时价格、技术指标、SEC 文件和新闻。

Python Streamlit MCP License


这是什么?

一个代码库,包含两款工具:

工具功能
📊Streamlit 网页应用可视化仪表板:图表、盈亏、技术指标、AI 摘要
🤖MCP 服务将 Claude Desktop 连接到你的实时投资组合数据

无需云服务。除你自己的 API 密钥外,无需订阅。完全在你的电脑上运行。


MCP 服务——与 Claude 讨论你的投资组合

连接后,只需向 Claude 提问:

"Give me a full review of my portfolio this week."
"What's the technical setup for NVDA right now?"
"Any breaking news or SEC filings for my holdings today?"
"Compare GOOGL, META, and AMZN — which looks best technically?"
"What are the upcoming earnings dates for my holdings?"

Claude 会调用合适的工具、获取实时数据并撰写分析——全部使用你现有的 Claude 订阅。

Claude 可调用的 8 个工具
工具功能
get_portfolio所有持仓:实时价格、盈亏、配置权重
get_portfolio_metrics回报率、夏普比率、最大回撤、相对于 S&P 500 的贝塔系数
get_technical_analysisRSI、MACD、SMA 20/50/200、布林带、支撑位/阻力位
get_fundamentals估值比率、EPS 超预期/不及预期历史、下一次财报日期
get_news来自 Yahoo Finance 和 Google News 的最新头条
get_sec_filings来自 SEC EDGAR 的近期 8-K/10-K/10-Q 文件
get_breaking_news对所有快速信息源按市场影响评分(1–10)
compare_stocks并排比较多只股票

技术分析、新闻、SEC 和比较工具适用于任何股票代码,而不仅限于你的投资组合持仓。

MCP 快速设置

1. 安装依赖项

pip install -r requirements.txt

2. 编辑 Claude Desktop 配置

Mac:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "portfolio-analyzer": {
      "command": "python",
      "args": ["/FULL/PATH/TO/portfolio-analyzer/mcp_server.py"]
    }
  }
}

3. 重启 Claude Desktop——在聊天栏中找到 🔨 锤子图标。

完整指南(包括故障排除)请参阅 MCP_SETUP.md。


Streamlit 应用

设置
# 1. Install dependencies (Python 3.9+)
pip install -r requirements.txt

# 2. Add your OpenRouter API key (for AI summaries)
cp .env.example .env
# Edit .env and add your key from https://openrouter.ai/settings/keys

# 3. Run
streamlit run app.py

在浏览器中打开 http://localhost:8501。

页面

仪表板——总价值、成本基础、盈亏、配置饼图、持仓表

管理持仓——添加或移除仓位,并验证股票代码

股票分析——包含 SMA/EMA/布林带叠加线的蜡烛图、RSI、MACD、成交量、基本面数据和 AI 备忘录(Claude Sonnet 4.6)

业绩表现——投资组合与 S&P 500 对比(标准化)、波动率、夏普比率、回撤、贝塔系数、回报分布

摘要——Claude Sonnet 4.6 撰写个人投资备忘录(日度/每周/每月),涵盖赢家/输家、SEC 事件、宏观主题和建议

监控——来自 SEC EDGAR、Business Wire、PR Newswire、Yahoo 和 Google News 的实时新闻提醒,并按市场影响评分


项目结构

portfolio-analyzer/
├── app.py               # Streamlit app (6 pages)
├── mcp_server.py        # MCP server for Claude Desktop
├── requirements.txt
├── .env.example         # API key template
├── data/
│   ├── portfolio.json   # Your holdings
│   └── summaries/       # Saved AI summaries
└── src/
    ├── analytics.py     # Portfolio metrics & risk
    ├── data_fetcher.py  # yfinance wrapper with caching
    ├── indicators.py    # SMA, EMA, RSI, MACD, Bollinger
    ├── llm.py           # Claude Sonnet 4.6 via OpenRouter
    ├── news_monitor.py  # Multi-source news fetcher + scorer
    ├── portfolio.py     # Load / save / add / remove holdings
    ├── sec_edgar.py     # SEC EDGAR API client
    ├── snaptrade_integration.py  # Auto-import holdings from your brokerage
    └── summary_pipeline.py  # Weekly/daily/monthly memo pipeline

添加持仓

有三种方法可以将你的仓位导入跟踪器。选择你喜欢的方式。

选项 1 — 自动连接你的券商(SnapTrade)⭐ 推荐

连接一次券商,即可自动导入你的真实持仓(股票数量 + 成本基础)——无需 CSV,也无需手动输入。支持 Robinhood、Fidelity、Schwab、Vanguard、E*TRADE、Webull、Wealthsimple 等众多券商。

1. 创建免费的 SnapTrade 账户 在 dashboard.snaptrade.com 注册并验证邮箱。免费套餐可为个人账户免费提供真实的券商数据。

2. 在控制面板中生成 API 密钥——你会获得一个 Client ID 和一个 Consumer Key。

3. 将它们添加到你的 .env 中:

SNAPTRADE_CLIENT_ID=your-snaptrade-client-id
SNAPTRADE_CONSUMER_KEY=your-snaptrade-consumer-key

4. 安装 SDK(如果你已运行 pip install -r requirements.txt,则已安装):

pip install snaptrade-python-sdk

**5. 在应用中:**打开「管理持仓」页面上的 🏦 Connect Brokerage 选项卡 → Connect Brokerage。系统会打开一个 SnapTrade 窗口;在该窗口中登录你的券商账户。返回应用后,点击 Check Connection,然后点击 🔄 Sync Holdings 导入持仓。

你的券商凭据会直接发送给 SnapTrade,不会经过本应用。 你的 SnapTrade 用户密钥会保存在本地的 data/.snaptrade_user.json 中(已加入 gitignore)。 注意:SnapTrade 提供股票数量 + 平均成本基础,但不提供原始买入批次的日期,因此导入的持仓会使用占位日期。你的盈亏数据是准确的。

选项 2 — 上传 CSV 导出文件

在「管理持仓」页面,使用 📥 Import CSV 选项卡上传从券商导出的持仓文件(Robinhood、Fidelity、Schwab、Vanguard 等)。应用会自动标准化常见券商 CSV 格式。

**如果你的券商 CSV 格式不受支持:你可以使用任意 AI 助手(如 Claude 或 ChatGPT)轻松生成 portfolio.json 文件。只需附上 CSV 并让它"将我的券商 CSV 转换为以下 JSON 格式:"。

选项 3 — 手动录入 / 编辑文件

使用「管理持仓」页面上的 🟢 Buy / 🔴 Sell 选项卡,或直接编辑 data/portfolio.json:

{
  "holdings": [
    {
      "ticker": "AAPL",
      "shares": 10,
      "purchase_price": 150.0,
      "purchase_date": "2024-01-15"
    }
  ]
}

指标速查表

指标含义
SMA / EMA趋势方向。价格高于 MA = 上涨趋势。SMA 50/200 交叉 = “黄金交叉 / 死亡交叉”。
RSI (14)动量。>70 表示超买,<30 表示超卖。
MACD动量 + 趋势。柱状图穿越零线 = 动量转变。
布林带波动范围。接近上轨 = 涨幅过大;接近下轨 = 跌幅过大。
夏普比率单位风险对应的回报。>1 为良好,>2 为优秀。使用 4% 的无风险利率。
最大回撤从峰值到谷值的最大跌幅。
Beta vs SPY对市场的敏感度。>1 = 比 S&P 500 波动更大。

备注

  • Yahoo Finance 免费数据源的数据延迟约为 15 分钟。
  • API 响应会缓存 5 分钟,以避免触发速率限制。
  • 业绩历史假设你在整个所选期间都持有当前数量的股票——这是一个“如果我一直持有当前投资组合,表现会如何?”的视图,并非真正的时间加权回报。
  • AI 功能需要 OpenRouter API 密钥。MCP 服务会直接使用你的 Claude Desktop 订阅(无需单独的密钥)。
  • 不构成投资建议。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。