mcpField
I
IBI Portfolio (Israel)

IBI Portfolio (Israel)

本地服务
github.com/kobimantzur金融数据03 天前更新

关于 IBI Portfolio (Israel)

IBI Portfolio 是面向 IBI NextGen 的只读 MCP 服务,让 AI 应用查看持仓、现金、盈亏和近期账户活动。登录凭据保存在本机安全凭据库,服务不会下单或转账。

主要功能

  1. 01读取持仓、现金及盈亏
  2. 02查看近期订单和成交记录
  3. 03在本机浏览器登录 IBI
  4. 04凭据保存于系统安全凭据库
  5. 05拦截交易及资金转移请求

适用场景

  1. 01询问投资组合总值和现金余额
  2. 02查看持仓及各项盈亏
  3. 03查询近期买卖订单和成交
  4. 04在 AI 应用中查看只读账户数据

MCP 相关

本地 MCP 服务向兼容客户端提供读取投资组合和账户活动的工具。它只支持 IBI NextGen,不具备下单、转账或提款功能。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"kobimantzur-ibi-portfolio": {
"command": "uvx",
"args": [
"ibi-portfolio-mcp"
]
}
}
}
启动命令uvx ibi-portfolio-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiibi-portfolio-mcp0.1.1

工具

2

收录的工具列表 · 更新于 3 天前

参数类型必填说明
refreshboolean否

详细介绍

ibi-portfolio-mcp

一个用于 IBI(Israel Brokerage & Investments,אי.בי.אי)的只读 MCP 服务。它可以让 Claude、ChatGPT、Cursor 和其他 AI 应用读取你的 IBI 投资组合(持仓、现金、盈亏和近期账户活动),这样你就可以询问诸如 “我的投资组合表现如何?” 之类的问题。它不能买入、卖出或转移资金。支持 Mac 和 Windows。

🇮🇱 שרת MCP לקריאה בלבד עבור חשבון המסחר שלך באי.בי.אי (IBI NextGen). הוא נותן ל-Claude, ל-ChatGPT או לכל עוזר AI אחר לראות את תיק ההשקעות שלך: אחזקות, מזומן, רווח והפסד ופעולות אחרונות. הוא לא יכול לבצע פקודות קנייה או מכירה. הסיסמה נשמרת רק במחשב שלך ולא מגיעה למודל. עובד על Mac ועל Windows.

非官方项目,与 IBI 无关联,也未获其认可。

演示:向 AI 助手询问“我的 IBI 投资组合表现如何?”,并得到一份列出最大持仓的简短回答

演示中的数字为虚构数据。回答是 Claude 的真实回复。

安全机制

你的 IBI 登录凭据可以完全访问你的资金,因此安全是最重要的部分。

你的密码

  • 🔒 密码只保存在你电脑自己的安全凭据库中:Mac 上的 Keychain,Windows 上的 Credential Manager。两者都由操作系统加密。密码绝不会保存到文件中。
  • 🔒 密码只会通过 HTTPS 输入 IBI 的真实登录页面(auth.ibi.co.il),并在你电脑上的隐藏浏览器中完成。
  • 🔒 密码绝不会发送给 AI。AI 无法索取密码:没有任何工具会接收或返回密码。
  • 🔒 AI 应用的设置中只保存程序位置,不包含你的用户名或密码。
  • 🔒 密码绝不会写入日志;AI 看到错误消息之前,其中的用户名和密码会被清除(对此有专门测试)。

你的账户

  • 🛡️ 只读。程序中没有买入、卖出、取消或转账的代码。
  • 🛡️ 唯一会点击的内容是“登录”按钮、登录表单的提交按钮,以及“最新账户活动”选项卡。
  • 🛡️ 还有第二道安全防线:内置防护会拦截发往下单、交易、转账、存款或取款地址的任何请求,即使 IBI 网站尝试发送此类请求也不例外;如果发生拦截,程序会告知你。
  • 🛡️ 不会收集你的账号、姓名或个人信息。

