Browser Use
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
作者提供的说明(英文原文)
Local always-on server for SnapStack: browser capture intake + MCP over 127.0.0.1.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"snapstack": {
"command": "npx",
"args": [
"-y",
"snapstack-server",
"mcp"
]
}
}
}在终端中运行这条命令
claude mcp add snapstack -- npx -y snapstack-server mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"snapstack": {
"command": "npx",
"args": [
"-y",
"snapstack-server",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"snapstack": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"snapstack-server",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 bgaze 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.2.3)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Browser Use, Chrome DevTools MCP, MCP Server Browser
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况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、图片和脚本已被移除。链接会离开本站。
= 18">
The SnapStack server is a single always-on Node process: it receives browser captures from the extension, stacks them on disk, and serves them to any MCP-capable LLM client over Streamable HTTP. It listens only on 127.0.0.1 — nothing ever leaves your machine.
New here? The full install + usage guide lives in the extension README:
[snapstack-extension](https://github.com/bgaze/snapstack-extension). This page is the technical reference.
One always-on process serves both the extension (capture) and your MCP client, decoupled by a folder on disk.
[MV3 extension] --POST /push (bytes) ┐
▼ [SnapStack server - 127.0.0.1:4123] ├─ writes → stack on disk └─ MCP /mcp (HTTP) ← MCP client
.webp/.png) plus a twin .json (url, title, timestamp, dimensions) per capture, named NN : a stable two-digit number (assigned in capture order, restarts at 01 when the stack empties) plus a timestamp, under ~/.snapstack/.get_screenshots returns a JSON manifest (number, absolute path, dimensions, metadata — *no image bytes*); the client reads only the files it needs, by path. Deletion is a separate, explicit clear_screenshots step. Retrieval never deletes.On Windows, use an Administrator terminal, otherwise the global npm install and the scheduled-task registration
may get rejected.
The server ships on npm and installation is straightforward on macOS, Linux and Windows:
npm i -g snapstack-serversnapstack enableSnapStack auto-starts on login, restarts on crash, and updates itself on each launch. To check its status or if an update is available, simply run snapstack in your terminal.
Available commands:
snapstack # status report: service + server health, update check
snapstack start | stop | restart # control the running service (this session) snapstack update # update the CLI (npm i -g) + restart the server on the latest snapstack run # run the daemon in the foreground (no auto-start)
The daemon self-updates on each (re)start/login; the global CLI (the snapstack command) does not. Run snapstack update to bring both to the latest in one go.
The full end-to-end walkthrough (idiomatic install paths, MCP client registration, the extension) is in the [extension README](https://github.com/bgaze/snapstack-extension).
SnapStack speaks two MCP transports over the same on-disk stack — pick whichever your client supports:
// HTTP (server already running) — register http://127.0.0.1:4123/mcp; copy deploy/mcp.json
{ "type": "http", "url": "http://127.0.0.1:4123/mcp" }
// stdio (the client spawns the process)
{ "command": "npx", "args": ["-y", "-p", "snapstack-server", "snapstack", "mcp"] }
The HTTP /mcp endpoint is stateless (a fresh server + transport per request); the stdio front-end (snapstack mcp) is spawned on demand and reads the same ~/.snapstack stack. Capture intake (/push) always stays in the running server, independent of either MCP front-end.
| Tool | Description |
|---|---|
get_screenshots | Lists pending captures as a JSON manifest (stable number, absolute path, dimensions, metadata) — no image bytes, no deletion. Pass numbers (e.g. [1,3]) to list only those. |
clear_screenshots | Deletes captures. Pass numbers to delete specific ones; omit to clear the whole stack. Numbering restarts at 01 once empty. |
count_screenshots | Number of pending captures, without retrieving them. |
get_screenshots and count_screenshots are read-only; only clear_screenshots is destructive.
| Variable | Default | Purpose |
|---|---|---|
SNAPSTACK_DIR | ~/.snapstack | Stack folder. |
SNAPSTACK_PORT | 4123 | Listening port (always on 127.0.0.1). |
The encoding/capture settings are owned by the server and stored in ~/.snapstack/config.json, so a single edit applies to every browser running the extension. They are edited from the extension's options page — not an environment variable — and fetched by the extension before each capture.
| Key | Default | Meaning |
|---|---|---|
format | webp | Image format: webp, png or jpg. |
quality | 0.85 | Lossy quality (0–1; the extension UI shows it as a percentage). |
maxWidth | 1568 | Downscale captures wider than this to this width in px (0 = no resize). |
maxSlices | 50 | Full-page capture: hard cap on stitched slices. |
Two endpoints back it: GET /config returns the effective policy; POST /config validates and replaces it (host- + CORS-guarded like every capture route). The file is a non-image, so a stack clear never touches it; deleting it just restores the defaults above.
snapstack start (or snapstack run in the foreground), or check the auto-start with snapstack. Test: curl http://127.0.0.1:4123/health.SNAPSTACK_PORT to another value.npm i -g drops the snapstack command in the global bin of the Node version that was active at install time only, so switching versions hides it. This is how npm globals work, not a SnapStack bug — the background service is unaffected and keeps capturing; only the CLI command disappears. Fix: re-run npm i -g snapstack-server under the current Node version (or switch back to the one used at install).type: "http", correct URL). Direct test: curl http://127.0.0.1:4123/count.ls ~/.snapstack (image files + human-readable .json).MIT — see LICENSE.