From 005f18991539ac1a6038bf2528fbd8e5541a44d1 Mon Sep 17 00:00:00 2001 From: Minu Palaniappan Date: Thu, 10 Sep 2026 13:14:47 -0700 Subject: [PATCH] feat(third_party): add Interactive Brokers plugin --- .cursor-plugin/marketplace.json | 5 ++ README.md | 1 + .../.cursor-plugin/plugin.json | 35 ++++++++++ third_party/interactive-brokers/CHANGELOG.md | 9 +++ third_party/interactive-brokers/LICENSE | 21 ++++++ third_party/interactive-brokers/README.md | 60 ++++++++++++++++++ .../interactive-brokers/assets/logo.png | Bin 0 -> 9057 bytes third_party/interactive-brokers/mcp.json | 8 +++ 8 files changed, 139 insertions(+) create mode 100644 third_party/interactive-brokers/.cursor-plugin/plugin.json create mode 100644 third_party/interactive-brokers/CHANGELOG.md create mode 100644 third_party/interactive-brokers/LICENSE create mode 100644 third_party/interactive-brokers/README.md create mode 100644 third_party/interactive-brokers/assets/logo.png create mode 100644 third_party/interactive-brokers/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index e2908fa79..a9722f7dd 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -377,6 +377,11 @@ "name": "sp-global", "source": "third_party/sp-global", "description": "Query S&P Capital IQ financials, prices, and transcripts." + }, + { + "name": "interactive-brokers", + "source": "third_party/interactive-brokers", + "description": "Review positions, balances, P&L, and draft trade instructions." } ] } diff --git a/README.md b/README.md index b0068dee2..9dd9cd6f5 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `finance` | [Finance](third_party/finance/) | Cursor | Integrations | Securely connect your accounts so Grok can help with questions about your spending, subscriptions, balances, and investments. | | `webull` | [Webull](third_party/webull/) | Cursor | Integrations | View accounts, positions, orders, watchlists, and market data. | | `sp-global` | [S&P Global](third_party/sp-global/) | Cursor | Integrations | Query S&P Capital IQ financials, prices, and transcripts. | +| `interactive-brokers` | [Interactive Brokers](third_party/interactive-brokers/) | Cursor | Integrations | Review positions, balances, P&L, and draft trade instructions. | Author values match each plugin’s `plugin.json` `author.name` (Cursor lists `plugins@cursor.com` in the manifest). ## Repository structure diff --git a/third_party/interactive-brokers/.cursor-plugin/plugin.json b/third_party/interactive-brokers/.cursor-plugin/plugin.json new file mode 100644 index 000000000..1b068d64f --- /dev/null +++ b/third_party/interactive-brokers/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "interactive-brokers", + "displayName": "Interactive Brokers", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Review positions, balances, P&L, and draft trade instructions.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://www.interactivebrokers.com/en/trading/ai-integrations.php", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "interactive brokers", + "ibkr", + "brokerage", + "trading", + "portfolio", + "positions", + "market data", + "mcp" + ], + "category": "integrations", + "tags": [ + "ibkr", + "finance", + "trading", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/interactive-brokers/CHANGELOG.md b/third_party/interactive-brokers/CHANGELOG.md new file mode 100644 index 000000000..6bb30e270 --- /dev/null +++ b/third_party/interactive-brokers/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `interactive-brokers` MCP server pointing at Interactive Brokers's hosted Streamable HTTP endpoint (`https://api.ibkr.com/v1/api/mcp-public`). +- Auth uses OAuth with Interactive Brokers user login — no API key or client ID to configure. +- Logo: Interactive Brokers's official mark, from the icon Interactive Brokers publishes for its connector, on a 192×192 tile. diff --git a/third_party/interactive-brokers/LICENSE b/third_party/interactive-brokers/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/interactive-brokers/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/interactive-brokers/README.md b/third_party/interactive-brokers/README.md new file mode 100644 index 000000000..4ce4d9521 --- /dev/null +++ b/third_party/interactive-brokers/README.md @@ -0,0 +1,60 @@ +# Interactive Brokers + +Cursor plugin that connects agents to [Interactive Brokers](https://www.interactivebrokers.com/en/trading/ai-integrations.php) through Interactive Brokers's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Review positions, balances, P&L, and draft trade instructions. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Interactive Brokers**. +3. Click **Install**, then complete the Interactive Brokers sign-in prompt. + +Or run `/add-plugin interactive-brokers` in chat. + +## MCP + +```json +{ + "mcpServers": { + "interactive-brokers": { + "type": "http", + "url": "https://api.ibkr.com/v1/api/mcp-public" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Interactive Brokers sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need an Interactive Brokers account. You authorize one specific account during sign-in. Not available to clients in India or Japan. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Accounts | Balances, summaries, positions, and portfolio allocation | +| Activity | Orders, trades, and historical transactions | +| Market data | Price snapshots and history; contract search | +| Instructions | Draft trade instructions for review in IBKR's AI Instructions tab | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Trade instructions never become live orders automatically; you review and submit them inside an IBKR platform. +- IBKR recommends the `mcp-public` endpoint for custom clients; Grok's catalog lists `/mcp`, which shares the same authorization server. +- Revoke access from **Client Portal → Settings → Manage Third-Party Consents**. + +## Docs + +- IBKR AI integrations: https://www.interactivebrokers.com/en/trading/ai-integrations.php +- Server URL: https://api.ibkr.com/v1/api/mcp-public + +Logo is Interactive Brokers's official mark. + +## License + +MIT diff --git a/third_party/interactive-brokers/assets/logo.png b/third_party/interactive-brokers/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..41b7b5f57ee30fc736edc0a4196241a928502cdd GIT binary patch literal 9057 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 literal 0 HcmV?d00001 diff --git a/third_party/interactive-brokers/mcp.json b/third_party/interactive-brokers/mcp.json new file mode 100644 index 000000000..9160d5348 --- /dev/null +++ b/third_party/interactive-brokers/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "interactive-brokers": { + "type": "http", + "url": "https://api.ibkr.com/v1/api/mcp-public" + } + } +}