你的数据

  • 🏠 所有操作都在你的电脑上运行。我们没有服务器、不要求注册、不跟踪用户,也不做分析。读取你的投资组合时,程序只会打开 IBI 网站;该网站的加载方式与你在自己的浏览器中完全相同。(安装时会从 GitHub、PyPI 和 Microsoft 的 Playwright 服务器下载程序及其浏览器,此操作只进行一次。)
  • 🧹 不会在磁盘上保留任何数据:每次读取都会打开一个全新的浏览器,读取后即关闭,不保存 Cookie、令牌或会话。最近一次结果会在内存中保留 5 分钟,之后便会清除。
  • 👀 AI 能看到的内容:你的投资组合数据(持仓、价值、现金、盈亏和近期活动)。这些数据会像其他聊天消息一样,根据 AI 公司隐私政策发送给该公司。

无法防范的情况

  • ⚠️ 能使用你未锁定电脑的人,或电脑上的恶意软件,都可能以相同方式读取你的投资组合。请锁定电脑并及时更新。
  • ⚠️ 这是一个非官方工具。在使用登录凭据之前,请自行阅读代码(约 750 行,从 scraper.py 开始),或请 AI 帮你审查代码。

随时可以移除

  • ibi-portfolio-mcp forget 会从凭据库中删除已保存的登录信息。
  • uv tool uninstall ibi-portfolio-mcp 会移除程序。
  • 更改 IBI 密码也会阻止程序登录。

🇮🇱 בקצרה: הסיסמה נשמרת רק בכספת המוצפנת של המחשב שלך (Keychain / Credential Manager) ולא נשלחת אף פעם ל-AI. הכלי רק קורא נתונים: אין בו קוד לקנייה, מכירה או העברת כסף, ויש חסימה מובנית לכל בקשה כזו. הכל רץ אצלך במחשב, בלי שרת ובלי מעקב. ה-AI רואה רק את מספרי התיק (אחזקות, שווי, מזומן, רווח והפסד).

可使用的 AI 应用

它在你自己的电脑上运行,因此可与安装在电脑上的 AI 应用配合使用。仅限网站的聊天无法访问它。

应用MacWindows备注
Claude Desktop✅✅由 setup 为你连接
ChatGPT 桌面应用✅✅由 setup 为你连接(它使用应用内置的 Codex 设置)
Codex✅✅使用与 ChatGPT 桌面应用相同的设置
Cursor✅✅由 setup 为你连接
Claude Code✅✅由 setup 为你连接
VS Code (Copilot)、Windsurf 和其他 MCP 应用✅✅手动添加,参见手动连接
chatgpt.com、claude.ai、手机应用、Gemini❌❌它们在云端运行,无法在你的电脑上启动程序

如果你熟悉终端,Linux 也可以使用。

设置(约 5 分钟)

你需要将 3 行内容复制到终端。Mac 上的终端是“Terminal”应用;Windows 上则是从“开始”菜单打开“PowerShell”。

1. 安装 uv(一个免费的小工具,用于安装 Python 程序)。

Mac:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

然后关闭终端并重新打开。

2. 安装 IBI Portfolio MCP:

uv tool install ibi-portfolio-mcp

3. 运行引导设置:

ibi-portfolio-mcp setup

它将:

  1. 询问你的 IBI 用户名和密码。输入时密码会隐藏,并且只保存在你电脑的安全凭据库中(Mac 上是 Keychain,Windows 上是 Credential Manager)。
  2. 下载用于读取 IBI 的小型浏览器(仅需下载一次,约 100 MB)。
  3. 测试登录(约一分钟)。
  4. 连接找到的 AI 应用。对你使用的应用选择“是”。

4. 重启 AI 应用,然后询问:“我的 IBI 投资组合情况如何?”

不想输入命令?

如果你安装了 Claude Code 或 Codex(内置于 ChatGPT 桌面应用),粘贴以下内容,它会替你完成步骤 1 和 2:

