Servidor MCP

Forage Shopping

io.github.jalexspringer/forage-shopping
Comercio y retail Público y accesible MCP 2025-11-25

Qué hace este 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.
Esquema de entrada
{'type': 'object', 'title': 'check_orderArguments', 'required': ['checkout_id'], 'properties': {'checkout_id': {'type': 'string', 'title': 'Checkout Id', 'description': 'The checkout session ID to check'}}}
Esquema de salida
{'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.
Esquema de entrada
{'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'"}}}
Esquema de salida
{'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.
Esquema de entrada
{'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'}}}
Esquema de salida
{'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.
Esquema de entrada
{'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.'}}}
Esquema de salida
{'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.
Esquema de entrada
{'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'}}}
Esquema de salida
{'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).
Esquema de entrada
{'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."}}}
Esquema de salida
{'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.
Esquema de entrada
{'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)'}}}
Esquema de salida
{'type': 'object', 'title': 'update_checkout_infoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
Añadido
check_order
17 de September de 2026 a las 12:42
Añadido
complete_purchase
17 de September de 2026 a las 12:42
Añadido
update_checkout_info
17 de September de 2026 a las 12:42
Añadido
start_checkout
17 de September de 2026 a las 12:42
Añadido
find_deals
17 de September de 2026 a las 12:42
Añadido
compare_prices
17 de September de 2026 a las 12:42
Añadido
search_products
17 de September de 2026 a las 12:42