Skip to content

feat(third_party): add 9 publicly-released Grok connectors as third-party MCP plugins - #345

Closed
minupalaniappan wants to merge 6 commits into
mainfrom
minu/grok-catalog-parity
Closed

feat(third_party): add 9 publicly-released Grok connectors as third-party MCP plugins#345
minupalaniappan wants to merge 6 commits into
mainfrom
minu/grok-catalog-parity

Conversation

@minupalaniappan

@minupalaniappan minupalaniappan commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add 9 marketplace plugins under third_party/, one per hosted MCP connector that grok.com offers publicly today and the Cursor marketplace does not. Each follows the Attio (Add Attio third-party MCP plugin #339) / Hunter (Add Hunter third-party MCP plugin (API key header auth) #340) shape: URL-only mcp.json, OAuth user login where the vendor supports it, an API-key header variable where it does not.
  • Source of truth, triangulated three ways: Grok's production connector_catalog table (164 curated-MCP rows), the live GrowthBook config grok-backend-connector-catalog-controls (visibility all / consumer / business), and Cursor production (the anysphere team's get-effective-user-plugins, the public cursor.com/marketplace listing, exact MCP-URL matches). GrowthBook marks 28 catalog rows public; 17 are already on Cursor, 9 are in this PR, 2 (Robinhood, NetSuite) are being built first-party. No gaps.
  • Every server URL below matches the mcp_server_url column in connector_catalog exactly, except IBKR (see Notes).
  • Connectors Grok never released publicly (internal) are excluded; an earlier revision included five of them (Axiom, Bigdata.com, Cal.com, DeepWiki, Google Cloud SQL) and they were dropped in f12224d.
  • Register each plugin in .cursor-plugin/marketplace.json and the root README table.
Plugin Grok visibility Endpoint Auth
coinbase all https://agents.coinbase.com/mcp OAuth via CLIENT_ID/CLIENT_SECRET variables (no DCR)
gamma all https://mcp.gamma.app/mcp OAuth (DCR)
google-cloud-bigquery all https://bigquery.googleapis.com/mcp Google OAuth — requires everysphere #1042504
interactive-brokers all https://api.ibkr.com/v1/api/mcp-public OAuth
meltwater all https://api.meltwater.com/v2/mcp OAuth (DCR)
sp-global all https://kfinance.kensho.com/integrations/mcp OAuth
webull all https://api.webull.com/mcp OAuth
excalidraw all https://mcp.excalidraw.com/mcp none (public)
daloopa business https://mcp.daloopa.com/server/mcp OAuth

MCP

Representative OAuth entry (Gamma). Coinbase adds an auth block with CLIENT_ID/CLIENT_SECRET exactly like Gong/HubSpot/DocuSign.

{
  "mcpServers": {
    "gamma": {
      "type": "http",
      "url": "https://mcp.gamma.app/mcp"
    }
  }
}

Logos

All 192×192 PNG, each vendor's official mark:

Plugin Source
coinbase, excalidraw, daloopa, gamma GitHub org avatar (coinbase, excalidraw, daloopa, gamma-app)
google-cloud-bigquery BigQuery product icon from Google Cloud's official architecture icon set, on a padded white tile (same treatment as gmail / outlook)
sp-global S&P Global mark (black rule over red block) as published on marketplace.spglobal.com, redrawn at native resolution
interactive-brokers, meltwater, webull The icon each vendor publishes for its connector, normalized to PNG

