Plugin hooks do not run from the plugin directory, so ./hooks/... paths
fail with exit 127 from any other cwd. Use bash "${CURSOR_PLUGIN_ROOT}/hooks/..."
like continual-learning, which indexes and runs cleanly. Also scopes the
briefing's transcript_path line to the bound conversation, completing the
one-off-consult fix from #314.
Adds an Advisor plugin: the main model consults a stronger model before
major decisions, when stuck on an error, and before declaring a task done.
The advisor gets a full briefing plus the conversation transcript path,
returns a verdict with guidance, and the main model keeps doing the work.
The default advisor is the latest Grok (Grok 4.6) at its highest reasoning
effort; /advisor <model> accepts any model available to subagents.
- skill `advisor`: /advisor [model|off|status|ask ...|nudge on|off],
checkpoint protocol, briefing template, usable as a Custom Mode
- agent `advisor-subagent`: read-only, pinned to grok-4.6[effort=xhigh]
- hooks: track edits since the last consult, log consults to
.cursor/advisor/log.md, nudge a pre-completion consult once per batch
of edits; state is bound to the conversation that enabled it
- registered in marketplace.json and the root README
* feat(pstack): reference plugin logo and bump to 0.14.7
Add "logo": "assets/logo.png" to the pstack manifest, matching the
relative-path style used by google-calendar and thermos, and bump the
patch version 0.14.6 -> 0.14.7.
The pstack/assets/logo.png file itself is added in a follow-up commit;
the image attachment did not reach the agent VM in this run.
Co-authored-by: lauren <poteto@users.noreply.github.com>
* feat(pstack): add plugin logo.png
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
New plugin, separate from the existing X plugin, pointing at X's hosted
ads MCP server (https://ads-api.x.com/mcp). Auth is per protected
resource: ads-api.x.com advertises its own OAuth metadata and scopes
(ads.read, ads.write), so it cannot share the X plugin's authorization
even though it reuses the same OAuth client ID.
Co-authored-by: Cursor <cursoragent@cursor.com>
Congrats only on just-connected, $0 remaining wins over leftover free_balance, and a missing get_usage_credits tool is an outage not account-not-ready.
Co-authored-by: Cursor <cursoragent@cursor.com>
On connect, fetch credits, congratulate without a gift amount, and always state remaining balance. Treat connected-but-no-tools as account-not-ready, 503s as an X outage, and never sign in via browser or Bearer tokens.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>