MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Other

Gaurmon

Toronto grocery prices for your agent: flyer deals, shelf prices, and the flyer behind each one.

Checks passed
12 / 22

2 failed · 8 not measured

Median response
795 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
16

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 795 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name gourman.

  • Pass
    Lists tools

    tools/list returned 16 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 795 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 795 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    58 of 76 parameters have a description (76%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-05T15:27:08.1543Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using Gaurmon

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http gaurmon https://www.gaurmon.com/api/mcp

Capabilities

Tools 16

account_status

The user's Gaurmon plan: trial days left, or the paid plan and when it renews. Free.

Discovered
compare_items

For each item, the best comparable flyer offer at each banner near a place (priced offers first, the item itself by name, then lowest unit price), plus per-banner totals. Items with no flyer offer come back null: try shelf_prices for those.

Discovered
coverage

Banners, current flyer weeks, store counts and known gaps (e.g. FreshCo store locations unknown; shelf prices No Frills only, with Statistics Canada Ontario averages as a labelled fallback). Free. Call it before telling a user something isn't on sale.

Discovered
get_list

The user's grocery list and the meals behind it, kept by Gaurmon so they're the same in every agent and device. Each item is costed near a place for the amount needed (its own amount plus its meals'), from the cheapest flyer offer or everyday shelf price: by weight, by whole packages, multibuys per item; `price.how` says how and `approximate` when the size isn't comparable. `stops` groups items by store (at most `maxStores`, only `preferBanners` when set). `meals` lists each meal's ingredients and cost share; `mealIds` on an item says which meals need it. Unpriced items aren't counted in `totals`. Ids are for update_list and update_meals. Which stores to visit, and when, is yours to suggest.

Discovered
get_offer_evidence

The flyer crop an offer was read from (as an image), with its page, dates and banner. Use it to show the user, or for a price match at the till.

Discovered
get_savings

The running savings record, as estimates compared with typical prices nearby: the headline `vsTypical` (paid vs the typical, median price of the same items around the store on the same days; positive = under typical), `vsCheapest` (left on the table) and `vsPriciest`, totals by flyer week and by month, the best and worst lines, every line with the prices behind it, `summary` (lead with this: what was compared, what wasn't and why), `shareable`, one sentence the user can post, and `method` with `methodUrl`, a short plain explanation of how savings are counted and where it's published, to give the user when they ask. Totals count ranged lines only; thin and unranged lines are counted separately. Free, including after the trial.

Discovered
locate

Place a Canadian postal code, FSA or lat,lng as coordinates. Free. Use it to check a location before searching.

Discovered
price_history

An item's observed unit-price range (min, median, max per kg, L or item) by flyer week (Thursday to Wednesday), from flyer offers and shelf prices near a place, plus `longRun`: the Statistics Canada monthly average unit price for the item since 2017 (Ontario, else Canada), with its 1- and 5-year change. `weeksKnown` says how many weeks Gaurmon has: its history started with the Oct 29 2026 flyer week and grows by one each Thursday, so say so when it's short, and say `longRun` is a provincial average, not a store price.

Discovered
price_range

Where a price sits: the cheapest, typical (median) and priciest qualified unit price for the same item across stores near a place on a day (flyer offers valid that day, shelf prices read within a week), how many prices each rests on, and `status` ranged | thin_range | unranged. Give quantity, unit and paidMinor to get the percentile and savings for a price. Use it before a purchase to say what a fair price is; record_purchases stores the same numbers.

Discovered
record_purchases

Add a receipt to the user's savings record: one row per line (generic item, quantity, unit, paidMinor in cents, optional offerId from search_offers). Each line is stored with its price range around the store that day (cheapest, typical, priciest) and returns savings vs each plus the percentile; negative savings (paid above typical) are kept. Lines on a thin range are shown but not totalled. Each line has `basis` (what it was compared with) or `notCounted` (why not) and a plain `summary`; the receipt has a `summary`, `method` and `methodUrl` (how savings are counted, an estimate compared with typical prices nearby) to pass on to the user. Append-only and idempotent: reuse `operationId` to retry safely; to fix a purchase, record a new one with `supersedesPurchaseId`.

Discovered
search_offers

This week's flyer offers for item words, an aisle, or deals near a place: give at least one of `query`, `aisle` or `near`. Each row has a comparable unit price (per kg, L or item), dates (`valid` is the first and last day, Toronto time), the nearest store carrying it, and an offerId for get_offer_evidence and show_offers. At most 50 rows a call; use `aisle` and `unit` filters and `fields` to keep answers small.

Discovered
shelf_prices

Regular (non-flyer) prices for staples, for items not on sale this week. Store shelf prices are No Frills only for now. One row per product; `proxy: true` means the price was read at another branch of the banner. Each row carries `baseline`, the Statistics Canada Ontario average for that kind of item when there is one, and `vsOntarioAveragePct`. When no store price exists (e.g. Food Basics, FreshCo), `hits` is empty and `fallback` holds only the StatCan averages: say they are provincial averages, not what a store charges.

Discovered
show_offers

Show the user a titled Gaurmon card of flyer offers you chose, in your order: your ranking of the week's best deals, or picks from several searches. Pass offerIds from search_offers or compare_items, plus the same `near` so each row names its nearest store. Use it when the user asks to see, list or rank offers you've already found, instead of writing the list out. Adds no new offers.

Discovered
stores_near

Stores within a radius, nearest first, each with every flyer it runs this week and how many offers each flyer has.

Discovered
update_list

Add items to, remove items from, or tick items on the user's grocery list by hand (at most 100 items; an item already on the list isn't added twice, but one there only for a meal becomes wanted by hand too). Give an amount for each item so it's costed right. Use item ids from get_list. `clear: "checked"` removes ticked items after a shop; `clear: "all"` empties the list and its meals. For a meal's ingredients use update_meals instead, so they stay linked. Returns the list like get_list. After a shop, offer to record what was bought with record_purchases.

Discovered
update_meals

Add, remove, replace or edit the meals behind the user's grocery list; their ingredients go on and off the list to match, in one transaction. Send a whole plan at once with `add` (at most 21 meals, 40 ingredients each, amounts in any unit). Shared ingredients are combined where units allow. Removing a meal lowers what's needed of shared items and removes items no other meal needs, but never items added by hand; ticked items stay, marked noLongerNeeded. `replace` swaps a meal for another in one step. Returns the list like get_list plus `change` (items added and removed, estimate before and after) and `undo`: the update_meals arguments that reverse it.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected795 ms16