@stigmer/plugin-package 3.35.0 → 3.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/client/archive.d.ts.map +1 -1
  2. package/client/archive.js.map +1 -1
  3. package/client/builtin.d.ts.map +1 -1
  4. package/client/builtin.js.map +1 -1
  5. package/client/ignore/defaults.d.ts.map +1 -1
  6. package/client/ignore/defaults.js.map +1 -1
  7. package/client/ignore/match.d.ts.map +1 -1
  8. package/client/ignore/match.js.map +1 -1
  9. package/client/ignore/matcher.d.ts.map +1 -1
  10. package/client/ignore/matcher.js.map +1 -1
  11. package/client/ignore/pattern.d.ts.map +1 -1
  12. package/client/ignore/pattern.js.map +1 -1
  13. package/client/prepare.d.ts.map +1 -1
  14. package/client/prepare.js.map +1 -1
  15. package/client/presentation.d.ts.map +1 -1
  16. package/client/presentation.js.map +1 -1
  17. package/client/refs.d.ts.map +1 -1
  18. package/client/refs.js.map +1 -1
  19. package/client/release.d.ts.map +1 -1
  20. package/client/release.js.map +1 -1
  21. package/client/reroot.d.ts.map +1 -1
  22. package/client/reroot.js.map +1 -1
  23. package/client/select.d.ts.map +1 -1
  24. package/client/select.js.map +1 -1
  25. package/client/vocabulary.d.ts.map +1 -1
  26. package/client/vocabulary.js.map +1 -1
  27. package/client.d.ts.map +1 -1
  28. package/client.js.map +1 -1
  29. package/detect.d.ts.map +1 -1
  30. package/detect.js.map +1 -1
  31. package/dialects/claude.d.ts.map +1 -1
  32. package/dialects/claude.js.map +1 -1
  33. package/dialects/codex.d.ts.map +1 -1
  34. package/dialects/codex.js.map +1 -1
  35. package/dialects/cursor.d.ts.map +1 -1
  36. package/dialects/cursor.js.map +1 -1
  37. package/dialects/manifest.d.ts.map +1 -1
  38. package/dialects/manifest.js.map +1 -1
  39. package/dialects/open.d.ts.map +1 -1
  40. package/dialects/open.js.map +1 -1
  41. package/documents.d.ts.map +1 -1
  42. package/documents.js.map +1 -1
  43. package/files.d.ts.map +1 -1
  44. package/files.js.map +1 -1
  45. package/frontmatter.d.ts.map +1 -1
  46. package/frontmatter.js.map +1 -1
  47. package/index.d.ts.map +1 -1
  48. package/index.js.map +1 -1
  49. package/marketplace/messages.d.ts.map +1 -1
  50. package/marketplace/messages.js.map +1 -1
  51. package/marketplace/outcome.d.ts.map +1 -1
  52. package/marketplace/outcome.js.map +1 -1
  53. package/marketplace/read-marketplace.d.ts.map +1 -1
  54. package/marketplace/read-marketplace.js.map +1 -1
  55. package/messages.d.ts.map +1 -1
  56. package/messages.js.map +1 -1
  57. package/normalise/ignored.d.ts.map +1 -1
  58. package/normalise/ignored.js.map +1 -1
  59. package/normalise/mcp-servers.d.ts.map +1 -1
  60. package/normalise/mcp-servers.js.map +1 -1
  61. package/normalise/overlay.d.ts.map +1 -1
  62. package/normalise/overlay.js.map +1 -1
  63. package/normalise/skills.d.ts.map +1 -1
  64. package/normalise/skills.js.map +1 -1
  65. package/normalise/sub-agents.d.ts.map +1 -1
  66. package/normalise/sub-agents.js.map +1 -1
  67. package/normalise/variables.d.ts.map +1 -1
  68. package/normalise/variables.js.map +1 -1
  69. package/outcome.d.ts.map +1 -1
  70. package/outcome.js.map +1 -1
  71. package/package.json +1 -1
  72. package/placeholders.d.ts.map +1 -1
  73. package/placeholders.js.map +1 -1
  74. package/presentation.d.ts.map +1 -1
  75. package/presentation.js.map +1 -1
  76. package/read-plugin-package.d.ts.map +1 -1
  77. package/read-plugin-package.js.map +1 -1
  78. package/testing.d.ts.map +1 -1
  79. package/testing.js.map +1 -1
  80. package/types.d.ts.map +1 -1
  81. package/types.js.map +1 -1
  82. package/src/__test-utils__/directory-files.ts +0 -29
  83. package/src/__test-utils__/read.ts +0 -55
  84. package/src/__tests__/adversarial.test.ts +0 -434
  85. package/src/__tests__/client-ignore.test.ts +0 -133
  86. package/src/__tests__/client-prepare.test.ts +0 -163
  87. package/src/__tests__/client-refs.test.ts +0 -101
  88. package/src/__tests__/client-select-archive.test.ts +0 -150
  89. package/src/__tests__/detect.test.ts +0 -144
  90. package/src/__tests__/files.test.ts +0 -119
  91. package/src/__tests__/fixtures/cursor-plugins/.cursor-plugin/marketplace.json +0 -412
  92. package/src/__tests__/fixtures/cursor-plugins/NOTICE +0 -27
  93. package/src/__tests__/fixtures/cursor-plugins/advisor/.cursor-plugin/plugin.json +0 -33
  94. package/src/__tests__/fixtures/cursor-plugins/advisor/CHANGELOG.md +0 -8
  95. package/src/__tests__/fixtures/cursor-plugins/advisor/LICENSE +0 -21
  96. package/src/__tests__/fixtures/cursor-plugins/advisor/README.md +0 -87
  97. package/src/__tests__/fixtures/cursor-plugins/advisor/agents/advisor-subagent.md +0 -48
  98. package/src/__tests__/fixtures/cursor-plugins/advisor/assets/avatar.png +0 -0
  99. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/capture-response.sh +0 -20
  100. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/hooks.json +0 -27
  101. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/lib.sh +0 -61
  102. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/mark-pending.sh +0 -27
  103. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/record-consult.sh +0 -41
  104. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/stop-hook.sh +0 -48
  105. package/src/__tests__/fixtures/cursor-plugins/advisor/skills/advisor/SKILL.md +0 -123
  106. package/src/__tests__/fixtures/cursor-plugins/advisor/skills/advisor/references/briefing-template.md +0 -44
  107. package/src/__tests__/fixtures/cursor-plugins/github/.cursor-plugin/plugin.json +0 -45
  108. package/src/__tests__/fixtures/cursor-plugins/github/CHANGELOG.md +0 -9
  109. package/src/__tests__/fixtures/cursor-plugins/github/LICENSE +0 -21
  110. package/src/__tests__/fixtures/cursor-plugins/github/README.md +0 -64
  111. package/src/__tests__/fixtures/cursor-plugins/github/assets/logo.svg +0 -0
  112. package/src/__tests__/fixtures/cursor-plugins/github/mcp.json +0 -11
  113. package/src/__tests__/fixtures/cursor-plugins/playwright/.cursor-plugin/plugin.json +0 -35
  114. package/src/__tests__/fixtures/cursor-plugins/playwright/CHANGELOG.md +0 -8
  115. package/src/__tests__/fixtures/cursor-plugins/playwright/LICENSE +0 -21
  116. package/src/__tests__/fixtures/cursor-plugins/playwright/README.md +0 -46
  117. package/src/__tests__/fixtures/cursor-plugins/playwright/assets/logo.svg +0 -0
  118. package/src/__tests__/fixtures/cursor-plugins/playwright/mcp.json +0 -8
  119. package/src/__tests__/fixtures/cursor-plugins/salesforce/.cursor-plugin/plugin.json +0 -48
  120. package/src/__tests__/fixtures/cursor-plugins/salesforce/CHANGELOG.md +0 -10
  121. package/src/__tests__/fixtures/cursor-plugins/salesforce/LICENSE +0 -21
  122. package/src/__tests__/fixtures/cursor-plugins/salesforce/README.md +0 -95
  123. package/src/__tests__/fixtures/cursor-plugins/salesforce/assets/logo.svg +0 -0
  124. package/src/__tests__/fixtures/cursor-plugins/salesforce/mcp.json +0 -12
  125. package/src/__tests__/fixtures/cursor-plugins/thermos/.cursor-plugin/plugin.json +0 -32
  126. package/src/__tests__/fixtures/cursor-plugins/thermos/CHANGELOG.md +0 -8
  127. package/src/__tests__/fixtures/cursor-plugins/thermos/LICENSE +0 -21
  128. package/src/__tests__/fixtures/cursor-plugins/thermos/README.md +0 -70
  129. package/src/__tests__/fixtures/cursor-plugins/thermos/agents/thermo-nuclear-code-quality-review-subagent.md +0 -23
  130. package/src/__tests__/fixtures/cursor-plugins/thermos/agents/thermo-nuclear-review-subagent.md +0 -28
  131. package/src/__tests__/fixtures/cursor-plugins/thermos/assets/logo.png +0 -0
  132. package/src/__tests__/fixtures/cursor-plugins/thermos/skills/thermo-nuclear-code-quality-review/SKILL.md +0 -192
  133. package/src/__tests__/fixtures/cursor-plugins/thermos/skills/thermo-nuclear-review/SKILL.md +0 -51
  134. package/src/__tests__/fixtures/cursor-plugins/thermos/skills/thermos/SKILL.md +0 -21
  135. package/src/__tests__/fixtures/cursor-plugins/xero/.cursor-plugin/plugin.json +0 -53
  136. package/src/__tests__/fixtures/cursor-plugins/xero/CHANGELOG.md +0 -9
  137. package/src/__tests__/fixtures/cursor-plugins/xero/LICENSE +0 -21
  138. package/src/__tests__/fixtures/cursor-plugins/xero/README.md +0 -79
  139. package/src/__tests__/fixtures/cursor-plugins/xero/assets/logo.png +0 -0
  140. package/src/__tests__/fixtures/cursor-plugins/xero/mcp.json +0 -16
  141. package/src/__tests__/fixtures.test.ts +0 -198
  142. package/src/__tests__/marketplace.test.ts +0 -378
  143. package/src/__tests__/mcp-servers.test.ts +0 -120
  144. package/src/__tests__/overlay-and-ignored.test.ts +0 -65
  145. package/src/__tests__/presentation.test.ts +0 -186
  146. package/src/__tests__/skills.test.ts +0 -89
  147. package/src/__tests__/sub-agents.test.ts +0 -111
  148. package/src/__tests__/variables.test.ts +0 -94
