Implement clipboard permissions support feature

Co-authored-by: pavelfeldman <883973+pavelfeldman@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-08-01 18:56:45 +00:00
parent fc127d5895
commit ce81f556a5
7 changed files with 353 additions and 5 deletions

View File

@@ -0,0 +1,95 @@
# Clipboard Permissions Example
This example demonstrates how to use the new `--permissions` feature to enable clipboard operations without user permission prompts.
## Usage
### Via Command Line Arguments
```json
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--permissions", "clipboard-read,clipboard-write"
]
}
}
}
```
### Via Configuration File
Create a config file `playwright-mcp-config.json`:
```json
{
"browser": {
"permissions": ["clipboard-read", "clipboard-write"]
}
}
```
Then use it:
```json
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--config", "playwright-mcp-config.json"
]
}
}
}
```
### Via Environment Variable
```bash
export PLAYWRIGHT_MCP_PERMISSIONS="clipboard-read,clipboard-write"
```
## Clipboard Operations
Once permissions are granted, you can use clipboard APIs via `browser_evaluate`:
```javascript
// Write to clipboard (no permission prompt)
await browser_evaluate({
function: "() => navigator.clipboard.writeText('Copy this!')"
})
// Read from clipboard (no permission prompt)
await browser_evaluate({
function: "() => navigator.clipboard.readText()"
})
```
## Supported Permissions
You can grant multiple permissions as a comma-separated list:
- `clipboard-read`
- `clipboard-write`
- `geolocation`
- `camera`
- `microphone`
- `notifications`
- And any other [Web API permissions](https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API)
Example with multiple permissions:
```bash
--permissions "clipboard-read,clipboard-write,geolocation,notifications"
```
## Notes
- Permissions are applied when the browser context is created
- The clipboard API requires secure contexts (HTTPS) in production environments
- Some permissions may not be supported in all browsers or may require additional user activation