MCP-Server

Forage Shopping

io.github.jalexspringer/forage-shopping
Commerce & Retail Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

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.
Eingabeschema
{'type': 'object', 'title': 'check_orderArguments', 'required': ['checkout_id'], 'properties': {'checkout_id': {'type': 'string', 'title': 'Checkout Id', 'description': 'The checkout session ID to check'}}}
Ausgabeschema
{'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.
Eingabeschema
{'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'"}}}
Ausgabeschema
{'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.
Eingabeschema
{'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'}}}
Ausgabeschema
{'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.
Eingabeschema
{'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.'}}}
Ausgabeschema
{'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.
Eingabeschema
{'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'}}}
Ausgabeschema
{'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).
Eingabeschema
{'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."}}}
Ausgabeschema
{'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.
Eingabeschema
{'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)'}}}
Ausgabeschema
{'type': 'object', 'title': 'update_checkout_infoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
Hinzugefügt
check_order
17. September 2026 12:42
Hinzugefügt
complete_purchase
17. September 2026 12:42
Hinzugefügt
update_checkout_info
17. September 2026 12:42
Hinzugefügt
start_checkout
17. September 2026 12:42
Hinzugefügt
find_deals
17. September 2026 12:42
Hinzugefügt
compare_prices
17. September 2026 12:42
Hinzugefügt
search_products
17. September 2026 12:42