Test plan

  • Plugin schema validation passes (node scripts/validate-plugins.mjs) for all 9
  • Each README has Install / MCP / Before you connect / What agents can do / Notes / Docs / License, with capabilities sourced from the vendor's MCP docs (linked in each Docs section)
  • marketplace.json, plugin.json, and the README table carry identical descriptions
  • All 9 server URLs verified against Grok's production connector_catalog.mcp_server_url
  • Excalidraw and Daloopa endpoints additionally probed live: Excalidraw answers initialize/tools/list with no auth; Daloopa returns 401 with RFC 9728 resource_metadata (standard MCP OAuth)
  • All 9 logos visually reviewed as a contact sheet
  • All 9 endpoints probed for OAuth discovery + DCR; auth shape per plugin matches what each server supports
  • Install each from Cursor Settings → Plugins and complete sign-in (Coinbase: after entering client credentials)
  • Smoke test one read per plugin (e.g. get_themes on Gamma, get_account_list on Webull, list_dataset_ids on BigQuery, discover_companies on Daloopa, create_view on Excalidraw)
  • BigQuery: confirm Google's OAuth consent completes for a user with roles/mcp.toolUser

Notes

  • Endpoint deviation from Grok's catalog: interactive-brokers uses /mcp-public, which IBKR documents for custom clients; Grok's catalog has /mcp (same authorization server).
  • Every endpoint was probed for MCP OAuth discoverability and dynamic client registration (401 + resource_metadata → authorization-server metadata → registration_endpoint). Seven support DCR and work as plain URLs. Two do not:
    • Coinbase: login.coinbase.com publishes full OAuth metadata but no registration_endpoint, and Cursor has no pre-registered Coinbase client. Follows the Gong/HubSpot/DocuSign pattern: CLIENT_ID/CLIENT_SECRET variables the user creates in the Coinbase Developer Platform portal; README has the redirect URIs.
    • Google Cloud BigQuery: returns 200 with no challenge and no discovery metadata, and Google has no DCR. Cursor folds in its pre-registered Google client only for hosts in MCP_OAUTH_PROVIDER_POLICIES. everysphere #1042504 adds bigquery.googleapis.com there. Merge that first, or this card ships dead. Consent-screen verification of auth/bigquery on cursor-gws-prod should also be confirmed.
  • Meltwater advertises standard MCP OAuth with DCR despite its public docs describing API-key auth; the first draft's apikey variable was dropped in favour of the plain OAuth flow.
  • Google Cloud: Grok also offers BigQuery with service-identity auth; this plugin configures only the user OAuth flow, same as gmail.
  • Excalidraw is the open-source server, not the Excalidraw+ workspace API (api.excalidraw.com/api/v1/mcp).
  • Not in this PR: Robinhood, Microsoft Teams, and NetSuite are public on Grok but being built first-party separately. SharePoint and Finance have no MCP endpoint and are served to Cursor through the Grok connectors-manager shim instead.
  • This is packaging only, no local stdio wrappers. Marketplace listing after merge still needs the usual publish step.
  • Happy to split into one PR per plugin if preferred; the content is generated from a single source so the split is mechanical.

Note

Medium Risk
Additive packaging only, but several connectors touch live trading (Coinbase), brokerage accounts, or billable/writable cloud data (BigQuery), so misconfiguration or agent misuse has real user impact.

Overview
Adds nine new third-party integration plugins to the Cursor marketplace, each packaging a vendor-hosted HTTP MCP endpoint (same shape as Attio/Hunter): plugin.json, mcp.json, README, changelog, and license under third_party/.

Registers coinbase, gamma, google-cloud-bigquery, interactive-brokers, meltwater, sp-global, webull, excalidraw, and daloopa in .cursor-plugin/marketplace.json and the root README plugin table.

Most plugins are OAuth sign-in only via "type": "http" URLs. Coinbase is different: it requires admin-configured CLIENT_ID / CLIENT_SECRET plugin variables forwarded in MCP auth because Coinbase does not support dynamic client registration. Excalidraw uses the public server with no credentials.

Capabilities exposed to agents are entirely on the remote MCP servers (trading/portfolio, BigQuery SQL, financial research, media analytics, diagram export, etc.); this PR does not add local MCP wrappers or runtime code.

Reviewed by Cursor Bugbot for commit 72cc418. Bugbot is set up for automated code reviews on this repo. Configure here.

@minupalaniappan
minupalaniappan marked this pull request as draft September 9, 2026 22:46

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Autofix Details

