Add 27 third-party MCP plugins - #259
Conversation
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>
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>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
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.
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/mcpaddress still serves existing connections, but Superhuman's changelog says new setups should usedocs.superhuman.com/apis/mcp— so that is what this plugin ships.
-- Superhuman also accepts a personal access token sent asAuthorization: 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-mcpnpm 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>
| "url": "https://docs.superhuman.com/apis/mcp" | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
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)
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>



Summary
Adds 27 third-party MCP plugins under
third_party/, one commit per plugin. Each ships aplugin.json,mcp.json, README, changelog, license, and logo, and is registered in.cursor-plugin/marketplace.jsonand 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
https://mcp.klaviyo.com/mcphttps://mcp.customer.io/mcphttps://mcp.mailerlite.com/mcphttps://mcp.brevo.com/v1/brevo/mcpForms
https://api.typeform.com/mcphttps://mcp.jotform.comSEO, web and domains
https://mcp.semrush.com/v2/mcphttps://api.ahrefs.com/mcp/mcphttps://mcp.similarweb.comhttps://api.godaddy.com/v1/domains/mcpHiring
https://mcp.upwork.com/mcphttps://mcp.workable.com/mcpFinance
https://api.brex.com/mcphttps://mcp.mercury.com/mcpnpx @xeroapi/xero-mcp-serverWork management
https://ai.todoist.net/mcphttps://mcp.calendly.com/https://mcp.smartsheet.comhttps://mcp.wrike.com/v2https://docs.superhuman.com/apis/mcphttps://mcp.api.getguru.com/mcpMeetings and notes
https://api.fireflies.ai/mcphttps://mcp.otter.ai/mcphttps://api.fathom.ai/mcphttps://mcp.craft.do/my/mcphttps://mcp.mem.ai/mcphttps://mcp2.readwise.io/mcpPlugins that take a setting
Most of these are URL-only: install, sign in, done. Five need a value from the user, declared in
plugin.jsonundervariablesthe same way the existinggithubandsalesforceplugins do.api-keyheader rather thanAuthorizationNotes for review
docs.superhuman.com/apis/mcp, notcoda.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.npx mcp-remote. They ship here as native remote entries instead, which is equivalent and avoids the subprocess."type": "sse". Guru, Wrike, Semrush, Typeform, Customer.io, Workable, and Similarweb all document that they do not serve SSE.Test plan
node scripts/validate-plugins.mjs)