Skip to main content
Glama

Pinflower — flowers in Prague

Server Details

Order bouquets from independent Prague florists: live prices, delivery times, pay on pinflower.cz.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 9 tools

Disambiguation4/5

Each tool has a clearly stated purpose: search vs. detail (search_bouquets/get_bouquet), price vs. commit (quote_order/create_order), and read-only status vs. cancel are well separated. The only soft overlaps are check_delivery vs. search_bouquets (search already returns delivery fee/time) and the near-identical parameter surface of quote_order and create_order, though the descriptions explicitly disambiguate both.

Naming Consistency4/5

All tools use a consistent pinflower_ prefix and a mostly verb_noun pattern (search_bouquets, get_bouquet, quote_order, create_order, cancel_order, get_order_status, check_delivery). Minor deviations: new_pay_link is adjective_noun and store_info is noun_noun, but nothing is genuinely confusing.

Tool Count5/5

Nine tools is well-scoped for a florist ordering flow, with each tool earning its place: discovery, pricing, checkout, payment, tracking, cancellation, and policy info. No redundant or filler tools.

Completeness4/5

The full guest purchase lifecycle is covered: search, detail, delivery check, quote, create, status, re-issue pay link, cancel, and store policy. Gaps are minor and mostly by design (no order modification, no order history/list), which agents can work around since cancellation and re-quoting are offered.

Available Tools

9 tools
pinflower_cancel_orderCancel an orderA
Destructive
Inspect

Use this when the buyer explicitly asks to cancel an order placed here. The website's rules apply: free while the florist has not confirmed, and for a later-day order until the cut-off before its time window; a paid amount is refunded in full. Two steps: order_ref with confirm=true sends a 6-digit code to the e-mail the order was placed with; order_ref with that code then cancels. It cancels eligible orders; changing items, delivery details or the delivery time is not supported.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoThe 6-digit code from the e-mail (second call).
confirmYestrue = the buyer confirmed they want to cancel.
order_refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
cancelledYes
order_refYes
code_sent_toNo
refunded_czkNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only flag destructiveHint/openWorldHint; the description adds the substantive behavior: a full refund of any paid amount, the two-step confirmation flow, and that a 6-digit code is sent to the e-mail the order was placed with. It also discloses the eligibility constraint that determines whether the cancel succeeds at all.

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?

Front-loaded with the trigger condition, then rules, then the two-step mechanism, then exclusions. Every sentence carries distinct information; there is no filler or restatement of the title.

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 an output schema present, return values need no explanation, and the description covers the remaining gaps: eligibility, refund outcome, the code-delivery step, and unsupported operations. An agent has everything needed to execute the two-call sequence correctly.

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 67% (order_ref is undocumented there). The description compensates by explaining the sequencing semantics: order_ref + confirm=true issues the code, then order_ref + code completes the cancel. That flow meaning is not derivable from the schema alone, though it never describes the order_ref format.

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 and resource ('cancel an order placed here') and immediately scopes the trigger to an explicit buyer request. None of the siblings (check_delivery, create_order, get_order_status, etc.) perform cancellation, so the agent can route unambiguously.

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?

Gives explicit when-to-use ('buyer explicitly asks to cancel') plus eligibility windows (free until florist confirmation; later-day orders until the cut-off) and a when-not ('changing items, delivery details or the delivery time is not supported'). It stops short of naming which sibling to use for those unsupported changes, so the routing half is implicit rather than explicit.

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

pinflower_check_deliveryCheck delivery to a placeA
Read-onlyIdempotent
Inspect

Use this when the buyer asks whether Pinflower delivers to a place in Prague, how much delivery costs, how soon it can arrive, or whether flowers can come tonight — before choosing a bouquet. Takes the place as the buyer said it. Bouquet search results already include this for their place.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDelivery/pickup day: 'today', 'tomorrow' or YYYY-MM-DD (Prague). Omit for as soon as possible.
whereYesWhere the flowers go, as the buyer said it: a Prague district ('Praha 5'), a quarter ('Vinohrady', 'Smíchov') or a street address. Omit when unknown.
localeNoThe buyer's language for names, texts and links: cs, en, ru or uk (default cs).