Bugbot Autofix prepared fixes for both issues found in the latest run.

  • ✅ Fixed: Bigdata plugin missing API-key auth
    • Added the official x-api-key header and BIGDATA_API_KEY plugin variable so Cursor collects a key instead of treating Bigdata as OAuth-only.
  • ✅ Fixed: IBKR uses Grok MCP URL

Create PR

Or push these changes by commenting:

@cursor push 7a5ccd2e8d
Preview (7a5ccd2e8d)
diff --git a/third_party/bigdata/.cursor-plugin/plugin.json b/third_party/bigdata/.cursor-plugin/plugin.json
--- a/third_party/bigdata/.cursor-plugin/plugin.json
+++ b/third_party/bigdata/.cursor-plugin/plugin.json
@@ -29,5 +29,18 @@
     "research",
     "mcp"
   ],
+  "variables": {
+    "type": "object",
+    "properties": {
+      "BIGDATA_API_KEY": {
+        "type": "string",
+        "title": "Bigdata.com API key",
+        "description": "API key from the Bigdata.com Developer Platform under API Keys."
+      }
+    },
+    "required": [
+      "BIGDATA_API_KEY"
+    ]
+  },
   "mcpServers": "./mcp.json"
 }

diff --git a/third_party/bigdata/CHANGELOG.md b/third_party/bigdata/CHANGELOG.md
--- a/third_party/bigdata/CHANGELOG.md
+++ b/third_party/bigdata/CHANGELOG.md
@@ -5,5 +5,5 @@
 ## 1.0.0 — initial release
 
 - Added the `bigdata` MCP server pointing at `https://mcp.bigdata.com`.
-- Auth uses OAuth — no API key or client ID to configure.
+- Auth uses a Bigdata.com API key supplied by the user as an `x-api-key` header (`${BIGDATA_API_KEY}`).
 - Logo: Bigdata.com's official mark.

diff --git a/third_party/bigdata/README.md b/third_party/bigdata/README.md
--- a/third_party/bigdata/README.md
+++ b/third_party/bigdata/README.md
@@ -8,7 +8,7 @@
 
 1. Open **Cursor Settings → Plugins**.
 2. Search for **Bigdata.com**.
-3. Click **Install**, then complete the sign-in prompt.
+3. Click **Install**, then set your Bigdata.com API key (below).
 
 Or run `/add-plugin bigdata` in chat.
 
@@ -19,19 +19,24 @@
   "mcpServers": {
     "bigdata": {
       "type": "http",
-      "url": "https://mcp.bigdata.com"
+      "url": "https://mcp.bigdata.com",
+      "headers": {
+        "x-api-key": "${BIGDATA_API_KEY}"
+      }
     }
   }
 }

-Auth is OAuth. Cursor prompts for sign-in when the plugin connects; there is no client ID or personal access token to configure.
+Auth is a Bigdata.com API key sent in an x-api-key header. Create one in the Developer Platform under API Keys, then set it in Dashboard → Plugins → Configure. Do not commit the key.

The hosted runtime is the source of truth for tool names and schemas.

Docs

License

diff --git a/third_party/bigdata/mcp.json b/third_party/bigdata/mcp.json
--- a/third_party/bigdata/mcp.json
+++ b/third_party/bigdata/mcp.json
@@ -2,7 +2,10 @@
"mcpServers": {
"bigdata": {
"type": "http",

  •  "url": "https://mcp.bigdata.com"
    
  •  "url": "https://mcp.bigdata.com",
    
  •  "headers": {
    
  •    "x-api-key": "${BIGDATA_API_KEY}"
    
  •  }
    
    }
    }
    }

diff --git a/third_party/interactive-brokers/CHANGELOG.md b/third_party/interactive-brokers/CHANGELOG.md
--- a/third_party/interactive-brokers/CHANGELOG.md
+++ b/third_party/interactive-brokers/CHANGELOG.md
@@ -4,6 +4,6 @@

1.0.0 — initial release

