diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json
index bea233fa..8c9fa276 100644
--- a/.cursor-plugin/marketplace.json
+++ b/.cursor-plugin/marketplace.json
@@ -97,6 +97,16 @@
"name": "salesforce",
"source": "third_party/salesforce",
"description": "Connect Cursor to Salesforce via Salesforce Hosted MCP — query, search, create, update, and traverse records in your org."
+ },
+ {
+ "name": "playwright",
+ "source": "third_party/playwright",
+ "description": "Drive a real browser for agents — navigate pages, click and fill elements, take snapshots and screenshots, and run end-to-end checks — via Microsoft's Playwright MCP server."
+ },
+ {
+ "name": "github",
+ "source": "third_party/github",
+ "description": "Connect Cursor to GitHub — repositories, issues, pull requests, code search, and Actions — via GitHub's official remote MCP server."
}
]
}
diff --git a/third_party/github/.cursor-plugin/plugin.json b/third_party/github/.cursor-plugin/plugin.json
new file mode 100644
index 00000000..e23e61bd
--- /dev/null
+++ b/third_party/github/.cursor-plugin/plugin.json
@@ -0,0 +1,45 @@
+{
+ "name": "github",
+ "displayName": "GitHub",
+ "version": "1.0.0",
+ "minClientVersions": {
+ "cursor": "3.13.0"
+ },
+ "description": "Connect Cursor to GitHub — repositories, issues, pull requests, code search, and Actions — via GitHub's official remote MCP server.",
+ "author": {
+ "name": "Cursor",
+ "email": "plugins@cursor.com"
+ },
+ "homepage": "https://docs.github.com/en/copilot/how-tos/context/use-mcp/use-the-github-mcp-server",
+ "repository": "https://github.com/cursor/plugins",
+ "license": "MIT",
+ "logo": "assets/logo.svg",
+ "keywords": [
+ "github",
+ "git",
+ "repositories",
+ "pull-requests",
+ "issues",
+ "actions",
+ "mcp"
+ ],
+ "category": "integrations",
+ "tags": [
+ "github",
+ "git",
+ "mcp",
+ "repositories"
+ ],
+ "variables": {
+ "type": "object",
+ "properties": {
+ "GITHUB_PERSONAL_ACCESS_TOKEN": {
+ "type": "string",
+ "title": "GitHub personal access token",
+ "description": "Fine-grained or classic PAT from https://github.com/settings/tokens with the repo scopes you want the agent to use."
+ }
+ },
+ "required": ["GITHUB_PERSONAL_ACCESS_TOKEN"]
+ },
+ "mcpServers": "./mcp.json"
+}
diff --git a/third_party/github/CHANGELOG.md b/third_party/github/CHANGELOG.md
new file mode 100644
index 00000000..2d8967b5
--- /dev/null
+++ b/third_party/github/CHANGELOG.md
@@ -0,0 +1,9 @@
+# Changelog
+
+All notable changes to this plugin will be documented here.
+
+## 1.0.0 — initial release
+
+- Logo: GitHub's official Octocat mark, on a padded white tile.
+- Added the `github` MCP server pointing at `https://api.githubcopilot.com/mcp/`.
+- Declared `GITHUB_PERSONAL_ACCESS_TOKEN` plugin variable and forwarded it through the Authorization header.
diff --git a/third_party/github/LICENSE b/third_party/github/LICENSE
new file mode 100644
index 00000000..ca2bba77
--- /dev/null
+++ b/third_party/github/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/github/README.md b/third_party/github/README.md
new file mode 100644
index 00000000..38628e92
--- /dev/null
+++ b/third_party/github/README.md
@@ -0,0 +1,64 @@
+# GitHub
+
+Cursor plugin that connects agents to [GitHub](https://github.com) through GitHub's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server.
+
+Work with repositories, issues, pull requests, code search, and Actions under the permissions of a personal access token you provide.
+
+## Install
+
+1. Open **Cursor Settings → Plugins**.
+2. Search for **GitHub**.
+3. Click **Install**, then set your GitHub personal access token (below).
+
+Or run `/add-plugin github` in chat.
+
+## MCP
+
+```json
+{
+ "mcpServers": {
+ "github": {
+ "type": "http",
+ "url": "https://api.githubcopilot.com/mcp/",
+ "headers": {
+ "Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
+ }
+ }
+ }
+}
+```
+
+## Setup
+
+GitHub's remote MCP server authenticates with a **personal access token (PAT)**. Create one, then paste it into the plugin config.
+
+### 1. Create a personal access token
+
+1. Open https://github.com/settings/tokens.
+2. Create either a **fine-grained** token or a **classic** token.
+3. Grant only the scopes the agent needs. Typical choices:
+ - **Repositories / contents** — read or write code and files
+ - **Issues** — list, create, and update issues
+ - **Pull requests** — list, review, and manage PRs
+ - **Actions** — inspect workflow runs (if you want CI access)
+ - **Metadata** — always required on fine-grained tokens
+4. Set an expiration you are comfortable with, then generate and copy the token.
+
+Prefer a fine-grained token scoped to specific repositories when that is enough. Classic tokens with `repo` are broader and should be treated carefully.
+
+### 2. Configure the plugin
+
+In **Dashboard → Plugins → Configure**, set **GitHub personal access token** to the value you just created.
+
+Tool calls run with that token's permissions. Rotate or revoke the token from GitHub Settings if it is ever exposed.
+
+## Docs
+
+- Use the GitHub MCP server: https://docs.github.com/en/copilot/how-tos/context/use-mcp/use-the-github-mcp-server
+- Managing personal access tokens: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
+
+Logo is GitHub's official Octocat mark, placed on a white tile with padding so it reads well in the Cursor UI.
+
+## License
+
+MIT
diff --git a/third_party/github/assets/logo.svg b/third_party/github/assets/logo.svg
new file mode 100644
index 00000000..7efe1a65
--- /dev/null
+++ b/third_party/github/assets/logo.svg
@@ -0,0 +1 @@
+
diff --git a/third_party/github/mcp.json b/third_party/github/mcp.json
new file mode 100644
index 00000000..e2dafb84
--- /dev/null
+++ b/third_party/github/mcp.json
@@ -0,0 +1,11 @@
+{
+ "mcpServers": {
+ "github": {
+ "type": "http",
+ "url": "https://api.githubcopilot.com/mcp/",
+ "headers": {
+ "Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
+ }
+ }
+ }
+}
diff --git a/third_party/playwright/.cursor-plugin/plugin.json b/third_party/playwright/.cursor-plugin/plugin.json
new file mode 100644
index 00000000..13624b91
--- /dev/null
+++ b/third_party/playwright/.cursor-plugin/plugin.json
@@ -0,0 +1,35 @@
+{
+ "name": "playwright",
+ "displayName": "Playwright",
+ "version": "1.0.0",
+ "minClientVersions": {
+ "cursor": "3.13.0"
+ },
+ "description": "Drive a real browser for agents — navigate pages, click and fill elements, take snapshots and screenshots, and run end-to-end checks — via Microsoft's Playwright MCP server.",
+ "author": {
+ "name": "Cursor",
+ "email": "plugins@cursor.com"
+ },
+ "homepage": "https://github.com/microsoft/playwright-mcp",
+ "repository": "https://github.com/cursor/plugins",
+ "license": "MIT",
+ "logo": "assets/logo.svg",
+ "keywords": [
+ "playwright",
+ "browser",
+ "automation",
+ "testing",
+ "e2e",
+ "mcp"
+ ],
+ "category": "integrations",
+ "tags": [
+ "playwright",
+ "browser",
+ "automation",
+ "testing",
+ "e2e",
+ "mcp"
+ ],
+ "mcpServers": "./mcp.json"
+}
diff --git a/third_party/playwright/CHANGELOG.md b/third_party/playwright/CHANGELOG.md
new file mode 100644
index 00000000..384e79eb
--- /dev/null
+++ b/third_party/playwright/CHANGELOG.md
@@ -0,0 +1,8 @@
+# Changelog
+
+All notable changes to this plugin will be documented here.
+
+## 1.0.0 — initial release
+
+- Logo: Microsoft's official Playwright mark from playwright.dev, on a padded white tile.
+- Added the `playwright` MCP server launched via `npx -y @playwright/mcp@latest`.
diff --git a/third_party/playwright/LICENSE b/third_party/playwright/LICENSE
new file mode 100644
index 00000000..ca2bba77
--- /dev/null
+++ b/third_party/playwright/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/playwright/README.md b/third_party/playwright/README.md
new file mode 100644
index 00000000..c7e57ad9
--- /dev/null
+++ b/third_party/playwright/README.md
@@ -0,0 +1,46 @@
+# Playwright
+
+Cursor plugin that connects agents to a real browser through Microsoft's [Playwright MCP](https://github.com/microsoft/playwright-mcp) server.
+
+Navigate pages, click and fill elements, take accessibility snapshots and screenshots, and run end-to-end checks from chat.
+
+## Install
+
+1. Open **Cursor Settings → Plugins**.
+2. Search for **Playwright**.
+3. Click **Install**.
+
+Or run `/add-plugin playwright` in chat.
+
+## Requirements
+
+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.
+
+The first run downloads Playwright's browser binaries. That can take a minute and needs network access; later runs reuse the cached browsers.
+
+## MCP
+
+```json
+{
+ "mcpServers": {
+ "playwright": {
+ "command": "npx",
+ "args": ["-y", "@playwright/mcp@latest"]
+ }
+ }
+}
+```
+
+No credentials are required. The server runs locally and drives a browser on the same machine.
+
+## Docs
+
+- Playwright MCP: https://github.com/microsoft/playwright-mcp
+- Playwright: https://playwright.dev
+
+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:
+https://github.com/microsoft/playwright.dev/blob/main/static/img/playwright-logo.svg
+
+## License
+
+MIT
diff --git a/third_party/playwright/assets/logo.svg b/third_party/playwright/assets/logo.svg
new file mode 100644
index 00000000..4f595fbb
--- /dev/null
+++ b/third_party/playwright/assets/logo.svg
@@ -0,0 +1,9 @@
+
diff --git a/third_party/playwright/mcp.json b/third_party/playwright/mcp.json
new file mode 100644
index 00000000..20d34743
--- /dev/null
+++ b/third_party/playwright/mcp.json
@@ -0,0 +1,8 @@
+{
+ "mcpServers": {
+ "playwright": {
+ "command": "npx",
+ "args": ["-y", "@playwright/mcp@latest"]
+ }
+ }
+}