MCP 서버

Forage Shopping

io.github.jalexspringer/forage-shopping
커머스 및 리테일 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Searches products across merchants, compares prices and deals, and supports checkout, payment escalation, purchase completion, and order status checks.

check_order
Check the status of a checkout session or order. Use this after the user has completed an escalation step (e.g. payment in the browser) to see if the checkout can now proceed, or to check on a completed order's status.
입력 스키마
{'type': 'object', 'title': 'check_orderArguments', 'required': ['checkout_id'], 'properties': {'checkout_id': {'type': 'string', 'title': 'Checkout Id', 'description': 'The checkout session ID to check'}}}
출력 스키마
{'type': 'object', 'title': 'check_orderOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
compare_prices
Compare prices for a specific product across multiple merchants. Finds the same product at different retailers and shows price differences.
입력 스키마
{'type': 'object', 'title': 'compare_pricesArguments', 'required': ['product_name'], 'properties': {'session_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session Id', 'default': None, 'description': 'Optional session identifier to link tool calls in one conversation.'}, 'product_name': {'type': 'string', 'title': 'Product Name', 'description': "Specific product to compare prices for, e.g. 'Nike Pegasus 41'"}}}
출력 스키마
{'type': 'object', 'title': 'compare_pricesOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
complete_purchase
Complete a checkout and place the order. Only call this when the checkout status is 'ready_for_complete'. Records the purchase as a conversion in telemetry and ends the attribution session. Returns the order confirmation with order ID and receipt link.
입력 스키마
{'type': 'object', 'title': 'complete_purchaseArguments', 'required': ['checkout_id'], 'properties': {'session_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session Id', 'default': None, 'description': 'Session identifier for telemetry. Use the same one from search/checkout.'}, 'checkout_id': {'type': 'string', 'title': 'Checkout Id', 'description': 'The checkout session ID to complete'}}}
출력 스키마
{'type': 'object', 'title': 'complete_purchaseOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
find_deals
Find the best current deals in a product category. Searches for discounted, on-sale, or best-value products.
입력 스키마
{'type': 'object', 'title': 'find_dealsArguments', 'required': ['category'], 'properties': {'budget': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Budget', 'default': None, 'description': "Optional budget limit, e.g. '£100', '$50'"}, 'category': {'type': 'string', 'title': 'Category', 'description': "Product category, e.g. 'headphones', 'running shoes', 'coffee machines'"}, 'session_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session Id', 'default': None, 'description': 'Optional session identifier to link tool calls in one conversation.'}}}
출력 스키마
{'type': 'object', 'title': 'find_dealsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
search_products
Search for products across merchants and return comparison results. Returns structured product listings with prices, merchants, and checkout links. Searches Shopify's global catalogue (50M+ products across all Shopify merchants) and Channel3's affiliate network. Results include direct checkout links.
입력 스키마
{'type': 'object', 'title': 'search_productsArguments', 'required': ['query'], 'properties': {'query': {'type': 'string', 'title': 'Query', 'description': "What to search for, e.g. 'running shoes under £120'"}, 'session_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session Id', 'default': None, 'description': 'Optional session identifier to link tool calls in one conversation. Pass a stable string (e.g. conversation ID) across multiple tool calls.'}, 'max_results': {'type': 'integer', 'title': 'Max Results', 'default': 10, 'description': 'Maximum number of results to return'}}}
출력 스키마
{'type': 'object', 'title': 'search_productsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
start_checkout
Start a UCP checkout session for a product. Discovers the merchant's UCP capabilities, creates a checkout session, and attaches content attribution data from the current session's search and comparison activity. Returns the checkout status and any information the merchant still needs (email, shipping address, etc).
입력 스키마
{'type': 'object', 'title': 'start_checkoutArguments', 'required': ['product_url'], 'properties': {'quantity': {'type': 'integer', 'title': 'Quantity', 'default': 1, 'description': 'Number of items to purchase'}, 'session_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session Id', 'default': None, 'description': 'Session identifier to link checkout with earlier search telemetry.'}, 'product_url': {'type': 'string', 'title': 'Product Url', 'description': "URL of the product to purchase. The merchant's domain is used for UCP discovery."}}}
출력 스키마
{'type': 'object', 'title': 'start_checkoutOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
update_checkout_info
Update a checkout session with buyer information. Provide the information the merchant requested (email, name, shipping address, discount codes). Call this after start_checkout when the merchant indicates what information is still needed. If the response has status 'requires_escalation', share the continue_url with the user so they can complete payment in their browser.
입력 스키마
{'type': 'object', 'title': 'update_checkout_infoArguments', 'required': ['checkout_id'], 'properties': {'buyer_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Buyer Name', 'default': None, 'description': "Buyer's full name"}, 'buyer_email': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Buyer Email', 'default': None, 'description': "Buyer's email address"}, 'checkout_id': {'type': 'string', 'title': 'Checkout Id', 'description': 'The checkout session ID from start_checkout'}, 'discount_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Discount Code', 'default': None, 'description': 'Discount or promo code to apply'}, 'shipping_address': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Shipping Address', 'default': None, 'description': 'Shipping address as a single string (the merchant will parse it)'}}}
출력 스키마
{'type': 'object', 'title': 'update_checkout_infoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
추가됨
check_order
2026년 9월 17일 12:42 PM
추가됨
complete_purchase
2026년 9월 17일 12:42 PM
추가됨
update_checkout_info
2026년 9월 17일 12:42 PM
추가됨
start_checkout
2026년 9월 17일 12:42 PM
추가됨
find_deals
2026년 9월 17일 12:42 PM
추가됨
compare_prices
2026년 9월 17일 12:42 PM
추가됨
search_products
2026년 9월 17일 12:42 PM