@@ -1,64 +0,0 @@
1
- # GitHub
2
-
3
- Cursor plugin that connects agents to [GitHub](https://github.com) through GitHub's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server.
4
-
5
- Work with repositories, issues, pull requests, code search, and Actions under the permissions of a personal access token you provide.
6
-
7
- ## Install
8
-
9
- 1. Open **Cursor Settings → Plugins**.
10
- 2. Search for **GitHub**.
11
- 3. Click **Install**, then set your GitHub personal access token (below).
12
-
13
- Or run `/add-plugin github` in chat.
14
-
15
- ## MCP
16
-
17
- ```json
18
- {
19
- "mcpServers": {
20
- "github": {
21
- "type": "http",
22
- "url": "https://api.githubcopilot.com/mcp/",
23
- "headers": {
24
- "Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
25
- }
26
- }
27
- }
28
- }
29
- ```
30
-
31
- ## Setup
32
-
33
- GitHub's remote MCP server authenticates with a **personal access token (PAT)**. Create one, then paste it into the plugin config.
34
-
35
- ### 1. Create a personal access token
36
-
37
- 1. Open https://github.com/settings/tokens.
38
- 2. Create either a **fine-grained** token or a **classic** token.
39
- 3. Grant only the scopes the agent needs. Typical choices:
40
- - **Repositories / contents** — read or write code and files
41
- - **Issues** — list, create, and update issues
42
- - **Pull requests** — list, review, and manage PRs
43
- - **Actions** — inspect workflow runs (if you want CI access)
44
- - **Metadata** — always required on fine-grained tokens
45
- 4. Set an expiration you are comfortable with, then generate and copy the token.
46
-
47
- Prefer a fine-grained token scoped to specific repositories when that is enough. Classic tokens with `repo` are broader and should be treated carefully.
48
-
49
- ### 2. Configure the plugin
50
-
51
- In **Dashboard → Plugins → Configure**, set **GitHub personal access token** to the value you just created.
52
-
53
- Tool calls run with that token's permissions. Rotate or revoke the token from GitHub Settings if it is ever exposed.
54
-
55
- ## Docs
56
-
57
- - Use the GitHub MCP server: https://docs.github.com/en/copilot/how-tos/context/use-mcp/use-the-github-mcp-server
58
- - Managing personal access tokens: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
59
-
60
- Logo is GitHub's official Octocat mark, placed on a white tile with padding so it reads well in the Cursor UI.
61
-
62
- ## License
63
-
64
- MIT
@@ -1,11 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "github": {
4
- "type": "http",
5
- "url": "https://api.githubcopilot.com/mcp/",
6
- "headers": {
7
- "Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
8
- }
9
- }
10
- }
11
- }
@@ -1,35 +0,0 @@
1
- {
2
- "name": "playwright",
3
- "displayName": "Playwright",
4
- "version": "1.0.0",
5
- "minClientVersions": {
6
- "cursor": "3.13.0"
7
- },
8
- "description": "Navigate, click, screenshot, and test in a real browser.",
9
- "author": {
10
- "name": "Cursor",
11
- "email": "plugins@cursor.com"
12
- },
13
- "homepage": "https://github.com/microsoft/playwright-mcp",
14
- "repository": "https://github.com/cursor/plugins",
15
- "license": "MIT",
16
- "logo": "assets/logo.svg",
17
- "keywords": [
18
- "playwright",
19
- "browser",
20
- "automation",
21
- "testing",
22
- "e2e",
23
- "mcp"
24
- ],
25
- "category": "integrations",
26
- "tags": [
27
- "playwright",
28
- "browser",
29
- "automation",
30
- "testing",
31
- "e2e",
32
- "mcp"
33
- ],
34
- "mcpServers": "./mcp.json"
35
- }
@@ -1,8 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this plugin will be documented here.
4
-
5
- ## 1.0.0 — initial release
6
-
7
- - Logo: Microsoft's official Playwright mark from playwright.dev, on a padded white tile.
8
- - Added the `playwright` MCP server launched via `npx -y @playwright/mcp@latest`.
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Cursor
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,46 +0,0 @@
1
- # Playwright
2
-
3
- Cursor plugin that connects agents to a real browser through Microsoft's [Playwright MCP](https://github.com/microsoft/playwright-mcp) server.
4
-
5
- Navigate pages, click and fill elements, take accessibility snapshots and screenshots, and run end-to-end checks from chat.
6
-
7
- ## Install
8
-
9
- 1. Open **Cursor Settings → Plugins**.
10
- 2. Search for **Playwright**.
11
- 3. Click **Install**.
12
-
13
- Or run `/add-plugin playwright` in chat.
14
-
15
- ## Requirements
16
-
17
- This is a **local stdio** MCP server. Cursor launches it with `npx -y @playwright/mcp@latest`, so the machine running Cursor needs **Node.js** installed and on `PATH`. The `-y` flag skips `npx`'s install confirmation so the first launch cannot hang waiting for interactive input over stdio.
18
-
19
- The first run downloads Playwright's browser binaries. That can take a minute and needs network access; later runs reuse the cached browsers.
20
-
21
- ## MCP
22
-
23
- ```json
24
- {
25
- "mcpServers": {
26
- "playwright": {
27
- "command": "npx",
28
- "args": ["-y", "@playwright/mcp@latest"]
29
- }
30
- }
31
- }
32
- ```
33
-
34
- No credentials are required. The server runs locally and drives a browser on the same machine.
35
-
36
- ## Docs
37
-
38
- - Playwright MCP: https://github.com/microsoft/playwright-mcp
39
- - Playwright: https://playwright.dev
40
-
41
- Logo is Microsoft's official Playwright mark from the Playwright website, placed on a white tile with padding so it reads well in the Cursor UI:
42
- https://github.com/microsoft/playwright.dev/blob/main/static/img/playwright-logo.svg
43
-
44
- ## License
45
-
46
- MIT
@@ -1,8 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "playwright": {
4
- "command": "npx",
5
- "args": ["-y", "@playwright/mcp@latest"]
6
- }
7
- }
8
- }
@@ -1,48 +0,0 @@
1
- {
2
- "name": "salesforce",
3
- "displayName": "Salesforce",
4
- "version": "1.0.0",
5
- "description": "Query, create, and update records in your org.",
6
- "author": {
7
- "name": "Cursor",
8
- "email": "plugins@cursor.com"
9
- },
10
- "homepage": "https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/cursor.html",
11
- "repository": "https://github.com/cursor/plugins",
12
- "license": "MIT",
13
- "logo": "assets/logo.svg",
14
- "keywords": [
15
- "salesforce",
16
- "crm",
17
- "mcp",
18
- "sales",
19
- "soql",
20
- "sobject"
21
- ],
22
- "category": "integrations",
23
- "tags": [
24
- "mcp",
25
- "crm",
26
- "sales"
27
- ],
28
- "variables": {
29
- "type": "object",
30
- "properties": {
31
- "SALESFORCE_MCP_URL": {
32
- "type": "string",
33
- "title": "Salesforce MCP server URL",
34
- "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. For custom servers, replace platform/ with custom/."
35
- },
36
- "CLIENT_ID": {
37
- "type": "string",
38
- "title": "Salesforce Consumer Key",
39
- "description": "Consumer Key of the External Client App you created for this integration (Setup → External Client App Manager → your app → Settings → Consumer Key and Secret)."
40
- }
41
- },
42
- "required": [
43
- "SALESFORCE_MCP_URL",
44
- "CLIENT_ID"
45
- ]
46
- },
47
- "mcpServers": "./mcp.json"
48
- }
@@ -1,10 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this plugin will be documented here.
4
-
5
- ## 1.0.0 — initial release
6
-
7
- - Logo: Salesforce's official cloud mark, centered on a transparent 192×192 canvas with padding so it reads well on light and dark backgrounds.
8
- - Added the `salesforce` MCP server backed by Salesforce Hosted MCP.
9
- - Declared `SALESFORCE_MCP_URL` and `CLIENT_ID` plugin variables so each org can point at its own server and External Client App.
10
- - Pinned OAuth scopes to `mcp_api` and `refresh_token`.
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Cursor
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,95 +0,0 @@
1
- # Salesforce
2
-
3
- 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.
4
-
5
- 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.
6
-
7
- ## Install
8
-
9
- 1. Open **Cursor Settings → Plugins**.
10
- 2. Search for **Salesforce**.
11
- 3. Click **Install**, then set the server URL and consumer key (below) and complete the Salesforce sign-in prompt.
12
-
13
- Or run `/add-plugin salesforce` in chat.
14
-
15
- ## MCP
16
-
17
- ```json
18
- {
19
- "mcpServers": {
20
- "salesforce": {
21
- "type": "http",
22
- "url": "${SALESFORCE_MCP_URL}",
23
- "auth": {
24
- "CLIENT_ID": "${CLIENT_ID}",
25
- "scopes": ["mcp_api", "refresh_token"]
26
- }
27
- }
28
- }
29
- }
30
- ```
31
-
32
- ## Setup
33
-
34
- Salesforce Hosted MCP requires an **External Client App** in your org. Connected Apps are not supported.
35
-
36
- ### 1. Create the External Client App
37
-
38
- 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**.
39
-
40
- Add every callback URL you need — Cursor uses different ones per surface:
41
-
42
- | Surface | Callback URL |
43
- |:--------|:-------------|
44
- | Desktop | `http://localhost:8787/callback` |
45
- | Web and Cloud Agents | `https://www.cursor.com/agents/mcp/oauth/callback` |
46
- | Older desktop builds | `cursor://anysphere.cursor-mcp/oauth/callback` |
47
-
48
- Under **OAuth Scopes**, select exactly these two and nothing broader:
49
-
50
- - **Access Salesforce hosted MCP servers** (`mcp_api`)
51
- - **Perform requests at any time** (`refresh_token`, `offline_access`)
52
-
53
- 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.
54
-
55
- 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.
56
-
57
- Finally, copy the **Consumer Key** from **Settings → Consumer Key and Secret**.
58
-
59
- 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.
60
-
61
- ### 2. Activate a server and copy its URL
62
-
63
- 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:
64
-
65
- | Org type | Standard server | Custom server |
66
- |:---------|:----------------|:--------------|
67
- | Production, Developer, Enterprise | `https://api.salesforce.com/platform/mcp/v1/platform/sobject-all` | `https://api.salesforce.com/platform/mcp/v1/custom/myserver` |
68
- | Sandbox or scratch | `https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-all` | `https://api.salesforce.com/platform/mcp/v1/sandbox/custom/myserver` |
69
-
70
- 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.
71
-
72
- ### 3. Configure the plugin
73
-
74
- In **Dashboard → Plugins → Configure**, set **Salesforce MCP server URL** and **Salesforce Consumer Key**, then complete the Salesforce login when Cursor prompts.
75
-
76
- 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.
77
-
78
- ## Troubleshooting
79
-
80
- | Symptom | Cause |
81
- |:--------|:------|
82
- | `invalid_client_id` | The External Client App has not finished propagating. Wait up to 30 minutes. |
83
- | `invalid_scope` | The app is missing **Access Salesforce hosted MCP servers** or **Perform requests at any time**. |
84
- | `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. |
85
- | 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. |
86
-
87
- ## Docs
88
-
89
- - Configure Cursor: https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/cursor.html
90
- - Create an External Client App: https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/create-external-client-app.html
91
- - Available servers: https://developer.salesforce.com/docs/platform/hosted-mcp-servers/references/reference/sobject-all.html
92
-
93
- ## License
94
-
95
- MIT
@@ -1,12 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "salesforce": {
4
- "type": "http",
5
- "url": "${SALESFORCE_MCP_URL}",
6
- "auth": {
7
- "CLIENT_ID": "${CLIENT_ID}",
8
- "scopes": ["mcp_api", "refresh_token"]
9
- }
10
- }
11
- }
12
- }
@@ -1,32 +0,0 @@
1
- {
2
- "name": "thermos",
3
- "displayName": "Thermos",
4
- "version": "1.0.0",
5
- "description": "Thermo-nuclear branch review: deep correctness and security audits plus harsh code-quality rubrics, parallel subagents, thermos orchestration, and optional take-the-wheel and FSD merge-ready flows.",
6
- "author": {
7
- "name": "Cursor",
8
- "email": "plugins@cursor.com"
9
- },
10
- "homepage": "https://github.com/cursor/plugins",
11
- "repository": "https://github.com/cursor/plugins",
12
- "license": "MIT",
13
- "logo": "assets/logo.png",
14
- "keywords": [
15
- "thermos",
16
- "thermo-nuclear",
17
- "code-review",
18
- "deep-review",
19
- "code-quality",
20
- "security-review",
21
- "subagents"
22
- ],
23
- "category": "developer-tools",
24
- "tags": [
25
- "review",
26
- "quality",
27
- "shipping",
28
- "automation"
29
- ],
30
- "skills": "./skills/",
31
- "agents": "./agents/"
32
- }
@@ -1,8 +0,0 @@
1
- # Changelog
2
-
3
- ## 1.0.0
4
-
5
- - Initial Thermos plugin release.
6
- - Skills: `thermo-nuclear-review`, `thermo-nuclear-code-quality-review`, `thermos`.
7
- - Agents: `thermo-nuclear-review-subagent`, `thermo-nuclear-code-quality-review-subagent`.
8
- - Architecture diagram embedded as a mermaid block in README.
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Cursor
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,70 +0,0 @@
1
- # Thermos plugin
2
-
3
- Thermo-nuclear branch review for Cursor agents: deep correctness and security audits, harsh maintainability rubrics, and parallel subagent orchestration.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- /add-plugin thermos
9
- ```
10
-
11
- ## Architecture
12
-
13
- ```mermaid
14
- flowchart TB
15
- subgraph L2["Orchestrator"]
16
- TH[thermos]
17
- end
18
-
19
- subgraph L1["Subagents"]
20
- SNR[thermo-nuclear-review-subagent]
21
- SNCQ[thermo-nuclear-code-quality-review-subagent]
22
- end
23
-
24
- DIFF[git diff + file contents]
25
-
26
- subgraph L0["Skills"]
27
- TNR[thermo-nuclear-review]
28
- TNCQ[thermo-nuclear-code-quality-review]
29
- end
30
-
31
- TH --> SNR
32
- TH --> SNCQ
33
- SNR --> TNR
34
- SNR --> DIFF
35
- SNCQ --> TNCQ
36
- SNCQ --> DIFF
37
- ```
38
-
39
- ## Skills
40
-
41
- | Skill | Description |
42
- |:------|:------------|
43
- | `thermo-nuclear-review` | Deep branch audit (bugs, breakages, security, devex, feature-gate leaks). |
44
- | `thermo-nuclear-code-quality-review` | Strict maintainability audit (code-judo, 1k-line rule, spaghetti, boundaries). |
45
- | `thermos` | Run both review subagents in parallel and synthesize findings. |
46
-
47
- ## Agents
48
-
49
- | Agent | Description |
50
- |:------|:------------|
51
- | `thermo-nuclear-review-subagent` | Task subagent for deep review rubric (diff-scoped). |
52
- | `thermo-nuclear-code-quality-review-subagent` | Task subagent for code-quality rubric (diff-scoped). |
53
-
54
- ## Typical usage
55
-
56
- **Double review (thermos):**
57
-
58
- 1. Gather `git diff main...HEAD` and full contents of changed files.
59
- 2. Invoke both subagents in one message with `run_in_background: true`.
60
- 3. Synthesize prioritized, deduped findings.
61
-
62
- **Single skill:** invoke `thermo-nuclear-review` or `thermo-nuclear-code-quality-review` in the main agent, or the matching subagent after gathering diff context.
63
-
64
- ## Migration from cursor-team-kit
65
-
66
- `cursor-team-kit` previously included only `thermo-nuclear-code-quality-review`. That skill and agent now live in **Thermos** alongside deep review and `thermos`. Remove the old thermo entries from team-kit when you install this plugin to avoid duplicates.
67
-
68
- ## License
69
-
70
- MIT
@@ -1,23 +0,0 @@
1
- ---
2
- name: thermo-nuclear-code-quality-review-subagent
3
- description: Thermo-nuclear code quality audit (maintainability, structure, 1k-line rule, spaghetti, code-judo). Invoked via Task after a parent gathers diff and file contents. Loads rubric from the thermo-nuclear-code-quality-review skill in the Thermos plugin.
4
- ---
5
-
6
- # Thermo-Nuclear Code Quality Review
7
-
8
- You are a **Task subagent**. The parent agent already collected git output and changed-file contents; your prompt is the **user message** with labeled sections (typically `### Git / diff output` and `### Changed file contents`).
9
-
10
- ## Rubric
11
-
12
- 1. Load the `thermo-nuclear-code-quality-review` skill (shipped in the Thermos plugin) and treat its `SKILL.md` as the **complete** rubric — tone, approval bar, output ordering, code-judo / 1k-line / spaghetti rules.
13
- 2. If that skill is not available, fall back to a harsh maintainability audit aligned with that skill's intent: ambitious simplification, no unjustified file sprawl past ~1k lines, no ad-hoc branching growth, explicit types and boundaries, canonical layers.
14
-
15
- ## Work
16
-
17
- - Apply the rubric **only** to what the diff and contents show. Trace cross-file impact when the change touches module boundaries.
18
- - Output in the **priority order** the rubric specifies. Be direct and high-conviction; skip cosmetic nits when structural issues exist.
19
- - Do **not** spawn nested subagents unless the user or parent explicitly asks.
20
-
21
- ## Parent orchestration
22
-
23
- Typical flow: in **one** message, run two `Task` calls in parallel — `subagent_type: "shell"` and `subagent_type: "explore"` — to collect `git diff <base>...HEAD` output and full contents of changed files (default base `main`). Then invoke this agent with `subagent_type: "thermo-nuclear-code-quality-review-subagent"` and a user prompt containing `### Git / diff output` and `### Changed file contents`.
@@ -1,28 +0,0 @@
1
- ---
2
- name: thermo-nuclear-review-subagent
3
- description: Thermo-nuclear branch audit (bugs, breaking changes, security, devex, feature-flag leaks) scoped to the diff. Invoked via Task after a parent gathers diff and file contents. Loads rubric from the thermo-nuclear-review skill in the Thermos plugin.
4
- ---
5
-
6
- # Thermo Nuclear Review (Deep review)
7
-
8
- You are a **Task subagent**. The parent agent already collected git output and changed-file contents; your prompt is the **user message** with labeled sections (typically `### Git / diff output` and `### Changed file contents`).
9
-
10
- ## Rubric
11
-
12
- 1. Load the `thermo-nuclear-review` skill (shipped in the Thermos plugin) and follow its `SKILL.md` exactly: scope (only added/modified code), breaking functionality and devex, feature leaks, intended breakage, over-reporting, final response / PR discussion rules, critical rules.
13
- 2. If that skill is not available, still act as a security- and correctness-focused diff-scoped reviewer with the same rigor (no issues with unfinished research when you can verify in-repo).
14
-
15
- ## Work
16
-
17
- 1. Perform the full audit against **only** the changed code in the diff. Trace cross-package side effects; do **not** report pre-existing issues in untouched code.
18
- 2. Finish your **independent** audit first (fresh eyes).
19
- 3. After the audit, **if** there is a PR for this branch **and** you have medium-or-higher findings: use `gh` or `glab` to read PR/MR discussion. Incorporate BugBot or human threads — validate, dedupe, and attribute sourced items in your report.
20
- 4. **Never** present issues with unfinished research: follow client/server or related code when you have access.
21
-
22
- Calibrate severity honestly. Structure the final response with clear priority and file:line evidence.
23
-
24
- Do **not** spawn nested subagents unless the user or parent explicitly asks.
25
-
26
- ## Parent orchestration
27
-
28
- Typical flow: in **one** message, run two `Task` calls in parallel — `subagent_type: "shell"` and `subagent_type: "explore"` — to collect `git diff <base>...HEAD` output and full contents of changed files (default base `main`). Then invoke this agent with `subagent_type: "thermo-nuclear-review-subagent"` and a user prompt containing `### Git / diff output` and `### Changed file contents`.