Puppeteer browser automation server with X11 and Wayland detection for Linux desktops.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add puppeteer-linux --env SENTRY_AUTH='<SENTRY_AUTH>' --env DB_FILENAME='<DB_FILENAME>' --env HOST='<HOST>' --env HTTP_STREAM_PORT='<HTTP_STREAM_PORT>' --env PORT='<PORT>' -- npx ts-node /path/to/index.ts~/.codex/config.toml
[mcp_servers.puppeteer-linux]
command = "npx"
args = ["ts-node", "/path/to/index.ts"]
env = { SENTRY_AUTH = "<SENTRY_AUTH>", DB_FILENAME = "<DB_FILENAME>", HOST = "<HOST>", HTTP_STREAM_PORT = "<HTTP_STREAM_PORT>", PORT = "<PORT>" }
# codex mcp add puppeteer-linux --env SENTRY_AUTH='<SENTRY_AUTH>' --env DB_FILENAME='<DB_FILENAME>' --env HOST='<HOST>' --env HTTP_STREAM_PORT='<HTTP_STREAM_PORT>' --env PORT='<PORT>' -- npx ts-node /path/to/index.ts~/.cursor/mcp.json
{
"mcpServers": {
"puppeteer-linux": {
"command": "npx",
"args": [
"ts-node",
"/path/to/index.ts"
],
"env": {
"SENTRY_AUTH": "<SENTRY_AUTH>",
"DB_FILENAME": "<DB_FILENAME>",
"HOST": "<HOST>",
"HTTP_STREAM_PORT": "<HTTP_STREAM_PORT>",
"PORT": "<PORT>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"puppeteer-linux": {
"type": "stdio",
"command": "npx",
"args": [
"ts-node",
"/path/to/index.ts"
],
"env": {
"SENTRY_AUTH": "<SENTRY_AUTH>",
"DB_FILENAME": "<DB_FILENAME>",
"HOST": "<HOST>",
"HTTP_STREAM_PORT": "<HTTP_STREAM_PORT>",
"PORT": "<PORT>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"puppeteer-linux": {
"command": "npx",
"args": [
"ts-node",
"/path/to/index.ts"
],
"env": {
"SENTRY_AUTH": "<SENTRY_AUTH>",
"DB_FILENAME": "<DB_FILENAME>",
"HOST": "<HOST>",
"HTTP_STREAM_PORT": "<HTTP_STREAM_PORT>",
"PORT": "<PORT>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"puppeteer-linux": {
"command": "npx",
"args": [
"ts-node",
"/path/to/index.ts"
],
"env": {
"SENTRY_AUTH": "<SENTRY_AUTH>",
"DB_FILENAME": "<DB_FILENAME>",
"HOST": "<HOST>",
"HTTP_STREAM_PORT": "<HTTP_STREAM_PORT>",
"PORT": "<PORT>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"puppeteer-linux": {
"command": "npx",
"args": [
"ts-node",
"/path/to/index.ts"
],
"env": {
"SENTRY_AUTH": "<SENTRY_AUTH>",
"DB_FILENAME": "<DB_FILENAME>",
"HOST": "<HOST>",
"HTTP_STREAM_PORT": "<HTTP_STREAM_PORT>",
"PORT": "<PORT>"
}
}
}
}Environment variables
SENTRY_AUTHDB_FILENAMEHOSTHTTP_STREAM_PORTPORT
Replace the placeholders with your own credentials and keep them out of version control.