Output Schema

ParametersJSON Schema
NameRequiredDescription
placeNo
earliestNo
floristsNo
can_deliverYes
night_deliveryNo
delivery_fee_from_czkNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered without help. The description usefully discloses the overlap with bouquet search results and that the place is taken verbatim, but says nothing about auth, rate limits, or failure behavior; an output schema exists so return format is not needed. This is modest added value over 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?

Front-loaded with the usage trigger, followed by two short supporting sentences; the total is appropriately sized for the tool's scope. The "Takes the place as the buyer said it" sentence is slight redundancy against the schema but cheap and reinforcing.

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

Completeness4/5

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

Covers purpose, triggering questions, ordering relative to bouquet selection, and the overlap with search results, which is the main ambiguity an agent would face. Since an output schema exists, the lack of return-value detail is not a gap.

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

Parameters3/5

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 `where`, `date` and `locale`. The description's only parameter-relevant statement, "Takes the place as the buyer said it," repeats the schema's own wording rather than adding format or edge-case guidance. Baseline 3 is correct.

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?

Names a specific action (check delivery availability/cost/timing) for a specific resource (a place in Prague), and the phrasing "whether Pinflower delivers to a place in Prague, how much delivery costs, how soon it can arrive" enumerates the exact questions it answers. It also distinguishes itself from sibling pinflower_search_bouquets by noting search results already embed this data.

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?

Gives an explicit trigger ("Use this when the buyer asks whether...") plus a sequencing constraint ("before choosing a bouquet") and a de-duplication rule ("Bouquet search results already include this for their place"), which implicitly tells the agent not to call it redundantly. It stops short of naming the alternative tool explicitly or stating other when-not conditions.

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

pinflower_create_orderOrder bouquets (pay on pinflower.cz)A
DestructiveIdempotent
Inspect