-- Added the interactive-brokers MCP server pointing at https://api.ibkr.com/v1/api/mcp.
+- Added the interactive-brokers MCP server pointing at https://api.ibkr.com/v1/api/mcp-public.

  • Auth uses OAuth — no API key or client ID to configure.
  • Logo: Interactive Brokers's official mark.

diff --git a/third_party/interactive-brokers/README.md b/third_party/interactive-brokers/README.md
--- a/third_party/interactive-brokers/README.md
+++ b/third_party/interactive-brokers/README.md
@@ -19,7 +19,7 @@
"mcpServers": {
"interactive-brokers": {
"type": "http",

  •  "url": "https://api.ibkr.com/v1/api/mcp"
    
  •  "url": "https://api.ibkr.com/v1/api/mcp-public"
    
    }
    }
    }
    @@ -32,7 +32,7 @@

Docs

License

diff --git a/third_party/interactive-brokers/mcp.json b/third_party/interactive-brokers/mcp.json
--- a/third_party/interactive-brokers/mcp.json
+++ b/third_party/interactive-brokers/mcp.json
@@ -2,7 +2,7 @@
"mcpServers": {
"interactive-brokers": {
"type": "http",

  •  "url": "https://api.ibkr.com/v1/api/mcp"
    
  •  "url": "https://api.ibkr.com/v1/api/mcp-public"
    
    }
    }
    }

</details>


<sub>You can send follow-ups to the cloud agent <a href="https://cursor.com/agents/bc-7c9bfda6-42cc-435d-b191-a657a0dfec55">here</a>.</sub>

</details>

Comment thread third_party/bigdata/mcp.json Outdated
Comment thread third_party/interactive-brokers/mcp.json Outdated
Package the hosted MCP connectors grok.com offers today that the Cursor
marketplace does not: Axiom, Bigdata.com, Cal.com, Coinbase, DeepWiki,
Gamma, Google Cloud BigQuery, Google Cloud SQL, Interactive Brokers,
Meltwater, S&P Global, Webull. OAuth user login where the vendor supports
it; Bigdata.com and Meltwater use an API key header variable like Hunter.
Server URLs come from Grok's production connector catalog.
@minupalaniappan
minupalaniappan force-pushed the minu/grok-catalog-parity branch from ff64198 to 8e8d6ad Compare September 9, 2026 22:54
@minupalaniappan minupalaniappan changed the title Add 12 Grok connectors as third-party MCP plugins feat(third_party): add 12 Grok connectors as third-party MCP plugins Sep 9, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Autofix Details

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Marketplace descriptions diverge from manifests
    • Updated marketplace.json so all 12 new plugin listings use the same description as their plugin.json manifests.

Create PR

Or push these changes by commenting:

@cursor push da45f72ff6
Preview (da45f72ff6)
diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json
--- a/.cursor-plugin/marketplace.json
+++ b/.cursor-plugin/marketplace.json
@@ -351,62 +351,62 @@
     {
       "name": "axiom",
       "source": "third_party/axiom",
-      "description": "Query logs, traces, and datasets with APL."
+      "description": "Query logs, traces, and metrics with APL and manage monitors."
     },
     {
       "name": "bigdata",
       "source": "third_party/bigdata",
-      "description": "Search financial news, filings, and transcripts."
+      "description": "Search financial news, filings, transcripts, and company data."
     },
     {
       "name": "cal",
       "source": "third_party/cal",
-      "description": "Check availability and book, cancel, or reschedule."
+      "description": "Manage bookings, event types, schedules, and availability."
     },
     {
       "name": "coinbase",
       "source": "third_party/coinbase",
-      "description": "Read balances, prices, and transactions."
+      "description": "Check balances, get quotes, and preview or place trades."
     },
     {
       "name": "deepwiki",
       "source": "third_party/deepwiki",
-      "description": "Read AI-generated docs for any GitHub repository."
+      "description": "Read AI-generated docs and ask questions about any public repo."
     },
     {
       "name": "gamma",
       "source": "third_party/gamma",
-      "description": "Generate presentations, documents, and websites."
+      "description": "Generate presentations, documents, and webpages."
     },
     {
       "name": "google-cloud-bigquery",
       "source": "third_party/google-cloud-bigquery",
-      "description": "Explore datasets and run SQL queries."
+      "description": "Explore datasets and tables and run SQL queries."
     },
     {
       "name": "google-cloud-sql",
       "source": "third_party/google-cloud-sql",
-      "description": "Inspect and manage Cloud SQL instances and databases."
+      "description": "Manage Cloud SQL instances, users, and backups, and run SQL."
     },
     {
       "name": "interactive-brokers",
       "source": "third_party/interactive-brokers",
-      "description": "View accounts, positions, orders, and market data."
+      "description": "Review positions, balances, P&L, and draft trade instructions."
     },
     {
       "name": "meltwater",
       "source": "third_party/meltwater",
-      "description": "Search media coverage, social mentions, and insights."
+      "description": "Search media and social mentions and pull analytics."
     },
     {
       "name": "sp-global",
       "source": "third_party/sp-global",
-      "description": "Query company financials and market data via Kensho."
+      "description": "Query S&P Capital IQ financials, prices, and transcripts."
     },
     {
       "name": "webull",
       "source": "third_party/webull",
-      "description": "View accounts, positions, orders, and quotes."
+      "description": "View accounts, positions, orders, watchlists, and market data."
     }
   ]
 }

