MCP server for Wolt shopping: search grocery products near you, plan a single-store cart, and write it to your Wolt basket. Your MCP client's model does the reasoning — no API key needed here.
29 tools with mostly complete schemas and descriptions, but significant gaps in parameter documentation and error guidance. Tool names follow verb_noun convention well (search_*, get_*, add_*, etc.). Descriptions range from adequate (50-150 chars) to verbose (200+ chars), but many lack actionable context about when to use each tool vs. alternatives. Parameter descriptions are present but often generic ('optional: latitude'). No visible output schema documentation. Error handling is minimal, no recovery guidance or categorization. Security concern: set_wolt_token and login_via_chrome expose authentication flows without clear secret-injection patterns.
Add a venue to user's favorites
Add items to a Wolt basket at a specific venue
Preview checkout for a basket: price the user's basket (fees, delivery, offers) without placing an order
Clear all items from a basket
Find a specific item at a venue by name, ID, or Wolt URL
Get all active shopping baskets for the user
Get customization options for a dish at a venue
Most tool descriptions are under 50 characters and lack actionable context. E.g., 'Get Wolt feed sections', 'Get user's favorite venues', 'Get user's order history' do not explain WHEN to use each tool, what distinguishes them from similar tools, or what the LLM should expect in the response.
No output schema documentation visible. LLMs cannot plan downstream tool calls or extract required fields (e.g., venueId, itemId) without knowing what each tool returns. This forces agents to guess or make exploratory calls.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Get user's favorite venues
Get Wolt feed sections
Get details of a specific order
Get user's order history
Get user's saved payment methods
Get detailed information about a Wolt venue
Get product categories for a Wolt venue
Get menu items for a Wolt venue
Get user's Wolt profile information
Zero-paste login via Chrome DevTools Protocol: launch Chrome, let user log into wolt.com normally, harvest the refresh token from cookies
Plan a shopping cart for a recipe or ingredient list. Resolves every ingredient in one call, auto-picks the best store, and reports runner-up coverage. Refuses lists written in the wrong script for the market's catalogs (needsTranslation).
Remove a venue from user's favorites
Geocode a spoken address into coordinates using OpenStreetMap Nominatim
Search Wolt grocery products for a single ingredient. Default: searches ALL nearby stores. With venue_slug: searches ONE store's own catalog (needs login; query in the store's language) — use this to check or fix a single item at the store you're building the basket at. For a whole recipe or shopping list, prefer plan_cart — it resolves every ingredient in one call. A basket must be all from ONE venueId. MATCHING RULES when picking: (1) Match the ingredient ITSELF — never a plant-based, vegan, imitation,
Search Wolt restaurant dishes
Search Wolt venues (restaurants/stores)
Set the user's delivery location (coordinates and label)
Store a Wolt refresh token (pasted from browser DevTools) for authentication
Get top-rated Wolt venues
Update the quantity of an item in a basket
Get user's saved Wolt addresses and set one as the search location
Check Wolt login status and token validity
Authentication tools (login_via_chrome, set_wolt_token) expose token handling without clear secret-injection patterns. set_wolt_token accepts refresh_token and access_token as parameters, these should never be passed as tool arguments. Tokens must be injected server-side via environment or vault.
No error handling guidance. Tools do not document what errors are retryable, user-fixable, or fatal. E.g., if search_products returns no results, should the LLM retry with a different query, or is the ingredient unavailable? No recovery path is documented.
Destructive operations (clear_basket) lack confirmation or dry-run support. An agent could accidentally clear a user's basket without a confirmation step. No idempotent hints or destructiveHint annotations visible.