Use this when the buyer has agreed to the quoted total: it creates the order exactly like the website's checkout and returns the secure payment link on pinflower.cz. Takes the quote's details plus terms_accepted, confirmed_total_czk (the agreed total) and order_intent; if the total has changed meanwhile, nothing is created and it returns the new breakdown instead. Takes: the bouquet(s) (bouquet_id from search; several bouquets of ONE florist with quantities in items); delivery or pickup; for delivery the street address with house number in Prague; the recipient's name and phone when someone else receives the flowers; the date and a time (one of the bouquet's offered times, or 'asap'); the buyer's name, e-mail and phone (+420…); an optional card message and note for the florist; the buyer's promo code if they have one. Above 10 000 Kč the buyer's billing address is required. Also on offer: address_mode 'ask_recipient' when the florist should agree the address with the recipient by phone — a surprise (the recipient's name and phone are then required); time 'agree_with_recipient' when the florist should agree the time with the recipient by phone (the recipient's name and phone are then required); recipient.care_reminder=true — the free (0 Kč) care reminder for the recipient, offered once when someone else receives the flowers; company details (IČO) for a purchase by a company. Nothing is charged here and the florist is not told until the buyer pays.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes'today', 'tomorrow' or YYYY-MM-DD.
timeYesHH:MM from the offered times, or 'asap', or 'agree_with_recipient' (the florist agrees the time with the recipient by phone; delivery only).
unitNoApartment, floor, company at the door.
buyerYes
itemsNoSeveral bouquets from the SAME florist, with quantities.
localeNo
addressNoDelivery to a known address: street and house number in Prague.
companyNoBuying for a company — the invoice is issued to it.
recipientNoWho receives the flowers, when it is someone else than the buyer — the courier calls them.
bouquet_idNoOne bouquet (shortcut for items with a single line).
florist_idNoThe florist — required when the order is a custom bouquet alone.
fulfilmentNo
promo_codeNoThe buyer's promo code, if they have one — works for guests and signed-in buyers alike; the checkout checks it.
address_modeNoask_recipient = the courier/florist agrees the address with the recipient by phone (a surprise); no address needed, delivery priced at the whole-city rate.
card_messageNo
courier_noteNoBell name, entrance, gate code.
florist_noteNo
order_intentYesThe quote's order_intent. The same order_intent always returns the same order (a lost answer is safe to retry); each quote issues a new one.
terms_acceptedYestrue = the buyer agreed to the terms.
billing_addressNoThe buyer's billing address — required by Czech tax rules when the order is over 10 000 Kč (unless buying for a company).
marketing_opt_inNotrue = the buyer asked for news and offers.
confirmed_total_czkYesThe quoted total_czk the buyer agreed to — a different total refuses the order.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pay_urlYes
order_refYes
total_czkYes
order_numberNo

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: 'Nothing is charged here and the florist is not told until the buyer pays' tempers the destructiveHint, and the order_intent explanation ('the same order_intent always returns the same order... safe to retry') independently confirms idempotentHint. It also surfaces the 10 000 Kč billing-address rule and the conditional recipient requirements for the ask_recipient / agree_with_recipient modes.

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?

Front-loaded with the purpose and trigger before the parameter walkthrough, and nearly every clause carries a real rule. However, it is delivered as one dense paragraph with a long 'Takes: ...' run-on, so it is harder to scan than it needs to be for a 22-parameter tool.

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?

For a complex 22-parameter mutation with nested objects, the description covers the trigger, the no-op-on-total-change behavior, payment deferral, mode-specific requirements and threshold rules; an output schema exists, so return-value detail is correctly left out.

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 77%, but the description goes well beyond it by explaining cross-parameter business logic: several bouquets must be from ONE florist, recipient name+phone become required under ask_recipient and 'agree_with_recipient', billing_address is mandatory over 10 000 Kč unless buying as a company, and care_reminder is free and texted in Czech. This is meaning the schema alone does not convey.

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 and resource — 'it creates the order exactly like the website's checkout and returns the secure payment link' — and its trigger condition ('when the buyer has agreed to the quoted total') cleanly separates it from the sibling quote_order and the read-only status/cancel tools.

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?

Gives an explicit trigger ('when the buyer has agreed to the quoted total') and a when-not path (if the total changed, nothing is created and the new breakdown is returned), which tells the agent to re-quote rather than retry. It never names the sibling tools (quote_order, search_bouquets) directly, so routing still requires some inference.

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

pinflower_get_bouquetBouquet details and timesA
Read-onlyIdempotent
Inspect

Use this when the buyer is interested in one bouquet from the search results: what is inside, its size, photos, the florist's rating, the price with delivery (exact for a street address — delivery_fee_exact says so; otherwise the shop's typical fee) and every time it can arrive on a given day. Needs a bouquet_id as search results show it. Covers one bouquet at a time.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDelivery/pickup day: 'today', 'tomorrow' or YYYY-MM-DD (Prague). Omit for as soon as possible.
whereNoWhere the flowers go, as the buyer said it: a Prague district ('Praha 5'), a quarter ('Vinohrady', 'Smíchov') or a street address. Omit when unknown.
localeNoThe buyer's language for names, texts and links: cs, en, ru or uk (default cs).
bouquet_idYes
fulfilmentNodelivery (default) or pickup at the florist's shop.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
slotsNo
bouquet_idYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds genuine behavioral context beyond that: whether the returned price is exact depends on supplying a street address versus falling back to the shop's typical fee, and the lookup is scoped to one bouquet per call.

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?

Two sentences, with the usage trigger front-loaded and the returned fields following. The long parenthetical about delivery_fee_exact is slightly convoluted but every clause carries information; nothing is padding.

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

