原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。使用 Google 登录即可撰写评价。原型 · 每 30 分钟更新
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Surfbird MCP

作者:terry2010版本 0.1.2i★ 1i在你的电脑上运行
注册名称io.github.terry2010/surfbird-mcp

安装方法

What it does

Self-hosted Kitesurf headless browser: markdown, screenshots, PDF, evaluate, batch.

  • Connects 在你的电脑上运行
  • Account or key Needs SURFBIRD_TOKEN
  • Category 文档、表格与办公

安装

选择你使用的 AI 应用,然后复制设置。

通过 3/3 项检查 · 在你的电脑上运行 · ✓ 命令已检查 2026年11月14日

第一步:你用哪个 AI?

选择你用的应用,步骤会显示在下方。

可连接 Claude,但需要先准备

需要 Surfbird MCP 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用

  1. 安装 Node.js

    只需一次,所有需要 Node.js 的服务器都能用

    打开 Node.js 下载页 ↗

  2. 注册并创建 Surfbird MCP 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。价格和免费方案请看开发者网站。

    获取密钥的方法见下方开发者的 README

  3. 打开电脑版 Claude 应用的设置文件

    SettingsDeveloperEdit Config

  4. 粘贴这些设置并保存文件

    {
      "mcpServers": {
        "surfbird": {
          "command": "npx",
          "args": [
            "-y",
            "surfbird-mcp"
          ],
          "env": {
            "SURFBIRD_TOKEN": "your-value"
          }
        }
      }
    }

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  5. 退出 Claude 再重新打开

  6. 试一试

    用 Surfbird MCP 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude 说正在使用 Surfbird MCP,或回答中出现 Surfbird MCP 的工具名称,就表示连接成功

2 项可选设置(不填也能用)

上面的命令不填这些也能用。想调整时再按开发者的说明添加。

  • SURFBIRD_URL Base URL of the Surfbird auth-image REST proxy · 默认值 http://127.0.0.1:8080
  • SURFBIRD_TIMEOUT_MS Per-tool timeout in milliseconds · 默认值 120000

说明仍为英文原文。

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

ChatGPT 暂时无法连接 Surfbird MCP

Surfbird MCP 需要安装在你的电脑上,而 ChatGPT 只能连接在网上运行的服务器

你可以改用这些方式

A · 使用能连接 Surfbird MCP 的应用

  • 需要 Surfbird MCP 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用
  • 需要 Surfbird MCP 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)
  • 需要 Surfbird MCP 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)
  • 需要 Surfbird MCP 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)

B · 文档、表格与办公 类中能连接 ChatGPT 的其他服务器

从同类中使用较多的里挑选,仅限用地址即可连接、无需密钥的

可连接 Claude Code,但需要先准备

需要 Surfbird MCP 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)

  1. 安装 Node.js

    只需一次,所有需要 Node.js 的服务器都能用

    打开 Node.js 下载页 ↗

  2. 注册并创建 Surfbird MCP 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。价格和免费方案请看开发者网站。

    获取密钥的方法见下方开发者的 README

  3. 打开终端

    Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell

  4. 粘贴这条命令并按 Enter

    claude mcp add --scope user surfbird --env SURFBIRD_TOKEN=your-value -- npx -y surfbird-mcp

    按 Enter 前,把“your-value”改成你的密钥

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  5. 在 Claude Code 中输入 /mcp

    应能看到 Surfbird MCP 在列表中并显示已连接

  6. 试一试

    用 Surfbird MCP 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude Code 说正在使用 Surfbird MCP,或回答中出现 Surfbird MCP 的工具名称,就表示连接成功

2 项可选设置(不填也能用)

上面的命令不填这些也能用。想调整时再按开发者的说明添加。

  • SURFBIRD_URL Base URL of the Surfbird auth-image REST proxy · 默认值 http://127.0.0.1:8080
  • SURFBIRD_TIMEOUT_MS Per-tool timeout in milliseconds · 默认值 120000

说明仍为英文原文。

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

可连接 Cursor,但需要先准备

