Bowmark
ai.bowmark/bowmark
Do things on live websites: prices, availability, quotes, bookings, anything behind a form or login.
Indexed
Crawled from a public source. No check has passed yet, or a check failed.
Tiers are set by checks and outcomes only. Nobody can pay for a tier or a higher rank. How we check
What it can reach
From its install config and its own description; a sandbox run will confirm this later.
- api.bowmark.ai
- bowmark.ai
- local files (paths not stated)
- Secret: BOWMARK_API_KEY
Checks on v8.152.0
Real tool
passrules 2026-09-29.1 · 3 hours agoStatic scan
failrules 2026-09-29.1 · 3 hours ago- criticalPairs a secret with an instruction to send data.tool:get_library.description
Install
Each app still asks you to confirm. Everything is pinned to the version checked above.
code --add-mcp '{"name":"bowmark","type":"http","url":"https://api.bowmark.ai/mcp/registry"}'{
"servers": {
"bowmark": {
"type": "http",
"url": "https://api.bowmark.ai/mcp/registry"
}
}
}- 1.Click the link, or run the command.
- 2.VS Code asks you to confirm the server before it starts.
Needs: BOWMARK_API_KEY
Pinned to v8.152.0 · c2e5158b0da1
Tools it offers
As the server describes them. This text comes from the publisher and is shown as-is.
get_library**Use this whenever a task touches a live website.** It answers, definitively and cheaply, whether Bowmark can already DO the thing: look up current prices, check real availability or stock, search a site, get a quote or a fare, drive a configurator, start a booking, or pull anything that only exists behind a form or a filter. **Behind a LOGIN is narrower**: it works once a purpose-built provider exists for that site, or the caller has a saved connection there — a generic caller with neither gets only a form-field reader, which cannot pass an identity check or obtain a vendor API key on its own. **Use this for Bowmark questions too.** Before answering how to write or run a Bowmark script, what the sandbox supports, or how to start when no site or task is named, call it with the caller's words. The matching entry gives the platform guidance; guessing from general programming knowledge does not. **Checking is cheap, so check.** One read-only call, no site is touched, and an unrecognized query returns a one-line index instead of an error, so the check never dead-ends and never costs you an attempt. If nothing fits, you have lost one cheap call and can use your normal approach. What comes back is the callable **function library** you write against: the runtime globals (`log`) PLUS, for each capability your query named, its namespace, TypeScript types, functions, and worked examples. Everything listed is real and callable. The language rules and how to run a script are on the `run` tool description. Pass `query` — what you want to DO (`"flights"`, `"price a GPU"`) or, if you have one in mind, the COMPANY or site (`"Kayak"`, `"newegg.com"`). If the caller gave only a URL, use its hostname as the query — the query parameters identify a page state, not the company. A phrase in the user's own words is fine; it is matched against the whole library. **You get what you asked about and nothing else.** If nothing matches — or you send no query — you get instead a one-line index: pick whichever entry fits and CALL AGAIN with its name to get the types and examples you need to write a script. **Every response is bounded, and it says so when it is a slice.** A broad query can match more than one response carries; when that happens the answer opens with a partial-answer line naming what it left out. **Read it before concluding anything** — absence from a sliced list means nothing, and the fix is one narrower query (a single task, or a single company by name), which always returns that entry in full. Only an answer that does NOT say it is a slice supports the conclusion that a task is uncovered. **THREE tiers come back, and the third is not written by Bowmark at all.** SITE TOOLS (`bowmark.sites["skims.com"].search_catalog(...)`) are the tools a SITE publishes about ITSELF — its own MCP server, or the tools its pages register — read live at the moment you name the host and callable like anything else. Nothing has to have been built for that site in advance, so **naming a site is worth doing even when you expect nothing to exist for it.** The descriptions are the site's own words, every tool it exposes is callable (including ones that change something there), and site tools are free. **The other two tiers come back too.** CAPABILITIES (`bowmark.flights.search(...)`) are the default and usually what you want: one call fans out across several sites, dedupes, ranks, and routes around a site that's failing. PROVIDERS (`bowmark.providers.kayak.search(...)`) are the individual sites, callable directly — they appear only when your query NAMED a company, or when the capability has just one provider behind it. A direct provider call gets that site's own raw shape and no failover, so prefer the capability unless you specifically want that site. Loop: call `get_library` → write a JS script against the `bowmark` global → send it to `run`.
Versions
- v8.152.0 · Sep 29, 2026
Signals
- Installs through us
- 0
- Agent reports
- none yet
- Publisher
- ai.bowmark · unclaimed
- Found via
- registry