Completeness4/5

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

An output schema exists, so return structure need not be spelled out, and the description still summarizes what comes back. Combined with the annotations and near-complete parameter descriptions, an agent has enough to invoke the tool correctly; only explicit alternative routing is missing.

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 80%, so the schema already documents date, where, locale and fulfilment formats. The description nonetheless adds meaning by tying the 'where' parameter to price precision (exact fee for a street address, typical fee otherwise) and by noting bouquet_id must be the value as shown in search results.

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 states a specific verb and resource (fetch one bouquet's details from search results) and enumerates the returned content: contents, size, photos, florist rating, price with delivery, and arrival times. 'Covers one bouquet at a time' cleanly distinguishes it from the bulk-oriented pinflower_search_bouquets sibling.

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?

The opening clause gives a clear trigger: 'Use this when the buyer is interested in one bouquet from the search results.' It implicitly routes the agent from search to detail and notes the single-bouquet scope, but never explicitly names the alternative to use for multiple bouquets or when not to call it.

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

pinflower_get_order_statusOrder statusA
Read-onlyIdempotent
Inspect

Use this when the buyer asks what is happening with an order placed here — whether it is paid, confirmed by the florist, on the way or delivered. Needs the order_ref returned when the order was created. Read-only: it changes nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoThe buyer's language for names, texts and links: cs, en, ru or uk (default cs).
order_refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
paidYes
stepYes
order_refYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, non-destructive, idempotent and closed-world, so 'Read-only: it changes nothing' adds nothing. The real added value is the prerequisite disclosure that the order_ref comes from order creation, which tells the agent where to source the required input.

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?

Two tight sentences: usage trigger first, prerequisite and safety second. The trailing 'Read-only: it changes nothing' is slightly redundant with the annotations but does little harm.

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?

For a two-parameter read tool with an output schema and full annotation coverage, the description supplies the trigger, the input provenance and the safety profile. Nothing the agent needs before calling is missing.

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 only 50%: locale is documented in the schema, but order_ref is bare there. The description compensates by explaining that order_ref is the reference returned at order creation, which is meaningful provenance beyond the schema.

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

Purpose4/5

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

States a specific verb and resource ('get order status') and enumerates the states it reports (paid, confirmed, on the way, delivered), so the agent knows exactly what the call answers. It does not, however, differentiate itself from the sibling pinflower_check_delivery, which appears to overlap in scope.

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?

'Use this when the buyer asks what is happening with an order placed here' gives a clear trigger condition and a scope qualifier (orders placed here). No explicit when-not or sibling exclusion against check_delivery is provided, so it stops short of a 5.

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

pinflower_quote_orderPrice the orderA
Read-onlyIdempotent
Inspect

Use this when the buyer has chosen what to order and you have the details: it prices the order exactly as the checkout will charge it — the bouquet(s), add-ons, the shop's launch discount or the buyer's promo code, the delivery fee — and checks the time, without creating anything. Takes: the bouquet(s) (bouquet_id from search; several bouquets of ONE florist with quantities in items); delivery or pickup; for delivery the street address with house number in Prague; the recipient's name and phone when someone else receives the flowers; the date and a time (one of the bouquet's offered times, or 'asap'); the buyer's name, e-mail and phone (+420…); an optional card message and note for the florist; the buyer's promo code if they have one. Above 10 000 Kč the buyer's billing address is required. Also on offer: address_mode 'ask_recipient' when the florist should agree the address with the recipient by phone — a surprise (the recipient's name and phone are then required); time 'agree_with_recipient' when the florist should agree the time with the recipient by phone (the recipient's name and phone are then required); recipient.care_reminder=true — the free (0 Kč) care reminder for the recipient, offered once when someone else receives the flowers; company details (IČO) for a purchase by a company. Returns the breakdown, the total, the terms link and an order_intent; it creates nothing. The total is valid for exactly these details.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes'today', 'tomorrow' or YYYY-MM-DD.
timeYesHH:MM from the offered times, or 'asap', or 'agree_with_recipient' (the florist agrees the time with the recipient by phone; delivery only).
unitNoApartment, floor, company at the door.
buyerYes
itemsNoSeveral bouquets from the SAME florist, with quantities.
localeNo
addressNoDelivery to a known address: street and house number in Prague.
companyNoBuying for a company — the invoice is issued to it.
recipientNoWho receives the flowers, when it is someone else than the buyer — the courier calls them.
bouquet_idNoOne bouquet (shortcut for items with a single line).
fulfilmentNo
promo_codeNoThe buyer's promo code, if they have one — works for guests and signed-in buyers alike; the checkout checks it.
address_modeNoask_recipient = the courier/florist agrees the address with the recipient by phone (a surprise); no address needed, delivery priced at the whole-city rate.
card_messageNo
courier_noteNoBell name, entrance, gate code.
florist_noteNo
billing_addressNoThe buyer's billing address — required by Czech tax rules when the order is over 10 000 Kč (unless buying for a company).
marketing_opt_inNotrue = the buyer asked for news and offers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
discountNo
goods_czkYes
next_stepYes
terms_urlYes
total_czkYes
delivery_fee_czkYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/idempotentHint/non-destructive, but the description adds genuinely non-structured context: the returned order_intent, the terms link, and critically 'The total is valid for exactly these details'. It also explains the ask_recipient surprise flow and the free care_reminder behavior, none of which the annotations convey.

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?

It is a long, dense block, but it is front-loaded with the trigger condition and internally ordered with 'Takes:', 'Also on offer:' and 'Returns:' markers. A fair amount of the parameter text duplicates the schema, which dilutes an otherwise efficient layout.

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?

For an 18-parameter, deeply nested tool, the description covers the required inputs, the conditional rules (10 000 Kč billing threshold, recipient-required flows, one-florist constraint) and the output contract, with an output schema present to carry the return detail. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema coverage is 72% and the description's parameter prose ('bouquet_id from search', 'several bouquets of ONE florist', 'billing address above 10 000 Kč', address_mode) largely restates what the schema descriptions already say. It frames the required set usefully but adds little syntax or format meaning beyond the structured fields.

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 states a specific verb and resource ('it prices the order exactly as the checkout will charge it') and explicitly distinguishes itself from the write path with 'without creating anything' / 'it creates nothing'. An agent can tell it apart from pinflower_create_order and pinflower_cancel_order without opening a schema.

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 gives a clear trigger: 'Use this when the buyer has chosen what to order and you have the details', and the repeated 'creates nothing' clause implicitly routes the agent to create_order for the actual purchase. However, it never names the alternative tool explicitly, so the exclusion is left to inference.

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

pinflower_search_bouquetsFind bouquetsA
Read-onlyIdempotent
Inspect

Use this when the buyer wants flowers delivered in Prague (or picked up there) and you need concrete bouquets: it returns only bouquets that can really arrive at the given place and time, with price, delivery fee, total and the earliest delivery time, in the storefront's recommended order. Takes what the buyer said: free text, occasion, budget, where, date and a deliver-by time; without date and deliver_by every result carries its earliest time. Each call displays its results to the buyer as a carousel. Not for general flower advice or for orders outside Prague.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDelivery/pickup day: 'today', 'tomorrow' or YYYY-MM-DD (Prague). Omit for as soon as possible.
sortNorecommended (default, the storefront's order), cheapest, most expensive, or soonest arrival.
limitNoHow many results (default 6).
queryNoFree text in any language: flower, colour or bouquet name, e.g. 'red roses', 'tulipány', 'пионы'.
styleNoas_pictured = looks like the photo; florists_style = composed fresh by the florist in that spirit.
whereNoWhere the flowers go, as the buyer said it: a Prague district ('Praha 5'), a quarter ('Vinohrady', 'Smíchov') or a street address. Omit when unknown.
detailNofull adds composition and a short description (default short).
localeNoThe buyer's language for names, texts and links: cs, en, ru or uk (default cs).
categoryNoA category slug as results show it (e.g. roses, tulips).
currencyNoAdd an approximate EUR/USD preview for a buyer abroad (default czk). The charge is always in CZK.
occasionNoThe occasion the buyer named.
ready_nowNoOnly bouquets already made and waiting (fastest).
deliver_byNoHH:MM (24 h): must arrive by then. Without date it means today.
fulfilmentNodelivery (default) or pickup at the florist's shop.
free_deliveryNoOnly bouquets whose delivery can be free: free for the address's zone when a place is given; before one, bouquets with a free path at some zone (the result's free_delivery says whether it IS free).
budget_max_czkNoBouquet price limit in CZK (delivery not included).
budget_min_czkNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
emptyNo
resultsYes
currencyNo
interpretedYes
total_foundYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, but the description adds real behavioral context the annotations cannot: every call renders its results to the buyer as a carousel, results are in the storefront's recommended order, and date/deliver_by omission changes the returned timing semantics. Return-value detail matters less because an output schema exists.

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?

Front-loaded with the triggering condition ('Use this when...'), followed by return shape, input framing and the exclusion, in roughly four dense sentences with no filler. Every sentence carries distinct information—nothing restates the title or schema.

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

Completeness4/5

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

For a 17-parameter, no-required-parameter tool, it covers role, output shape, the carousel side effect, and scope limits, and an output schema handles return structure. It leaves minor gaps such as how limit/sort interact and default result count, which the schema states but the narrative never hints at.

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 94%, so the baseline is 3, but the description adds meaning beyond the schema by framing the key inputs as 'what the buyer said' (free text, occasion, budget, where, date, deliver-by), which tells the agent these accept raw conversational phrasing rather than normalized values.

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 (search bouquets delivered in Prague) and precisely what the call returns: only bouquets that can arrive at the given place and time, with price, delivery fee, total and earliest delivery time. It also disambiguates from siblings like pinflower_check_delivery and pinflower_get_bouquet by tying itself to concrete purchasable bouquets rather than feasibility checks or single-bouquet lookup.

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?

Gives clear when-to-use ('buyer wants flowers delivered in Prague ... and you need concrete bouquets') and explicit when-not ('Not for general flower advice or for orders outside Prague'). It does not name a specific alternative sibling for those excluded cases, so it stops short of full routing guidance.

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

pinflower_store_infoHow Pinflower worksA
Read-onlyIdempotent
Inspect

Use this when the buyer asks how ordering works: payment and when the card is charged, delivery area and fees, anonymous delivery and the card message, what happens if nobody is home, returns and complaints, or how to contact Pinflower. Answers come from the shop's own pages, with links. Does not cover bouquet availability.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoThe buyer's language for names, texts and links: cs, en, ru or uk (default cs).

Output Schema

ParametersJSON Schema
NameRequiredDescription
faqYes
factsNo
linksYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorldHint=false, so the safety profile is covered. The description still adds useful context: answers are sourced from the shop's own pages and returned with links, which tells the agent the response is authoritative and link-bearing rather than a generic generation.

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?

Three sentences, front-loaded with the trigger condition, then the coverage list, then the exclusion. The enumeration is long but every item is a distinct routing cue rather than filler, and there is no redundant or decorative prose.

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?

An output schema exists, so the description need not explain return values. For a read-only informational lookup, what an agent needs (when to call it, what topics it resolves, what it does not resolve, and that responses include links) is all present.

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

Parameters3/5

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

The single parameter (locale) is fully documented in the schema, including its enum values and default. The description adds nothing about locale or language behavior, so per the high-coverage baseline this is a minimum-viable 3.

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 resource (Pinflower's own informational pages) and enumerates exactly what it covers: payment timing, delivery area/fees, anonymous delivery and card message, absence handling, returns/complaints, and contact. It explicitly excludes bouquet availability, which cleanly separates it from pinflower_get_bouquet and pinflower_search_bouquets.

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?

Opens with an explicit trigger ('Use this when the buyer asks how ordering works...') followed by an exhaustive topic list, and closes with a negative scope ('Does not cover bouquet availability') that routes the agent elsewhere. Both when-to-use and when-not-to-use are stated, leaving nothing to inference.

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.

  1. 1 tool update
    • Changedpinflower_search_bouquets3 fields changed
      • changedInput schema / properties / free_delivery / description
        Previous value: -"Only bouquets with free delivery."New value: +"Only bouquets whose delivery can be free: free for the address's zone when a place is given; before one, bouquets with a free path at some zone (the result's free_delivery says whether it IS free)."
      • addedOutput schema / properties / results / items / properties / delivery_fee_exact
        Added value: +{
        +  "description": "The fee is the address's zone price; false = a 'from' lower bound until an address is known.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / results / items / properties / time_exact
        Added value: +{
        +  "description": "The times are for the address; false = an estimate for a district's centre (a street address confirms them).",
        +  "type": "boolean"
        +}
  2. 2 tool updates
    • Changedpinflower_create_order2 fields changed
      • addedInput schema / properties / recipient / properties / care_reminder
        Added value: +{
        +  "description": "«A little extra care», free (0 Kč), off unless the buyer wants it: after the delivery Pinflower texts the recipient once (the sender ordered a care reminder; STOP opts out), and 3 days later sends one care tip. Delivery only, for a named recipient (recipient.phone is where the texts go — whose number it is does not matter); the recipient's language is unknown, the texts are Czech.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / recipient / properties / sms_opt_out / description
        Previous value: -"true = no SMS to the recipient (keeps a surprise)."New value: +"Legacy, ignored — the recipient is texted only for care_reminder."
    • Changedpinflower_quote_order1 field changed
      • addedInput schema / properties / recipient / properties / care_reminder
        Added value: +{
        +  "description": "«A little extra care», free (0 Kč), off unless the buyer wants it: after the delivery Pinflower texts the recipient once (the sender ordered a care reminder; STOP opts out), and 3 days later sends one care tip. Delivery only, for a named recipient (recipient.phone is where the texts go — whose number it is does not matter); the recipient's language is unknown, the texts are Czech.",
        +  "type": "boolean"
        +}
  3. 4 tool updates
    • Changedpinflower_cancel_order1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"true only after the buyer confirmed they want to cancel."New value: +"true = the buyer confirmed they want to cancel."
    • Changedpinflower_create_order8 fields changed
      • changedInput schema / properties / confirmed_total_czk / description
        Previous value: -"total_czk from pinflower_quote_order that the buyer agreed to — a different total refuses the order."New value: +"The quoted total_czk the buyer agreed to — a different total refuses the order."
      • changedInput schema / properties / florist_id / description
        Previous value: -"The florist — needed only when the order is a custom bouquet alone."New value: +"The florist — required when the order is a custom bouquet alone."
      • changedInput schema / properties / items / items / properties / addons / description
        Previous value: -"Add-on keys the bouquet offers (pinflower_get_bouquet → addons)."New value: +"Add-on keys the bouquet offers (its details list them as addons)."
      • changedInput schema / properties / items / items / properties / bouquet_id / description
        Previous value: -"From pinflower_search_bouquets / pinflower_get_bouquet."New value: +"A bouquet_id as search results and bouquet details show it."
      • changedInput schema / properties / items / items / properties / custom_budget_czk / description
        Previous value: -"A bouquet composed by the florist to a budget (390–2400 Kč) instead of bouquet_id; put the wishes into florist_note."New value: +"A bouquet composed by the florist to a budget (390–2400 Kč) instead of bouquet_id; the wishes go in florist_note."
      • changedInput schema / properties / marketing_opt_in / description
        Previous value: -"Only true if the buyer asked for news and offers."New value: +"true = the buyer asked for news and offers."
      • changedInput schema / properties / order_intent / description
        Previous value: -"order_intent from pinflower_quote_order. Retrying this call (e.g. the answer got lost) keeps it — the same order comes back; a new purchase needs a new quote."New value: +"The quote's order_intent. The same order_intent always returns the same order (a lost answer is safe to retry); each quote issues a new one."
      • changedInput schema / properties / terms_accepted / description
        Previous value: -"true only after the buyer agreed to the terms."New value: +"true = the buyer agreed to the terms."
    • Changedpinflower_quote_order2 fields changed
      • changedInput schema / properties / items / items / properties / bouquet_id / description
        Previous value: -"From pinflower_search_bouquets / pinflower_get_bouquet."New value: +"A bouquet_id as search results and bouquet details show it."
      • changedInput schema / properties / marketing_opt_in / description
        Previous value: -"Only true if the buyer asked for news and offers."New value: +"true = the buyer asked for news and offers."
    • Changedpinflower_search_bouquets1 field changed
      • changedInput schema / properties / occasion / description
        Previous value: -"Only when the buyer named the occasion. Never assume 'sympathy'."New value: +"The occasion the buyer named."
  4. 2 tool updates
    • Changedpinflower_check_delivery1 field changed
      • changedOutput schema / properties / earliest / properties / day / enum
        Previous value: -[
        -  "today",
        -  "tomorrow",
        -  "later"
        -]New value: +[
        +  "today",
        +  "tonight",
        +  "tomorrow",
        +  "later"
        +]
    • Changedpinflower_search_bouquets1 field changed
      • changedOutput schema / properties / results / items / properties / earliest / properties / day / enum
        Previous value: -[
        -  "today",
        -  "tomorrow",
        -  "later"
        -]New value: +[
        +  "today",
        +  "tonight",
        +  "tomorrow",
        +  "later"
        +]
  5. 2 tool updates
    • Changedpinflower_create_order2 fields changed
      • changedInput schema / properties / recipient / description
        Previous value: -"Who receives the flowers, when it is someone else than the buyer — the courier calls them; required when the address or the time is agreed with the recipient."New value: +"Who receives the flowers, when it is someone else than the buyer — the courier calls them."
      • changedInput schema / properties / time / description
        Previous value: -"HH:MM from the offered times, 'asap', or 'agree_with_recipient' (the florist agrees the time with the recipient by phone; delivery only)."New value: +"HH:MM from the offered times, or 'asap', or 'agree_with_recipient' (the florist agrees the time with the recipient by phone; delivery only)."
    • Changedpinflower_quote_order2 fields changed
      • changedInput schema / properties / recipient / description
        Previous value: -"Who receives the flowers, when it is someone else than the buyer — the courier calls them; required when the address or the time is agreed with the recipient."New value: +"Who receives the flowers, when it is someone else than the buyer — the courier calls them."
      • changedInput schema / properties / time / description
        Previous value: -"HH:MM from the offered times, 'asap', or 'agree_with_recipient' (the florist agrees the time with the recipient by phone; delivery only)."New value: +"HH:MM from the offered times, or 'asap', or 'agree_with_recipient' (the florist agrees the time with the recipient by phone; delivery only)."
  6. 9 tool updates
    • First observedpinflower_cancel_order
    • First observedpinflower_check_delivery
    • First observedpinflower_create_order
    • First observedpinflower_get_bouquet
    • First observedpinflower_get_order_status
    • First observedpinflower_new_pay_link
    • First observedpinflower_quote_order
    • First observedpinflower_search_bouquets
    • First observedpinflower_store_info

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources