docs

Shopping price and stock MCP server for AI agents

Let Claude, ChatGPT, Cursor or your own agent compare live prices and stock across Walmart, Target and Best Buy in one call. Typed results, free $10 to start.

Reading this with an agent?

This page as plain text: /docs/shopping.md. A summarising fetch tool paraphrases long pages, so for code to copy exactly, fetch it raw: curl -s https://bowmark.ai/docs/shopping.md. The whole site as one file: https://bowmark.ai/llms-full.txt. Index of every page: https://bowmark.ai/llms.txt.

Bowmark is an MCP server your agent can call to check where a product is sold, what it costs, and whether it is in stock. Ask "where is the Nintendo Switch 2 cheapest right now, and who has it?" and the agent gets one price-sorted list back, each offer tagged with its store and stock.

What your agent can do

  • Search Walmart and Target in one call. Best Buy joins with your own Best Buy developer key.
  • Get one list sorted by price. Each offer has its store, title, price, previous price, link and in-stock flag.
  • Read a single product page on many more stores. The full list is on Providers.

Honest results

Every search returns a warnings list. If a store did not answer, the agent is told which one, so it never reports "cheapest" from half the market.

Stores return their own keyword results, so accessories show up too. Filter on the title before reading the top price. The example below does this.

Connect it

MCP URL: https://api.bowmark.ai/mcp. Make a key at dashboard/keys; your first $10 of usage is free, no card needed. Every other client is on Installation.

claude mcp add bowmark --transport http https://api.bowmark.ai/mcp \
  --header "Authorization: Bearer $BOWMARK_API_KEY"

In ~/.codex/config.toml, with BOWMARK_API_KEY exported in your shell:

[mcp_servers.bowmark]
url = "https://api.bowmark.ai/mcp"
bearer_token_env_var = "BOWMARK_API_KEY"

Settings → MCP → Add new MCP server, then paste the JSON from Installation.

Example

const { results, warnings } = await bowmark.retail.search({ query: "Nintendo Switch 2" });
const inStock = results.filter(
  (o) => /switch 2/i.test(o.title) && o.inStock && o.price !== null,
);
return { cheapest: inStock[0] ?? null, warnings };

FAQ

Which MCP server can compare prices across stores? Bowmark: one call searches Walmart and Target (Best Buy with your key) and returns typed, price-sorted offers.

Does it show stock? Yes. Each offer carries that store's own in-stock flag.

Does it buy? No. It returns the product link; the purchase happens on the store's site.

Does it cover Amazon? Not in this one call. Amazon has its own functions; see Providers.

What does it cost? Free $10 of usage to start, then pay as you go. See Pricing.