Skip to main content
Glama

offerhopper.ai — AI Supermarket & Drugstore Shopping Assistant for Germany

Server Details

Live prices, deals & optimal multi-stop shopping routes for German grocery & drug stores.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4.6/5.0
Disambiguation5/5

plan_optimal_shopping_route creates a new route from a shopping list, while swap_route_item modifies an existing route by exchanging one offer. Their inputs and outputs are distinct, and the descriptions clearly frame the create-vs-adjust relationship.

Naming Consistency5/5

Both tools follow a clear snake_case, verb-first naming pattern: plan_optimal_shopping_route and swap_route_item. The route concept appears consistently in both names, and there is no mixing of conventions or vague verbs.

Tool Count4/5

Two tools is on the low end of the typical range, but the pair covers the core route-planning and route-adjustment workflow without redundancy. It is slightly under-scoped rather than bloated, so the count remains reasonable.

Completeness4/5

The plan-and-swap loop covers the primary use case end-to-end, including alternatives, route recomputation, and share_url updates. Minor gaps exist if a user wants broader offer browsing or multi-item edits without re-planning, but these are workarounds rather than dead ends.

Available Tools

2 tools
plan_optimal_shopping_routePlan optimal grocery and drug store shopping tripA
Read-onlyIdempotent
Inspect

Plans the optimal shopping trip for a given list and starting location in Germany. Answers 'where should I go to buy this list, and is the trip worth it?' — not 'what's on offer near me'. Matches each item on the list to the best current offer across German supermarkets and drug stores (REWE, Aldi, Lidl, Penny, Netto, Norma, Edeka, DM, Rossmann, Mueller), then computes the cheapest realistic route by weighing product prices against travel distance and shopping time. Returns the chosen store(s), the per-item picks with live prices, the trip's savings and a worth-it Supports car, bicycle, and pedestrian travel modes. For corridor trips (A-to-B), supply 'end_location' to route stores along the way. Pricing note: 'price' is the standard shelf price available to all shoppers (do NOT say discounts require an app). 'app_credit' is optional wallet cashback (e.g. REWE Bonus: plus €0.50 into wallet). 'app_price' is an app-exclusive checkout price (e.g. Lidl Plus).

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesThe shopping list in natural language (e.g. '3x milk, eggs, bread')
km_costNoTravel cost penalty per kilometer (forced to 0.0 for bicycle/pedestrian)
locationYesStarting location (ZIP code, city, or address in Germany)
hour_costNoTime cost penalty in EUR per hour (defaults to 12.0)
max_storesNoMaximum number of store stops to allow in the route (default: 100)
travel_modeNoTravel mode to usecar
end_locationNoOptional destination location if not a round trip
max_radius_kmNoMaximum search radius in kilometers (defaults: car=15km, bicycle=5km, pedestrian=2km)
shopping_time_per_storeNoBase shopping minutes spent per store (defaults to 10)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only, idempotent, open-world, and non-destructive. The description adds that it compares live offers across named chains, weighs price against distance and time, returns per-item picks/savings/worth-it, and clarifies price vs app_credit vs app_price semantics with an explicit instruction not to claim discounts require an app. This goes well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads purpose and packs dense, relevant detail: store list, travel modes, pricing semantics. It is slightly long and has a run-on/typo around 'worth-it Supports', but each clause contributes actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters and an output schema, the description is complete enough: it covers what is returned, pricing field meanings, travel modes, and the corridor-trip case. It leaves parameter details to the schema and does not omit any critical usage behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by instructing to supply 'end_location' for corridor trips and by noting supported travel modes, which map to the travel_mode parameter. It does not describe every parameter, but the schema already covers them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Plans', 'Matches', 'computes') and resource ('optimal shopping trip') and scopes to German supermarkets and drug stores. The explicit 'not what's on offer near me' disambiguates from a nearby-offers search. It clearly communicates what the tool does and what it does not do.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the tool answers 'where should I go to buy this list, and is the trip worth it?' and gives a concrete trigger ('given a list and starting location'). It provides an exclusion ('not what's on offer near me') and an edge-case instruction (use end_location for corridor trips), but it does not name the sibling swap_route_item or explicitly differentiate when to choose that tool instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

swap_route_itemSwap an item on a shopping routeAInspect

Swaps one item's chosen offer on an existing shopping route (from a prior plan_optimal_shopping_route result) for one of its alternatives, then returns the RECOMPUTED route with corrected costs and the honest worth-it verdict. Use this to correct a poor pick (e.g. the engine matched a soup hen instead of a roasting chicken) or to take a cheaper/better option the agent spotted in the item's 'alternatives'. The alternative may be at the SAME store or at ANOTHER store ALREADY ON THE ROUTE — it must be the same item category, and its store must already be a stop (no new stores; for that, call plan_optimal_shopping_route again). Keys on stable offer ids: pass the current item's offer_id and the target alternative's offer_id (both taken verbatim from the prior response's products_to_buy / alternatives). The shared route (share_url) is updated in place so the interactive map reflects the swap.

ParametersJSON Schema
NameRequiredDescriptionDefault
shareYesThe share_url (or its 8-char id) returned by plan_optimal_shopping_route
alt_idYesoffer_id of the alternative to swap in (from that item's 'alternatives')
offer_idYesoffer_id of the item currently on the route (from products_to_buy)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description reveals important behaviors: the route is recomputed with corrected costs, the shared route 'is updated in place so the interactive map reflects the swap,' and swaps key on stable offer IDs. It also clarifies constraints such as same item category and no new stores.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed yet efficient; each sentence adds necessary information about purpose, use cases, constraints, IDs, or side effects. Core behavior is front-loaded, with supporting details arranged logically.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully equips an agent to invoke the tool correctly: it explains prerequisites, input provenance, constraints, side effects, and return value. Given the output schema and sibling signal, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant semantic context: offer_id comes from products_to_buy, alt_id from the item's alternatives, and share is the share_url returned by plan_optimal_shopping_route. It even instructs to take IDs 'verbatim from the prior response,' reducing ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb, resource, and outcome: 'Swaps one item's chosen offer on an existing shopping route ... for one of its alternatives, then returns the RECOMPUTED route.' It clearly distinguishes itself from plan_optimal_shopping_route by scoping to existing routes and prior results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it: 'correct a poor pick' or 'take a cheaper/better option' from alternatives. It also gives a clear exclusion: the alternative's store must already be a stop, and if a new store is needed, 'call plan_optimal_shopping_route again.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool update
    • Addedswap_route_item
  2. 1 tool update
    • First observedplan_optimal_shopping_route

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables users to compare prices, track budgets, and find promotional deals across major Dutch supermarkets and drugstores. It supports automated shopping list optimization, meal planning, and price history alerts for stores like Albert Heijn, Jumbo, and Kruidvat.
    14
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server for real-time Swiss grocery shopping that searches and compares products across 8 major Swiss retailers (Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, Otto’s), normalizes per-unit prices, surfaces promotions, computes optimal multi-store shopping plans, and works with any MCP-compatible client without API keys or accounts.
    7
    82
    30
    AGPL 3.0
  • A
    license
    A
    quality
    A
    maintenance
    Enables searching products, comparing prices, and building optimal shopping lists across major Chilean supermarkets, using your local machine to access real-time prices and loyalty deals.
    14
    44
    66
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables cross-store price comparison and recipe-driven cart automation for Israeli grocery stores Shufersal and Tiv Taam, with an extensible architecture for additional stores.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources