From 4ce303f2cbc975e850c970c1c03c6eb270f79592 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 6 Aug 2026 16:20:10 +0000 Subject: [PATCH 1/2] Add Playwright and GitHub third-party MCP plugins Wire Microsoft's local Playwright MCP (npx stdio) and GitHub's remote MCP server (PAT auth) into the marketplace, matching existing third_party plugin layout and manifests. Co-authored-by: Sam Sokolin --- .cursor-plugin/marketplace.json | 10 +++ third_party/github/.cursor-plugin/plugin.json | 45 +++++++++++++ third_party/github/CHANGELOG.md | 9 +++ third_party/github/LICENSE | 21 ++++++ third_party/github/README.md | 64 +++++++++++++++++++ third_party/github/assets/logo.svg | 1 + third_party/github/mcp.json | 11 ++++ .../playwright/.cursor-plugin/plugin.json | 35 ++++++++++ third_party/playwright/CHANGELOG.md | 8 +++ third_party/playwright/LICENSE | 21 ++++++ third_party/playwright/README.md | 46 +++++++++++++ third_party/playwright/assets/logo.svg | 9 +++ third_party/playwright/mcp.json | 8 +++ 13 files changed, 288 insertions(+) create mode 100644 third_party/github/.cursor-plugin/plugin.json create mode 100644 third_party/github/CHANGELOG.md create mode 100644 third_party/github/LICENSE create mode 100644 third_party/github/README.md create mode 100644 third_party/github/assets/logo.svg create mode 100644 third_party/github/mcp.json create mode 100644 third_party/playwright/.cursor-plugin/plugin.json create mode 100644 third_party/playwright/CHANGELOG.md create mode 100644 third_party/playwright/LICENSE create mode 100644 third_party/playwright/README.md create mode 100644 third_party/playwright/assets/logo.svg create mode 100644 third_party/playwright/mcp.json 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..f0deb2fe --- /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 @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..8476ae1d --- /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 @playwright/mcp@latest`, so the machine running Cursor needs **Node.js** installed and on `PATH`. + +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": ["@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..259a9591 --- /dev/null +++ b/third_party/playwright/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "playwright": { + "command": "npx", + "args": ["@playwright/mcp@latest"] + } + } +} From c88d00019a5e6835815495450c124ca47709e0e8 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 6 Aug 2026 23:17:38 +0000 Subject: [PATCH 2/2] Pass -y to npx for Playwright MCP Avoid first-launch hangs when npx would otherwise prompt for install confirmation over non-interactive MCP stdio. Co-authored-by: Sam Sokolin --- third_party/playwright/CHANGELOG.md | 2 +- third_party/playwright/README.md | 4 ++-- third_party/playwright/mcp.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/third_party/playwright/CHANGELOG.md b/third_party/playwright/CHANGELOG.md index f0deb2fe..384e79eb 100644 --- a/third_party/playwright/CHANGELOG.md +++ b/third_party/playwright/CHANGELOG.md @@ -5,4 +5,4 @@ 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 @playwright/mcp@latest`. +- Added the `playwright` MCP server launched via `npx -y @playwright/mcp@latest`. diff --git a/third_party/playwright/README.md b/third_party/playwright/README.md index 8476ae1d..c7e57ad9 100644 --- a/third_party/playwright/README.md +++ b/third_party/playwright/README.md @@ -14,7 +14,7 @@ Or run `/add-plugin playwright` in chat. ## Requirements -This is a **local stdio** MCP server. Cursor launches it with `npx @playwright/mcp@latest`, so the machine running Cursor needs **Node.js** installed and on `PATH`. +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. @@ -25,7 +25,7 @@ The first run downloads Playwright's browser binaries. That can take a minute an "mcpServers": { "playwright": { "command": "npx", - "args": ["@playwright/mcp@latest"] + "args": ["-y", "@playwright/mcp@latest"] } } } diff --git a/third_party/playwright/mcp.json b/third_party/playwright/mcp.json index 259a9591..20d34743 100644 --- a/third_party/playwright/mcp.json +++ b/third_party/playwright/mcp.json @@ -2,7 +2,7 @@ "mcpServers": { "playwright": { "command": "npx", - "args": ["@playwright/mcp@latest"] + "args": ["-y", "@playwright/mcp@latest"] } } }