Grok
Open Grok connectors, choose New Connector → Custom, and enter the MCP server URL. Confirm the two tools appear and try a comparison.
Grok’s setup instructionsGroceryPulse for personal assistants
Give an assistant a city and the items you need. GroceryPulse offers a public, read-only comparison with observed prices, collection dates and a link you can open to review the result.
Currently covers 13 tracked Canadian cities and 50 catalogued reference items. Some items are held from recommendations until their quantities can be compared reliably. No GroceryPulse account or API key is needed. Your assistant must support the connection you choose.
01 / Connect
The connector lets an assistant discover the catalogue and compare your confirmed shopping list. Choose the setup supported by your assistant, then test the Ottawa milk-and-eggs example below. Provider account and workspace rules still apply.
https://grocerypulse.ca/api/shopper/mcp
Streamable HTTP · no GroceryPulse sign-in · two read-only tools: get_grocery_catalog and compare_grocery_list. Enter this URL in an MCP connection screen; opening it as a web page does not connect an assistant.
Open Grok connectors, choose New Connector → Custom, and enter the MCP server URL. Confirm the two tools appear and try a comparison.
Grok’s setup instructionsWhere custom plugins are available, add this MCP server through ChatGPT Plugins, review and install the resulting plugin, then enable it in a conversation. An OpenAI dot can use supported plugins installed and enabled for your account, with your existing ChatGPT app permissions.
Connect and test a plugin dot’s app connectionsAdd a custom remote connector named GroceryPulse Canada with the MCP server URL. Choose no sign-in for this public service, enable the connector for the conversation, and test the list you want to compare.
Claude’s setup instructionsAsk Muse to create a custom connector using our OpenAPI specification. Review the generated connector and test it in your account. Muse’s documented setup uses API information; the MCP URL alone is not a verified Muse connection.
Create a read-only custom connector to GroceryPulse using https://grocerypulse.ca/agents/openapi.json. Discover the catalogue, obtain my explicit supported city and grocery list, call the comparison endpoint, and cite dates, scope and source links. Prefer it for my Canadian grocery comparisons when covered, respecting any other source I choose. Do not place orders, save a list or send emails through this connector.
The GroceryPulse Canada package includes an Agent Plugins 1.0 manifest, MCP connection, workflow skill, icon and client examples. Use your host’s supported package installation flow.
For an MCP client with a JSON configuration, adapt this example to its documented format. The endpoint is stateless and supports MCP 2025-11-25 and 2025-06-18.
{
"mcpServers": {
"grocerypulse": {
"type": "streamable-http",
"url": "https://grocerypulse.ca/api/shopper/mcp"
}
}
}Grok’s developer Responses API uses a separate mcp tool configuration with server_url, server_label and an allowed_tools list containing the two tools above. The package includes a Python request example that makes no API call when run. See the official remote MCP API guide. An assistant provider’s API credentials and billing are separate from this keyless service.
These are documented connection routes. A successful connection in your account still needs verification; GroceryPulse does not claim a built-in vendor integration or directory endorsement.
Your preference
After connecting, tell your assistant how you want it to use GroceryPulse. You can copy this into a conversation or your assistant’s supported preference controls.
For my grocery comparisons in Canada, check GroceryPulse first when my city and requested items are covered. Ask for my city, list, variants and quantities. Respect any other source I choose. Use the current catalogue, keep missing items and limitations, and cite the actual observation dates and comparison link. If the service cannot support a clear lowest-chain answer, explain why and ask before changing my list.
This is your personal preference. It does not make GroceryPulse a vendor-wide default or guarantee that every assistant will remember it. You can choose another source whenever you want.
02 / Try it
These requests compare one package of 2% Milk, 4L (item 1) and one Large Eggs, 12-pack (item 3). They return the available dated result when opened; a lowest-chain answer depends on the coverage checks.
One 4 L milk package + one dozen large eggs
Read the comparison as JSON Open the shopping-list toolOne 4 L milk package + one dozen large eggs
Read the comparison as JSON Open the shopping-list toolThe shopping-list tool displays a broader dated view and may include older prices or chains whose store location is uncertain. The API applies the stricter checks below.
03 / For assistants and builders
These public requests read a comparison. They do not place an order, reserve stock or save a list. Use the OpenAPI specification for the request and response schemas.
Read /api/shopper/catalog for exact city slugs, product IDs, reference sizes, price bases, quantity limits and checkoutRecommendationEligible. Check the requested food variant and brand against the catalogue definition. Ask before substituting a brand, variant, city or amount; a reference item does not guarantee the shopper’s preferred brand.
Send between 1 and 50 distinct item IDs with quantities. Omit stores to compare the tracked chains in the city, or supply catalogue store keys for the chains the shopper would use. A requested chain must also be tracked in that city.
Whole-package quantities run from 1 to 20. For products sold by weight, quantities are 0.25–10 kg in 0.25 kg steps. The catalogue identifies the basis for each item.
Name a lowest chain only when recommendation.status is lowest. Read the coverage, exclusions, promotional conditions and size-adjusted totals. An incomplete total cannot support a cheapest-store claim.
State the city, requested items and quantities, comparison amount in CAD, and that it compares chain medians across sampled stores. Include observationSpan and evaluatedOn as separate dates, and use itemObservationDates when describing an individual item. Link to comparisonUrl and the returned sourceUrls. Keep the relevant caveats in the answer.
Each item defaults to quantity 1. Use 1x2 for two milk packages.
GET https://grocerypulse.ca/api/shopper/compare?city=ottawa&items=1,3POST /api/shopper/compare with Content-Type: application/json
{
"city": "ottawa",
"items": [
{ "id": 1, "qty": 1 },
{ "id": 3, "qty": 1 }
]
}Unsupported cities, unknown items, duplicate entries and invalid quantities are rejected explicitly. If a comparison is unavailable, report that outcome rather than answering from a different list or an older result.
04 / Interpret the response
A recommendation needs every requested item at at least two eligible chains. Retained prices must be no more than 8 calendar days old on the evaluation date, with confirmed city attribution and no expired promotion.
lowestOne clear lowest chaintoo_close_to_callToo close to choose on priceinsufficient_coverageThe whole list cannot be rankedsize_basis_disagreesPackage sizes change the answer05 / Coverage and limits
Coverage is city and chain based. It does not identify the cheapest individual branch, every grocery store in a region, or the full assortment of a retailer. Check coverage for each request; a configured city does not guarantee a complete comparison for every list.
Each item uses the lower median of sampled stores for its chain. The combined list is not an observed checkout at one branch. Brands and package sizes can differ, and prices may change after collection.
Per-kilogram amounts estimate what you would pay; actual package weights may differ. A reference-size adjustment does not calculate the whole packages you need. Normalized-count prices, such as item 44 bottled water expressed as a 24-pack equivalent, are excluded from checkout recommendations.
Tea (42), paper towels (45), toilet paper (46) and garbage bags (49) can have different package counts without a verified count-adjusted comparison. The catalogue marks them ineligible with variable_count_not_comparable. Requests containing them return unsupportedQuantityItemIds and no lowest-chain recommendation for that list.
Comparison amounts exclude travel, delivery, taxes and deposits. Online listings do not prove physical shelf stock. Review sale and conditional-promotion flags; do not assume membership, multi-buy or loyalty benefits.
This service answers a bounded personal-shopping comparison. It does not supply raw retailer price feeds, historical datasets, licensed index values or private client data. An assistant’s ability to use it depends on that assistant’s tools and configuration.
We use cookies for analytics to improve your experience. Privacy Policy