Skip to content

Add 27 third-party MCP plugins - #259

Merged
roshansada merged 34 commits into
mainfrom
roshansada/add-mcp-plugin-batch-e203
Aug 26, 2026
Merged

Add 27 third-party MCP plugins#259
roshansada merged 34 commits into
mainfrom
roshansada/add-mcp-plugin-batch-e203

Conversation

@roshansada

@roshansada roshansada commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds 27 third-party MCP plugins under third_party/, one commit per plugin. Each ships a plugin.json, mcp.json, README, changelog, license, and logo, and is registered in .cursor-plugin/marketplace.json and the root README table.

Every server URL is taken from the vendor's own documentation. 26 of the 27 connect to a hosted server over Streamable HTTP. Xero is the exception and runs locally, because Xero does not publish a hosted endpoint.

Plugins

Marketing and messaging

Plugin Server Auth
Klaviyo https://mcp.klaviyo.com/mcp OAuth
Customer.io https://mcp.customer.io/mcp OAuth
MailerLite https://mcp.mailerlite.com/mcp OAuth
Brevo https://mcp.brevo.com/v1/brevo/mcp MCP token

Forms

Plugin Server Auth
Typeform https://api.typeform.com/mcp OAuth
Jotform https://mcp.jotform.com OAuth

SEO, web and domains

Plugin Server Auth
Semrush https://mcp.semrush.com/v2/mcp OAuth
Ahrefs https://api.ahrefs.com/mcp/mcp OAuth
Similarweb https://mcp.similarweb.com API key
GoDaddy https://api.godaddy.com/v1/domains/mcp None — public data

Hiring

Plugin Server Auth
Upwork https://mcp.upwork.com/mcp OAuth
Workable https://mcp.workable.com/mcp OAuth

Finance

Plugin Server Auth
Brex https://api.brex.com/mcp OAuth
Mercury https://mcp.mercury.com/mcp OAuth, read-only
Xero npx @xeroapi/xero-mcp-server Client ID and secret

Work management

Plugin Server Auth
Todoist https://ai.todoist.net/mcp OAuth
Calendly https://mcp.calendly.com/ OAuth
Smartsheet https://mcp.smartsheet.com API token
Wrike https://mcp.wrike.com/v2 Access token
Coda https://docs.superhuman.com/apis/mcp OAuth
Guru https://mcp.api.getguru.com/mcp OAuth

Meetings and notes

Plugin Server Auth
Fireflies https://api.fireflies.ai/mcp OAuth
Otter.ai https://mcp.otter.ai/mcp OAuth
Fathom https://api.fathom.ai/mcp OAuth
Craft https://mcp.craft.do/my/mcp OAuth
Mem https://mcp.mem.ai/mcp OAuth
Readwise https://mcp2.readwise.io/mcp OAuth

Plugins that take a setting

Most of these are URL-only: install, sign in, done. Five need a value from the user, declared in plugin.json under variables the same way the existing github and salesforce plugins do.

Plugin Setting
Brevo MCP token from Account → SMTP & API → API Keys, created with "Create MCP server API key" enabled
Smartsheet API access token
Wrike Permanent access token — Wrike's server does not offer dynamic client registration
Similarweb API key, sent in an api-key header rather than Authorization
Xero Custom Connection client ID and secret

Notes for review

  • Coda is listed at docs.superhuman.com/apis/mcp, not coda.io/apis/mcp. Coda became Superhuman Docs in July and their changelog directs new setups to the new address while the old one is wound down.
  • Regional servers default to US or global, with the alternates documented in each README: Customer.io (EU), Typeform (EU), Smartsheet (EU and AU).
  • Smartsheet, Wrike, and Similarweb document Cursor setup through npx mcp-remote. They ship here as native remote entries instead, which is equivalent and avoids the subprocess.
  • No plugin sets "type": "sse". Guru, Wrike, Semrush, Typeform, Customer.io, Workable, and Similarweb all document that they do not serve SSE.
  • Setup gates, each covered in the relevant README: Brex and Customer.io need an account admin to enable MCP before anyone can connect, Jotform needs a workspace admin to install the app, and Workable's OAuth checks redirect URIs against an allowlist.
  • Logos are each vendor's official GitHub organisation mark, normalised to 192×192 PNG.

Test plan

  • Plugin schema validation passes (node scripts/validate-plugins.mjs)
  • Install and authenticate a representative sample: Calendly (OAuth with dynamic client registration), Customer.io (OAuth behind an admin toggle), Smartsheet (API token), Xero (local server), GoDaddy (no auth)
  • Run a read-only tool against each