请按照其 README 中的步骤 1 和 2,为我安装 https://github.com/kobimantzur/ibi-portfolio-mcp。不要自行运行 ibi-portfolio-mcp setup,也绝不要在聊天中向我索要 IBI 密码。完成后,请告诉我在自己的终端中运行 ibi-portfolio-mcp setup。

然后自行运行 ibi-portfolio-mcp setup,这样只有你会输入密码。

先用虚假数据试用

想先看看它的效果再使用你的账户?运行 IBI_DEMO=1 ibi-portfolio-mcp check(Mac)或 $env:IBI_DEMO=1; ibi-portfolio-mcp check(Windows)。它会用虚构的投资组合作答,不会登录 IBI。

你将获得什么

工具返回内容
get_portfolio总价值、现金、现金占比、总盈亏,以及每项持仓的代码、数量、成本、市值、盈亏和权重
get_account_activity最近的订单和成交:买入/卖出、状态、数量、价格、费用和日期

连接后可以提问:

  • “我的 IBI 投资组合值多少钱?有多少现金?”
  • “最大的 5 项持仓是什么?每项的盈亏是多少?”
  • “这个月我买入或卖出了什么?”
输出示例(AI 收到的内容,演示数据)

get_portfolio,缩短为 8 项持仓中的 2 项:

{
  "currency": "USD",
  "total_value": 54105.1,
  "market_value": 49284.75,
  "cash": 4820.35,
  "cash_pct": 8.91,
  "total_cost": 41460.9,
  "unrealized_pl": 7823.85,
  "unrealized_pl_pct": 18.87,
  "position_count": 8,
  "positions": [
    {
      "symbol": "VOO", "qty": 22.0, "last_price": 541.3, "change_pct": 0.4,
      "cost_price": 455.1, "market_value": 11908.6, "total_cost": 10012.2,
      "todays_pl": 47.63, "unrealized_pl": 1896.4, "unrealized_pl_pct": 18.94, "weight_pct": 22.01
    },
    {
      "symbol": "AAPL", "qty": 40.0, "last_price": 228.9, "change_pct": -0.6,
      "cost_price": 171.25, "market_value": 9156.0, "total_cost": 6850.0,
      "todays_pl": -54.94, "unrealized_pl": 2306.0, "unrealized_pl_pct": 33.66, "weight_pct": 16.92
    }
  ],
  "balances": { "buying_power": 4820.35, "balance_usd": 4820.35 },
  "fetched_at": "2026-10-27T14:05:12+00:00",
  "source": "demo"
}

get_account_activity,一行:

{
  "ref": "D-1003", "symbol": "NVDA", "side": "BUY", "status": "Filled", "order_type": "Limit",
  "created_at": "2026-10-21T10:02:11", "executed_at": "2026-10-21T10:02:13",
  "qty": 10.0, "exec_qty": 10.0, "limit_price": 135.0, "exec_price": 134.8,
  "profit_loss": null, "commission": 2.5, "fees": null, "currency": "USD"
}

刻意设置为只读

✅ 读取持仓、余额和账户活动与你在 IBI 首页和交易页面看到的数据相同
❌ 下单、更改或取消订单代码中没有此功能。唯一的点击操作是登录、提交登录表单,以及打开“Latest Account Activity”标签页
❌ 转账或取款代码中没有此功能
🛡️ 网络防护对 order / trade / transfer / withdraw / deposit URL 的任何非 GET 请求都会被中止;如果发生过这种情况,工具结果会告知你

你的登录凭据可以完全访问账户,因此使用前,你可以自行或请开发者朋友阅读 scraper.py。它约有 200 行。

适用的 IBI 账户

  • ✅ IBI NextGen(ibi.orbisfn.io 上的美股平台,英文界面)
  • ❌ 暂不支持其他 IBI 平台(例如以色列 TASE 交易网站)。欢迎提交 PR。

IBI 密码(机密信息)

这一部分需要特别注意,下面会准确说明具体情况。

需要提供的信息

