giftroam
Send real gifts to 190+ countries: search, check delivery, get a secure checkout link.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"giftroam": {
"url": "https://mcp.giftroam.com/mcp"
}
}
}Remote-Endpunkte
https://mcp.giftroam.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (6)
🟢search_gifts(country, query, occasion, budget_min, budget_max, ...)
Find gifts that can be delivered to a destination country, optionally filtered by free text, occasion, budget (minor units) and a needed-by date. Returns a shortlist with final customer prices (delivery included) and delivery days. Paginate with cursor. Country is required — ask for it first.
Eingabe-Schema
{
"type": "object",
"properties": {
"country": {
"description": "Destination country, ISO-3166 alpha-2 (e.g. FR).",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"query": {
"description": "Product keywords only, 1-4 words (e.g. 'chocolate basket', 'red roses'). Do NOT include the destination, recipient or occasion here - use the country/occasion fields. Omit for a general browse.",
"type": "string",
"maxLength": 120
},
"occasion": {
"description": "Occasion slug from the occasions resource (e.g. birthday).",
"type": "string",
"maxLength": 48
},
"budget_min": {
"description": "Minimum price in minor units (cents).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"budget_max": {
"description": "Maximum price in minor units (cents).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"date_needed": {
"description": "YYYY-MM-DD; only gifts that can arrive by then.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 20
},
"cursor": {
"description": "Opaque cursor from a previous page.",
"type": "string"
},
"locale": {
"description": "Display language for results (e.g. he-IL). The query may be typed in that language.",
"type": "string",
"maxLength": 12
}
},
"required": [
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"display_text": {
"type": "string",
"description": "Human-readable one-line summary of the result"
},
"locale": {
"type": "string",
"description": "BCP-47 locale the texts are localized to"
},
"error": {
"type": "object",
"description": "Present only when the call failed",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"next_step": {
"type": [
"string",
"null"
]
}
}
},
"country": {
"type": "object",
"properties": {
"iso2": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"gift_id": {
"type": "string"
},
"title": {
"type": "string"
},
"one_liner": {
"type": "string"
},
"customer_amount_minor": {
"type": "number",
"description": "Price in minor units (cents)"
},
"currency": {
"type": "string"
},
"display_price": {
"type": "string",
"description": "Final customer price incl. delivery, e.g. \"$99.95\""
},
"delivery_days": {
"type": "object",
"description": "Business-day delivery estimate range",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
}
},
"image_url": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"contains_alcohol": {
"type": "string",
"description": "yes | no | unknown"
},
"url": {
"type": "string"
}
}
}
},
"total": {
"type": "number"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"date_warning": {
"type": "string",
"description": "Present when the requested needed-by date is unreachable: results are shown WITHOUT the date filter"
}
}
}🟢get_gift_details(gift_id, country, locale)
Full description, contents, images, customer price, estimated delivery window (EST cutoff-aware), substitution policy and restrictions for one gift in one destination country.
Eingabe-Schema
{
"type": "object",
"properties": {
"gift_id": {
"type": "string",
"minLength": 1,
"description": "gift_id from search_gifts (or the gift's URL slug)."
},
"country": {
"description": "Destination country, ISO-3166 alpha-2.",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"locale": {
"description": "Display language for gift content (e.g. he-IL). Prices and availability are unaffected.",
"type": "string",
"maxLength": 12
}
},
"required": [
"gift_id",
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"display_text": {
"type": "string",
"description": "Human-readable one-line summary of the result"
},
"locale": {
"type": "string",
"description": "BCP-47 locale the texts are localized to"
},
"error": {
"type": "object",
"description": "Present only when the call failed",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"next_step": {
"type": [
"string",
"null"
]
}
}
},
"gift": {
"type": "object",
"properties": {
"gift_id": {
"type": "string"
},
"title": {
"type": "string"
},
"one_liner": {
"type": "string"
},
"customer_amount_minor": {
"type": "number",
"description": "Price in minor units (cents)"
},
"currency": {
"type": "string"
},
"display_price": {
"type": "string",
"description": "Final customer price incl. delivery, e.g. \"$99.95\""
},
"delivery_days": {
"type": "object",
"description": "Business-day delivery estimate range",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
}
},
"image_url": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"contains_alcohol": {
"type": "string",
"description": "yes | no | unknown"
},
"url": {
"type": "string"
},
"description": {
"type": "string"
},
"contents": {
"type": "array",
"items": {
"type": "string"
}
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"estimated_delivery": {
"type": "object",
"properties": {
"earliest": {
"type": "string"
},
"latest": {
"type": "string"
},
"cutoff_passed_today": {
"type": "boolean"
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"substitution_policy": {
"type": "string"
},
"restrictions": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"translation": {
"type": "object",
"description": "How the gift content was localized",
"properties": {
"sourceLocale": {
"type": "string"
},
"targetLocale": {
"type": "string"
},
"status": {
"type": "string"
},
"contentHash": {
"type": "string"
},
"provider": {
"type": [
"string",
"null"
]
}
}
}
}
}🟢check_delivery(country, city, date_needed, gift_id, locale)
Is delivery to a country (optionally a city, by a date, for a specific gift) feasible? Returns earliest/latest estimate and warnings (PO box, hotel, holiday window) with a suggested action. Use it whenever the user has a deadline.
Eingabe-Schema
{
"type": "object",
"properties": {
"country": {
"description": "Destination country, ISO-3166 alpha-2.",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"city": {
"description": "Destination city (used for warnings only; never store addresses in chat).",
"type": "string",
"maxLength": 80
},
"date_needed": {
"description": "YYYY-MM-DD the gift must arrive by.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"gift_id": {
"description": "Optional gift_id to use that gift's delivery window.",
"type": "string"
},
"locale": {
"description": "Language of the conversation with the user (e.g. he-IL, fr-FR). Localizes content and messages; prices and availability are unaffected.",
"type": "string",
"maxLength": 12
}
},
"required": [
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"display_text": {
"type": "string",
"description": "Human-readable one-line summary of the result"
},
"locale": {
"type": "string",
"description": "BCP-47 locale the texts are localized to"
},
"error": {
"type": "object",
"description": "Present only when the call failed",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"next_step": {
"type": [
"string",
"null"
]
}
}
},
"feasible": {
"type": "boolean"
},
"earliest": {
"type": "string",
"description": "ISO date of the earliest estimated delivery"
},
"latest": {
"type": "string",
"description": "ISO date of the latest estimated delivery"
},
"business_days": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"suggested_action": {
"type": [
"string",
"null"
]
}
}
}🟡create_checkout(gift_id, country, quantity, delivery_date, gift_card_text, ...)
Create a signed, single-purpose checkout link (30-minute expiry) for one gift to one country. The schema has no recipient fields on purpose: name, address, phone, delivery details and payment are collected on the secure page. Show the returned summary and get the user's explicit confirmation before sharing the link. Use the same idempotency_key when retrying.
Eingabe-Schema
{
"type": "object",
"properties": {
"gift_id": {
"type": "string",
"minLength": 1,
"description": "gift_id from search_gifts."
},
"country": {
"description": "Destination country, ISO-3166 alpha-2.",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"quantity": {
"default": 1,
"description": "Always 1 in v1.",
"type": "number",
"const": 1
},
"delivery_date": {
"description": "Requested delivery date YYYY-MM-DD; omit for as-soon-as-possible.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"gift_card_text": {
"description": "Card message (≤180 chars) if the user already gave one.",
"type": "string",
"maxLength": 180
},
"idempotency_key": {
"type": "string",
"minLength": 8,
"maxLength": 128,
"description": "Client-generated key; retries with the same key return the same link."
},
"locale": {
"description": "Language of the conversation with the user (e.g. he-IL, fr-FR). Localizes content and messages; prices and availability are unaffected. The checkout page opens in this language.",
"type": "string",
"maxLength": 12
}
},
"required": [
"gift_id",
"country",
"idempotency_key"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"display_text": {
"type": "string",
"description": "Human-readable one-line summary of the result"
},
"locale": {
"type": "string",
"description": "BCP-47 locale the texts are localized to"
},
"error": {
"type": "object",
"description": "Present only when the call failed",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"next_step": {
"type": [
"string",
"null"
]
}
}
},
"checkout_url": {
"type": "string",
"description": "Single-purpose secure checkout link on checkout.giftroam.com (30-minute expiry)"
},
"expires_at": {
"type": "string"
},
"summary": {
"type": "object",
"properties": {
"gift": {
"type": "string"
},
"country": {
"type": "string"
},
"price": {
"type": "string"
},
"delivery_date": {
"type": "string"
},
"estimated_window": {
"type": "object",
"properties": {
"earliest": {
"type": "string"
},
"latest": {
"type": "string"
}
}
},
"gift_message": {
"type": [
"string",
"null"
]
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}🟢get_order_status(order_token, locale)
Customer-facing status, ETA window and next action for an order. Requires the buyer's order token (delivered after payment) — the token is the credential; never guess or enumerate tokens. Never returns address, phone or payment details.
Eingabe-Schema
{
"type": "object",
"properties": {
"order_token": {
"type": "string",
"minLength": 1,
"description": "The order token from the buyer's confirmation (GR-XXXXX-…). Never guess tokens."
},
"locale": {
"description": "Language of the conversation with the user (e.g. he-IL, fr-FR). Localizes content and messages; prices and availability are unaffected.",
"type": "string",
"maxLength": 12
}
},
"required": [
"order_token"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"display_text": {
"type": "string",
"description": "Human-readable one-line summary of the result"
},
"locale": {
"type": "string",
"description": "BCP-47 locale the texts are localized to"
},
"error": {
"type": "object",
"description": "Present only when the call failed",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"next_step": {
"type": [
"string",
"null"
]
}
}
},
"status": {
"type": "string",
"description": "Machine status, e.g. confirmed | on_the_way | delivered | needs_attention"
},
"status_label": {
"type": "string"
},
"gift": {
"type": "string"
},
"country": {
"type": "string"
},
"delivery_date": {
"type": [
"string",
"null"
]
},
"estimated_window": {
"type": [
"object",
"null"
],
"properties": {
"earliest": {
"type": "string"
},
"latest": {
"type": "string"
}
}
},
"updated_at": {
"type": "string"
},
"next_action": {
"type": "string"
}
}
}🟢list_my_orders(limit, locale)
The signed-in user's GiftRoam orders: status, ETA window, gift, destination and the order token for tracking. Requires the authenticated GiftRoam connection (OAuth, scope orders:read); on a guest connection it returns auth_required. Never returns addresses, phone numbers or payment details.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"default": 20,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"locale": {
"description": "Language of the conversation with the user (e.g. he-IL, fr-FR). Localizes content and messages; prices and availability are unaffected.",
"type": "string",
"maxLength": 12
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"display_text": {
"type": "string",
"description": "Human-readable one-line summary of the result"
},
"locale": {
"type": "string",
"description": "BCP-47 locale the texts are localized to"
},
"error": {
"type": "object",
"description": "Present only when the call failed",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"next_step": {
"type": [
"string",
"null"
]
}
}
},
"orders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"order_token": {
"type": "string"
},
"gift": {
"type": "string"
},
"country": {
"type": "string"
},
"status": {
"type": "string"
},
"status_label": {
"type": "string"
},
"amount_minor": {
"type": "number"
},
"currency": {
"type": "string"
},
"delivery_date": {
"type": [
"string",
"null"
]
},
"estimated_window": {
"type": [
"object",
"null"
],
"properties": {
"earliest": {
"type": "string"
},
"latest": {
"type": "string"
}
}
},
"created_at": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
},
"total": {
"type": "number"
}
}
}Community
Nachweis