Browser Use
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
作者による説明(英語の原文)
Remote Linux boxes for coding agents: Docker, a browser, screenshots, logs, human takeover.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
PARALLELSANDBOX_API_KEY, PSBX_TOOL_TIMEOUT_SEC, Authorization「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"parallelsandbox": {
"command": "npx",
"args": [
"-y",
"parallelsandbox-mcp"
],
"env": {
"PARALLELSANDBOX_API_KEY": "your-value",
"PSBX_TOOL_TIMEOUT_SEC": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http parallelsandbox https://mcp.parallelsandbox.com/mcp --header 'Authorization: your-value'claude mcp add parallelsandbox --env PARALLELSANDBOX_API_KEY=your-value --env PSBX_TOOL_TIMEOUT_SEC=your-value -- npx -y parallelsandbox-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"parallelsandbox": {
"url": "https://mcp.parallelsandbox.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"parallelsandbox": {
"command": "npx",
"args": [
"-y",
"parallelsandbox-mcp"
],
"env": {
"PARALLELSANDBOX_API_KEY": "your-value",
"PSBX_TOOL_TIMEOUT_SEC": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"parallelsandbox": {
"type": "http",
"url": "https://mcp.parallelsandbox.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"parallelsandbox": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"parallelsandbox-mcp"
],
"env": {
"PARALLELSANDBOX_API_KEY": "your-value",
"PSBX_TOOL_TIMEOUT_SEC": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
PSBX_TOOL_TIMEOUT_SEC envAuthorization 秘密 必須 HTTP headerこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーは、ツール一覧を表示する前にサインインを求めます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン parallelsandbox.com で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
404ミリ秒で応答(HTTP 401)
OAuthでのサインインに対応しているため、AIアプリがログイン画面へ案内してくれます
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:PARALLELSANDBOX_API_KEY, Authorization
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.19)がレジストリに届いたのは昨日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Browser Use, Chrome DevTools MCP, MCP Server Browser
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
MCP server for Chrome DevTools
MCP server for browser use access
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
stdio adapter for the ParallelSandbox MCP server. It exposes the same tools as https://mcp.parallelsandbox.com/mcp (sandbox_*, logs_*), signing in with OAuth, and implements sandbox_sync and sandbox_pull locally: an agent can upload its working directory into a box without committing, and write files from the box back to its machine. Version 0.4.0 and later opens the browser to sign in and allow the connection. No API key is needed.
npx -y parallelsandbox-mcp
Claude Code:
claude mcp add parallelsandbox -- npx -y parallelsandbox-mcp
Any other MCP client: run the command above as a stdio server.
The first connection starts immediately, then opens the browser for OAuth. Until sign-in finishes, the parallelsandbox_connect tool returns the sign-in link. Afterwards the adapter announces its sandbox and log tools; clients that do not reload tool lists need to reconnect once. Call parallelsandbox_connect again to check status or retry a cancelled sign-in. Sign-in waits five minutes before a retry is needed.
The token file lives in ~/.parallelsandbox, separately for each MCP endpoint, with mode 0600. Multiple conversations share this sign-in and serialize refreshes with a file lock. A lost refresh response requires a new sign-in so a used refresh token is never replayed. Existing PARALLELSANDBOX_API_KEY configurations continue to work.
If you never need sandbox_sync or sandbox_pull, skip this package and connect directly over HTTP, signing in with OAuth (run /mcp in Claude Code afterwards; no key needed). Over plain HTTP those two tools return an error, because they read and write files on your machine:
claude mcp add --transport http parallelsandbox https://mcp.parallelsandbox.com/mcp
| Variable | Default | Purpose |
|---|---|---|
PARALLELSANDBOX_API_KEY | unset | Optional existing API key; skips OAuth |
PARALLELSANDBOX_AUTH_DIR | ~/.parallelsandbox | OAuth token files and locks |
PARALLELSANDBOX_NO_BROWSER | unset | Set to 1 to get the sign-in link without opening a browser |
PARALLELSANDBOX_MCP_URL | https://mcp.parallelsandbox.com/mcp | MCP endpoint |
PARALLELSANDBOX_API_URL | https://api.parallelsandbox.com | REST base used by sandbox_sync |
PSBX_TOOL_TIMEOUT_SEC | 60 | The MCP host’s configured absolute tool deadline in seconds; used to declare a safe review wait (default 25 seconds, maximum 1800) |
PSBX_ADAPTER_SILENCE_MS | 75000 | How long a call's connection may stay silent before the adapter gives up on it (see Timeouts) |
PSBX_FEEDBACK_HOST | unset | Development feedback bridge: claude-code or codex; ordinary MCP connections remain unchanged |
PSBX_CODEX_CLI | host codex process | Absolute codex executable used for codex queue feedback delivery (and for an explicitly paired App Server) |
PSBX_FEEDBACK_DIR | ~/.cache/parallelsandbox/feedback | Feedback tickets, mailboxes and relay state |
PSBX_HOOK_HOLD_SEC | 1200 | How long Cursor's and Gemini CLI's end-of-turn hook waits right after a review is requested |
PSBX_CODEX_HOST_SOCKET | unset | Absolute path to that existing App Server's private control socket; Desktop IPC is unsupported |
PSBX_CODEX_FEEDBACK_DIR | ~/.cache/parallelsandbox/codex-feedback | Private binding tickets shared by the Codex hook and adapter |
When using a dev endpoint, set both PARALLELSANDBOX_MCP_URL and PARALLELSANDBOX_API_URL to its dev addresses.
{"id": " ", "localPath": "/abs/path/to/repo", "dest": "repo"} syncs localPath into /work/ on the box. dest is relative to /work (repo, not /work/repo; a leading /work/ is dropped and any other absolute path is refused before anything is uploaded). Pass an absolute path: a relative one resolves against this adapter's working directory (where your MCP client started it), which is not necessarily the agent's. In a git working tree it takes the tracked files plus the untracked files .gitignore does not exclude, asks the box which of them differ from what is already in dest, and uploads only those, so syncing after an edit sends just that edit. A file changed inside the box counts as different and gets the local version back, unless an "exclude" glob covers it (["capacitor.config.ts", "renderer/dist-win"]: such paths are neither sent nor compared, and the box's copy is never listed as stale or pruned). Outside git, and with commit, it compares and sends only the differences the same way; outside git it takes every file except node_modules, .git, dist, build, coverage, .venv and similar. No .git is sent.
A sync that would send more than 100 MB (size on disk) sends nothing and lists the largest folders; raise the limit with "maxMB" when that size is expected. "dryRun": true compares with the box and reports what would be sent without sending or deleting anything. While it runs, the adapter reports progress every 10 seconds (hashing, comparing, megabytes uploaded) to clients that ask for progress. An upload that fails with fetch failed, a reset connection or HTTP 502/504 is sent once more, and notes says so; one where nothing moves for two minutes, or the box does not answer within ten minutes of receiving everything, fails with a message naming that step.
The result says what happened: sentPaths (the first 50 files sent; sentFiles is the count), changedOnBox (files the box actually rewrote), remotePath, and in a working tree uncommitted, the paths that differ from HEAD. If other sessions share the checkout, those may be their unfinished work: pass "commit": "HEAD" with "alsoPaths" listing your own files instead. commit takes any revision and fails if it does not exist. Without commit, alsoPaths sends only those paths.
Files deleted or renamed locally stay in the box and are listed in staleInDest, leaving out paths your ignore rules skip (node_modules, build output, .env). "prune": true deletes them. A single file in localPath lands at dest itself ("dest": "renderer/.env" writes /work/renderer/.env), unless dest ends in / or is already a folder in the box.
node_modules is never sent, so notes (and deps) say when a folder with a package-lock.json, pnpm-lock.yaml or yarn.lock has no node_modules in the box, or, for npm, one whose installed packages differ from the lockfile, with the command to run there. On the first sync into a dest, notes also lists build settings the ignore rules kept out (tsconfig.json, .env.local) and says how to send them, and a gradlew, mvnw or *.sh script starting with #! that lacks the executable bit is pointed out whenever it is sent.
Submodules: without commit, an initialized submodule goes over as a plain directory, everything on disk in it. git archive leaves them out, so with commit pass "submodules": true to add each initialized submodule at the commit the tree records. "baseline": "origin/main" sends that commit to -baseline as well, so a failing test can be run on both sides to see whether it was already failing; each node_modules in dest is copied into the baseline as hard links where it has none ("baselineDeps": false skips that), leaving out Vite's cache so the two trees do not share one. When a sync fails, nothing new reached the box; the next sandbox_exec on that box carries a reminder.
{"id": " ", "path": " ", "localPath": "/abs/path/on/your/machine"} downloads a file or a directory from the box. A file is written to localPath. A directory's contents are extracted straight into localPath, the reverse of sandbox_sync: path app/dist with localPath /abs/dist gives /abs/dist/index.html, not /abs/dist/dist/index.html (versions before 0.3.3 added that extra level). The result gives files, the number of files written, and paths, the first 50 of them. Pass "extract": false to keep the tar.gz as one file instead; it holds the directory itself as its top entry. Relative paths resolve the same way as for sandbox_sync; dest is accepted as another name for localPath. Only the local copy stays: the hand-off copy on ParallelSandbox's side is deleted after about a day.
Extracting merges into what is already in localPath. "clean": true makes it exactly the box's directory instead: the archive is unpacked next to it first and swapped in only when that succeeds, and the result's removed counts the local files that went. clean is refused for a git checkout, your home directory, the adapter's working directory and their parents. Files the box was still writing while it packed the directory are listed in changedWhileReading. The download reports progress, gives up after two minutes without data, and fetches a fresh link once when the first is refused.
Ordinary MCP connections choose a random id when the adapter starts and send it as X-Psbx-Agent on every call. Registered native sessions keep one supervisor-owned id across all turns; the supervisor maintains its presence until it stops. After the first tool call it is reported once a minute, and when its conversation closes (stdin ends, or SIGTERM, SIGINT or SIGHUP) it reports /v1/agents/ /leave. With the feedback relay below, the relay sends one /v1/agents/heartbeat a minute for every live adapter of the account on that machine (each adapter keeps a small presence file with its id and process); otherwise each adapter reports /v1/agents/ /heartbeat itself. The app uses this to tell a box the AI is still working in from one whose conversation was closed without sandbox_review or sandbox_stop; a conversation killed outright (no leave) counts as gone three minutes after its last heartbeat. Nothing else is sent: no prompt, no transcript. Restarting the client starts a new adapter with a new id, so a box the conversation used before the restart shows agent.state left until it is used again; the restarted conversation can simply continue with it.
sandbox_takeover blocks until a person hands the box back, up to 30 minutes. sandbox_review immediately creates the person's review card, then waits for their report or completion within the caller’s declared budget. The default adapter and unknown HTTP clients wait up to 25 seconds; explicitly supported clients can wait up to 30 minutes. An explicit waitSec is capped by that budget and the time spent preparing the review. The result includes the effective waitSec and callerWaitMaxSec. Its progress includes the review ID and entry URL before the final result. Use waitSec: 0 for an explicit handoff without waiting, or resume a timed-out round with reviewId instead of creating another card with what. The adapter waits 31 minutes for takeover and review, and 65 minutes for other calls (a foreground sandbox_exec runs at most 60 minutes). Cancelling a client call also cancels its control connection; it does not delete the review or feedback. Each foreground sandbox_exec carries an execId the adapter picks. If its result is lost on the way back (no data for 75 seconds, or the stream ends without it), the command keeps running on the box, and the error names sandbox_procs {action: "wait", bgId: }, which returns its exit code and the end of its output once it ends. The adapter also checks the server's tool list every 10 minutes and sends notifications/tools/list_changed when it changed, so a long conversation does not keep using an old schema. The waiting-tool route lasts for that active call. Registered native sessions use the supervisor below to continue after a turn exits.
parallelsandbox-agent runs a persistent supervisor for a registered native Claude Code, Codex or Gemini CLI session. The first prompt and
冒頭だけを表示しています。続きはリポジトリで読めます