需要 Surfbird MCP 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)

  1. 安装 Node.js

    只需一次,所有需要 Node.js 的服务器都能用

    打开 Node.js 下载页 ↗

  2. 注册并创建 Surfbird MCP 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。价格和免费方案请看开发者网站。

    获取密钥的方法见下方开发者的 README

  3. 点击这个按钮打开 Cursor

    在 Cursor 中打开

    Cursor 会请你确认安装,点击 Install

  4. 填写你的密钥

    在 Surfbird MCP 的设置中,SURFBIRD_TOKEN 还是空的,填入你的密钥并保存

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  5. 在 Cursor 中以 Agent 模式打开 AI 聊天

  6. 试一试

    用 Surfbird MCP 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Cursor 说正在使用 Surfbird MCP,或回答中出现 Surfbird MCP 的工具名称,就表示连接成功

2 项可选设置(不填也能用)

上面的命令不填这些也能用。想调整时再按开发者的说明添加。

  • SURFBIRD_URL Base URL of the Surfbird auth-image REST proxy · 默认值 http://127.0.0.1:8080
  • SURFBIRD_TIMEOUT_MS Per-tool timeout in milliseconds · 默认值 120000

说明仍为英文原文。

菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同

可连接 VS Code,但需要先准备

需要 Surfbird MCP 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)

  1. 安装 Node.js

    只需一次,所有需要 Node.js 的服务器都能用

    打开 Node.js 下载页 ↗

  2. 注册并创建 Surfbird MCP 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。价格和免费方案请看开发者网站。

    获取密钥的方法见下方开发者的 README

  3. 点击这个按钮打开 VS Code

    在 VS Code 中打开

    VS Code 会请你确认安装,点击 Install

  4. 填写你的密钥

    在 Surfbird MCP 的设置中,SURFBIRD_TOKEN 还是空的,填入你的密钥并保存

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  5. 在 VS Code 中以 Agent 模式打开 AI 聊天

  6. 试一试

    用 Surfbird MCP 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 VS Code 说正在使用 Surfbird MCP,或回答中出现 Surfbird MCP 的工具名称,就表示连接成功

2 项可选设置(不填也能用)

上面的命令不填这些也能用。想调整时再按开发者的说明添加。

  • SURFBIRD_URL Base URL of the Surfbird auth-image REST proxy · 默认值 http://127.0.0.1:8080
  • SURFBIRD_TIMEOUT_MS Per-tool timeout in milliseconds · 默认值 120000

说明仍为英文原文。

菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同

其他支持 MCP 的应用(如 Windsurf、Zed、Gemini CLI)添加方式各不相同,请在应用列表中查看

查看所有支持 MCP 的应用 →

JSON 设置在下方“开发者专用”中

卡住了?问问正在用 Surfbird MCP 的人💬 讨论 →
开发者专用:终端命令和 JSON 设置

安装在电脑上

Claude Code

claude mcp add --scope user surfbird --env SURFBIRD_TOKEN=your-value -- npx -y surfbird-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "surfbird": {
      "command": "npx",
      "args": [
        "-y",
        "surfbird-mcp"
      ],
      "env": {
        "SURFBIRD_TOKEN": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "surfbird": {
      "command": "npx",
      "args": [
        "-y",
        "surfbird-mcp"
      ],
      "env": {
        "SURFBIRD_TOKEN": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "surfbird": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "surfbird-mcp"
      ],
      "env": {
        "SURFBIRD_TOKEN": "your-value"
      }
    }
  }
}

需要你填写的值

  • SURFBIRD_URL env
    Base URL of the Surfbird auth-image REST proxy
  • SURFBIRD_TOKEN 机密 必填 env
    Bearer token matching SURFBIRD_TOKEN on the container
  • SURFBIRD_TIMEOUT_MS env
    Per-tool timeout in milliseconds

说明仍为英文原文。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

一览

每周下载量i
276/周
许可证i
Apache-2.0
连接方式
在你的电脑上运行
最新版本i
0.1.2
发布到注册中心i
2026年11月14日
代码最后更新i
2026年11月14日
作者
terry2010
软件包
npm: surfbird-mcp
注册状态
活跃

