Agent Chrome

dev.agentchrome由 agentchrome.dev 發布官方發布者v0.1.0更新於 Nov 4, 2026

Let AI agents use your real, signed-in Chrome: tabs, clicks, forms, screenshots and video.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取瀏覽器自動化

概覽

AI 產生的概覽

Chrome 擴充功能加遠端 MCP 伺服器,讓 AI 代理操作你真實已登入的 Chrome:分頁、點擊、表單、截圖與錄影。

可以做什麼
  • 開啟、關閉、切換分頁並管理分頁群組,瀏覽頁面,列出並選擇已配對的 Chrome 設定檔
  • 依座標或元素參照點擊、輸入、拖曳、捲動、懸停並填寫表單,讀取頁面的無障礙樹或正文
  • 擷取視窗或整頁截圖,錄製 MP4/WebM 片段或 GIF,並儲存產出檔案
  • 在頁面中執行 JavaScript,讀取主控台訊息與網路請求
  • 把本機檔案上傳到輸入框與拖放區,處理 alert/confirm/prompt 對話框,等待文字、選擇器或網址出現
  • 在明確開啟後搜尋瀏覽紀錄
適用情境
適合讓代理在你已登入的瀏覽器中工作,例如測試網頁應用程式、填寫真實表單、截圖或錄製示範,而不是另開一個無頭瀏覽器。也適合 Claude、ChatGPT 等透過 OAuth 連接遠端 MCP 伺服器的聊天應用程式。
執行需求
遠端端點 agentchrome.dev/mcp,使用 OAuth(或 bearer 帳戶金鑰)。完整安裝需要 Node.js 18 或更新版本、Google Chrome,並在每個 Chrome 設定檔中以未封裝方式載入 Agent Chrome 擴充功能,再用一次性配對碼連線。本機模式在 127.0.0.1 上執行伺服器,不需雲端。
安裝前請注意
代理會在你已登入的瀏覽器設定檔中操作,可能接觸已登入帳號、送出表單、上傳本機檔案並下載內容。帳戶金鑰與裝置權杖會寫入各代理的設定檔以及本機設定檔;建議改用 OAuth,避免設定檔中出現金鑰。儲存到雲端的截圖與錄影會進入第三方儲存空間,連結無法猜測,7 天後刪除。瀏覽紀錄存取預設關閉,可啟用逐網站詢問與封鎖清單。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Agent Chrome,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/dev.agentchrome%2Fagentchrome/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "agent-chrome": {
      "type": "http",
      "url": "https://agentchrome.dev/mcp"
    }
  }
}

README

[Agent Chrome logo]

agentchrome

Let your coding agents use the Chrome you already use.

[GitHub stars] [MIT license] [Hosted on Cloudflare]

Install · Let your agent install it · What it does · Tools · Security

[Star on GitHub]

Agent Chrome is a Chrome extension and an MCP server that let coding agents use your real, signed-in Chrome profiles. It works with Claude Code, Codex, Gemini CLI, Antigravity, Grok, Muse, Cursor, opencode and any other MCP client. Each agent works in its own tab group, and a blue border and an animated cursor show what it is doing. It can take screenshots and record video clips, and you can connect several Chrome profiles at once. The server runs on Cloudflare, or locally on your machine.

[Claude Code searching Wikipedia in Chrome: a blue border around the page, an animated cursor with the Claude Code logo, and a status pill with a Stop button]
What you see while an agent works. This clip was recorded by the extension itself (MP4).

If it's useful to you, please star the repo. It helps other people find it.

Install

You need Node.js 18 or newer and Google Chrome.

1. Run the installer

sh
curl -fsSL https://agentchrome.dev/install | sh

In one pass, the installer:

  1. Creates your account and saves the key to ~/.config/agentchrome/config.json with chmod 600.
  2. Adds an MCP server named agentchrome to every agent it finds, in that agent's user-level config (table below).
  3. Writes the agentchrome skill once, to ~/.agents/skills/agentchrome, and symlinks it into each agent's skills folder.
  4. Unpacks the extension to ~/.agentchrome/extension.
  5. Prints a pairing code and copies it to your clipboard.

To keep everything on your machine with no cloud at all, add --local. See Local mode.

2. Load the extension, once per Chrome profile

The installer opens chrome://extensions and shows the folder in Finder for you.

  1. In chrome://extensions, turn on Developer mode.
  2. Click Load unpacked and choose ~/.agentchrome/extension. Run agentchrome extension --path to print the full path.
  3. Pin Agent Chrome, click it, paste the pairing code and press Connect.