You can send follow-ups to the cloud agent here.

Comment thread .cursor-plugin/marketplace.json Outdated
Minu Palaniappan added 2 commits September 9, 2026 16:09
….com, DeepWiki, Google Cloud SQL)

Per the live grok-backend-connector-catalog-controls GrowthBook config these
five are internal-only on grok.com, so they are not part of the Grok->Cursor
parity set.
@minupalaniappan minupalaniappan changed the title feat(third_party): add 12 Grok connectors as third-party MCP plugins feat(third_party): add 7 publicly-released Grok connectors as third-party MCP plugins Sep 9, 2026
Both are publicly visible in Grok's catalog (Excalidraw: all, Daloopa:
business) and absent from Cursor. Endpoints come from the vendors' own MCP
docs and were probed directly: Excalidraw serves tools/list with no auth at
https://mcp.excalidraw.com/mcp; Daloopa returns 401 with RFC 9728
resource_metadata at https://mcp.daloopa.com/server/mcp (standard MCP OAuth).
@minupalaniappan minupalaniappan changed the title feat(third_party): add 7 publicly-released Grok connectors as third-party MCP plugins feat(third_party): add 9 publicly-released Grok connectors as third-party MCP plugins Sep 9, 2026
BigQuery showed the generic Google G; now the BigQuery product icon from
Google Cloud's architecture icon set on a white tile. Gamma was a blurry
48px upscale; now the 192px mark from the gamma-app GitHub org. S&P Global
was Kensho's logo; now the S&P Global mark redrawn at native resolution.
…support

Probing each endpoint's OAuth discovery showed two mismatches with the
vendor docs the first draft relied on. Meltwater advertises standard MCP
OAuth with dynamic client registration, so the apikey header variable is
dropped in favour of the plain OAuth flow. Coinbase's authorization server
(login.coinbase.com) publishes no registration endpoint, so the plugin now
declares CLIENT_ID / CLIENT_SECRET variables and forwards them through MCP
auth, the same pattern as gong, hubspot, and docusign.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issues.

Reviewed by Cursor Bugbot for commit 72cc418. Configure here.

"CLIENT_ID",
"CLIENT_SECRET"
]
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coinbase OAuth clients are unobtainable

High Severity · Logic Bug

The plugin now requires CLIENT_ID and CLIENT_SECRET from a Coinbase Developer Platform OAuth app. Coinbase restricts OAuth client creation to approved partners, and Coinbase for Agents documents URL-only sign-in for allowlisted harnesses, not a BYO app. Typical marketplace users cannot finish Setup, so the plugin never connects.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 72cc418. Configure here.

@minupalaniappan

Copy link
Copy Markdown
Collaborator Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant