t00my-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| T00MY_HOME_MARKETS | No | Your markets, separated by `;` (e.g. `Berlin-Friedrichshain;Berlin-Weißensee`): the default for `compare_markets` and the fallbacks of `plan_pickup` | |
| T00MY_DEFAULT_MARKET | No | Market used when none is selected (name or id), so `set_market` is not needed |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_marketsB | Find toom markets by city, name, street, postal code (prefix) or market id. |
| set_marketC | Select the market ("Markt") used by default for search and basket. Accepts id, name or city. |
| search_productsA | Search toom.de, optionally narrowed down. First result page only (max ~72 hits, shown up to Examples: "a drill that is on offer" -> query="bohrmaschine", offers_only=True. "cheapest cordless screwdriver in stock here" -> query="akkuschrauber", availability="in_market", sort="price_asc". "Bosch or Makita under 150 EUR" -> brands=["Bosch","Makita"], max_price=150. offers_only: toom's "Nur Angebote anzeigen". sort: relevance | price_asc | price_desc | offers | rating
(toom's own, raw rating) | best_rated (re-ranks the hits of this page by a score that discounts articles
with few reviews: a 5.0 from one review does not beat a 4.8 from 200). min_reviews drops hits with fewer
reviews (unrated ones too).
availability: in_market (in stock in the selected market) | orderable (not in stock, the market can order
it) | home_delivery. Each hit has |
| search_filtersA | Which filters toom offers for a search term, with the number of hits per value. Use it to narrow a broad search down (brand, cordless or corded, battery included, ...). The result lists
each filter's |
| view_basketC | The basket of a market: lines with price and pickup/delivery availability, plus the total. |
| add_to_basketB | Add an article (sku from search_products) to the basket of a market. delivery: "pickup" (reserve and collect in the market, default) or "delivery" (parcel to your door). Adding an article that is already in the basket increases its quantity. |
| set_quantityC | Change the quantity of a basket line (line_id from view_basket). |
| remove_from_basketC | Remove one basket line (line_id from view_basket). |
| clear_basketC | Remove everything from the basket of a market. |
| export_sessionA | Write the session cookies of a market's basket to a local file, to look at that basket in your own browser. The basket lives in an anonymous toom.de session held by this server. Importing the file into your browser (cookie manager extension, e.g. Cookie-Editor: Import) REPLACES the toom.de cookies of that browser, including any basket or market choice it had there. The cookies are an anonymous session token (no login), but still a token: keep the file private and do not share it. Ask the user first. Without confirm=True nothing is written and you get the notice to show them; call again with confirm=True only after the user explicitly agreed. |
| prepare_article_requestA | Prepare asking a market to order an article that is not in stock there. Sends nothing. toom shows "Auf Anfrage bestellbar" / "Artikel anfragen" on the product page for such articles and the
market orders them for you (possibly plus transport costs). The request form is protected by a captcha
and carries your contact data, so it is done by the user on toom.de. This tool gathers everything
needed: the stock in the market, the product page link, the market's phone number and a ready-made
text for the form or a phone call. |
| get_articleA | Details of one article by its toom article number, plus stock in the market(s). Gives title, brand, price, EAN, selling points, characteristics (dimensions, technical details, scope of
delivery, ...), categories, images, documents and manufacturer contact, all as toom's product page
shows them. |
| markets_nearbyA | toom markets within a radius (straight-line distance, nearest first).
|
| find_article_nearbyA | Where in the radius around a place can an article (or several) be picked up right now? Checks the real stock of every toom market within |
| market_infoA | Everything useful for a visit: open now?, opening hours, upcoming closed days, services, pickup details. Hours come from toom's market list, including its "special days" (a 00:00-00:00 entry is a closed day,
e.g. a holiday). A holiday toom did not enter is not known here. |
| compare_articlesA | Compare 2 to 6 articles side by side: price, brand, dimensions (cm/kg), stock and every characteristic.
|
| fits_spaceA | Does an article fit into a space (a car's load area, a doorway, a shelf)? Uses the dimensions toom states. Give the free space in cm. Without max_depth_cm that axis is treated as unlimited. The answer is
|
| delivery_infoB | Pick up or have it delivered? Costs, lead times and stock for both, side by side. toom shows shipping costs only in a basket, so this uses a short-lived throw-away basket (a separate anonymous session): your real baskets are not touched. Free shipping starts at the threshold toom reports. Nothing is ordered or reserved. |
| get_relatedA | Accessories and alternatives as toom itself shows them on the product page. kind="also_bought": "Häufig dazu gekauft" (real purchase data: screws, foam, fittings, batteries, ...).
kind="similar": "Ähnliche Produkte" (same kind of article: other sizes, brands). It is not a curated
accessory list, so also_bought can contain other sizes of the same article; |
| copy_basketA | Copy the basket of one market into a new basket in another market. A market switch means building a new basket there; the per-article report shows whether the target market has each article (and in what quantity), plus price changes. The source basket is untouched. replace=True (default) empties the target basket first, so repeating the call does not double quantities; replace=False adds to what is already there. |
| compare_marketsA | Check articles against several markets without touching any basket.
Articles come from Uses toom's stock endpoint: per article and market the available quantity (capped at the quantity you want). Markets are listed best first (complete before partial). |
| plan_pickupA | Plan where to pick up a list of articles (or the current basket): primary market first, fallbacks second. Priority: 1) everything the primary market has is picked up there. 2) Only what the primary market does not have comes from a fallback market, and only if it is small enough to transport without the special vehicle at the primary market. Pass such articles that do NOT fit (doors, long boards, ...) as bulky_skus: they are never taken from a fallback market. Decide that from the article's size in its title/description. Fallbacks are picked for as few stops as possible. Uses real stock per market.
Defaults: the primary market is the selected one (set_market / T00MY_DEFAULT_MARKET) and the fallbacks are T00MY_HOME_MARKETS without it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Most tools have distinct verbs and resources, but market/stock discovery overlaps: find_markets vs markets_nearby, and compare_markets vs find_article_nearby vs plan_pickup all answer related 'where can I get this?' questions. Detailed descriptions reduce the risk, but an agent must read them carefully to choose correctly.
All names are snake_case and mostly follow a verb_noun pattern (find_markets, add_to_basket, compare_articles), with only minor deviations like market_info, delivery_info, and markets_nearby. There is no case mixing or chaotic style.
22 tools is heavy for a single retail-assistant domain, and some tools overlap in stock/market lookup and pickup planning. The domain is broad, but the set sits in the borderline 16-25 range.
The surface covers market discovery, product search/details/comparison, basket CRUD, delivery info, pickup planning, and article-request preparation. The main gap is no direct reservation/checkout tool; plan_pickup can build ready baskets but the user must complete reservation on toom.de.