MCP 服务器

giftroam

com.giftroam/giftroam
电商与零售 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Searches gifts for delivery to specified countries, checks feasibility, and creates secure checkout links.

check_delivery
Check delivery feasibility
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', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['country'], 'properties': {'city': {'type': 'string', 'maxLength': 80, 'description': 'Destination city (used for warnings only; never store addresses in chat).'}, 'locale': {'type': 'string', 'maxLength': 12, 'description': 'Language of the conversation with the user (e.g. he-IL, fr-FR). Localizes content and messages; prices and availability are unaffected.'}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Destination country, ISO-3166 alpha-2.'}, 'gift_id': {'type': 'string', 'description': "Optional gift_id to use that gift's delivery window."}, 'date_needed': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD the gift must arrive by.'}}}
输出模式
{'type': 'object', 'properties': {'error': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'next_step': {'type': ['string', 'null']}}, 'description': 'Present only when the call failed'}, 'latest': {'type': 'string', 'description': 'ISO date of the latest estimated delivery'}, 'locale': {'type': 'string', 'description': 'BCP-47 locale the texts are localized to'}, 'earliest': {'type': 'string', 'description': 'ISO date of the earliest estimated delivery'}, 'feasible': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'display_text': {'type': 'string', 'description': 'Human-readable one-line summary of the result'}, 'business_days': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}}, 'suggested_action': {'type': ['string', 'null']}}}
create_checkout
Create a checkout link
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', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['gift_id', 'country', 'idempotency_key'], 'properties': {'locale': {'type': 'string', 'maxLength': 12, '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.'}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Destination country, ISO-3166 alpha-2.'}, 'gift_id': {'type': 'string', 'minLength': 1, 'description': 'gift_id from search_gifts.'}, 'quantity': {'type': 'number', 'const': 1, 'default': 1, 'description': 'Always 1 in v1.'}, 'delivery_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Requested delivery date YYYY-MM-DD; omit for as-soon-as-possible.'}, 'gift_card_text': {'type': 'string', 'maxLength': 180, 'description': 'Card message (≤180 chars) if the user already gave one.'}, 'idempotency_key': {'type': 'string', 'maxLength': 128, 'minLength': 8, 'description': 'Client-generated key; retries with the same key return the same link.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'properties': {'error': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'next_step': {'type': ['string', 'null']}}, 'description': 'Present only when the call failed'}, 'locale': {'type': 'string', 'description': 'BCP-47 locale the texts are localized to'}, 'summary': {'type': 'object', 'properties': {'gift': {'type': 'string'}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'string'}, 'country': {'type': 'string'}, 'gift_message': {'type': ['string', 'null']}, 'delivery_date': {'type': 'string'}, 'estimated_window': {'type': 'object', 'properties': {'latest': {'type': 'string'}, 'earliest': {'type': 'string'}}}}}, 'expires_at': {'type': 'string'}, 'checkout_url': {'type': 'string', 'description': 'Single-purpose secure checkout link on checkout.giftroam.com (30-minute expiry)'}, 'display_text': {'type': 'string', 'description': 'Human-readable one-line summary of the result'}}}
get_gift_details
Get gift details
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', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['gift_id', 'country'], 'properties': {'locale': {'type': 'string', 'maxLength': 12, 'description': 'Display language for gift content (e.g. he-IL). Prices and availability are unaffected.'}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Destination country, ISO-3166 alpha-2.'}, 'gift_id': {'type': 'string', 'minLength': 1, 'description': "gift_id from search_gifts (or the gift's URL slug)."}}}
输出模式
{'type': 'object', 'properties': {'gift': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'images': {'type': 'array', 'items': {'type': 'string'}}, 'gift_id': {'type': 'string'}, 'contents': {'type': 'array', 'items': {'type': 'string'}}, 'currency': {'type': 'string'}, 'image_url': {'type': 'string'}, 'one_liner': {'type': 'string'}, 'description': {'type': 'string'}, 'restrictions': {'type': 'array', 'items': {'type': 'string'}}, 'delivery_days': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'Business-day delivery estimate range'}, 'display_price': {'type': 'string', 'description': 'Final customer price incl. delivery, e.g. "$99.95"'}, 'contains_alcohol': {'type': 'string', 'description': 'yes | no | unknown'}, 'estimated_delivery': {'type': 'object', 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'latest': {'type': 'string'}, 'earliest': {'type': 'string'}, 'cutoff_passed_today': {'type': 'boolean'}}}, 'substitution_policy': {'type': 'string'}, 'customer_amount_minor': {'type': 'number', 'description': 'Price in minor units (cents)'}}}, 'error': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'next_step': {'type': ['string', 'null']}}, 'description': 'Present only when the call failed'}, 'locale': {'type': 'string', 'description': 'BCP-47 locale the texts are localized to'}, 'translation': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'provider': {'type': ['string', 'null']}, 'contentHash': {'type': 'string'}, 'sourceLocale': {'type': 'string'}, 'targetLocale': {'type': 'string'}}, 'description': 'How the gift content was localized'}, 'display_text': {'type': 'string', 'description': 'Human-readable one-line summary of the result'}}}
get_order_status
Get order status
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', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['order_token'], 'properties': {'locale': {'type': 'string', 'maxLength': 12, 'description': 'Language of the conversation with the user (e.g. he-IL, fr-FR). Localizes content and messages; prices and availability are unaffected.'}, 'order_token': {'type': 'string', 'minLength': 1, 'description': "The order token from the buyer's confirmation (GR-XXXXX-…). Never guess tokens."}}}
输出模式
{'type': 'object', 'properties': {'gift': {'type': 'string'}, 'error': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'next_step': {'type': ['string', 'null']}}, 'description': 'Present only when the call failed'}, 'locale': {'type': 'string', 'description': 'BCP-47 locale the texts are localized to'}, 'status': {'type': 'string', 'description': 'Machine status, e.g. confirmed | on_the_way | delivered | needs_attention'}, 'country': {'type': 'string'}, 'updated_at': {'type': 'string'}, 'next_action': {'type': 'string'}, 'display_text': {'type': 'string', 'description': 'Human-readable one-line summary of the result'}, 'status_label': {'type': 'string'}, 'delivery_date': {'type': ['string', 'null']}, 'estimated_window': {'type': ['object', 'null'], 'properties': {'latest': {'type': 'string'}, 'earliest': {'type': 'string'}}}}}
list_my_orders
List my orders (signed-in)
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', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'locale': {'type': 'string', 'maxLength': 12, 'description': 'Language of the conversation with the user (e.g. he-IL, fr-FR). Localizes content and messages; prices and availability are unaffected.'}}}
输出模式
{'type': 'object', 'properties': {'error': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'next_step': {'type': ['string', 'null']}}, 'description': 'Present only when the call failed'}, 'total': {'type': 'number'}, 'locale': {'type': 'string', 'description': 'BCP-47 locale the texts are localized to'}, 'orders': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'gift': {'type': 'string'}, 'status': {'type': 'string'}, 'country': {'type': 'string'}, 'currency': {'type': 'string'}, 'created_at': {'type': 'string'}, 'updated_at': {'type': 'string'}, 'order_token': {'type': 'string'}, 'amount_minor': {'type': 'number'}, 'status_label': {'type': 'string'}, 'delivery_date': {'type': ['string', 'null']}, 'estimated_window': {'type': ['object', 'null'], 'properties': {'latest': {'type': 'string'}, 'earliest': {'type': 'string'}}}}}}, 'display_text': {'type': 'string', 'description': 'Human-readable one-line summary of the result'}}}
search_gifts
Search gifts deliverable to a country
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', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['country'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 120, '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."}, 'cursor': {'type': 'string', 'description': 'Opaque cursor from a previous page.'}, 'locale': {'type': 'string', 'maxLength': 12, 'description': 'Display language for results (e.g. he-IL). The query may be typed in that language.'}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Destination country, ISO-3166 alpha-2 (e.g. FR).'}, 'occasion': {'type': 'string', 'maxLength': 48, 'description': 'Occasion slug from the occasions resource (e.g. birthday).'}, 'budget_max': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Maximum price in minor units (cents).'}, 'budget_min': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Minimum price in minor units (cents).'}, 'date_needed': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD; only gifts that can arrive by then.'}}}
输出模式
{'type': 'object', 'properties': {'error': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'next_step': {'type': ['string', 'null']}}, 'description': 'Present only when the call failed'}, 'total': {'type': 'number'}, 'locale': {'type': 'string', 'description': 'BCP-47 locale the texts are localized to'}, 'country': {'type': 'object', 'properties': {'iso2': {'type': 'string'}, 'name': {'type': 'string'}}}, 'results': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'gift_id': {'type': 'string'}, 'currency': {'type': 'string'}, 'image_url': {'type': 'string'}, 'one_liner': {'type': 'string'}, 'delivery_days': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'Business-day delivery estimate range'}, 'display_price': {'type': 'string', 'description': 'Final customer price incl. delivery, e.g. "$99.95"'}, 'contains_alcohol': {'type': 'string', 'description': 'yes | no | unknown'}, 'customer_amount_minor': {'type': 'number', 'description': 'Price in minor units (cents)'}}}}, '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'}, 'display_text': {'type': 'string', 'description': 'Human-readable one-line summary of the result'}}}
已更改
list_my_orders
2026年9月25日 03:02
已更改
get_gift_details
2026年9月25日 03:02
已添加
list_my_orders
2026年9月17日 12:35
已添加
get_order_status
2026年9月17日 12:35
已添加
create_checkout
2026年9月17日 12:35
已添加
check_delivery
2026年9月17日 12:35
已添加
get_gift_details
2026年9月17日 12:35
已添加
search_gifts
2026年9月17日 12:35