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"] + } + } +}