哪些应用可以使用它

依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。

在你的电脑上运行,适用于

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

全部应用及其优缺点 →

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月14日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 terry2010 验证,该账户拥有此仓库

  • ✓ 通过

    仍在维护

    代码最后更新于今天

  • ✓ 通过

    有许可证

    使用 Apache-2.0

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

讨论

提问、分享技巧或报告无法使用。按“有帮助”数量排序。

还没有帖子,欢迎第一个提问或分享。

此处内容由用户撰写,不代表 PopNx 团队。

使用 Google 登录后发帖

用户评价

还没有评价

用 Google 登录后写评价

与“文档、表格与办公”中的其他服务器比较i

  • 星标数多于此分类中其他 3927 个服务器的 81%
  • 发布到注册中心的时间比此分类中其他 3927 个服务器的 96% 更新
  • 基础检查结果等于或优于此分类中其他 3927 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Surfbird MCP 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:SURFBIRD_TOKEN

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于今天,最新版本(0.1.2)于今天进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Puter MCP, XcodeBuildMCP, XcodeBuildMCP

同类别的其他选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

作者:HeyPuter广泛使用★ 4.4万5个月前更新

在云端运行✓ 服务方 · puter.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

作者:getsentry广泛使用↓ 13万/周 共用包的下载量★ 65734个月前更新

在你的电脑上运行✓ 服务方 · xcodebuildmcp.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

作者:cameroncooke广泛使用↓ 13万/周 共用包的下载量★ 656914个月前更新

在你的电脑上运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

Surfbird

Kitesurf, self-hosted. An unofficial Docker distribution of Cloudflare Kitesurf — the experimental browser engine built for AI agents.

Not affiliated with or endorsed by Cloudflare. Kitesurf is Apache-2.0 licensed.

Kitesurf parses HTML, applies CSS, runs page JavaScript and renders screenshots — no Chrome, no browser container — and speaks CDP, so Puppeteer/Playwright connect as usual. Upstream only supports wrangler dev locally or deploying to Cloudflare Workers (paid). Surfbird packages it for any VPS.

Images

TagContentsUse
terry2010/surfbird:rawengine only, :8787local / behind your own gateway
terry2010/surfbird:authengine + token auth proxy + optional TLS, :8080one-command, exposed
terry2010/surfbird:latest= :authconvenience default

Images auto-build daily when upstream cuts a new tag; per-tag pins like terry2010/surfbird:auth-2026.11.8 are also published.

Quick start

# raw — engine only, no auth. Bind loopback/internal only!

docker run -d -p 127.0.0.1:8787:8787 terry2010/surfbird:raw

auth — one command, token + REST actions

docker run -d -p 127.0.0.1:8080:8080 -e SURFBIRD_TOKEN=$(openssl rand -hex 24) terry2010/surfbird:auth

Usage

CDP (Puppeteer / Playwright / chrome-devtools-mcp):