Open in Web Open in Cursor 

cursoragent and others added 29 commits August 25, 2026 06:29
Klaviyo ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Customer.io ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
MailerLite ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Brevo's hosted MCP server speaks Streamable HTTP but authenticates with a user-supplied token rather than OAuth, so the plugin declares a variable and forwards it as an HTTP header.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Typeform ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Jotform ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Semrush ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Ahrefs ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
GoDaddy's hosted MCP server serves public data with no authentication, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Upwork ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Workable ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Brex ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Mercury ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Todoist ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Calendly ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Smartsheet's hosted MCP server speaks Streamable HTTP but authenticates with a user-supplied token rather than OAuth, so the plugin declares a variable and forwards it as an HTTP header.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Wrike's hosted MCP server speaks Streamable HTTP but authenticates with a user-supplied token rather than OAuth, so the plugin declares a variable and forwards it as an HTTP header.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Coda ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Guru ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Fireflies ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Otter.ai ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Fathom ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Craft ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Mem ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Readwise ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Similarweb's hosted MCP server speaks Streamable HTTP but authenticates with a user-supplied token rather than OAuth, so the plugin declares a variable and forwards it as an HTTP header.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Zoho MCP has no shared endpoint — each customer builds a server in the Zoho MCP console and gets a region-specific URL with an embedded API key, so the plugin takes the URL as a variable the way the Salesforce plugin does.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
ActiveCampaign generates a Remote MCP URL per account rather than publishing a shared endpoint, so the plugin takes the URL as a variable the way the Salesforce plugin does.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Xero publishes no hosted MCP endpoint; its official server is the `@xeroapi/xero-mcp-server` npm package running locally over stdio with Custom Connection credentials, and Xero's FAQ records Cursor as one of the two clients it tested against.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
@cursor cursor Bot changed the title Add 26 third-party MCP plugins Add 29 third-party MCP plugins Aug 25, 2026
cursoragent and others added 4 commits August 25, 2026 06:36
The Ahrefs homepage pointed at docs.ahrefs.com/mcp/docs/introduction, a path
I could not confirm resolves — Ahrefs' own archived repo and third-party
indexes cite three different intro URLs. Point at ahrefs.com/mcp and the help
centre article instead, both of which are live, and spell out the MCP-key
header as an alternative to OAuth. Add Similarweb's Cursor integration guide.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Coda became Superhuman Docs on 2026-07-08 and the MCP server moved with it.
Superhuman's July changelog is explicit that "the old coda.io/apis/mcp address
keeps working for existing customers for a few more months, but new customers
should use the new one" — and a marketplace listing produces new customers by
definition, so shipping coda.io would hand every installer a URL on a clock.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Workable's help centre says its MCP OAuth "uses a pre-approved list of redirect
URIs" and that unlisted clients fail with a redirect URI mismatch, naming
ChatGPT Enterprise and LM Studio as examples. Cursor is named as a supported
client in Workable's own prerequisites and is not among the examples that fail,
so this is not a blocker — but Cursor's callbacks are fixed, so list both in the
README to make the support request a single step if a user does hit it.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Brevo runs a second MCP at developers.brevo.com/_mcp/server for documentation
search, which is easy to mistake for the product server. Craft binds a
connection to a single space, so multi-space users need one entry per space.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
@roshansada
roshansada marked this pull request as ready for review August 25, 2026 06:39

@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.

Fix All in Cursor

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

  • ✅ Fixed: Coda ships unreliable OAuth auth
    • Switched the Coda plugin to Superhuman's recommended PAT via a required CODA_API_TOKEN Configure field and Authorization Bearer header, matching the other token plugins.

Create PR

Or push these changes by commenting:

@cursor push 1a59c7355f
Preview (1a59c7355f)
diff --git a/third_party/coda/.cursor-plugin/plugin.json b/third_party/coda/.cursor-plugin/plugin.json
--- a/third_party/coda/.cursor-plugin/plugin.json
+++ b/third_party/coda/.cursor-plugin/plugin.json
@@ -29,5 +29,18 @@
     "mcp",
     "knowledge"
   ],
+  "variables": {
+    "type": "object",
+    "properties": {
+      "CODA_API_TOKEN": {
+        "type": "string",
+        "title": "Coda personal access token",
+        "description": "API token created in Superhuman Docs (Coda) under Account \u2192 API settings with restriction type MCP."
+      }
+    },
+    "required": [
+      "CODA_API_TOKEN"
+    ]
+  },
   "mcpServers": "./mcp.json"
 }

