diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index d24c5af8..bea233fa 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -75,18 +75,28 @@ }, { "name": "gmail", - "source": "gmail", + "source": "third_party/gmail", "description": "Connect Cursor to Gmail via Google's remote MCP server — search, read, draft, label, and manage email." }, { "name": "google-drive", - "source": "google-drive", + "source": "third_party/google-drive", "description": "Connect Cursor to Google Drive via Google's remote MCP server — search, read, create, share, and manage files." }, { "name": "google-calendar", - "source": "google-calendar", + "source": "third_party/google-calendar", "description": "Connect Cursor to Google Calendar via Google's remote MCP server — list calendars, search events, and create or update meetings." + }, + { + "name": "gong", + "source": "third_party/gong", + "description": "Gong MCP integration for revenue intelligence — account summaries, deal insights, and call briefs." + }, + { + "name": "salesforce", + "source": "third_party/salesforce", + "description": "Connect Cursor to Salesforce via Salesforce Hosted MCP — query, search, create, update, and traverse records in your org." } ] } diff --git a/README.md b/README.md index 2d2544af..e1c8071e 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,11 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `cursor-sdk` | [Cursor SDK](cursor-sdk/) | Cursor | Developer Tools | Build apps, scripts, CI pipelines, and automations on top of the Cursor TypeScript SDK (@cursor/sdk) — runtime selection, auth, streaming, MCP, error handling, and ready-to-extend integration patterns. | | `orchestrate` | [Orchestrate](orchestrate/) | Cursor | Developer Tools | Fan large tasks out across parallel Cursor cloud agents with planners, workers, verifiers, and structured handoffs. | | `pstack` | [pstack](pstack/) | Lauren Tan | Developer Tools | if you want to go fast, go deep first. pstack helps you write less, but higher quality code. rigorous agent workflows you can parallelize with confidence. | -| `gmail` | [Gmail](gmail/) | Cursor | Productivity | Connect Cursor to Gmail via Google's remote MCP server — search, read, draft, label, and manage email. | -| `google-drive` | [Google Drive](google-drive/) | Cursor | Productivity | Connect Cursor to Google Drive via Google's remote MCP server — search, read, create, share, and manage files. | -| `google-calendar` | [Google Calendar](google-calendar/) | Cursor | Productivity | Connect Cursor to Google Calendar via Google's remote MCP server — list calendars, search events, and create or update meetings. | +| `gmail` | [Gmail](third_party/gmail/) | Cursor | Productivity | Connect Cursor to Gmail via Google's remote MCP server — search, read, draft, label, and manage email. | +| `google-drive` | [Google Drive](third_party/google-drive/) | Cursor | Productivity | Connect Cursor to Google Drive via Google's remote MCP server — search, read, create, share, and manage files. | +| `google-calendar` | [Google Calendar](third_party/google-calendar/) | Cursor | Productivity | Connect Cursor to Google Calendar via Google's remote MCP server — list calendars, search events, and create or update meetings. | +| `gong` | [Gong](third_party/gong/) | Cursor | Integrations | Gong MCP integration for revenue intelligence — account summaries, deal insights, and call briefs. | +| `salesforce` | [Salesforce](third_party/salesforce/) | Cursor | Integrations | Connect Cursor to Salesforce via Salesforce Hosted MCP — query, search, create, update, and traverse records in your org. | Author values match each plugin’s `plugin.json` `author.name` (Cursor lists `plugins@cursor.com` in the manifest). diff --git a/schemas/plugin.schema.json b/schemas/plugin.schema.json index 807cc0a8..51d4e3f1 100644 --- a/schemas/plugin.schema.json +++ b/schemas/plugin.schema.json @@ -93,6 +93,24 @@ ], "description": "Path to a hooks configuration file, or an inline hooks object." }, + "variables": { + "type": "object", + "required": ["type"], + "properties": { + "type": { + "const": "object" + }, + "properties": { + "type": "object" + }, + "required": { + "type": "array", + "items": { "type": "string" }, + "uniqueItems": true + } + }, + "description": "JSON Schema for user-configured plugin variables." + }, "mcpServers": { "$ref": "#/$defs/mcpServers", "description": "MCP server configuration — a path, an inline config object, or an array of either." diff --git a/gmail/.cursor-plugin/plugin.json b/third_party/gmail/.cursor-plugin/plugin.json similarity index 89% rename from gmail/.cursor-plugin/plugin.json rename to third_party/gmail/.cursor-plugin/plugin.json index 11dc0c28..ae9a4eb9 100644 --- a/gmail/.cursor-plugin/plugin.json +++ b/third_party/gmail/.cursor-plugin/plugin.json @@ -10,7 +10,7 @@ "name": "Cursor", "email": "plugins@cursor.com" }, - "homepage": "https://github.com/cursor/plugins/tree/main/gmail", + "homepage": "https://github.com/cursor/plugins/tree/main/third_party/gmail", "repository": "https://github.com/cursor/plugins", "license": "MIT", "logo": "assets/logo.svg", diff --git a/gmail/CHANGELOG.md b/third_party/gmail/CHANGELOG.md similarity index 100% rename from gmail/CHANGELOG.md rename to third_party/gmail/CHANGELOG.md diff --git a/gmail/LICENSE b/third_party/gmail/LICENSE similarity index 100% rename from gmail/LICENSE rename to third_party/gmail/LICENSE diff --git a/gmail/README.md b/third_party/gmail/README.md similarity index 100% rename from gmail/README.md rename to third_party/gmail/README.md diff --git a/gmail/assets/logo.svg b/third_party/gmail/assets/logo.svg similarity index 100% rename from gmail/assets/logo.svg rename to third_party/gmail/assets/logo.svg diff --git a/gmail/mcp.json b/third_party/gmail/mcp.json similarity index 100% rename from gmail/mcp.json rename to third_party/gmail/mcp.json diff --git a/third_party/gong/.cursor-plugin/plugin.json b/third_party/gong/.cursor-plugin/plugin.json new file mode 100644 index 00000000..2008c900 --- /dev/null +++ b/third_party/gong/.cursor-plugin/plugin.json @@ -0,0 +1,48 @@ +{ + "name": "gong", + "displayName": "Gong", + "version": "1.0.0", + "description": "Gong MCP integration for revenue intelligence — account summaries, deal insights, and call briefs.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://help.gong.io/docs/about-gong-mcp-server", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "gong", + "mcp", + "revenue", + "sales", + "calls", + "deals" + ], + "category": "integrations", + "tags": [ + "mcp", + "sales", + "revenue-intelligence" + ], + "variables": { + "type": "object", + "properties": { + "CLIENT_ID": { + "type": "string", + "title": "Gong Client ID", + "description": "OAuth Client ID from Gong Admin → Company Settings → Ecosystem → API → Integrations (MCP integration)." + }, + "CLIENT_SECRET": { + "type": "string", + "title": "Gong Client Secret", + "description": "OAuth Client Secret from the same Gong MCP integration." + } + }, + "required": [ + "CLIENT_ID", + "CLIENT_SECRET" + ] + }, + "mcpServers": "./mcp.json" +} diff --git a/third_party/gong/CHANGELOG.md b/third_party/gong/CHANGELOG.md new file mode 100644 index 00000000..09a78045 --- /dev/null +++ b/third_party/gong/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Logo: Gong's official 180×180 apple-touch icon. +- Added the `gong` MCP server pointing at `https://mcp.gong.io/mcp`. +- Declared `CLIENT_ID` and `CLIENT_SECRET` plugin variables and forwarded them through MCP auth. diff --git a/google-calendar/LICENSE b/third_party/gong/LICENSE similarity index 100% rename from google-calendar/LICENSE rename to third_party/gong/LICENSE diff --git a/third_party/gong/README.md b/third_party/gong/README.md new file mode 100644 index 00000000..28216e41 --- /dev/null +++ b/third_party/gong/README.md @@ -0,0 +1,50 @@ +# Gong + +Cursor plugin that connects agents to [Gong](https://www.gong.io) through Gong's official hosted [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Pull account summaries, deal insights, and call briefs into chat. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Gong**. +3. Click **Install**, then set the client ID and secret (below) and complete the Gong sign-in prompt. + +Or run `/add-plugin gong` in chat. + +## MCP + +```json +{ + "mcpServers": { + "gong": { + "url": "https://mcp.gong.io/mcp", + "auth": { + "CLIENT_ID": "${CLIENT_ID}", + "CLIENT_SECRET": "${CLIENT_SECRET}" + } + } + } +} +``` + +## Setup + +Gong's MCP server uses static OAuth client credentials plus a per-user OAuth login, so an administrator has to register Cursor before anyone can connect. + +1. A Gong technical administrator creates an MCP integration under **Company Settings → Ecosystem → API → Integrations** and enables the MCP scope. +2. Register both redirect URIs on that integration: + - Desktop: `http://localhost:8787/callback` + - Web and Cloud Agents: `https://www.cursor.com/agents/mcp/oauth/callback` +3. In **Dashboard → Plugins → Configure**, set **Gong Client ID** and **Gong Client Secret** from that integration. +4. Complete the Gong OAuth login when Cursor prompts. + +On a team marketplace an admin sets the client ID and secret once for everyone; each member still completes their own Gong OAuth login, so tool calls run with that member's Gong permissions. + +## Docs + +- Gong MCP server overview: https://help.gong.io/docs/about-gong-mcp-server + +## License + +MIT diff --git a/third_party/gong/assets/logo.png b/third_party/gong/assets/logo.png new file mode 100644 index 00000000..7a7fb982 Binary files /dev/null and b/third_party/gong/assets/logo.png differ diff --git a/third_party/gong/mcp.json b/third_party/gong/mcp.json new file mode 100644 index 00000000..b3722f7e --- /dev/null +++ b/third_party/gong/mcp.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://cursor.com/schemas/mcp.json", + "mcpServers": { + "gong": { + "url": "https://mcp.gong.io/mcp", + "auth": { + "CLIENT_ID": "${CLIENT_ID}", + "CLIENT_SECRET": "${CLIENT_SECRET}" + } + } + } +} diff --git a/google-calendar/.cursor-plugin/plugin.json b/third_party/google-calendar/.cursor-plugin/plugin.json similarity index 89% rename from google-calendar/.cursor-plugin/plugin.json rename to third_party/google-calendar/.cursor-plugin/plugin.json index 13d51ad9..fea91ba7 100644 --- a/google-calendar/.cursor-plugin/plugin.json +++ b/third_party/google-calendar/.cursor-plugin/plugin.json @@ -10,7 +10,7 @@ "name": "Cursor", "email": "plugins@cursor.com" }, - "homepage": "https://github.com/cursor/plugins/tree/main/google-calendar", + "homepage": "https://github.com/cursor/plugins/tree/main/third_party/google-calendar", "repository": "https://github.com/cursor/plugins", "license": "MIT", "logo": "assets/logo.svg", diff --git a/google-calendar/CHANGELOG.md b/third_party/google-calendar/CHANGELOG.md similarity index 100% rename from google-calendar/CHANGELOG.md rename to third_party/google-calendar/CHANGELOG.md diff --git a/google-drive/LICENSE b/third_party/google-calendar/LICENSE similarity index 100% rename from google-drive/LICENSE rename to third_party/google-calendar/LICENSE diff --git a/google-calendar/README.md b/third_party/google-calendar/README.md similarity index 100% rename from google-calendar/README.md rename to third_party/google-calendar/README.md diff --git a/google-calendar/assets/logo.svg b/third_party/google-calendar/assets/logo.svg similarity index 100% rename from google-calendar/assets/logo.svg rename to third_party/google-calendar/assets/logo.svg diff --git a/google-calendar/mcp.json b/third_party/google-calendar/mcp.json similarity index 100% rename from google-calendar/mcp.json rename to third_party/google-calendar/mcp.json diff --git a/google-drive/.cursor-plugin/plugin.json b/third_party/google-drive/.cursor-plugin/plugin.json similarity index 88% rename from google-drive/.cursor-plugin/plugin.json rename to third_party/google-drive/.cursor-plugin/plugin.json index a3c2adff..3943088b 100644 --- a/google-drive/.cursor-plugin/plugin.json +++ b/third_party/google-drive/.cursor-plugin/plugin.json @@ -10,7 +10,7 @@ "name": "Cursor", "email": "plugins@cursor.com" }, - "homepage": "https://github.com/cursor/plugins/tree/main/google-drive", + "homepage": "https://github.com/cursor/plugins/tree/main/third_party/google-drive", "repository": "https://github.com/cursor/plugins", "license": "MIT", "logo": "assets/logo.svg", diff --git a/google-drive/CHANGELOG.md b/third_party/google-drive/CHANGELOG.md similarity index 100% rename from google-drive/CHANGELOG.md rename to third_party/google-drive/CHANGELOG.md diff --git a/third_party/google-drive/LICENSE b/third_party/google-drive/LICENSE new file mode 100644 index 00000000..ca2bba77 --- /dev/null +++ b/third_party/google-drive/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/google-drive/README.md b/third_party/google-drive/README.md similarity index 100% rename from google-drive/README.md rename to third_party/google-drive/README.md diff --git a/google-drive/assets/logo.svg b/third_party/google-drive/assets/logo.svg similarity index 100% rename from google-drive/assets/logo.svg rename to third_party/google-drive/assets/logo.svg diff --git a/google-drive/mcp.json b/third_party/google-drive/mcp.json similarity index 100% rename from google-drive/mcp.json rename to third_party/google-drive/mcp.json diff --git a/third_party/salesforce/.cursor-plugin/plugin.json b/third_party/salesforce/.cursor-plugin/plugin.json new file mode 100644 index 00000000..419aba88 --- /dev/null +++ b/third_party/salesforce/.cursor-plugin/plugin.json @@ -0,0 +1,48 @@ +{ + "name": "salesforce", + "displayName": "Salesforce", + "version": "1.0.0", + "description": "Connect Cursor to Salesforce via Salesforce Hosted MCP — query, search, create, update, and traverse records in your org.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/cursor.html", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.svg", + "keywords": [ + "salesforce", + "crm", + "mcp", + "sales", + "soql", + "sobject" + ], + "category": "integrations", + "tags": [ + "mcp", + "crm", + "sales" + ], + "variables": { + "type": "object", + "properties": { + "SALESFORCE_MCP_URL": { + "type": "string", + "title": "Salesforce MCP server URL", + "description": "Server URL from Setup → MCP Servers. Production: https://api.salesforce.com/platform/mcp/v1/platform/sobject-all — Sandbox or scratch: https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-all — custom servers replace platform/ with custom/." + }, + "CLIENT_ID": { + "type": "string", + "title": "Salesforce Consumer Key", + "description": "Consumer Key of the External Client App you created for Cursor (Setup → External Client App Manager → your app → Settings → Consumer Key and Secret)." + } + }, + "required": [ + "SALESFORCE_MCP_URL", + "CLIENT_ID" + ] + }, + "mcpServers": "./mcp.json" +} diff --git a/third_party/salesforce/CHANGELOG.md b/third_party/salesforce/CHANGELOG.md new file mode 100644 index 00000000..cf4158b9 --- /dev/null +++ b/third_party/salesforce/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Logo: Salesforce's official cloud mark, centered on a transparent 192×192 canvas with padding so it reads well on light and dark backgrounds. +- Added the `salesforce` MCP server backed by Salesforce Hosted MCP. +- Declared `SALESFORCE_MCP_URL` and `CLIENT_ID` plugin variables so each org can point at its own server and External Client App. +- Pinned OAuth scopes to `mcp_api` and `refresh_token`. diff --git a/third_party/salesforce/LICENSE b/third_party/salesforce/LICENSE new file mode 100644 index 00000000..ca2bba77 --- /dev/null +++ b/third_party/salesforce/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/salesforce/README.md b/third_party/salesforce/README.md new file mode 100644 index 00000000..c9cbb50b --- /dev/null +++ b/third_party/salesforce/README.md @@ -0,0 +1,95 @@ +# Salesforce + +Cursor plugin that connects agents to [Salesforce](https://www.salesforce.com) through [Salesforce Hosted MCP](https://developer.salesforce.com/docs/platform/hosted-mcp-servers/), Salesforce's first-party [Model Context Protocol](https://modelcontextprotocol.io/) service. + +Run SOQL and SOSL, inspect object schemas, traverse relationships, and create, update, or delete records — all under the signed-in user's own permissions and field-level security. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Salesforce**. +3. Click **Install**, then set the server URL and consumer key (below) and complete the Salesforce sign-in prompt. + +Or run `/add-plugin salesforce` in chat. + +## MCP + +```json +{ + "mcpServers": { + "salesforce": { + "type": "http", + "url": "${SALESFORCE_MCP_URL}", + "auth": { + "CLIENT_ID": "${CLIENT_ID}", + "scopes": ["mcp_api", "refresh_token"] + } + } + } +} +``` + +## Setup + +Salesforce Hosted MCP requires an **External Client App** in your org. Connected Apps are not supported. + +### 1. Create the External Client App + +From Setup, go to **External Client App Manager → New External Client App**, fill in the basics, then expand **API (Enable OAuth Settings)** and check **Enable OAuth**. + +Add every callback URL you need — Cursor uses different ones per surface: + +| Surface | Callback URL | +|:--------|:-------------| +| Desktop | `http://localhost:8787/callback` | +| Web and Cloud Agents | `https://www.cursor.com/agents/mcp/oauth/callback` | +| Older desktop builds | `cursor://anysphere.cursor-mcp/oauth/callback` | + +Under **OAuth Scopes**, select exactly these two and nothing broader: + +- **Access Salesforce hosted MCP servers** (`mcp_api`) +- **Perform requests at any time** (`refresh_token`, `offline_access`) + +The second one is easy to miss because the picker labels scopes by description rather than by value. Without it the plugin cannot refresh, and every user has to re-authenticate when their access token expires. Do not add **Full access** (`full`) — Hosted MCP does not need it. + +Under **Security**, select **Issue JSON Web Token (JWT)-based access tokens for named users**. This is required: without it Salesforce issues opaque tokens and every tool call fails with `JWT Token is required`. Leave **Require Secret for Web Server Flow** off — Cursor authenticates as a public client using PKCE, so no client secret is involved. Do not enable the **JWT Bearer Flow**, which is a different feature and needs a certificate. + +Finally, copy the **Consumer Key** from **Settings → Consumer Key and Secret**. + +A new External Client App can take up to 30 minutes to propagate. Until it does, authentication fails with `invalid_client_id`; wait rather than recreating the app. + +### 2. Activate a server and copy its URL + +In Setup, open **MCP Servers**, activate the server you want, and copy its **Server URL**. The URL encodes both the org type and the server: + +| Org type | Standard server | Custom server | +|:---------|:----------------|:--------------| +| Production, Developer, Enterprise | `https://api.salesforce.com/platform/mcp/v1/platform/sobject-all` | `https://api.salesforce.com/platform/mcp/v1/custom/myserver` | +| Sandbox or scratch | `https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-all` | `https://api.salesforce.com/platform/mcp/v1/sandbox/custom/myserver` | + +Salesforce ships several standard servers with different blast radii — `sobject-reads` for read-only access, `sobject-mutations` for reads plus create and update, `sobject-deletes`, and `sobject-all` for everything. Point the plugin at the narrowest one that does the job. + +### 3. Configure the plugin + +In **Dashboard → Plugins → Configure**, set **Salesforce MCP server URL** and **Salesforce Consumer Key**, then complete the Salesforce login when Cursor prompts. + +On a team marketplace an admin sets both values once. Each member still authenticates individually, so tools run with that member's own object and field permissions. + +## Troubleshooting + +| Symptom | Cause | +|:--------|:------| +| `invalid_client_id` | The External Client App has not finished propagating. Wait up to 30 minutes. | +| `invalid_scope` | The app is missing **Access Salesforce hosted MCP servers** or **Perform requests at any time**. | +| `JWT Token is required` or `Invalid token` after a successful login | **Issue JSON Web Token (JWT)-based access tokens for named users** is not enabled. | +| Auth succeeds but the server 404s | The MCP server is not activated in Setup, or the URL's org type does not match the org you logged into. | + +## Docs + +- Configure Cursor: https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/cursor.html +- Create an External Client App: https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/create-external-client-app.html +- Available servers: https://developer.salesforce.com/docs/platform/hosted-mcp-servers/references/reference/sobject-all.html + +## License + +MIT diff --git a/third_party/salesforce/assets/logo.svg b/third_party/salesforce/assets/logo.svg new file mode 100644 index 00000000..7259a1e0 --- /dev/null +++ b/third_party/salesforce/assets/logo.svg @@ -0,0 +1,7 @@ + + Salesforce + + + + + diff --git a/third_party/salesforce/mcp.json b/third_party/salesforce/mcp.json new file mode 100644 index 00000000..8b4f1f31 --- /dev/null +++ b/third_party/salesforce/mcp.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://cursor.com/schemas/mcp.json", + "mcpServers": { + "salesforce": { + "type": "http", + "url": "${SALESFORCE_MCP_URL}", + "auth": { + "CLIENT_ID": "${CLIENT_ID}", + "scopes": ["mcp_api", "refresh_token"] + } + } + } +}