你的 IBI NextGen 用户名(电子邮件或 ID)和密码,也就是你登录 ibi.orbisfn.io 时输入的信息。IBI 没有 API,也没有只读密钥,因此 MCP 服务会像你一样登录:在你的电脑上打开一个隐藏浏览器,并在 IBI 的真实登录页面中输入这些信息。

密码会去哪里,不会去哪里
✅ 你电脑的安全保险库Keychain(Mac)、Credential Manager(Windows)、Secret Service(Linux)
✅ IBI 登录页面(auth.ibi.co.il)在本地浏览器中通过 HTTPS 输入表单
❌ AI 模型 / Anthropic / OpenAI绝不会。工具不接受密码参数,也绝不会返回密码
❌ AI 应用设置文件使用 setup 时不会:应用只会获取程序路径,不会获取你的登录信息
❌ 日志绝不会打印。密码命令产生的错误也不会回显
❌ 磁盘不会保存 Cookie、令牌或会话。每次读取都会启动一个新的浏览器,并在之后关闭
❌ 其他任何人没有服务端,也没有遥测。代码只会与 IBI 通信

AI 会看到的内容: 你的投资组合数据。工具返回的所有内容都会像其他聊天消息一样发送给你的 AI 提供商。如果你不能接受这一点,请不要连接此 MCP 服务。

存储密码的方式(按推荐程度排序)
选项方法密码会以纯文本形式存储吗?
1. 电脑的保险库 ✅ 推荐ibi-portfolio-mcp setup❌ 不会
2. 密码管理器 ✅IBI_PASS_CMD:用于打印密码的命令❌ 不会
3. AI 应用设置在应用的 env 块中设置 IBI_PASS⚠️ 会,存储在该设置文件中
4. .env 文件在 .env 文件(已加入 gitignore)中设置 IBI_PASS⚠️ 会,存储在该文件中

如果设置了多个选项,优先顺序为:IBI_USER / IBI_PASS,然后是 IBI_USER_CMD / IBI_PASS_CMD,最后是保险库。

选项 2:密码管理器。 任何只打印密码的命令都可以:

IBI_PASS_CMD=op read op://Private/IBI/password          # 1Password
IBI_PASS_CMD=bw get password ibi.orbisfn.io             # Bitwarden (vault must be unlocked)

IBI_USER_CMD 的用户名用法相同。

选项 3 和 4 会将密码存储在纯文本文件中。请妥善保管该文件,切勿分享或提交。MCP 服务会从启动时所在的文件夹加载 .env,或者加载 IBI_ENV_FILE 指定的文件。

更改或删除已保存的登录信息
ibi-portfolio-mcp forget     # removes it from the vault
ibi-portfolio-mcp setup      # saves a new one
短信验证码(双重验证)

如果 IBI 要求输入一次性验证码,工具会返回 IbiOtpRequired 错误。设置 IBI_HEADED=1(在应用的 env 块中设置,或在终端中 check 前设置):随后会打开一个可见的浏览器窗口,MCP 服务会填入你的用户名和密码,然后由你亲自输入验证码。你有 3 分钟时间。

如果你认为密码已泄露

请在 IBI 更改密码,然后再次运行 ibi-portfolio-mcp setup。

手动连接

setup 会为你完成这些操作。其他应用或希望自行编辑设置时,请参考本节。

首先获取程序的完整路径:运行 which ibi-portfolio-mcp(Mac)或 where.exe ibi-portfolio-mcp(Windows)。下方用 PATH_TO/ibi-portfolio-mcp 表示该路径。

Claude Desktop、Cursor、VS Code、Windsurf 和大多数应用(JSON)。Claude Desktop 在 Mac 上的配置文件为 ~/Library/Application Support/Claude/claude_desktop_config.json,在 Windows 上为 %APPDATA%\Claude\claude_desktop_config.json;Cursor 的配置文件为 ~/.cursor/mcp.json。

{
  "mcpServers": {
    "ibi-portfolio": {
      "command": "PATH_TO/ibi-portfolio-mcp",
      "args": []
    }
  }
}

