Blumen Komander München
Server Details
First German florist with a public MCP server. Search bouquets and order flowers via AI in Munich.
- Status
- Healthy
- Uptime
- 99.9% over 37 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Severin2k/blumen-komander-mcp
- GitHub Stars
- 0
- Server Listing
- blumen-komander-mcp
TDQS
Scored across 11 tools
Each tool targets a distinct step in the flower ordering flow, but create_cart, add_to_cart, and update_cart all involve modifying a cart and could be confused without careful reading. check_availability and check_express also share a similar 'check delivery option' shape, though their purposes are clearly separated.
All 11 tool names follow the same snake_case verb_noun pattern: search_flowers, create_cart, add_to_cart, update_cart, get_checkout_link, get_order_status, etc. This makes the set highly predictable and easy for an agent to navigate.
With 11 tools, the server is well-scoped for a flower shop ordering domain. Each tool maps to a meaningful capability, from product discovery and imagery to cart handling, checkout, and order tracking, without unnecessary bloat.
The core lifecycle is covered: search flowers, view images, check delivery options, create and update a cart, add items, obtain a checkout link, and track orders. Minor gaps exist, such as no explicit remove-from-cart or cart-view tool, but agents can work around these using update_cart and create_cart.
Available Tools
11 toolsadd_to_cartAInspect
Legt einen weiteren Artikel in einen bestehenden Warenkorb - einen zweiten Strauß oder Zubehör wie Vase, Grußkarte, Pralinen, Ballon oder Prosecco aus der Liste zubehoer von search_flowers. Braucht die cart_id aus create_cart. Solange nicht bezahlt wurde, ist das jederzeit möglich.
| Name | Required | Description | Default |
|---|---|---|---|
| cart_id | Yes | ID des bestehenden Warenkorbs aus create_cart | |
| quantity | No | Anzahl (Standard: 1) | |
| variant_id | Yes | ID der Variante, die dazu soll - ein weiterer Strauß oder Zubehör wie Vase, Grußkarte, Pralinen, Ballon oder Prosecco aus der Liste zubehoer von search_flowers | |
| wunsch_text | No | Nur beim Wunschstrauß: Beschreibung, was gebunden werden soll |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a non-read-only, non-idempotent mutation. The description adds useful behavioral context: it is possible anytime before payment, and each call adds an additional item, which aligns with idempotentHint=false. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, followed by concrete examples and constraints. Every sentence contributes useful information without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no output schema, the description covers prerequisites, item source, and the payment-state condition. It does not describe the response shape or error cases, but the provided information is sufficient for selecting and invoking the tool correctly in most flows.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description repeats and reinforces the cart_id and variant_id source hints, but does not add meaningfully beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action: adding another item to an existing cart, with specific examples (second bouquet, vase, card, etc.). It clearly differentiates from create_cart by requiring an existing cart_id and from search_flowers by referencing its zubehoer list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context: it requires a cart_id from create_cart, only adds to an existing cart, and is allowed until payment. It does not explicitly mention update_cart as the alternative for changing the cart, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_availabilityARead-onlyInspect
Prüft ob Blumen Komander München an einem bestimmten Datum in eine bestimmte PLZ liefern kann. Lieferung ist bei Blumen Komander immer kostenlos - keine Liefergebühr. Gibt Same-Day Cutoff zurück.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Lieferdatum im Format YYYY-MM-DD | |
| postalCode | No | Ziel-Postleitzahl in München (z.B. 80799) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, and the description goes beyond by adding that delivery is always free and that the tool returns the same-day cutoff. This adds useful behavioral context without contradicting the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: the primary purpose is front-loaded, followed by the free-delivery fact and the return value. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two well-documented parameters, the description covers the key behaviors. However, it does not clarify the optional nature of postalCode or the format/meaning of the same-day cutoff, and there is no output schema to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both date and postalCode already documented for format and example. The description merely echoes 'date' and 'PLZ' without adding new semantic details, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks delivery availability for Blumen Komander Munich by date and postal code, using specific verbs and resources. It does not explicitly distinguish itself from the sibling check_express, though its scope (date/PLZ) is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as check_express or other delivery-related siblings. The description only states what the tool does, not when it should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_expressARead-onlyInspect
Fragt den Preis für eine Express-Lieferung per Kurier an, ohne etwas anzulegen. Der Preis kommt live vom Kurierdienst und gilt etwa 15 Minuten. Vor create_cart mit express: true aufrufen und dem Kunden den Zuschlag nennen - die normale Lieferung ist kostenlos, Express kostet extra.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Vollständige Lieferadresse, z. B. 'Leopoldstraße 1, 80802 München' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint. The description adds valuable context: the price is fetched live from the courier and valid for about 15 minutes, which is time-sensitive behavior beyond the annotations. It also reinforces the no-side-effect nature. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, live/validity behavior, and explicit workflow instruction. The description is front-loaded with the core action and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool with no output schema, the description covers purpose, side-effect-free behavior, price validity, and the exact call sequence relative to create_cart. The only minor gap is that the return format is not explicitly described, but 'Preis anfragen' makes the returned value inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'address' parameter, which already includes a full example. The description does not add parameter-specific detail beyond the workflow context, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fragt den Preis an') with a clear resource (Express-Lieferung per Kurier) and explicitly disclaims side effects ('ohne etwas anzulegen'), distinguishing it from create_cart. It is non-tautological and immediately clear what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Vor create_cart mit express: true aufrufen' and explains the pricing context (normal delivery free, express costs extra). It names the exact adjacent workflow, leaving no ambiguity about the calling sequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_order_detailsARead-onlyInspect
Prüft, welche Angaben für eine Bestellung schon vorliegen und welche noch fehlen - ohne einen Warenkorb anzulegen und ohne etwas zu buchen. Alle Parameter sind freiwillig, die KI kann also jederzeit mit dem aktuellen Zwischenstand fragen. Die Antwort trennt fehlende Pflichtangaben von fehlenden freiwilligen Angaben, erklärt zu jeder, wofür sie gebraucht wird bzw. was ohne sie passiert, und liefert unter 'dem_kunden_sagen' einen fertigen Satz für den Kunden sowie den kompletten Bestellablauf. Vor create_cart aufrufen, damit der Kunde den ganzen Ablauf kennt, ohne die Website zu öffnen.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Stadt | |
| No | E-Mail des Bestellers | ||
| phone | No | Telefonnummer Empfänger | |
| quantity | No | Anzahl | |
| address_1 | No | Straße und Hausnummer | |
| last_name | No | Nachname Empfänger | |
| first_name | No | Vorname Empfänger | |
| variant_id | No | ID der gewählten Produktvariante | |
| postal_code | No | PLZ | |
| billing_city | No | Stadt Rechnungsadresse | |
| delivery_date | No | Lieferdatum YYYY-MM-DD | |
| greeting_card | No | Text für die Grußkarte | |
| payment_provider | No | Zahlungsart | |
| billing_address_1 | No | Straße Rechnungsadresse | |
| billing_last_name | No | Nachname Rechnungsadresse | |
| billing_first_name | No | Vorname Rechnungsadresse | |
| billing_postal_code | No | PLZ Rechnungsadresse |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the readOnlyHint annotation by explicitly stating it does not create a cart or book anything. It also describes the output structure, including how missing required vs optional fields are handled and the 'dem_kunden_sagen' field, providing rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and well-structured, with the main purpose first, then usage and output details. It is slightly verbose with some repetition (e.g., 'damit der Kunde' appears twice), but remains focused and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 optional parameters and no output schema, the description provides sufficient context: the purpose, when to use it, and what the response contains. It could mention error cases or more about edge scenarios, but overall it is complete enough for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all parameters with descriptions (100% coverage). The tool description adds that all parameters are optional and the AI can query with the current status, which is a useful general semantic note but does not detail individual parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: checking which order details are present and which are missing. It also explicitly differentiates itself from sibling tools like create_cart by noting it does not create a cart or book anything.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it should be called before create_cart so the customer knows the entire process without opening the website. It also clarifies that all parameters are optional and the tool can be used at any time with the current status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cartAInspect
Legt einen Warenkorb bei Blumen Komander an und fügt einen Blumenstrauß hinzu. Setzt Lieferdatum, Lieferadresse, Zahlungsmethode und optional eine Grußkarte. PFLICHTANGABEN: gewählter Strauß, Lieferdatum, Vor- und Nachname des Empfängers, Straße und Hausnummer, PLZ, E-Mail des Bestellers. FREIWILLIG, aber dem Kunden aktiv anbieten: Telefonnummer des Empfängers (sonst kann der Fahrer nicht anrufen, wenn niemand öffnet), Grußkartentext (sonst kommt der Strauß ohne Karte), abweichende Rechnungsadresse (sonst gilt die Lieferadresse), Zahlungsart (Standard Kreditkarte/Apple Pay/Google Pay = stripe, sonst paypal oder sepa), Anzahl (Standard 1) und Ort (Standard München). Die Antwort enthält unter 'angaben' eine Liste aller nicht ausgefüllten Felder samt Kennzeichnung Pflicht/freiwillig und dem Satz 'dem_kunden_sagen' - diesen Hinweis dem Kunden weitergeben, damit er den kompletten Ablauf kennt, ohne die Website zu öffnen. Den vollständigen Bestellablauf liefert get_shop_info unter 'bestellablauf'.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Stadt (Standard: München) | |
| Yes | E-Mail des Bestellers | ||
| phone | No | Telefonnummer Empfänger | |
| express | No | true = Express-Lieferung per Kurier noch heute. Der Preis wird live bei Uber angefragt und als eigene Position berechnet. Vorher check_express aufrufen und dem Kunden den Preis nennen. Nicht mit Abholung kombinierbar. | |
| quantity | No | Anzahl (Standard: 1) | |
| address_1 | No | Straße und Hausnummer - Pflicht bei Lieferung, entfällt bei Abholung | |
| last_name | Yes | Nachname Empfänger | |
| first_name | Yes | Vorname Empfänger | |
| variant_id | Yes | ID der gewählten Produktvariante | |
| pickup_time | No | Nur bei Abholung: Wunschuhrzeit, z. B. '14:00'. Öffnungszeiten Mo-Fr 08:00-18:30, Sa 08:00-13:00. | |
| postal_code | No | PLZ - Pflicht bei Lieferung, entfällt bei Abholung | |
| wunsch_text | No | Nur beim Wunschstrauß: Beschreibung, was gebunden werden soll. Ohne diesen Text kann der Wunschstrauß nicht gebunden werden, er ist dort Pflicht. | |
| billing_city | No | Stadt Rechnungsadresse | |
| delivery_date | Yes | Lieferdatum YYYY-MM-DD, bei Abholung das Abholdatum | |
| delivery_mode | No | lieferung (Standard) oder abholung im Laden, Heßstraße 37, 80798 München | |
| greeting_card | No | Text für die Grußkarte | |
| payment_provider | No | Zahlungsmethode: stripe (Kreditkarte, Apple Pay, Google Pay), paypal oder sepa (SEPA-Lastschrift). Standard: stripe. | |
| billing_address_1 | No | Straße Rechnungsadresse | |
| billing_last_name | No | Nachname Rechnungsadresse | |
| billing_first_name | No | Vorname Rechnungsadresse | |
| billing_postal_code | No | PLZ Rechnungsadresse |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses meaningful behavioral traits: it returns a list of unfilled fields under 'angaben' with a customer-facing message 'dem_kunden_sagen' to be relayed, and it describes the data points it sets (delivery date, address, payment method, optional card). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but densely informative, front-loaded with the core purpose and organized with clear labels such as PFLICHTANGABEN and FREIWILLIG. It could benefit from line breaks or bullet points, but nearly every sentence carries useful information and nothing feels redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 21 parameters and no output schema, the description is remarkably complete. It covers required vs optional fields, defaults, response structure, how to communicate the full flow to the customer, and points to get_shop_info for the complete ordering workflow. The schema provides the remaining parameter-level detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters, so the baseline is 3, but the description adds substantial operational meaning: it marks fields as PFLICHTANGABEN, lists optional-but-recommended fields with customer-facing rationales (e.g., phone so the driver can call, greeting card text so the bouquet arrives with a card), and states defaults (stripe payment, quantity 1, city München).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action: 'Legt einen Warenkorb bei Blumen Komander an' and clarifies that it also adds a bouquet and sets delivery/payment/optional greeting card details. This clearly identifies a create-operation on a cart and inherently differentiates it from add_to_cart and update_cart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context for using the tool is implied: you use it to create a cart and place an order. The description gives practical guidance on which optional fields to offer the customer and how to handle the response, but it never explicitly states when to use create_cart versus add_to_cart/update_cart, and no exclusions or alternative triggers are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checkout_linkARead-onlyInspect
Gibt den direkten Checkout-Link für einen bestehenden Warenkorb zurück. Der Kunde klickt auf den Link und zahlt.
| Name | Required | Description | Default |
|---|---|---|---|
| cart_id | Yes | ID des Warenkorbs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description aligns by stating it 'returns' a link rather than mutating anything. The description adds context about the customer clicking and paying, which clarifies purpose but not operational behavior (e.g., errors, state requirements, link expiry). Since annotations already cover the read-only nature, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences in German, front-loading the primary action and outcome. Every word contributes to understanding the tool's function, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter, the description is adequate but not fully complete. It does not specify the return format (e.g., URL string), error handling for non-existent carts, or any prerequisites. Given the absence of an output schema, a bit more detail would help agents use it correctly, but the description covers the core purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% because cart_id has a description ('ID des Warenkorbs'), but the tool description does not add any additional semantics beyond that label. It does not clarify format, required state, or example values, so the description adds no value beyond the schema, warranting the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: returning a direct checkout link for an existing cart. It uses a specific verb ('gibt zurück' = returns) and resource ('Checkout-Link für einen bestehenden Warenkorb'), and the context of sibling tools (create_cart, add_to_cart, update_cart) makes it distinct as a payment-link retrieval operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention that the cart must already exist, that this is for the payment step, or that it should be used after cart creation. An agent would have to infer usage from context, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_statusARead-onlyInspect
Fragt den Status einer bestehenden Bestellung bei Blumen Komander ab - eingegangen, in Vorbereitung, unterwegs oder geliefert, inkl. Lieferdatum. Zur Verifikation werden Bestellnummer (aus der Bestellbestätigung) und die E-Mail-Adresse des Bestellers benötigt. Gibt keine Adressdaten zurück.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | E-Mail-Adresse des Bestellers (zur Verifikation) | ||
| order_number | Yes | Bestellnummer (z.B. 114, steht in der Bestellbestätigung) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no safety contradiction exists. The description adds valuable behavioral context beyond the annotation: verification is required via order number and email, the tool returns status including delivery date, and it deliberately omits address data. This helps the agent set expectations correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by the verification requirements and a clear non-return statement. Every sentence earns its place; there is no filler or repetition of the tool name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only status tool with two fully documented parameters and no output schema, the description covers the main behavioral aspects: what it returns, what inputs are needed for verification, and what it deliberately excludes. It could be slightly more complete by mentioning what happens with invalid order numbers, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description reinforces the verification purpose and specifies that the order number comes from the order confirmation, but it does not add substantial new semantics beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: it queries the status of an existing order, listing the possible statuses and that it includes the delivery date. It also explicitly notes that no address data is returned, which differentiates it from sibling tools like check_order_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool to check an order's status, and it states the required verification inputs (order number from the confirmation and buyer's email). It does not explicitly name alternative siblings or provide when-not-to-use guidance, but the exclusion of address data provides useful routing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_imageARead-onlyInspect
Liefert das Foto eines Straußes als echtes Bild, nicht nur als Link - der Kunde sieht den Strauß also im Chat, ohne die Website zu öffnen. Braucht handle oder product_id aus der Antwort von search_flowers. Standardmäßig kommt nur das Hauptbild; mit alle_bilder: true kommen die weiteren Ansichten (höchstens 3 pro Aufruf). Gezielt für die ein bis drei Sträuße aufrufen, über die der Kunde wirklich spricht, nicht für alle Suchtreffer - jedes Bild kostet Kontext.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | No | Handle des Produkts, z. B. 'mary'. Steht in der Antwort von search_flowers. | |
| product_id | No | Alternativ die Produkt-ID aus search_flowers, z. B. 'prod_...' | |
| alle_bilder | No | true = alle vorhandenen Ansichten (höchstens 3). Standard: nur das Hauptbild. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses key behavioral traits: the return is an actual image rather than a URL, the default returns only the main image, alle_bilder: true returns up to three additional views, and each call consumes context. This goes well beyond the annotation's minimal signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff. The purpose is front-loaded, followed by required inputs, default behavior, and usage caution. Each sentence adds a distinct and necessary piece of information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a simple read-only tool with no output schema. It tells the agent what the response is (image), how to get it (handle or product_id), what variants exist (main vs. all images), and the practical usage constraint. No required information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by clarifying that handle or product_id come specifically from the search_flowers response and by explaining the default vs. alle_bilder behavior and the three-image cap. This enriches parameter understanding, though the schema already describes the fields accurately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Liefert das Foto eines Straußes als echtes Bild') and explicitly differentiates from a plain link, which distinguishes it from link-generating siblings. It also references the source response from search_flowers, making its role within the toolset unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: call it only for the one to three bouquets the customer is actually discussing, not for all search hits, and warns that each image costs context. It ties the required parameters to the output of search_flowers, which effectively routes the agent to the correct parent tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shop_infoARead-onlyInspect
Gibt allgemeine Informationen über Blumen Komander zurück - Öffnungszeiten, Liefergebiet, Kontakt, verfügbare Zahlungsmethoden.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful behavioral context beyond the annotation by listing what categories of information are returned. It does not describe output formatting, but that is not required for a simple read-only info getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action and resource, then lists the key content areas. Every word earns its place and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only tool with no output schema, the description is complete: it tells the agent exactly what information will be provided. The listed categories are sufficiently specific for an agent to know when to call this tool and what to expect in return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is already fully descriptive with an empty properties object. The description adds no parameter-specific detail, but none is needed; a baseline of 4 is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Gibt ... zurück') and a clear resource ('allgemeine Informationen über Blumen Komander'), then enumerates the exact content categories (opening hours, delivery area, contact, payment methods). This clearly differentiates it from siblings like get_order_status or search_flowers, which serve entirely different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: whenever general shop information is needed. It does not explicitly name alternatives, but no sibling tool covers shop-level information, so the usage context is unambiguous and no exclusions are necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_flowersARead-onlyInspect
Sucht verfügbare Blumensträuße bei Blumen Komander München. Filtert nach Anlass, Farbe, Stil und Budget. Gibt standardmäßig 24 Sträuße zurück, treffer_gesamt nennt die tatsächliche Zahl - mit offset lassen sich weitere nachladen. Zubehör wie Vasen, Ballons, Pralinen und Grußkarten steht getrennt unter zubehoer und ist kein Blumenvorschlag. Zu einem Strauß liefert get_product_image das Foto.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Gewünschte Farbe | |
| limit | No | Wieviele Sträuße zurückgeben (Standard 24, höchstens 50) | |
| style | No | Stil des Straußes | |
| offset | No | Für weitere Seiten: wieviele Treffer überspringen | |
| maxPrice | No | Höchstpreis in EUR | |
| minPrice | No | Mindestpreis in EUR | |
| occasion | No | Anlass für die Blumen | |
| flower_type | No | Blumenart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description only needs to add contextual behavior. It adds the default page size (24), the total-hit field (treffer_gesamt), offset-based pagination, and the separate accessory output (zubehoer) — all useful beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with distinct value: core search, pagination/total count, and result scope (accessories excluded, image alternative). Information is front-loaded and no words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description tells the agent about treffer_gesamt, zubehoer, and the image lookup path, which is sufficient for a search tool. It doesn't detail the bouquet item fields, but filters and enum values fill most gaps. For an 8-parameter search, this is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter already has a description. The tool description summarizes filters by occasion/color/style/budget and mentions limit/offset, but adds no new semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb phrase ('Sucht verfügbare Blumensträuße') and specifies the vendor/location. It explicitly lists filtering dimensions and distinguishes the results from accessories and image retrieval via get_product_image, setting it apart from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context: this is for searching bouquets, with pagination behavior. It explicitly excludes accessories ('kein Blumenvorschlag') and points to get_product_image for photos, offering partial alternative routing. It does not mention every sibling or state explicit when-not conditions, but the purpose is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_cartAIdempotentInspect
Ändert einen bestehenden Warenkorb, statt einen neuen anzulegen: Liefer- oder Abholdatum, Adresse, Telefonnummer, E-Mail, Grußkartentext, Abholzeit oder Zahlungsart. Nur die Felder übergeben, die sich ändern. Bei neuem Datum oder neuer PLZ wird das Liefergebiet erneut geprüft und bei einem Problem nichts geändert. Ein bereits bezahlter Warenkorb wird abgelehnt.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Stadt | |
| No | E-Mail des Bestellers | ||
| phone | No | Telefonnummer Empfänger | |
| cart_id | Yes | ID des bestehenden Warenkorbs | |
| address_1 | No | Straße und Hausnummer | |
| last_name | No | Nachname Empfänger | |
| first_name | No | Vorname Empfänger | |
| pickup_time | No | Nur bei Abholung: Wunschuhrzeit | |
| postal_code | No | PLZ | |
| delivery_date | No | Neues Lieferdatum YYYY-MM-DD, bei Abholung das Abholdatum | |
| greeting_card | No | Neuer Grußkartentext. Leerer Text entfernt die Karte. | |
| payment_provider | No | Andere Zahlungsart wählen |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses key behavioral traits: it re-validates the delivery area when date or postal code changes, atomically makes no changes if there's a problem, and rejects already-paid carts. These are critical side effects not derivable from the annotations alone. There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, structured in three sentences: what it does, how to use it (partial update), and two important behaviors (delivery-area re-check, paid-cart rejection). Every sentence carries essential information with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter update tool with no output schema, the description covers the essential context: partial updates, validation triggers, atomicity on failure, and rejection conditions. It is sufficient for an agent to invoke the tool correctly and anticipate outcomes. No meaningful gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description lists the same set of fields as the schema and adds the general 'only changed fields' rule, but it doesn't add new per-parameter semantics beyond what the schema already supplies. It remains adequate without significantly enriching parameter definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Ändert einen bestehenden Warenkorb' (changes an existing cart), clearly distinguishing it from creating a new one. It then lists the specific fields that can be updated (delivery/pickup date, address, phone, email, greeting card, pickup time, payment method). This makes the tool's purpose unambiguous and differentiates it from siblings like create_cart and add_to_cart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Nur die Felder übergeben, die sich ändern' (only pass the fields that change), which is direct guidance for API usage. It also says 'statt einen neuen anzulegen' (instead of creating a new one), indicating when not to use this tool. However, it doesn't explicitly name alternative tools or provide a decision tree, so it stops short of full when-to-use-vs-alternatives coverage.
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.
4 tool updates
- Added
add_to_cart - Added
check_express - Changed
create_cart8 fields changed- changed
Input schema / properties / address_1 / descriptionPrevious value: -"Straße und Hausnummer"New value: +"Straße und Hausnummer - Pflicht bei Lieferung, entfällt bei Abholung" - changed
Input schema / properties / delivery_date / descriptionPrevious value: -"Lieferdatum YYYY-MM-DD"New value: +"Lieferdatum YYYY-MM-DD, bei Abholung das Abholdatum" - added
Input schema / properties / delivery_modeAdded value: +{ + "description": "lieferung (Standard) oder abholung im Laden, Heßstraße 37, 80798 München", + "enum": [ + "lieferung", + "abholung" + ], + "type": "string" +} - added
Input schema / properties / expressAdded value: +{ + "description": "true = Express-Lieferung per Kurier noch heute. Der Preis wird live bei Uber angefragt und als eigene Position berechnet. Vorher check_express aufrufen und dem Kunden den Preis nennen. Nicht mit Abholung kombinierbar.", + "type": "boolean" +} - added
Input schema / properties / pickup_timeAdded value: +{ + "description": "Nur bei Abholung: Wunschuhrzeit, z. B. '14:00'. Öffnungszeiten Mo-Fr 08:00-18:30, Sa 08:00-13:00.", + "type": "string" +} - changed
Input schema / properties / postal_code / descriptionPrevious value: -"PLZ"New value: +"PLZ - Pflicht bei Lieferung, entfällt bei Abholung" - added
Input schema / properties / wunsch_textAdded value: +{ + "description": "Nur beim Wunschstrauß: Beschreibung, was gebunden werden soll. Ohne diesen Text kann der Wunschstrauß nicht gebunden werden, er ist dort Pflicht.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "variant_id", - "delivery_date", - "first_name", - "last_name", - "address_1", - "postal_code", - "email" -]New value: +[ + "variant_id", + "delivery_date", + "first_name", + "last_name", + "email" +]
- Added
update_cart
3 tool updates
- Added
check_order_details - Added
get_product_image - Changed
search_flowers2 fields changed- added
Input schema / properties / limitAdded value: +{ + "description": "Wieviele Sträuße zurückgeben (Standard 24, höchstens 50)", + "type": "number" +} - added
Input schema / properties / offsetAdded value: +{ + "description": "Für weitere Seiten: wieviele Treffer überspringen", + "type": "number" +}
1 tool update
- Added
get_order_status
1 tool update
- Changed
create_cart1 field changed- added
Input schema / properties / payment_providerAdded value: +{ + "description": "Zahlungsmethode: stripe (Kreditkarte, Apple Pay, Google Pay), paypal oder sepa (SEPA-Lastschrift). Standard: stripe.", + "enum": [ + "stripe", + "paypal", + "sepa" + ], + "type": "string" +}
5 tool updates
- First observed
check_availability - First observed
create_cart - First observed
get_checkout_link - First observed
get_shop_info - First observed
search_flowers
Related MCP Connectors
MCP server for Flux AI image generation
MCP-ready hosting provider for Minecraft, BungeeCord, TeamSpeak, VPS and many other game servers.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for NanoBanana AI image generation and editing
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server for the Roastify Developer API, letting AI agents browse the coffee catalog and generate packaging artwork, with paid tools settled in Bitcoin Lightning.Apache 2.0
- AlicenseAqualityBmaintenancePlanthire AI - MCP server providing AI-powered tools and automation by MEOK AI Labs78 npm45 PyPIMIT
- AlicenseBqualityDmaintenanceA Minecraft MCP Server powered by Mineflayer API. It allows to control a Minecraft character in real-time, allowing AI assistants to build structures, explore the world, and interact with the game environment through natural language instruction82235 npm743Apache 2.0
- AlicenseNot gradedqualityBmaintenanceCreativity Engine - MCP server providing AI-powered tools and automation by MEOK AI Labs5 npm52 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.