puppeteer.connect({

browserWSEndpoint: "ws:// :8787/devtools/browser", // raw // or auth image: browserWSEndpoint: "ws:// :8080/devtools/browser", headers: { Authorization: "Bearer " }, });

REST (auth image only):

curl -H "Authorization: Bearer $TOKEN" \

-d '{"url":"https://zhuikan.com/repos/terry2010__surfbird","fullPage":true}' \ http:// :8080/screenshot -o page.png

curl -H "Authorization: Bearer $TOKEN" \ -d '{"url":"https://zhuikan.com/repos/terry2010__surfbird"}' \ http:// :8080/markdown | jq -r .markdown

Endpoints: POST /screenshot | /pdf | /content | /source | /markdown | /evaluate | /batch (one action over up to MAX_BATCH_URLS urls, per-item results), GET /health, GET /openapi.json. /content returns the post-JS rendered DOM; /source returns the original response body ("view source"). All other paths transparently proxy to the engine (landing page, /json/*, /rbi/*).

JS/TS client: surfbird on npm — new Surfbird(url,{token}).markdown(u) etc., plus sb.batch(action, urls).

MCP (Model Context Protocol)

Two ways to plug Surfbird into an MCP-capable agent (Claude Code, Cursor, Windsurf, …):

A. `surfbird-mcp` — thin wrapper (recommended). Exposes our REST actions as MCP tools — including surf_markdown and surf_batch, which stock browser MCPs don't have:

{

"mcpServers": { "surfbird": { "command": "npx", "args": ["-y", "surfbird-mcp"], "env": { "SURFBIRD_URL": "http:// :8080", "SURFBIRD_TOKEN": " " } } } }

Tools: surf_markdown surf_content surf_source surf_screenshot surf_pdf surf_evaluate surf_batch surf_health.

B. `chrome-devtools-mcp` — full CDP surface. Points straight at the proxied WebSocket (/devtools/browser passes through with Bearer auth) — more tools, more moving parts. See upstream docs; if your client can't send custom WS headers, run a raw image on a private network instead.

No MCP at all? The REST layer is agent-friendly on its own — skills/surfbird/SKILL.md is a drop-in skill that teaches any agent to drive it with curl.

Examples

examples/ — zero-dep Python client (rss_to_markdown.py builds a feed→markdown digest for LLM daily reports) and bash/curl scripts.

Env

VarDefaultMeaning
SURFBIRD_TOKEN—bearer token. auth mode refuses to start without it
SURFBIRD_PORT8080proxy listen port
TLS_CERT_PATH / TLS_KEY_PATH—mount certs → HTTPS. Want auto-ACME? put Caddy outside
REST_TIMEOUT_MS120000per-action timeout
MAX_CONCURRENT_ACTIONS2in-flight REST actions cap (each ≈ an engine isolate)
MAX_BATCH_URLS20max urls per /batch call
MAX_BODY_BYTES4194304REST request body cap (413 beyond)
SURFBIRD_INSPECTOR—1 opens the workerd debug inspector on :9229 (loopback, debugging only)
SURFBIRD_URL_ALLOWLIST—comma-separated regexes — if set, only matching urls may be fetched
SURFBIRD_URL_BLOCKLIST—comma-separated regexes — refuse matching urls (e.g. `169\.254\.\,^http://localhost`)
ENGINE_READY_TIMEOUT_MS120000startup wait for engine before proxy listens
SURFBIRD_MODEper targetraw / auth

GET /health is unauthenticated and returns 200 only when the engine answers — safe for LB probes. If either process dies, the container exits; use --restart unless-stopped.

Bound to loopback above — reach a remote instance via SSH tunnel (ssh -L 8080:127.0.0.1:8080 user@vps) or a TLS reverse proxy. An exposed engine is a request-making machine on your VPS: token + firewall/TLS are the minimum, never expose raw.

Building

# A) full in-image build (needs ~4GB+ RAM, CI machines):

docker build -f Dockerfile --target raw -t surfbird:raw . docker build -f Dockerfile --target auth -t surfbird:auth .

B) from a locally-built checkout (low-resource hosts):

./scripts/smoke-test.sh # stages a real ctx via tar (symlinks won't work — Docker can't COPY through them)

or manually:

mkdir -p ctx/kitesurf && tar -C /path/to/kitesurf --exclude='*/node_modules' --exclude='*/.git' -cf - . | tar -C ctx/kitesurf -xf - cp -r proxy ctx/proxy && cp entrypoint.sh Dockerfile.prebuilt ctx/ docker build -f ctx/Dockerfile.prebuilt ctx -t surfbird:raw

Pin upstream: --build-arg KITESURF_REF= (Dockerfile A). Engine patches: drop .patch files into patches/, applied after clone.

Limits (from upstream, not Surfbird's fault)

  • Experimental engine (Boa JS) — heavy-JS sites may render imperfectly
  • No touch/drag gestures, no video decode, no browser-style file downloads
  • DevTools frontend excluded from builds (China-network-safe); use CDP
  • Auth image adds a token gate — it is not a hardened multi-tenant boundary

License

Apache-2.0. Kitesurf © Cloudflare, Inc. See upstream NOTICE.