在 Windows 上,路径中的反斜杠请使用双反斜杠,例如 "C:\\Users\\you\\.local\\bin\\ibi-portfolio-mcp.exe"。

ChatGPT 桌面应用和 Codex(~/.codex/config.toml,或在应用中选择:Settings → MCP servers)。请调高工具超时时间:读取 IBI 数据需要约 1 分钟,而默认超时时间为 60 秒。

[mcp_servers.ibi-portfolio]
command = 'PATH_TO/ibi-portfolio-mcp'
startup_timeout_sec = 30
tool_timeout_sec = 300

Claude Code:

claude mcp add --scope user ibi-portfolio -- PATH_TO/ibi-portfolio-mcp

每次修改后都请重启应用。

设置

在应用的 env 块或终端中设置这些变量。它们都是可选的。

变量默认值作用
IBI_DEMO0设为 1 时返回虚构的投资组合,无需登录 IBI。用于试用
IBI_USER / IBI_USER_CMDvault用户名,或用于输出用户名的命令
IBI_PASS / IBI_PASS_CMDvault密码,或用于输出密码的命令
IBI_ENV_FILE./.env要加载的额外环境变量文件
IBI_HEADED0设为 1 时显示浏览器窗口(接收短信验证码时需要)
IBI_LOGIN_TIMEOUT_S90(显示浏览器时为 180)登录等待时间
IBI_CACHE_SECONDS300在此时间内复用上次读取的数据,避免同一聊天反复登录
IBI_DEBUG_DIR关闭在此目录保存屏幕截图和原始 JSON。文件中包含你的余额;用完后请删除

工作原理

  1. 调用工具。如果上次读取时间距今不超过 IBI_CACHE_SECONDS,则直接返回上次结果。
  2. 否则会打开一个新的隐藏浏览器,访问 ibi.orbisfn.io 并使用已保存的登录信息登录。
  3. IBI 网页应用会从自己的后端加载你的数据。服务会保存这些响应的副本(投资组合、余额、最新活动),并在备用情况下读取页面。
  4. 浏览器关闭后返回数据。不会向磁盘写入任何内容。

读取大约需要 30 到 60 秒。如果 IBI 更改网站,这可能会导致工具无法运行;请提交问题并附上错误文本(切勿粘贴密码或包含余额的屏幕截图)。

故障排除

问题解决方法
ibi-portfolio-mcp: command not found关闭并重新打开终端。如果仍然找不到,请运行 uv tool update-shell,然后重新打开终端
应用中没有显示 IBI 工具完全重启应用(退出应用,而不仅仅是关闭窗口)
ChatGPT / Codex 提示工具超时设置 tool_timeout_sec = 300(请参阅手动连接)。setup 会为你完成此设置
MissingCredentials运行 ibi-portfolio-mcp setup
IBI_PASS_CMD failed在终端中运行该命令;它必须只输出密码
IbiOtpRequired设置 IBI_HEADED=1,并在窗口中输入短信验证码
login did not reach the IBI home page用户名或密码错误,或者 IBI 显示了通知。试试运行 IBI_HEADED=1 ibi-portfolio-mcp check 并观察过程
更新到最新版本uv tool upgrade ibi-portfolio-mcp

开发者须知

git clone https://github.com/kobimantzur/ibi-portfolio-mcp
cd ibi-portfolio-mcp
uv sync
uv run pytest -q
uv run ibi-portfolio-mcp check      # needs a saved login, or IBI_DEMO=1

测试仅使用虚构数据。切勿提交真实账户数据。要重新录制演示 GIF,请运行:uv run python docs/demo/record.py。

免责声明

这是一个非官方项目,与 IBI Israel Brokerage & Investments 无关联。该项目会自动使用你自己的登录信息读取你自己的数据;请确认此操作符合你的 IBI 账户使用条款。使用风险自负。本文不构成投资建议。MIT 许可证。

评论

支持 Markdown

第一次接触 MCP?

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

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