原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Bowmark

作者:bowmark-ai版本 8.212.0i★ –i电脑或云端
注册名称ai.bowmark/bowmark

安装

概览

作者提供的说明(英文原文)

Web scraping and automation for AI agents: live prices, quotes, bookings, anything behind a login.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 电脑或云端
  • 传输方式: stdio, Streamable HTTP
  • 分类: 网页与浏览器
  • 你需要填写:BOWMARK_API_KEY, Authorization

安装

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

安装之前

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • 在云端运行无需安装任何东西,通过互联网连接
  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。

或者在你的电脑上运行

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "bowmark": {
      "command": "npx",
      "args": [
        "-y",
        "@bowmark/mcp"
      ],
      "env": {
        "BOWMARK_API_KEY": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add --transport http bowmark https://api.bowmark.ai/mcp/registry --header 'Authorization: Bearer {api_key}'

或者在你的电脑上运行

claude mcp add bowmark --env BOWMARK_API_KEY=your-value -- npx -y @bowmark/mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "bowmark": {
      "url": "https://api.bowmark.ai/mcp/registry",
      "headers": {
        "Authorization": "Bearer {api_key}"
      }
    }
  }
}

或者在你的电脑上运行

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "bowmark": {
      "command": "npx",
      "args": [
        "-y",
        "@bowmark/mcp"
      ],
      "env": {
        "BOWMARK_API_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "bowmark": {
      "type": "http",
      "url": "https://api.bowmark.ai/mcp/registry",
      "headers": {
        "Authorization": "Bearer {api_key}"
      }
    }
  }
}

