ai.bowmark/bowmark · version 2.1.1 · 4,589 weekly npm downloads · audited 2026-11-03
Notes
No hidden-instruction or invisible-character findings in any tool, prompt, or resource description.
Checks the directory's published tool requirements that are visible from tools/list. Passing them does not guarantee acceptance.
request_secretdelete_connectionNot 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.
| Name | Title | Hint | Description |
|---|---|---|---|
get_library | Check what Bowmark can do for this task | read-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 … |
run | Do the task on the live websites and return the result | destructive | **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_view | Run view | read-only | 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 | Open a page for the user (jig) | writes | 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 … |
jig_list | List the user's pages (jigs) | read-only | The 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_update | Steer an open page (jig) | writes | 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) … |
jig_view | Jig view | read-only | Used by an open jig to pick up its latest state. You do not need to call this. |
jig_cache | Jig cache | writes | Used by an open jig to save a call's last good result. You do not need to call this. |
jig_seen | Jig seen | writes | Used by an open jig to report what it shows. You do not need to call this. |
jig_perf | Jig perf | writes | Used by an open jig to report how fast it loaded. You do not need to call this. |
jig_look | Look at a page (jig) | read-only | 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 sa… |
jig_call | Jig call | destructive | Used by an open jig to call the library. You do not need to call this — use `run`. |
session_call | Call one Bowmark function and keep the session open for the next call | destructive | 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 fr… |
session_close | End a Bowmark session | writes | Ends a session `session_call` opened and frees what it held. Pass the `sessionId`. Closing one that is already closed is harmless. |
report | Report what Bowmark could not do for this task | writes | 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 … |
get_usage | Check what your account has spent | read-only | 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 (… |
support | Talk with Bowmark support about a report | writes | 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 hel… |
list_secrets | See which of the user's logins Bowmark already holds | read-only | 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 … |
request_secret | Ask the user to set a login Bowmark will need | writes | 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 … |
get_secret_link | Get the user a link to one of their own stored logins | read-only | 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 … |
list_connections | See which sites Bowmark is already signed in to | read-only | 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… |
add_connection | Get the user a link to sign Bowmark in to a site | writes | 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,… |
wait_for_sign_in | Wait for the user to finish signing in | read-only | 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… |
lease_ip | Get the user a dedicated IP for sites that need one | writes | 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 … |
delete_connection | Ask the user to confirm deleting a saved login | read-only | 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 `con… |
logout_connection | Sign one of the user's saved logins out | destructive | 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 — `siteSigne… |
npx mcpvetter scan --liveAdd this to a README:
[](https://mcpvetter.com/servers/bowmark-mcp)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.