Blumee — flower delivery comparison (Germany)
Compare flower delivery in Germany: find bouquets by text or photo, order at partner florists.
使うべきか
品質と安全性
検出事項(1)
- LOWbrowse_catalog 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"flowers": {
"url": "https://api.blumee.app/mcp"
}
}
}リモートエンドポイント
https://api.blumee.app/mcpstreamable-httpできること
ツール一覧
ツール(4)
🟢search_flower_offers(query, flowers, colors, occasion, recipient, ...)
Find real flower bouquets and potted plants for sale, from a description. Use this whenever the user asks for flowers in words: a flower type, colour, occasion, recipient, budget or delivery deadline (e.g. 'red roses under 40 EUR for tomorrow', 'something cheerful for a colleague'). Pass the request as `query` in any language; add structured fields when you know them. Also use it when the user shows a photo but match_bouquet_photo cannot receive the file: describe the flowers, colours and style you see and search with those. Returns ranked offers with price, shop, delivery time and links.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "What the user is looking for, in their own words, any language (e.g. 'pink peonies for my mum's birthday'). Required."
},
"flowers": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"maxItems": 8,
"description": "Flower or plant types, any language (e.g. [\"roses\", \"eucalyptus\"])."
},
"colors": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"maxItems": 6,
"description": "Colours, any language."
},
"occasion": {
"type": "string",
"maxLength": 64,
"description": "Occasion, e.g. birthday, funeral, thank you, wedding, anniversary."
},
"recipient": {
"type": "string",
"maxLength": 64,
"description": "Who the flowers are for, e.g. mother, colleague, partner."
},
"style": {
"type": "string",
"maxLength": 64,
"description": "Style, e.g. rustic, minimalist, romantic, wild meadow."
},
"min_price_eur": {
"type": "number",
"minimum": 0,
"maximum": 10000,
"description": "Lower price limit in EUR. Hard filter."
},
"max_price_eur": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000,
"description": "Upper price limit in EUR, inclusive. Hard filter."
},
"max_delivery_days": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"description": "Latest acceptable delivery, in days from today, for an address in Germany (1 = tomorrow). If the user names a date, convert it to days. Hard filter on the shop-stated delivery time."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "How many offers to return (default 8, max 20)."
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"query_understood": {
"type": "object",
"properties": {
"flowers": {
"type": "array",
"items": {
"type": "string"
}
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"occasion": {
"type": [
"string",
"null"
]
},
"style": {
"type": [
"string",
"null"
]
},
"min_price_eur": {
"type": [
"number",
"null"
]
},
"max_price_eur": {
"type": [
"number",
"null"
]
},
"max_delivery_days": {
"type": [
"number",
"null"
]
}
},
"required": [
"flowers",
"colors",
"occasion",
"style",
"min_price_eur",
"max_price_eur",
"max_delivery_days"
],
"additionalProperties": false
},
"total_matches": {
"type": "integer"
},
"offers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"image_url": {
"type": [
"string",
"null"
],
"description": "Product photo, ~640 px WebP on img.blumee.app (the shop original until it is mirrored)."
},
"shop": {
"type": "string"
},
"delivery": {
"type": "object",
"properties": {
"days_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"days_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Shop-stated delivery time to any address in Germany."
},
"cost_eur": {
"type": [
"number",
"null"
]
},
"area": {
"type": "string",
"const": "DE"
}
},
"required": [
"days_min",
"days_max",
"cost_eur",
"area"
],
"additionalProperties": false
},
"flowers": {
"type": "array",
"items": {
"type": "string"
}
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"occasion": {
"type": [
"string",
"null"
]
},
"similarity": {
"type": "number"
},
"url": {
"type": "string",
"format": "uri",
"description": "Blumee product page (canonical)."
},
"buy_url": {
"type": "string",
"format": "uri",
"description": "Link to order at the partner shop, via Blumee. Show this to the user."
}
},
"required": [
"id",
"title",
"price",
"currency",
"image_url",
"shop",
"delivery",
"flowers",
"colors",
"occasion",
"url",
"buy_url"
],
"additionalProperties": false
}
},
"hint": {
"type": "string",
"description": "What to try next when the result is empty."
}
},
"required": [
"query_understood",
"total_matches",
"offers"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢match_bouquet_photo(image_file, image_url, image_base64, max_price_eur, max_delivery_days, ...)
Use this tool when the user provides a photo of a bouquet or flower arrangement and wants to find visually similar products available through Blumee. Identifies the flowers and colours in the photo (Pl@ntNet + vision model) and returns the closest real offers. Send the photo as image_file (attached file), image_url (public https) or image_base64 — exactly one. If you can see the photo but cannot pass it to this tool, call search_flower_offers with your own description instead. Takes ~5-15 s.
入力スキーマ
{
"type": "object",
"properties": {
"image_file": {
"type": "object",
"properties": {
"download_url": {
"type": "string",
"format": "uri",
"maxLength": 4096
},
"file_id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"mime_type": {
"type": "string",
"maxLength": 128
},
"file_name": {
"type": "string",
"maxLength": 512
}
},
"required": [
"download_url",
"file_id"
],
"additionalProperties": false,
"description": "The photo the user attached (ChatGPT fills this automatically from the attachment)."
},
"image_url": {
"type": "string",
"format": "uri",
"maxLength": 4096,
"description": "Public https URL of the photo (JPEG, PNG, WebP or HEIC, max 8 MB)."
},
"image_base64": {
"type": "string",
"maxLength": 11184875,
"description": "Base64 of the image file, for programmatic clients only (max 8 MB decoded)."
},
"max_price_eur": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000,
"description": "Upper price limit in EUR, inclusive. Hard filter."
},
"max_delivery_days": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"description": "Latest acceptable delivery, in days from today, for an address in Germany (1 = tomorrow). If the user names a date, convert it to days. Hard filter on the shop-stated delivery time."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "How many offers to return (default 8, max 20)."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"analysis": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"description": "bouquet, houseplant or unknown"
},
"verdict": {
"type": "string"
},
"flowers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"scientific_name": {
"type": "string"
},
"confidence": {
"type": "number"
}
},
"required": [
"name",
"scientific_name",
"confidence"
],
"additionalProperties": false
}
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"style": {
"type": [
"string",
"null"
]
},
"shape": {
"type": [
"string",
"null"
]
},
"occasion_guess": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"verdict",
"flowers",
"colors",
"style",
"shape",
"occasion_guess"
],
"additionalProperties": false
},
"offers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"image_url": {
"type": [
"string",
"null"
],
"description": "Product photo, ~640 px WebP on img.blumee.app (the shop original until it is mirrored)."
},
"shop": {
"type": "string"
},
"delivery": {
"type": "object",
"properties": {
"days_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"days_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Shop-stated delivery time to any address in Germany."
},
"cost_eur": {
"type": [
"number",
"null"
]
},
"area": {
"type": "string",
"const": "DE"
}
},
"required": [
"days_min",
"days_max",
"cost_eur",
"area"
],
"additionalProperties": false
},
"flowers": {
"type": "array",
"items": {
"type": "string"
}
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"occasion": {
"type": [
"string",
"null"
]
},
"similarity": {
"type": "number"
},
"url": {
"type": "string",
"format": "uri",
"description": "Blumee product page (canonical)."
},
"buy_url": {
"type": "string",
"format": "uri",
"description": "Link to order at the partner shop, via Blumee. Show this to the user."
}
},
"required": [
"id",
"title",
"price",
"currency",
"image_url",
"shop",
"delivery",
"flowers",
"colors",
"occasion",
"url",
"buy_url"
],
"additionalProperties": false
}
},
"hint": {
"type": "string",
"description": "What to try next when the result is empty."
}
},
"required": [
"analysis",
"offers"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢browse_catalog(flowers, colors, occasions, shops, min_price_eur, ...)
List offers by exact attributes: flower, colour, occasion, shop, price range, delivery time, with sorting and paging. Use this to answer "what does shop X have", "cheapest tulips", or to page through everything matching a filter. The first call (no cursor) also returns available_values — the valid flower, colour, occasion and shop values. For free-form wishes use search_flower_offers.
入力スキーマ
{
"type": "object",
"properties": {
"flowers": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"maxItems": 10,
"description": "German flower names exactly as listed in available_values.flowers (e.g. \"Rose\", \"Tulpe\")."
},
"colors": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"maxItems": 10,
"description": "Colour values exactly as listed in available_values.colors."
},
"occasions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"maxItems": 10,
"description": "Occasion keywords, e.g. \"birthday\", \"funeral\", \"Geburtstag\". Matched as substrings."
},
"shops": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"maxItems": 10,
"description": "Shop names exactly as listed in available_values.shops."
},
"min_price_eur": {
"type": "number",
"minimum": 0,
"maximum": 10000,
"description": "Lower price limit in EUR. Hard filter."
},
"max_price_eur": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000,
"description": "Upper price limit in EUR, inclusive. Hard filter."
},
"max_delivery_days": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"description": "Latest acceptable delivery, in days from today, for an address in Germany (1 = tomorrow). If the user names a date, convert it to days. Hard filter on the shop-stated delivery time."
},
"sort": {
"type": "string",
"enum": [
"default",
"price_asc",
"price_desc",
"newest"
],
"description": "Result order. Default mixes shops."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "How many offers to return (default 8, max 20)."
},
"cursor": {
"type": "string",
"minLength": 1,
"maxLength": 512,
"description": "next_cursor from a previous browse_catalog call, for the next page."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"total_matches": {
"type": "integer"
},
"offers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"image_url": {
"type": [
"string",
"null"
],
"description": "Product photo, ~640 px WebP on img.blumee.app (the shop original until it is mirrored)."
},
"shop": {
"type": "string"
},
"delivery": {
"type": "object",
"properties": {
"days_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"days_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Shop-stated delivery time to any address in Germany."
},
"cost_eur": {
"type": [
"number",
"null"
]
},
"area": {
"type": "string",
"const": "DE"
}
},
"required": [
"days_min",
"days_max",
"cost_eur",
"area"
],
"additionalProperties": false
},
"flowers": {
"type": "array",
"items": {
"type": "string"
}
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"occasion": {
"type": [
"string",
"null"
]
},
"similarity": {
"type": "number"
},
"url": {
"type": "string",
"format": "uri",
"description": "Blumee product page (canonical)."
},
"buy_url": {
"type": "string",
"format": "uri",
"description": "Link to order at the partner shop, via Blumee. Show this to the user."
}
},
"required": [
"id",
"title",
"price",
"currency",
"image_url",
"shop",
"delivery",
"flowers",
"colors",
"occasion",
"url",
"buy_url"
],
"additionalProperties": false
}
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"available_values": {
"type": "object",
"properties": {
"flowers": {
"type": "array",
"items": {
"type": "string"
}
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"occasions": {
"type": "array",
"items": {
"type": "string"
}
},
"shops": {
"type": "array",
"items": {
"type": "string"
}
},
"price_range_eur": {
"type": "object",
"properties": {
"minEur": {
"type": "number"
},
"maxEur": {
"type": "number"
}
},
"required": [
"minEur",
"maxEur"
],
"additionalProperties": false
}
},
"required": [
"flowers",
"colors",
"occasions",
"shops",
"price_range_eur"
],
"additionalProperties": false
}
},
"required": [
"total_matches",
"offers",
"next_cursor"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_flower_offer(offer_id)
Get full details of one offer by id: description, all images, size, species, delivery terms — and the same bouquet in other sizes or at other shops (same_bouquet_offers), for comparing prices. Use after a search when the user asks about a specific offer.
入力スキーマ
{
"type": "object",
"properties": {
"offer_id": {
"type": "string",
"format": "uuid",
"description": "Offer id (UUID) as returned by any Blumee search tool."
}
},
"required": [
"offer_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"offer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"image_url": {
"type": [
"string",
"null"
],
"description": "Product photo, ~640 px WebP on img.blumee.app (the shop original until it is mirrored)."
},
"shop": {
"type": "string"
},
"delivery": {
"type": "object",
"properties": {
"days_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"days_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Shop-stated delivery time to any address in Germany."
},
"cost_eur": {
"type": [
"number",
"null"
]
},
"area": {
"type": "string",
"const": "DE"
}
},
"required": [
"days_min",
"days_max",
"cost_eur",
"area"
],
"additionalProperties": false
},
"flowers": {
"type": "array",
"items": {
"type": "string"
}
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"occasion": {
"type": [
"string",
"null"
]
},
"similarity": {
"type": "number"
},
"url": {
"type": "string",
"format": "uri",
"description": "Blumee product page (canonical)."
},
"buy_url": {
"type": "string",
"format": "uri",
"description": "Link to order at the partner shop, via Blumee. Show this to the user."
},
"available": {
"type": "boolean"
},
"description": {
"type": [
"string",
"null"
]
},
"image_urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 5 product photos, largest hosted copy of each."
},
"size": {
"type": [
"string",
"null"
]
},
"style": {
"type": [
"string",
"null"
]
},
"species": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"title",
"price",
"currency",
"image_url",
"shop",
"delivery",
"flowers",
"colors",
"occasion",
"url",
"buy_url",
"available",
"description",
"image_urls",
"size",
"style",
"species"
],
"additionalProperties": false
},
"same_bouquet_offers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string"
},
"size": {
"type": "string"
},
"shop": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"delivery": {
"$ref": "#/properties/offer/properties/delivery"
},
"url": {
"type": "string",
"format": "uri"
},
"buy_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"id",
"title",
"size",
"shop",
"price",
"currency",
"delivery",
"url",
"buy_url"
],
"additionalProperties": false
}
}
},
"required": [
"offer",
"same_bouquet_offers"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}コミュニティ
エビデンス