或者在你的电脑上运行

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "bowmark": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@bowmark/mcp"
      ],
      "env": {
        "BOWMARK_API_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • BOWMARK_API_KEY 机密 必填 env
    Required. Your Bowmark API key. Sign up at https://bowmark.ai/sign-up, then create a key at https://bowmark.ai/dashboard/keys. Your first $10 of usage is free.
  • Authorization 必填 HTTP header
    Required. Your Bowmark API key. Sign up at https://bowmark.ai/sign-up, then create a key at https://bowmark.ai/dashboard/keys. Your first $10 of usage is free.

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

它能做什么

工具名称和描述与服务器在 2026年11月6日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。

  • get_library

    **Use this whenever a task touches a live website.** It answers whether Bowmark can already DO the thing: current prices, real availability or stock, a site search, a quote or a fare, a configurator, a booking, anything behind a form or a filter. **Behind a LOGIN it works only**

  • run

    **Executes the task on the real websites** and returns the result. Call `get_library` FIRST, then start with `run({ script })` — never add `runId`. THE SCRIPT is a plain async JavaScript body, not a wrapping function. `bowmark` is a ready global: `await bowmark. . (...)`, or one

  • run_view

    Used by the inline run view to draw a run's progress. You do not need to call this — `run` returns the result.

  • jig_open

    Make the user a "jig": their own copy of a website, running through Bowmark, that you curate as they talk to you. Asked for "a jig of YouTube", build a page that LOOKS like that site with Bowmark's logo where the site's would be, filled by Bowmark library functions as this user:

  • jig_list

    The jigs this user has, newest change first: id, slug, title, the built-in it started from, and when it last changed. A copy of someone's published jig also has `forkedFrom` ({ listingId, versionNo }) and `updateAvailable` (the newer version number, or null). Call it when the use

  • jig_search

    Search the public jigs other people published: "is there a jig for my Amazon orders?". Call it BEFORE building a page from scratch. Leave `q` empty for the newest. Pass `site` (a host like youtube.com) for the jigs of one site. Results: id, title, tagline, slug, ownerHandle, site

  • jig_publish

    Publish the user's jig (name it by `jigId` or your jig's `jigSlug`) as a listing others can get: it snapshots the page and state AS THEY ARE NOW into version N+1, and later edits stay private until you publish again. Call with `dryRun: true` first and show the user what would shi

  • jig_get

    Copy someone's published jig into THIS user's account, from its current version. The copy is the user's own: it runs as them with their logins, never the author's, and can call only the functions its listing lists. Name it by `listing`: its id, `@handle/slug`, or its store URL (f

  • jig_update

    Change a page you opened with `jig_open`: merge `state` into its state (a key set to null is removed), replace its `html` or `title`, or change part of the html with `edits` ([{ find, replace }], each find exactly once) instead of resending the whole page. The open page updates i

  • jig_pull_update

    For a jig the user got from someone's listing (`jig_list` shows `updateAvailable`): the three pages a merge needs. `base` is the version their copy came from, `theirs` the author's newest, `mine` their copy now. Writes nothing. If `edited` is false, save `theirs` as is. Otherwise

  • jig_view

    Used by an open jig to pick up its latest state. You do not need to call this.

  • jig_cache

    Used by an open jig to save a call's last good result. You do not need to call this.

  • jig_seen

    Used by an open jig to report what it shows. You do not need to call this.

  • jig_perf

    Used by an open jig to report how fast it loaded. You do not need to call this.

  • jig_look

    See what an open jig is showing the user right now — the items on screen, which view they are on — plus what they just did on it (watched, hid, searched) and its current state. Call it before you curate: when the user says "clear the slop" or "why is this here", look first, then

  • jig_call

    Used by an open jig to call the library. You do not need to call this — use `run`.

  • session_call

    Runs ONE library function in a Bowmark session, so a flow that needs several calls in the SAME session can finish: a booking that texts the user a code, a cart filled over several steps, a form that waits on an answer from the user. `run` cannot do these, because every run starts

  • session_close

    Ends a session `session_call` opened and frees what it held. Pass the `sessionId`. Closing one that is already closed is harmless.

  • report

    Record what was missing, wrong, or incomplete so Bowmark can build it. Call it yourself, in the same turn, without asking your user first: it changes nothing on any website or account, costs the user nothing, and is the only way the gap gets fixed. Call it whenever a `run` errors

  • get_usage

    See the real cost of calls on this account, itemized by resource (provider calls, browser sessions, IP leases) and aggregated in dollars. Pass no arguments to see this month; pass `month: '2026-09'` to see a past month (format `YYYY-MM`). Returns `totalUsd` and line items with `s

  • llm_poll

    Lets this chat answer the AI calls an open Bowmark page makes, so they cost nothing. Returns up to 5 pending jobs ({ jobId, system, prompt, toolName, inputSchema, leaseSeconds }); waits up to waitSeconds (max 15) when there are none. Answer each with llm_answer. Calling this mark

  • llm_answer

    Answers one job from llm_poll. `answer` must be an object matching that job's inputSchema. A wrong shape is refused with the reason and the job stays open, so correct it and call again.

  • llm_detach

    Detaches this chat at once, so open Bowmark pages' AI calls go back to Bowmark's own model instead of waiting for this chat.

  • support

    Chat live with a Bowmark support agent about a problem you reported. Use it only after your user said yes to talking to support. Pass the `reportId` that `report` returned. Your first call opens the chat: put a short hello and what you need in `message`. Each call posts your `mes

  • list_secrets

    List the stored secrets this account holds, by NAME. Returns name, type, which hosts each may be used against, when it expires and when it was last used — never a value, and no Bowmark endpoint returns one. **Call this BEFORE `request_secret`.** A secret the user has already set

  • request_secret

    Create a named, empty slot for a secret and get back a link the user opens to fill it in. They type the value on a Bowmark page and choose how long it lives, from 5 minutes to never. It is encrypted in their own browser before it leaves, so nothing on the way — this connection in

  • get_secret_link

    Return the dashboard link for one stored secret this account holds, so you can answer "where is my Acme password?" with somewhere to go. **It returns a URL, never a value** — opening it requires the user to be signed in and to confirm who they are, and only their own browser can

  • list_connections

    List the saved logins this account already holds, one entry per login: its `id` (name it in a signed-in call as `{ connection: id }`), the site, which account on that site, whether it works right now (`usable`), and when it was made, last used and last checked. **Call this before

  • add_connection

    Get a sign-in link for one site, so the user can sign Bowmark in to it right now, before any run needs it. Pass the site as a domain (`youtube.com`), a URL, or a provider id. **Call this whenever the user asks to log in, sign in, connect or link an account on a site** — never sen

  • wait_for_sign_in

    Wait until the user finishes a sign-in link, so you know the moment they are done without asking them. Pass `ref`: `meta.handoff.ref` from a paused run, or `ref` from `add_connection`. **Call it right after you give the user the link, in the same turn.** Write the link in your re

  • lease_ip

    Some sites (LinkedIn, marked 📍 in `get_library`) only accept a login from the address it signed in from. A dedicated IP is one address that only this account uses, and once the account holds one, every sign-in link and every later call on that login uses it automatically. Call w

  • delete_connection

    Start deleting a saved login by the `id` `list_connections` returned. **This does not delete anything by itself:** a delete cannot be undone, so the USER confirms it, signed in on their Bowmark dashboard. It returns `confirmUrl` — give that link to the user; it opens a "Delete th

  • logout_connection

    Sign a saved login out by the `id` `list_connections` returned. Bowmark drops the cookies it held, and where the site supports it (`siteLogout: "supported"` in the reply) the session is ended ON THE SITE too — `siteSignedOut: true` means Bowmark checked the site no longer accepts

基础检查i

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

  • ✓ 通过

    作者与仓库一致

    注册名称已通过域名 bowmark.ai 验证(注册中心会核实域名所有权)

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • ✓ 通过

    端点有响应

    在 257 毫秒内响应(HTTP 200)

  • – 不适用

    使用 OAuth 登录

    无需登录

  • ✓ 通过

    工具描述中没有隐藏指令

    已读取 33 个工具描述,未发现针对 AI 的隐藏指令

与“网页与浏览器”中的其他服务器比较i

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

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

常见问题

Bowmark 安全吗?

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

它需要哪些密钥或代码?

你需要填写:BOWMARK_API_KEY, Authorization

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

两种方式都可以:安装在你的电脑上,或者连接云端版本。

它还在维护吗?

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

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Browser Use, Chrome DevTools MCP, MCP Server Browser

替代选择

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

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

Browser Use

作者:browser-use

Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.

电脑或云端★ 120,087MIT16天前更新
安装

Chrome DevTools MCP

作者:ChromeDevTools

MCP server for Chrome DevTools

在你的电脑上运行★ 54,821Apache-2.015天前更新
安装

MCP Server Browser

作者:bytedance

MCP server for browser use access

在你的电脑上运行★ 39,550Apache-2.014个月前更新
安装

作者的 README

打开 README

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

Bowmark skill: live, structured data from 750+ websites for your agent

Ask for prices, listings, profiles or reviews by name (Amazon, LinkedIn, YouTube, Airbnb and more) and get typed results back. Every account starts with a free $10.

LM Studio: GitHub strips a raw lmstudio: link, so this one is a paste, not a button. Copy it into your browser's address bar:

lmstudio://add_mcp?name=bowmark&config=eyJ1cmwiOiJodHRwczovL2FwaS5ib3dtYXJrLmFpL21jcC9iYWRnZS1sbXN0dWRpbyJ9

The skill for Bowmark, the web as callable functions. The agent reads a typed function library, writes a short script against it, and Bowmark runs it on the live sites.

npx skills add bowmark-ai/skill

Works on any host that supports the SKILL.md standard — Claude Code, Codex (which adopted the standard natively), Cursor, GitHub Copilot, OpenCode, and others.

The skill calls Bowmark's MCP server — wire that up at bowmark.ai/#install or via Smithery.

Want both in one step? On Claude Code and Codex, install the plugin instead — it bundles this skill *and* auto-wires the MCP:

# Claude Code

claude plugin marketplace add bowmark-ai/plugin && claude plugin install bowmark@bowmark-ai

Codex

codex plugin marketplace add bowmark-ai/plugin # then codex /plugins to install

Tools

ToolWhat it does
get_libraryRead the typed function library for a task or a site. Read-only, touches no site, and an unrecognized query returns the index rather than an error.
runExecute a short async JavaScript script against the live sites and return { ok, result, logs, error, ms }.
reportTell Bowmark what it could not do, or which run came back wrong. Recorded as feedback; retries nothing.

No MCP client? The same two calls are plain HTTP — GET https://api.bowmark.ai/v1/library?query=… and POST https://api.bowmark.ai/v1/run, both taking Authorization: Bearer $BOWMARK_API_KEY. The reference is bowmark.ai/docs/api; worked examples are at bowmark.ai/docs/scripting#no-install-at-all.

OpenAI Apps (ChatGPT plugin) variant

The ChatGPT Apps submission takes a skill as a ZIP or folder, and its needs differ slightly from the general skill: the plugin always ships the MCP alongside the skill, and ChatGPT exposes the tools under bare names. So there's a tailored variant, generated from this same canonical skill — never hand-maintained:

  • Folder: openai/bowmark/ — a content mirror of bowmark/SKILL.md with the trailing "Your API key" section and everything after it dropped (ChatGPT signs in by OAuth and cannot send a key), tool names rewritten to bare get_library / run, Claude-only frontmatter/tool-name references trimmed, and the three secret tools (list_secrets, request_secret, get_secret_link) replaced by the dashboard — the plugin's MCP is the ChatGPT directory connector, which does not offer them. That step refuses to build if the canonical wording moves out from under it. build-openai.mjs is the authority on what it cuts; this line described sections that have never existed in bowmark/SKILL.md, and a newcomer went looking for one.
  • ZIP: openai/bowmark-openai-skill.zip — the same folder zipped, ready to drop straight into the ChatGPT "Skills" uploader. A committed artifact (not built in CI: the release runner has no zip binary), so it rides the mirror to bowmark-ai/skill at a stable raw URL like any other file.

Both are generated by build-openai.mjs. Edit bowmark/SKILL.md, then regenerate and commit — never edit the openai/ copies directly (CI's check:openai fails a PR whose text mirror is stale):

pnpm -F @bowmark/skill sync:openai        # regenerate openai/bowmark/SKILL.md

pnpm -F @bowmark/skill build:openai-zip # rebuild openai/bowmark-openai-skill.zip (commit it)

License

MIT © Bowmark AI

问 PopNx