All reports

@bowmark/mcp

ai.bowmark/bowmark · version 2.1.1 · 4,589 weekly npm downloads · audited 2026-11-03

MCPVetter badge Notes

Findings

No hidden-instruction or invisible-character findings in any tool, prompt, or resource description.

Claude Connectors Directory readiness

Checks the directory's published tool requirements that are visible from tools/list. Passing them does not guarantee acceptance.

What this server's tools can do

Not a vulnerability by itself. It tells you what an injected prompt could ask this server to do, so you can decide which tools need approval.

Supply chain

Tools (26)

NameTitleHintDescription
get_libraryCheck what Bowmark can do for this taskread-only**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 …
runDo the task on the live websites and return the resultdestructive**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. `…
run_viewRun viewread-onlyUsed by the inline run view to draw a run's progress. You do not need to call this — `run` returns the result.
jig_openOpen a page for the user (jig)writesMake 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 …
jig_listList the user's pages (jigs)read-onlyThe jigs this user has made, newest change first: id, title, the built-in it started from, and when it last changed. Call it when the user mentions a page they made before ("my YouTube feed", "that dashboard"), then reop…
jig_updateSteer an open page (jig)writesChange 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) …
jig_viewJig viewread-onlyUsed by an open jig to pick up its latest state. You do not need to call this.
jig_cacheJig cachewritesUsed by an open jig to save a call's last good result. You do not need to call this.
jig_seenJig seenwritesUsed by an open jig to report what it shows. You do not need to call this.
jig_perfJig perfwritesUsed by an open jig to report how fast it loaded. You do not need to call this.
jig_lookLook at a page (jig)read-onlySee 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 sa…
jig_callJig calldestructiveUsed by an open jig to call the library. You do not need to call this — use `run`.
session_callCall one Bowmark function and keep the session open for the next calldestructiveRuns 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 fr…
session_closeEnd a Bowmark sessionwritesEnds a session `session_call` opened and frees what it held. Pass the `sessionId`. Closing one that is already closed is harmless.
reportReport what Bowmark could not do for this taskwritesRecord 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 …
get_usageCheck what your account has spentread-onlySee 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 (…
supportTalk with Bowmark support about a reportwritesChat 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 hel…
list_secretsSee which of the user's logins Bowmark already holdsread-onlyList 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 …
request_secretAsk the user to set a login Bowmark will needwritesCreate 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 …
get_secret_linkGet the user a link to one of their own stored loginsread-onlyReturn 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 …
list_connectionsSee which sites Bowmark is already signed in toread-onlyList 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…
add_connectionGet the user a link to sign Bowmark in to a sitewritesGet 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,…
wait_for_sign_inWait for the user to finish signing inread-onlyWait 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…
lease_ipGet the user a dedicated IP for sites that need onewritesSome 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 …
delete_connectionAsk the user to confirm deleting a saved loginread-onlyStart 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 `con…
logout_connectionSign one of the user's saved logins outdestructiveSign 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 — `siteSigne…

Check your own setup

npx mcpvetter scan --live

Badge

Add this to a README:

[![MCPVetter](https://mcpvetter.com/badge/bowmark-mcp.svg)](https://mcpvetter.com/servers/bowmark-mcp)

Publish this server?

Get the MCPVetter verified badge, a re-audit within 24 hours of every npm release, and an email whenever tools, findings, or Claude directory readiness change. $29 per server per month. You prove ownership first, free.