From bd512aab0e4c78a93fda8f08dd7726617e46df09 Mon Sep 17 00:00:00 2001 From: roshansada Date: Sat, 8 Aug 2026 13:08:09 -0700 Subject: [PATCH 1/2] Add Docusign third-party MCP plugin Docusign MCP requires a confidential OAuth Integration Key and Secret, plus a demo or production Streamable HTTP URL, so the plugin declares DOCUSIGN_MCP_URL, CLIENT_ID, and CLIENT_SECRET variables. Co-authored-by: Cursor --- .cursor-plugin/marketplace.json | 6 ++ README.md | 1 + .../docusign/.cursor-plugin/plugin.json | 55 ++++++++++++++ third_party/docusign/CHANGELOG.md | 9 +++ third_party/docusign/LICENSE | 21 ++++++ third_party/docusign/README.md | 68 ++++++++++++++++++ third_party/docusign/assets/logo.png | Bin 0 -> 4216 bytes third_party/docusign/mcp.json | 12 ++++ 8 files changed, 172 insertions(+) create mode 100644 third_party/docusign/.cursor-plugin/plugin.json create mode 100644 third_party/docusign/CHANGELOG.md create mode 100644 third_party/docusign/LICENSE create mode 100644 third_party/docusign/README.md create mode 100644 third_party/docusign/assets/logo.png create mode 100644 third_party/docusign/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 4f6f882f..c123099d 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -149,7 +149,13 @@ "name": "circleback", "source": "third_party/circleback", "description": "Connect Cursor to Circleback — search meetings, transcripts, action items, calendar events, and emails, and look up people and companies — via Circleback's official remote MCP server." + }, + { + "name": "docusign", + "source": "third_party/docusign", + "description": "Connect Cursor to Docusign — work with eSignature envelopes and templates, Maestro workflows, and Navigator agreements — via Docusign's official remote MCP server (beta)." } ] } + diff --git a/README.md b/README.md index 6afa70a1..446db61f 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `hubspot` | [HubSpot](third_party/hubspot/) | Cursor | Integrations | Connect Cursor to HubSpot CRM — search and update contacts, companies, deals, and tickets; work with activities, conversations, and marketing emails — via HubSpot's official remote MCP server. | | `intercom` | [Intercom](third_party/intercom/) | Cursor | Integrations | Connect Cursor to Intercom — search conversations and contacts, look up companies, and manage Help Center articles — via Intercom's official remote MCP server. | | `circleback` | [Circleback](third_party/circleback/) | Cursor | Integrations | Connect Cursor to Circleback — search meetings, transcripts, action items, calendar events, and emails, and look up people and companies — via Circleback's official remote MCP server. | +| `docusign` | [Docusign](third_party/docusign/) | Cursor | Integrations | Connect Cursor to Docusign — work with eSignature envelopes and templates, Maestro workflows, and Navigator agreements — via Docusign's official remote MCP server (beta). | | `x` | [X](third_party/x/) | Cursor | Integrations | Read-only access to the X API — search posts and users, read timelines and mentions, and pull trends and news — via X's official hosted MCP server. | Author values match each plugin’s `plugin.json` `author.name` (Cursor lists `plugins@cursor.com` in the manifest). diff --git a/third_party/docusign/.cursor-plugin/plugin.json b/third_party/docusign/.cursor-plugin/plugin.json new file mode 100644 index 00000000..c2a06fcf --- /dev/null +++ b/third_party/docusign/.cursor-plugin/plugin.json @@ -0,0 +1,55 @@ +{ + "name": "docusign", + "displayName": "Docusign", + "version": "1.0.0", + "description": "Connect Cursor to Docusign — work with eSignature envelopes and templates, Maestro workflows, and Navigator agreements — via Docusign's official remote MCP server (beta).", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://developers.docusign.com/platform/mcp-server/", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "docusign", + "esignature", + "agreements", + "mcp", + "envelopes", + "contracts" + ], + "category": "integrations", + "tags": [ + "mcp", + "docusign", + "agreements", + "esignature" + ], + "variables": { + "type": "object", + "properties": { + "DOCUSIGN_MCP_URL": { + "type": "string", + "title": "Docusign MCP server URL", + "description": "Demo (developer accounts): https://mcp-d.docusign.com/mcp — Production: https://mcp.docusign.com/mcp" + }, + "CLIENT_ID": { + "type": "string", + "title": "Docusign Integration Key", + "description": "Integration Key from Docusign Apps and Keys (Settings → Apps and Keys → your app)." + }, + "CLIENT_SECRET": { + "type": "string", + "title": "Docusign Secret Key", + "description": "Secret Key from the same Docusign Apps and Keys app." + } + }, + "required": [ + "DOCUSIGN_MCP_URL", + "CLIENT_ID", + "CLIENT_SECRET" + ] + }, + "mcpServers": "./mcp.json" +} diff --git a/third_party/docusign/CHANGELOG.md b/third_party/docusign/CHANGELOG.md new file mode 100644 index 00000000..147ab422 --- /dev/null +++ b/third_party/docusign/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Logo: Docusign's developer-center app icon. +- Added the `docusign` MCP server with a configurable demo/production URL. +- Declared `DOCUSIGN_MCP_URL`, `CLIENT_ID`, and `CLIENT_SECRET` plugin variables and forwarded credentials through MCP auth. diff --git a/third_party/docusign/LICENSE b/third_party/docusign/LICENSE new file mode 100644 index 00000000..ca2bba77 --- /dev/null +++ b/third_party/docusign/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/docusign/README.md b/third_party/docusign/README.md new file mode 100644 index 00000000..133641d6 --- /dev/null +++ b/third_party/docusign/README.md @@ -0,0 +1,68 @@ +# Docusign + +Cursor plugin that connects agents to [Docusign](https://www.docusign.com) through Docusign's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server (beta). + +Work with eSignature envelopes and templates, Maestro workflows, and Navigator agreement data from the signed-in Docusign account. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Docusign**. +3. Click **Install**, then set the MCP URL, Integration Key, and Secret Key (below) and complete the Docusign sign-in prompt. + +Or run `/add-plugin docusign` in chat. + +## MCP + +```json +{ + "mcpServers": { + "docusign": { + "type": "http", + "url": "${DOCUSIGN_MCP_URL}", + "auth": { + "CLIENT_ID": "${CLIENT_ID}", + "CLIENT_SECRET": "${CLIENT_SECRET}" + } + } + } +} +``` + +## Setup + +Docusign MCP requires a confidential OAuth app (Authorization Code Grant). Create an Integration Key before anyone can connect. + +1. Sign in to your [Docusign developer account](https://developers.docusign.com/) (or production admin account) and open **Settings → Apps and Keys**. +2. Add an app, copy the **Integration Key**, and generate a **Secret Key**. +3. Register both redirect URIs on that app: + - Desktop: `http://localhost:8787/callback` + - Web and Cloud Agents: `https://www.cursor.com/agents/mcp/oauth/callback` +4. In **Dashboard → Plugins → Configure**, set: + - **Docusign MCP server URL** — demo or production (table below) + - **Docusign Integration Key** and **Docusign Secret Key** from that app +5. Complete the Docusign OAuth login when Cursor prompts. + +| Environment | URL | +| --- | --- | +| Demo (developer accounts) | `https://mcp-d.docusign.com/mcp` | +| Production | `https://mcp.docusign.com/mcp` | + +On a team marketplace an admin can set the URL and credentials once for everyone; each member still completes their own Docusign OAuth login, so tool calls run with that member's permissions. + +## Notes + +- The MCP server is in beta. Expect changes as Docusign adds tools and refines the surface. +- Only **Confidential Authorization Code Grant** tokens are supported — not JWT, Implicit, or Public Authorization Code Grant. +- Match the MCP URL to the account type: use the demo URL with developer/demo accounts and the production URL with production accounts. + +## Docs + +- Docusign MCP server (beta): https://developers.docusign.com/platform/mcp-server/ +- Confidential Authorization Code Grant: https://developers.docusign.com/platform/auth/confidential-authcode-get-token + +Logo is Docusign's developer-center app icon (192×192) from https://developers.docusign.com/. + +## License + +MIT diff --git a/third_party/docusign/assets/logo.png b/third_party/docusign/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1a7d889e31f0df3e9e8641aaab24aa7ce7f89346 GIT binary patch literal 4216 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 literal 0 HcmV?d00001 diff --git a/third_party/docusign/mcp.json b/third_party/docusign/mcp.json new file mode 100644 index 00000000..082d2319 --- /dev/null +++ b/third_party/docusign/mcp.json @@ -0,0 +1,12 @@ +{ + "mcpServers": { + "docusign": { + "type": "http", + "url": "${DOCUSIGN_MCP_URL}", + "auth": { + "CLIENT_ID": "${CLIENT_ID}", + "CLIENT_SECRET": "${CLIENT_SECRET}" + } + } + } +} From f290d8295d057edfb53270b2b7c8d55a906b875d Mon Sep 17 00:00:00 2001 From: roshansada Date: Sat, 8 Aug 2026 13:09:04 -0700 Subject: [PATCH 2/2] Default Docusign MCP plugin to the production URL Drop the DOCUSIGN_MCP_URL variable and point mcp.json at https://mcp.docusign.com/mcp; document the demo endpoint as an optional post-install override. Co-authored-by: Cursor --- .../docusign/.cursor-plugin/plugin.json | 6 ------ third_party/docusign/CHANGELOG.md | 4 ++-- third_party/docusign/README.md | 21 ++++++++++--------- third_party/docusign/mcp.json | 2 +- 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/third_party/docusign/.cursor-plugin/plugin.json b/third_party/docusign/.cursor-plugin/plugin.json index c2a06fcf..fc0d83a4 100644 --- a/third_party/docusign/.cursor-plugin/plugin.json +++ b/third_party/docusign/.cursor-plugin/plugin.json @@ -29,11 +29,6 @@ "variables": { "type": "object", "properties": { - "DOCUSIGN_MCP_URL": { - "type": "string", - "title": "Docusign MCP server URL", - "description": "Demo (developer accounts): https://mcp-d.docusign.com/mcp — Production: https://mcp.docusign.com/mcp" - }, "CLIENT_ID": { "type": "string", "title": "Docusign Integration Key", @@ -46,7 +41,6 @@ } }, "required": [ - "DOCUSIGN_MCP_URL", "CLIENT_ID", "CLIENT_SECRET" ] diff --git a/third_party/docusign/CHANGELOG.md b/third_party/docusign/CHANGELOG.md index 147ab422..d2a9d198 100644 --- a/third_party/docusign/CHANGELOG.md +++ b/third_party/docusign/CHANGELOG.md @@ -5,5 +5,5 @@ All notable changes to this plugin will be documented here. ## 1.0.0 — initial release - Logo: Docusign's developer-center app icon. -- Added the `docusign` MCP server with a configurable demo/production URL. -- Declared `DOCUSIGN_MCP_URL`, `CLIENT_ID`, and `CLIENT_SECRET` plugin variables and forwarded credentials through MCP auth. +- Added the `docusign` MCP server pointing at `https://mcp.docusign.com/mcp`. +- Declared `CLIENT_ID` and `CLIENT_SECRET` plugin variables and forwarded them through MCP auth. diff --git a/third_party/docusign/README.md b/third_party/docusign/README.md index 133641d6..bbb26dce 100644 --- a/third_party/docusign/README.md +++ b/third_party/docusign/README.md @@ -8,7 +8,7 @@ Work with eSignature envelopes and templates, Maestro workflows, and Navigator a 1. Open **Cursor Settings → Plugins**. 2. Search for **Docusign**. -3. Click **Install**, then set the MCP URL, Integration Key, and Secret Key (below) and complete the Docusign sign-in prompt. +3. Click **Install**, then set the Integration Key and Secret Key (below) and complete the Docusign sign-in prompt. Or run `/add-plugin docusign` in chat. @@ -19,7 +19,7 @@ Or run `/add-plugin docusign` in chat. "mcpServers": { "docusign": { "type": "http", - "url": "${DOCUSIGN_MCP_URL}", + "url": "https://mcp.docusign.com/mcp", "auth": { "CLIENT_ID": "${CLIENT_ID}", "CLIENT_SECRET": "${CLIENT_SECRET}" @@ -33,28 +33,29 @@ Or run `/add-plugin docusign` in chat. Docusign MCP requires a confidential OAuth app (Authorization Code Grant). Create an Integration Key before anyone can connect. -1. Sign in to your [Docusign developer account](https://developers.docusign.com/) (or production admin account) and open **Settings → Apps and Keys**. +1. Sign in to your [Docusign account](https://www.docusign.com/) (or [developer account](https://developers.docusign.com/)) and open **Settings → Apps and Keys**. 2. Add an app, copy the **Integration Key**, and generate a **Secret Key**. 3. Register both redirect URIs on that app: - Desktop: `http://localhost:8787/callback` - Web and Cloud Agents: `https://www.cursor.com/agents/mcp/oauth/callback` -4. In **Dashboard → Plugins → Configure**, set: - - **Docusign MCP server URL** — demo or production (table below) - - **Docusign Integration Key** and **Docusign Secret Key** from that app +4. In **Dashboard → Plugins → Configure**, set **Docusign Integration Key** and **Docusign Secret Key** from that app. 5. Complete the Docusign OAuth login when Cursor prompts. +On a team marketplace an admin can set the credentials once for everyone; each member still completes their own Docusign OAuth login, so tool calls run with that member's permissions. + +## Demo vs production + +This plugin points at the production MCP URL. For developer/demo accounts, change the `url` in `mcp.json` to `https://mcp-d.docusign.com/mcp` after install. + | Environment | URL | | --- | --- | +| Production (default) | `https://mcp.docusign.com/mcp` | | Demo (developer accounts) | `https://mcp-d.docusign.com/mcp` | -| Production | `https://mcp.docusign.com/mcp` | - -On a team marketplace an admin can set the URL and credentials once for everyone; each member still completes their own Docusign OAuth login, so tool calls run with that member's permissions. ## Notes - The MCP server is in beta. Expect changes as Docusign adds tools and refines the surface. - Only **Confidential Authorization Code Grant** tokens are supported — not JWT, Implicit, or Public Authorization Code Grant. -- Match the MCP URL to the account type: use the demo URL with developer/demo accounts and the production URL with production accounts. ## Docs diff --git a/third_party/docusign/mcp.json b/third_party/docusign/mcp.json index 082d2319..29f669be 100644 --- a/third_party/docusign/mcp.json +++ b/third_party/docusign/mcp.json @@ -2,7 +2,7 @@ "mcpServers": { "docusign": { "type": "http", - "url": "${DOCUSIGN_MCP_URL}", + "url": "https://mcp.docusign.com/mcp", "auth": { "CLIENT_ID": "${CLIENT_ID}", "CLIENT_SECRET": "${CLIENT_SECRET}"