diff --git a/third_party/coda/CHANGELOG.md b/third_party/coda/CHANGELOG.md
--- a/third_party/coda/CHANGELOG.md
+++ b/third_party/coda/CHANGELOG.md
@@ -5,5 +5,5 @@
 ## 1.0.0 — initial release
 
 - Added the `coda` MCP server pointing at `https://docs.superhuman.com/apis/mcp`.
-- Auth uses OAuth — no API key or client ID to configure.
+- Auth uses a Superhuman Docs personal access token supplied by the user as a request header.
 - Logo: Coda's official mark, from the `coda` GitHub organization.

diff --git a/third_party/coda/README.md b/third_party/coda/README.md
--- a/third_party/coda/README.md
+++ b/third_party/coda/README.md
@@ -2,13 +2,13 @@
 
 Cursor plugin that connects agents to [Coda](https://coda.io) through Coda's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server.
 
-Search and read Coda docs, pages, and tables, and create or update pages and rows with the same access the signed-in user has.
+Search and read Coda docs, pages, and tables, and create or update pages and rows under the permissions of a personal access token you provide.
 
 ## Install
 
 1. Open **Cursor Settings → Plugins**.
 2. Search for **Coda**.
-3. Click **Install**, then complete the Coda sign-in prompt.
+3. Click **Install**, then set your Coda personal access token (below).
 
 Or run `/add-plugin coda` in chat.
 
@@ -19,13 +19,16 @@
   "mcpServers": {
     "coda": {
       "type": "http",
-      "url": "https://docs.superhuman.com/apis/mcp"
+      "url": "https://docs.superhuman.com/apis/mcp",
+      "headers": {
+        "Authorization": "Bearer ${CODA_API_TOKEN}"
+      }
     }
   }
 }

-Auth is OAuth 2 with PKCE. Cursor prompts for sign-in when the plugin connects. An OAuth connection is automatically scoped to both read and write.
+Auth is a Superhuman Docs personal access token sent as a bearer token. Create one under Account → API settings with restriction type MCP, then set it in Dashboard → Plugins → Configure. A token can be scoped read-only, write-only, or read+write.

Before you connect

@@ -46,9 +49,9 @@

Notes

-- Tool calls run as the user who authorizes the connection.
+- Tool calls run with the permissions of the personal access token.

  • The older https://coda.io/apis/mcp address still serves existing connections, but Superhuman's changelog says new setups should use docs.superhuman.com/apis/mcp — so that is what this plugin ships.
    -- Superhuman also accepts a personal access token sent as Authorization: Bearer <token>, which lets you pick read-only, write-only, or read+write instead of OAuth's read+write. The token must be created with restriction type MCP or the server returns 401. Superhuman currently recommends the token path for Cursor because of refresh-token handling.
    +- Superhuman also supports OAuth 2 with PKCE, but Cursor's refresh-token handling against this server is unreliable, so this plugin ships the token path Superhuman recommends for Cursor. The token must be created with restriction type MCP or the server returns 401.
  • The coda-mcp npm package is a community local server by a third-party maintainer, unrelated to this hosted endpoint.

Docs

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

  •  "url": "https://docs.superhuman.com/apis/mcp"
    
  •  "url": "https://docs.superhuman.com/apis/mcp",
    
  •  "headers": {
    
  •    "Authorization": "Bearer ${CODA_API_TOKEN}"
    
  •  }
    
    }
    }
    }

</details>


<sub>You can send follow-ups to the cloud agent <a href="https://cursor.com/agents/bc-2ff73351-1e44-40d0-8675-b5a4df3e10b0">here</a>.</sub>
<!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_END -->

<sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit e0c412ff59bf0b42a613142f79cfb298de0cb584. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>

Comment thread third_party/coda/mcp.json
"url": "https://docs.superhuman.com/apis/mcp"
}
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Coda ships unreliable OAuth auth

Medium Severity · Logic Bug

The coda plugin connects with OAuth only, but Superhuman’s own Cursor guidance recommends a personal access token because Cursor’s refresh-token handling fails against this server. Install and first sign-in can succeed, then the connection degrades after token refresh. The README already notes the token path and Authorization: Bearer shape used by other token plugins here.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit e0c412f. Configure here.

Both take a user-supplied server URL rather than a fixed endpoint, since
neither vendor publishes a shared one. Deferring them so the rest of the batch
can land on its own; the research and README copy are easy to restore when we
pick them back up.

Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
@cursor cursor Bot changed the title Add 29 third-party MCP plugins Add 27 third-party MCP plugins Aug 26, 2026
@roshansada
roshansada merged commit 46756f8 into main Aug 26, 2026
2 checks passed
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.

2 participants