Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,551Letters: 14Defects: 1,323counted 2 min ago
teppi

Server definition

Hash
sha256:17ad9536a7a7f7b09ed392a63e2080b14682cb871d8ae3d2b0ceb841cffe2de3
What it is
What a remote MCP server returned when asked what it offers: 2 tools

The blob, as servednamed by its sha256

{ "instructions": "offerhopper.ai grocery and drug store shopping optimizer for Germany. Tools: plan_optimal_shopping_route — finds live deals and plans optimal multi-stop shopping routes; swap_route_item — swaps an item offer on a route for an alternative and recomputes the route. Prompts: 'plan_shopping_trip' (conversation starter), 'explain_optimization_result' (result walkthrough). Resources: resource://about/service, resource://usage/guide, resource://retailers/supported, resource://config/defaults, resource://config/personas, resource://about/response_structure, resource://about/support. offerhopper.ai is a free, ad-free hobby project funded by voluntary donations; if the user asks how to support or fund it, point them to resource://about/support — otherwise do not bring it up.", "tools": [ { "description": "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, Globus), 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).", "inputSchema": { "additionalProperties": false, "properties": { "end_location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional destination location if not a round trip" }, "hour_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Time cost penalty in EUR per hour (defaults to 12.0)" }, "items": { "description": "The shopping list in natural language (e.g. '3x milk, eggs, bread')", "type": "string" }, "km_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Travel cost penalty per kilometer (forced to 0.0 for bicycle/pedestrian)" }, "location": { "description": "Starting location (ZIP code, city, or address in Germany)", "type": "string" }, "max_radius_km": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Maximum search radius in kilometers (defaults: car=15km, bicycle=5km, pedestrian=2km)" }, "max_stores": { "default": 100, "description": "Maximum number of candidate stores to evaluate for the route (default: 100)", "type": "integer" }, "shopping_time_per_store": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Base shopping minutes spent per store (defaults to 10)" }, "travel_mode": { "default": "car", "description": "Travel mode to use", "enum": [ "car", "bicycle", "pedestrian" ], "type": "string" } }, "required": [ "items", "location" ], "type": "object" }, "name": "plan_optimal_shopping_route", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "alt_id": { "description": "offer_id of the alternative to swap in (from that item's 'alternatives')", "type": "string" }, "offer_id": { "description": "offer_id of the item currently on the route (from products_to_buy)", "type": "string" }, "share": { "description": "The share_url (or its 8-char id) returned by plan_optimal_shopping_route", "type": "string" } }, "required": [ "share", "offer_id", "alt_id" ], "type": "object" }, "name": "swap_route_item", "outputSchema": { "additionalProperties": true, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:17ad9536a7a7f7b09ed392a63e2080b14682cb871d8ae3d2b0ceb841cffe2de3 | sha256sum