Browser Use
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
作者提供的说明(英文原文)
Create, launch, check and drive Nullprint multi-profile browser profiles from any MCP agent.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"nullprint": {
"command": "npx",
"args": [
"-y",
"nullprint-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add nullprint -- npx -y nullprint-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"nullprint": {
"command": "npx",
"args": [
"-y",
"nullprint-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"nullprint": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"nullprint-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 nullprintai 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.5)于15天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv), 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、图片和脚本已被移除。链接会离开本站。
An MCP server for Nullprint, the multi-profile browser. It lets any MCP-capable AI agent (Claude Code, Claude Desktop, OpenAI Codex, Kimi, …) create browser profiles, launch them, run consistency check-ups and drive the pages inside a running profile.
The server is a thin layer over the local Nullprint daemon's HTTP API: every tool maps to one daemon endpoint. The daemon, the browser kernels and the fingerprint engine ship with the Nullprint desktop app and are not part of this package.
# Claude Code
claude mcp add nullprint -- uvx nullprint-mcp
codex mcp add nullprint -- uvx nullprint-mcp
Claude Desktop, Kimi and other clients that use an mcpServers config file:
{
"mcpServers": { "nullprint": { "command": "uvx", "args": ["nullprint-mcp"] } } }
Without uv: pip install nullprint-mcp, then use nullprint-mcp as the command (no args).
No port or key to configure: the server reads the running daemon's port and API key from ~/.nullprint/daemon.json, which the desktop app writes on start-up. To point at a daemon elsewhere, pass --daemon-url http://host:port (or --port 7801 for localhost) and set NULLPRINT_API_KEY. Resolution order, most explicit first:
--daemon-url / --portNULLPRINT_DAEMON_URLNULLPRINT_PORT~/.nullprint/daemon.json (NULLPRINT_HOME changes the directory)If the daemon is not running the tools say so plainly instead of throwing a connection trace.
| Tool | What it does | Daemon endpoint |
|---|---|---|
profiles_list | List every profile with status (running / idle), exit and ledger metadata | GET /profiles |
profile_start | Open a browser session for a profile; returns the driving endpoints | POST /sessions/{name} |
profile_stop | Stop that profile's browser (session or app-launched window) | DELETE /sessions/{name} → falls back to POST /profiles/{name}/stop |
profile_create | Create a profile (fingerprint generated and frozen), optionally with proxy, ledger and start pages | POST /profiles |
profile_settings | Change a display setting of an existing profile — today force_dark (force dark web pages, off by default; merged into its launch settings) | GET + PATCH /profiles/{name} |
profile_checkup | Consistency check-up, returns {summary, checks} | GET /profiles/{name}/checkup?live= |
proxy_check | Stateless proxy test: exit IP, country, latency | POST /proxy-check |
profile_delete | Soft delete to the recycle bin (recoverable); refused while running | DELETE /profiles/{name} |
trash_list | Read-only list of recoverable profiles in the recycle bin | GET /trash |
profile_restore | Restore from the recycle bin with fingerprint, proxy and logins intact | POST /trash/{name}/restore |
session_goto | Navigate the session's current page | POST /sessions/{name}/goto |
session_snapshot | Accessibility tree of the current page (find selectors, read state) | GET /sessions/{name}/snapshot |
session_click_selector | Click an element by CSS selector | POST /sessions/{name}/click_selector |
session_fill_selector | Fill an input by CSS selector | POST /sessions/{name}/fill_selector |
session_press | Send a key (e.g. Enter) | POST /sessions/{name}/press |
session_eval | Run JavaScript on the page, returns {ok, result} | POST /sessions/{name}/eval |
session_tabs | List the session's tabs and the active one | GET /sessions/{name}/tabs |
session_switch_tab | Bring a tab to the front | POST /sessions/{name}/switch_tab |
session_dialog | Answer the JavaScript dialog (alert / confirm / prompt / beforeunload) open on the page: accept or dismiss | POST /sessions/{name}/dialog |
Notes that matter when writing prompts:
session_* tools need an open session.** They drive the warm session opened by profile_start; calling them on a profile without one returns 409. Selectors are CSS, not XPath or role/name; call session_snapshot first when you do not know a selector.session_* tools fail with 409 naming the dialog; answer it with session_dialog, then retry. A beforeunload caused by your own session_goto or click is accepted automatically.{ok: false, error, error_type}), not as a tool failure; result follows the expression's type.{name, stopped, closed}.engine empty to use the app's default; unknown values come back as a 422 listing the options.{ok: false, error}; only an unreachable daemon raises.ws:// DevTools address) for Chrome kernels with external debugging turned on in the app (off by default; Edit → Advanced → External debugging, needs a second verification, then reopen the profile), so external tools can attach. Otherwise it is null, with cdp_unavailable (reason code) and cdp_note saying why. A session driven from outside bypasses Nullprint's consistency guards: an outside tool can set a viewport, language or time zone that contradicts the profile's frozen fingerprint and make it detectable. Prefer the session_* tools; if you must attach, do not change anything the profile has not declared.Permanently deleting a profile (DELETE /trash/{name}) destroys its logins and cannot be undone. It is not a tool on purpose: emptying the recycle bin is a human action in the desktop app. profile_delete's description tells the agent to say so instead of working around it, and a test scans every tool's source to keep the purge endpoint out. Screenshot-to-disk and file-writing tools are left out for the same reason (local path safety).
pip install -e ".[dev]"
pytest tests nullprint-mcp --help
Tools live in nullprint_mcp/tools.py (the TOOLS tuple); server.py and __main__.py do not change when a tool is added. Nothing may be printed to stdout: stdout is the MCP channel.
MIT. Copyright (c) 2026 HENGCHENG LLC.
这是 Nullprint(多身份指纹浏览器)的 MCP 服务:Claude Code、Claude Desktop、OpenAI Codex、Kimi 等任何支持 MCP 的 AI 都可以用它建身份、启动浏览器、做一致性体检、驱动身份里的网页。它只是本地 daemon HTTP 接口上的薄薄一层,每个工具对应 daemon 的一个端点;daemon、浏览器内核和指纹引擎随 Nullprint 桌面应用发布,不在本包内。
前提:本机装好并登录 Nullprint 桌面应用;本机有 Python 3.11+,推荐用 uv(首次运行自动装包)。
接入:
claude mcp add nullprint -- uvx nullprint-mcp # Claude Code
codex mcp add nullprint -- uvx nullprint-mcp # OpenAI Codex
Claude Desktop、Kimi 等走配置文件的客户端,在 mcpServers 里加 {"command": "uvx", "args": ["nullprint-mcp"]}。没有 uv 就 pip install nullprint-mcp,命令改为 nullprint-mcp。
不用配端口和密钥:服务自动读桌面应用写在 ~/.nullprint/daemon.json 里的端口和 API Key。要连别的机器上的 daemon,传 --daemon-url 并设 NULLPRINT_API_KEY。
18 个工具:profiles_list、profile_start、profile_stop、profile_create、profile_settings、profile_checkup、proxy_check、profile_delete、trash_list、profile_restore,以及 8 个会话工具 session_goto / snapshot / click_selector / fill_selector / press / eval / tabs / switch_tab(先 profile_start 再用)。彻底删除身份故意不做成工具:清空回收站只能在桌面应用里由人操作。