giftroam
Send real gifts to 190+ countries: search, check delivery, get a secure checkout link.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"giftroam": {
"url": "https://mcp.giftroam.com/mcp"
}
}
}リモートエンドポイント
https://mcp.giftroam.com/mcpstreamable-httpできること
ツール一覧
ツール(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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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"
}
}
}コミュニティ
エビデンス