To add another profile (Work, Personal, a client's), switch to that profile, load the same folder, and run agentchrome pair for a new code. Each profile appears as its own browser in list_browsers.

3. Use it

Ask any agent:

Use agentchrome to open news.ycombinator.com, screenshot it, and record a short clip scrolling the front page.

Or let your agent install it

Paste this into Claude Code, Codex or any other coding agent:

Install agentchrome for me by following https://github.com/ShadowWalker2014/agentchrome/blob/main/AGENT_INSTALL.md

The agent runs the installer, then tells you the one step only you can do: loading the extension in Chrome and pasting the code.

Use it from Claude.ai or ChatGPT

The server is a standard remote MCP server with OAuth, so chat apps can use it as a connector. You don't need the command line tool for this.

Claude (claude.ai, Claude Desktop, Cowork): open Customize > Connectors > Add custom connector, enter https://agentchrome.dev/mcp and press Connect.

ChatGPT: turn on Developer mode under Settings > Apps & Connectors > Advanced, then create a connector with the same URL and choose OAuth.

A sign-in page opens. Paste your account key, or press Create an account if you don't have one. Then ask in chat: "Connect my Chrome." The assistant calls pairing_code and walks you through loading the extension and pasting the code.

Where each agent is configured

AgentConfig written (user level)Format
Claude Codeclaude mcp add --scope user (~/.claude.json)http with an Authorization header
Codex~/.codex/config.toml[mcp_servers.agentchrome] with url and http_headers
Gemini CLI~/.gemini/settings.jsonhttpUrl and headers
Antigravityagy mcp add and ~/.gemini/antigravity/mcp_config.jsonserverUrl and headers
Grokgrok mcp add --scope user (~/.grok/config.toml)http with a header
Muse~/.config/muse/settings.jsontype: "streamable-http"
Cursor~/.cursor/mcp.jsonurl and headers
opencode~/.config/opencode/opencode.jsontype: "remote"
Windsurf~/.codeium/windsurf/mcp_config.jsonserverUrl and headers

The installer backs up every JSON or TOML file it edits as <file>.bak-agentchrome. The skill is linked into ~/.claude/skills, ~/.codex/skills, ~/.gemini/skills, ~/.gemini/antigravity/global_skills, ~/.cursor/skills and ~/.config/opencode/skills.

Gemini CLI note: Gemini turns off every MCP server in folders you haven't trusted, so gemini mcp list shows "Disabled" there. Trust the folder with /permissions inside Gemini, and the server turns on.

Pick agents, or use OAuth instead of a key

sh
agentchrome install claude codex grok   # only these agentsagentchrome install --oauth             # no secret in config files; each agent signs in through the browser

With OAuth, agents that support MCP sign-in (Claude Code, Codex, Gemini CLI and others) open a sign-in page on first use. Paste your account key once (agentchrome key prints it) and the agent receives short-lived tokens, refreshed for 90 days.

Add it by hand

sh
claude mcp add --scope user --transport http agentchrome https://agentchrome.dev/mcp \  --header "Authorization: Bearer $(agentchrome key)"
codex mcp add agentchrome --url https://agentchrome.dev/mcp --bearer-token-env-var AGENT_CHROME_MCP_KEY

Any MCP client that speaks Streamable HTTP works. Use https://<server>/mcp with a bearer key, or point it at the URL and let OAuth discovery do the rest.

What it does

[An agent typing into Wikipedia's search box: blue border, agent cursor labelled Claude Code with its logo, status pill][A clean recording: normal cursor, no border or labels]
You can see what the agent is doing. A blue border goes around the page, a pill shows which agent is working with a Stop button, and the agent's own cursor glides to each target. The cursor turns into a hand over links and an I-beam over text, and carries the agent's logo and name. Your own mouse is never moved.Recordings look like a person using the page. record leaves out the border, the pill and the name tag, and draws a normal cursor (MP4). Pass cursor: "agent" to keep the indicators, or "hidden" for no cursor.
[The toolbar popup: connected profile, Claude Code and Codex sessions with Pause buttons, settings][The welcome page with three setup steps and a pairing-code field]
Every agent gets its own tab group. The popup lists which agents are active, and lets you pause one or stop them all.Setup takes a minute. Load the extension, paste the code from the installer, and the profile is connected.

It also handles the parts of real websites that usually break browser agents:

  • Drag and drop works for native HTML5 drag events (Trello-style boards, file drop areas) and for pointer-based sliders and sortable lists.
  • File uploads never open the native file picker. The agent can pass real file paths from your computer, or file contents. If a click tries to open the picker, it is held back and the agent is told to fill it.
  • alert, confirm, prompt and "Leave site?" dialogs are reported to the agent instead of freezing it. A navigation the agent asks for leaves an unsaved page and says so.
  • New tabs opened by a link join the agent's group, and downloads are reported in the result of the click that caused them.
  • Pages that fail are explained: HTTP errors such as 404, DNS failures, crashed tabs, chrome:// pages that extensions can't touch, and file:// pages that need permission.
  • If you press Cancel on Chrome's "started debugging this browser" bar, every agent stops and is told why.

CLI

CommandWhat it does
agentchrome setup [--server URL] [--key KEY] [--local]Creates an account or signs in, installs into agents, links the skill, unpacks the extension, prints a pairing code
agentchrome pairPrints a new single-use pairing code, valid for 15 minutes
agentchrome statusShows the account, paired browsers with online state, and which agents are configured
agentchrome install [ids] [--oauth] / uninstall [ids]Adds or removes the MCP server and the skill
agentchrome revoke <browser-id>Removes a paired Chrome profile; it disconnects immediately
agentchrome rotate-keyReplaces your account key and rewrites every agent config
agentchrome keyPrints your account key
agentchrome serve [--install]Runs the local server; --install starts it at login with launchd
agentchrome extension [--path]Unpacks the extension and shows how to load it

Tools

The tool names match Claude in Chrome, so prompts and skills written for it work unchanged.

ToolWhat it does
tabs_contextLists this session's tab group and tabs; creates a group with a tab if there is none. all: true lists every tab
tabs_create / tabs_close / tabs_selectOpens, closes or switches tabs inside the session group; adopt pulls a user tab into the group
tab_groupsLists, creates, renames, recolors, collapses, moves or ungroups Chrome tab groups
navigateLoads a URL and waits for it; also takes back, forward and reload
computerscreenshot, left_click, right_click, middle_click, double_click, triple_click, hover / mouse_move, left_click_drag (HTML5 and pointer drags; start_ref or start_coordinate), type, key (combos like cmd+a), scroll, scroll_to, wait, zoom. Accepts coordinates or element refs, plus modifiers
screenshotCaptures the viewport, or with fullPage: true one long image of the whole page. It scrolls through first so lazy images load, and stitches apps that scroll inside a panel, such as Gmail, Notion and dashboards. JPEG or PNG; save: true returns a download link
read_pageReturns an accessibility tree with ref_N handles; filter: "interactive", ref_id to read a subtree, viewportOnly
findFinds elements from a plain-language description and returns refs with coordinates
form_inputSets inputs, selects, checkboxes, radios and contenteditable fields by ref
get_page_textReturns the readable text of the article or main content
javascript_toolRuns JavaScript in the page and returns the last expression; supports await and works under strict CSP
read_console_messages / read_network_requestsReturns console logs and errors, and requests with status and timing; can include response bodies
file_upload / upload_imageFills a file input or drop zone with local file paths, base64 data, a URL or a screenshot, without the native file picker; leave out ref to fill a picker that a click tried to open
recordRecords an MP4 or WebM clip of the tab and returns a link. cursor: natural (default, no indicators), agent or hidden; showClicks adds click ripples. action: "scroll" makes a smooth scrolling video of the whole page in one call
gif_creatorRecords an animated GIF and returns it inline
wait_forWaits until text appears or disappears, a CSS selector matches, or the URL matches
handle_dialogAccepts or dismisses alert, confirm and prompt dialogs
resize_windowResizes the browser window
history_searchSearches browsing history, only when you turn it on in the popup
list_browsers / select_browserLists paired Chrome profiles and picks one; every tool also takes browser: "<name or id>"

Feature parity

Claude in ChromeCodex Chrome extensionagentchrome
Works with any MCP agentClaude onlyCodex onlyyes
Tab group per agent sessionyesyesyes, and the agent can rename and recolor it
Several Chrome profiles at onceone connected browser at a timeone profileyes, all at once
Screenshotsyesyesyes, including zoom and long full-page images (also inside scrolling panels)
Video recordingGIFnoMP4 or WebM, plus GIF and one-call scrolling videos
Console, network, JavaScriptyesyesyes
Per-site permission promptyesyesyes, off by default; also a block list
Visible "agent at work" indicatoryesyespulsing border, status pill and Stop button
Animated agent cursornoyesyes, with the agent's logo; a hand over links
Clean recordings without indicatorsnonoyes
Runs headless from scripts (codex exec, claude -p)nonoyes, since it's a remote MCP server
Self-hostablenonoyes: Cloudflare or local

Local mode

sh
curl -fsSL https://agentchrome.dev/install | sh -s -- --localagentchrome serve --install    # starts the local server now and at every login (macOS)

The server listens only on 127.0.0.1:47823 and rejects requests from web pages. In the extension popup, open Server and set it to http://127.0.0.1:47823 before connecting. Screenshots and recordings are saved to ~/.agentchrome/artifacts.

Self-host on Cloudflare

sh
git clone https://github.com/ShadowWalker2014/agentchrome && cd agentchromepnpm installnpx wrangler loginsh scripts/deploy-cloudflare.sh my-agentchrome

The script creates a D1 database, a KV namespace and an R2 bucket, runs the migrations, deploys the Worker with its Durable Object, sets a session secret, and prints your own install line (curl -fsSL https://my-agentchrome.<you>.workers.dev/install | sh). After you create your own account, set SIGNUP_MODE to "closed" so nobody else can sign up.

It runs comfortably on the Workers free tier for personal use. Durable Objects hibernate between calls, so an idle extension connection costs nothing.

Security

  • Keys: account keys (acm_sk_…) and device tokens (acm_dt_…) are 256-bit random values. The server stores only their SHA-256 hashes. The local config file is chmod 600.
  • Pairing: a browser joins your account only with a single-use 10-character code that expires after 15 minutes, created by someone who already holds the account key. Each Chrome profile gets its own device token, which you can revoke on its own.
  • OAuth 2.1: PKCE (S256), dynamic client registration, refresh-token rotation and RFC 9728 discovery, using @cloudflare/workers-oauth-provider.
  • Isolation: each account has its own Durable Object. MCP session ids are signed with HMAC and bound to the account, so one account cannot use another's session.
  • Recordings: screenshots and videos you choose to save go to R2 behind unguessable 144-bit links and are deleted after 7 days.
  • Control in the browser: the Stop button on the page or in the popup pauses every agent at once. You can also ask before each new site, block sites, and keep history access off, which is the default.
  • Rate limits: sign-up, pairing and the sign-in page are rate-limited per IP address.
  • Untrusted pages: the skill and the server instructions tell agents never to follow instructions found inside web pages.

Please report vulnerabilities through a private GitHub security advisory.

How it works

Claude Code ─┐                    ┌──────────────────────────────┐        ┌─ Chrome "Work" profileCodex ───────┤  MCP over HTTPS    │ Cloudflare Worker            │  WSS   │   (extension, paired)Gemini ──────┼──────────────────► │  /mcp  OAuth 2.1 or API key  │ ◄────► ├─ Chrome "Personal" profileGrok, Muse … ┘                    │  Durable Object per account  │        └─ …                                  └──────────────────────────────┘

The extension keeps one WebSocket open to the server. The server runs on Cloudflare Workers with one Durable Object per account. Each MCP session gets its own tab group in every paired profile. Tools that act on a page use the Chrome debugger protocol for input, screenshots, console and network logs. A small content script provides element refs, the accessibility tree, the overlay and the agent cursor.

Development

sh
pnpm installpnpm --filter @agentchrome/server exec wrangler d1 migrations apply agent-chrome-mcp --localpnpm dev:server                         # Worker on http://127.0.0.1:8787node scripts/build-all.mjs              # extension, CLI and public assetspnpm test:e2e                           # end-to-end tests: real Chromium, the extension and the MCP SDK clientnode --test tests/e2e/edge.test.mjs     # drag and drop, file pickers, dialogs, new tabs, downloads, errorsACM_SERVER=https://… pnpm test:e2e      # the same suite against a deployed serversh tests/e2e/local.sh                   # the same suite against local mode

See AGENTS.md for the architecture and the rules for contributors.

Star history

[Star history chart for agentchrome]

If agentchrome saves you time, please star it. Stars help other developers find the project.

[Star on GitHub]

License

MIT

來源:README.md,提交 aa04500

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v0.1.0最新Nov 4, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分