MCP 服务器

ForthClear Liquidation Marketplace

io.forthclear/liquidation
电商与零售 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Searches liquidation inventory, supports product listings and seller operations, handles bulk quotes, and enables purchases.

bulk_export_orders
Export orders as CSV
Export the calling seller's orders as CSV (Order ID, Product, Buyer, Quantity, Total, Status, Date). Thin adapter over POST /api/seller/orders/bulk-export — orders not owned by the caller are silently skipped. Returns the CSV body as a string plus the suggested filename.
只读
输入模式
{'type': 'object', 'required': ['order_ids'], 'properties': {'order_ids': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'maxItems': 200, 'minItems': 1, 'description': 'Order ids belonging to the calling seller (max 200/request). Orders owned by anyone else are skipped.'}}}
bulk_mark_shipped
Bulk mark orders shipped
Mark up to 200 of the calling seller's orders as shipped, optionally writing a shared tracking number / URL / carrier to every order. Thin adapter over POST /api/seller/orders/bulk-mark-shipped — same per-order ownership filter, idempotent re-runs, auto-detected carrier when only a tracking number is supplied. Returns per-order success/failure buckets.
幂等
输入模式
{'type': 'object', 'required': ['order_ids'], 'properties': {'order_ids': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'maxItems': 200, 'minItems': 1, 'description': 'Order ids belonging to the calling seller (max 200/request). Orders owned by anyone else are skipped.'}, 'carrier_name': {'type': 'string', 'maxLength': 255, 'description': 'Carrier for the shipment. Omit to infer it from tracking_number.'}, 'tracking_url': {'type': 'string', 'maxLength': 2000, 'description': 'Tracking URL written to every listed order.'}, 'tracking_number': {'type': 'string', 'maxLength': 255, 'description': 'Tracking number written to every listed order. Supplying this without carrier_name auto-detects the carrier.'}}}
bulk_update_listings
Bulk update listing prices or MOQ
Bulk update prices or minimum order quantities across up to 200 of the calling seller's product listings. Thin adapter over POST /api/products/bulk-update-price and /bulk-update-moq — same seller-ownership filter and per-product validation. Choose mode='price_set' (value=USD), 'price_percent_increase' / 'price_percent_decrease' (value=percent), or 'moq_set' (value=integer units).
可能执行破坏性操作
输入模式
{'type': 'object', 'required': ['product_ids', 'mode', 'value'], 'properties': {'mode': {'enum': ['price_set', 'price_percent_increase', 'price_percent_decrease', 'moq_set'], 'type': 'string', 'description': 'What to change and how: price_set writes an absolute USD price, price_percent_increase / price_percent_decrease adjust the current price by a percentage, moq_set writes a minimum order quantity.'}, 'value': {'type': 'number', 'description': 'USD price for price_set, percent (0-1000) for percent modes, integer units (1-999999) for moq_set.'}, 'product_ids': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'maxItems': 200, 'minItems': 1, 'description': 'ForthClear product ids to update (max 200/request).'}}}
create_listing
Create a listing
Create a new product listing (seller tool)
输入模式
{'type': 'object', 'required': ['name', 'category', 'condition', 'quantity', 'price_per_unit'], 'properties': {'sku': {'type': 'string', 'description': "Seller's own stock-keeping unit, shown to buyers and used for reconciliation."}, 'name': {'type': 'string', 'description': 'Listing title shown to buyers and matched by catalogue search.'}, 'category': {'enum': ['electronics', 'apparel', 'home_goods', 'beauty', 'sports', 'kitchenware', 'office_supplies', 'toys', 'food_beverage', 'tools', 'other'], 'type': 'string', 'description': 'Catalogue category. One of: electronics, apparel, home_goods, beauty, sports, kitchenware, office_supplies, toys, food_beverage, tools, other.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Units available in this lot.'}, 'condition': {'enum': ['salvage', 'customer_returns', 'shelf_pulls', 'overstock', 'new_or_refurbished'], 'type': 'string', 'description': 'Standard liquidation condition grade (Task #72)'}, 'description': {'type': 'string', 'description': 'Listing body copy: condition detail, packaging, lot composition. Buyers filter on its presence and agents summarise it.'}, 'price_per_unit': {'type': 'integer', 'description': 'Price in cents'}, 'original_retail_price': {'type': 'integer', 'description': 'Original retail price in cents'}}}
输出模式
{'type': 'object', 'required': ['success', 'message', 'listing'], 'properties': {'listing': {'type': 'object', 'required': ['id', 'name', 'category', 'quantity', 'price', 'status', 'view_url'], 'properties': {'id': {'type': 'string'}, 'sku': {'type': ['string', 'null']}, 'name': {'type': 'string'}, 'price': {'type': 'integer', 'description': 'Unit price in cents.'}, 'status': {'type': 'string'}, 'category': {'type': 'string'}, 'quantity': {'type': 'integer'}, 'view_url': {'type': 'string', 'description': 'Buyer-facing listing page.'}, 'condition': {'type': ['string', 'null']}, 'image_url': {'type': ['string', 'null']}, 'original_retail': {'type': ['integer', 'null']}}}, 'message': {'type': 'string'}, 'success': {'type': 'boolean'}}}
get_order_status
Get order status
Status, tracking and inspection deadline for an order owned by the authenticated buyer (X-MCP-API-Key of the order's buyer, or a buyer X-Agent-Token).
只读
输入模式
{'type': 'object', 'required': ['order_id'], 'properties': {'order_id': {'type': 'integer', 'description': 'ForthClear order id'}}}
get_pricing_recommendation
Get pricing recommendation
Get AI-powered pricing recommendation for inventory (seller tool)
只读
输入模式
{'type': 'object', 'required': ['category', 'condition', 'original_retail'], 'properties': {'category': {'enum': ['electronics', 'apparel', 'home_goods', 'beauty', 'sports', 'kitchenware', 'office_supplies', 'toys', 'food_beverage', 'tools', 'other'], 'type': 'string', 'description': 'Catalogue category. One of: electronics, apparel, home_goods, beauty, sports, kitchenware, office_supplies, toys, food_beverage, tools, other.'}, 'quantity': {'type': 'integer', 'description': 'Lot size being priced; recommendations scale with volume.'}, 'condition': {'enum': ['salvage', 'customer_returns', 'shelf_pulls', 'overstock', 'new_or_refurbished'], 'type': 'string', 'description': 'Standard liquidation condition grade (Task #72)'}, 'original_retail': {'type': 'integer', 'description': 'Original retail price in cents'}}}
输出模式
{'type': 'object', 'required': ['recommended_price', 'price_range', 'discount_from_retail', 'factors', 'tips'], 'properties': {'tips': {'type': 'array', 'items': {'type': 'string'}}, 'factors': {'type': 'array', 'items': {'type': 'string'}}, 'price_range': {'type': 'object', 'required': ['low', 'high'], 'properties': {'low': {'type': 'number'}, 'high': {'type': 'number'}}}, 'recommended_price': {'type': 'number'}, 'discount_from_retail': {'type': 'number', 'description': 'Percent below original retail.'}}}
get_product_details
Get product details
Get detailed information about a specific product
只读
输入模式
{'type': 'object', 'required': ['product_id'], 'properties': {'product_id': {'type': 'string', 'description': 'Product ID (format: product_123)'}}}
输出模式
{'type': 'object', 'required': ['id', 'name', 'category', 'quantity_available', 'price', 'quote_required'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'price': {'type': 'integer', 'description': 'Unit price in minor units of currency.'}, 'seller': {'type': 'object', 'required': ['company', 'verified'], 'properties': {'company': {'type': 'string'}, 'verified': {'type': 'boolean', 'description': 'True once the seller has a Stripe account.'}}}, 'category': {'type': 'string'}, 'currency': {'type': 'string'}, 'condition': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'next_action': {'type': 'string'}, 'quote_required': {'type': 'boolean'}, 'original_retail': {'type': ['integer', 'null']}, 'instant_checkout': {'type': 'boolean'}, 'payment_readiness': {'type': 'string'}, 'quantity_available': {'type': 'integer'}, 'quote_quantity_threshold': {'type': 'integer'}}}
get_quote_requests
Get incoming quote requests
Get pending quote requests for seller's products (seller tool)
只读
输入模式
{'type': 'object', 'properties': {'status': {'enum': ['pending', 'responded', 'all'], 'type': 'string', 'default': 'pending', 'description': "Which of the calling seller's quote requests to return: pending (awaiting a reply), responded, or all."}}}
输出模式
{'type': 'object', 'required': ['quotes', 'total', 'message'], 'properties': {'total': {'type': 'integer'}, 'quotes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'product_id', 'quantity', 'status', 'created_at'], 'properties': {'id': {'type': 'integer'}, 'status': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'quantity': {'type': 'integer'}, 'created_at': {'type': 'string', 'description': 'ISO-8601 timestamp.'}, 'product_id': {'type': 'string'}, 'product_name': {'type': 'string'}, 'target_price': {'type': ['integer', 'null'], 'description': 'Buyer target in cents.'}, 'buyer_company': {'type': 'string'}}}}, 'message': {'type': 'string'}}}
get_quote_status
Get quote status
Read back a quote you filed: status (pending, responded, accepted, rejected, completed), the seller's price and shipping once they reply, and what to do next. Pass the status_token request_quote returned; a buyer X-Agent-Token or account key can read its own quotes without one.
只读
输入模式
{'type': 'object', 'required': ['quote_id'], 'properties': {'quote_id': {'type': 'integer', 'description': 'Quote id from request_quote'}, 'status_token': {'type': 'string', 'description': 'status_token from the request_quote response'}}}
open_dispute
Open a dispute
Open a dispute on a delivered order awaiting the buyer's confirmation. Moves the order to 'issue_reported', records the issue and notifies admins. Requires the order's buyer (X-MCP-API-Key or buyer X-Agent-Token).
输入模式
{'type': 'object', 'required': ['order_id', 'reason', 'description'], 'properties': {'reason': {'enum': ['missing_units', 'quality_issue', 'damaged', 'wrong_item', 'other'], 'type': 'string', 'description': 'Dispute reason'}, 'order_id': {'type': 'integer', 'description': 'ForthClear order id'}, 'photo_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 10, 'description': 'Optional evidence URLs'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Free-text description of the issue'}, 'requested_action': {'enum': ['refund', 'replacement', 'partial_refund'], 'type': 'string', 'description': 'Resolution the buyer is requesting'}}}
quick_buy
Quick buy
One-step purchase for products with instant checkout enabled (seller opt-in) and orders under bulk threshold. For products without instant checkout or larger orders, use request_quote instead.
输入模式
{'type': 'object', 'required': ['product_id', 'quantity', 'buyer_email'], 'properties': {'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of units to purchase'}, 'buyer_name': {'type': 'string', 'description': "Buyer's full name"}, 'product_id': {'type': 'string', 'description': 'Product ID (format: product_123)'}, 'buyer_email': {'type': 'string', 'format': 'email', 'description': "Buyer's email address"}, 'buyer_company': {'type': 'string', 'description': "Buyer's company name"}}}
request_quote
Request a bulk quote
Request a bulk quote for a product (buyer tool). Works without credentials: buyer_email is required and is where the seller replies. Anonymous quotes are limited to 5 per hour per IP; a buyer X-Agent-Token binds the quote to the buyer's account instead.
输入模式
{'type': 'object', 'required': ['product_id', 'quantity', 'buyer_email'], 'properties': {'message': {'type': 'string', 'description': 'Additional message to seller'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of units to quote'}, 'buyer_name': {'type': 'string', 'description': "Buyer's full name"}, 'product_id': {'type': 'string', 'description': 'Product ID (format: product_123)'}, 'buyer_email': {'type': 'string', 'format': 'email', 'description': "Buyer's email address (required)"}, 'target_price': {'type': 'integer', 'description': 'Target price per unit in cents (optional)'}, 'buyer_company': {'type': 'string', 'description': "Buyer's company name"}}}
输出模式
{'type': 'object', 'required': ['success', 'message', 'quote'], 'properties': {'quote': {'type': 'object', 'required': ['id', 'product_id', 'product_name', 'quantity', 'status', 'expected_response'], 'properties': {'id': {'type': 'integer'}, 'status': {'type': 'string'}, 'quantity': {'type': 'integer'}, 'product_id': {'type': 'string'}, 'product_name': {'type': 'string'}, 'target_price': {'type': ['number', 'null'], 'description': 'Buyer target per unit, as supplied.'}, 'seller_company': {'type': 'string'}, 'expected_response': {'type': 'string', 'description': 'Human-readable SLA, e.g. "24-48 hours".'}}}, 'message': {'type': 'string'}, 'success': {'type': 'boolean'}, 'status_token': {'type': 'string', 'description': 'Pass to get_quote_status to read this quote back. Keep it: an anonymous caller has no other way in.'}}}
respond_to_quote
Respond to a quote request
Respond to a buyer's quote request (seller tool)
输入模式
{'type': 'object', 'required': ['quote_request_id', 'action'], 'properties': {'action': {'enum': ['accept', 'counter', 'decline'], 'type': 'string', 'description': "accept the buyer's terms as asked, counter with a different price (requires counter_price), or decline the request."}, 'message': {'type': 'string', 'description': 'Optional note sent to the buyer alongside the decision.'}, 'counter_price': {'type': 'integer', 'description': 'Counter offer price in cents (for counter action)'}, 'quote_request_id': {'type': 'integer', 'description': 'Id of the quote request to answer, as returned by get_quote_requests.'}}}
search_inventory
Search inventory
Search available liquidation inventory with filters
只读
输入模式
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'description': 'Maximum listings to return (default 20, max 100).'}, 'query': {'type': 'string', 'description': 'Search query'}, 'category': {'type': 'string', 'description': 'Product category'}, 'condition': {'enum': ['salvage', 'customer_returns', 'shelf_pulls', 'overstock', 'new_or_refurbished'], 'type': 'string', 'description': 'Standard liquidation condition grade (Task #72)'}, 'max_price': {'type': 'integer', 'description': 'Maximum price in cents'}}}
输出模式
{'type': 'object', 'required': ['products', 'total', 'message'], 'properties': {'total': {'type': 'integer', 'description': 'Catalogue matches before the limit is applied.'}, 'message': {'type': 'string'}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'category', 'quantity', 'price'], 'properties': {'id': {'type': 'string', 'description': 'Opaque listing id, `product_<n>`.'}, 'name': {'type': 'string'}, 'price': {'type': 'integer', 'description': 'Unit price in cents.'}, 'category': {'type': 'string'}, 'quantity': {'type': 'integer'}, 'condition': {'type': ['string', 'null']}, 'discount_percent': {'type': ['integer', 'null'], 'description': 'Null when the listing has no original retail price on file.'}}}}}}
search_inventory_semantic
Semantic inventory search
Semantic catalog search: ranks listings by similarity to a natural-language description (e.g. 'something like AirPods but cheaper'). Returns the search_inventory product shape plus a similarity score in [0, 1]. No credentials needed.
只读
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'description': 'Number of ranked results to return'}, 'query': {'type': 'string', 'description': 'Natural-language description of what the buyer wants'}, 'category': {'type': 'string', 'description': 'Restrict candidates to a single category'}, 'condition': {'enum': ['salvage', 'customer_returns', 'shelf_pulls', 'overstock', 'new_or_refurbished'], 'type': 'string', 'description': 'Restrict candidates to one condition grade'}, 'max_price': {'type': 'integer', 'description': 'Maximum price per unit in cents'}}}
seller_inbox_summarise
Summarise seller inbox
Read-only digest of the calling seller's inbox: pending quote requests, orders at risk of missing their ship-by deadline, and orders with reported issues. Useful for a daily standup or cron-driven agent that decides which bulk action to run next.
只读
输入模式
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Max items to surface in each bucket.'}, 'window_hours': {'type': 'integer', 'default': 24, 'maximum': 168, 'minimum': 1, 'description': 'Look-ahead window for ship-by-date risk detection (default 24h).'}}}
subscribe_to_query
Subscribe to a saved search
Save a search for the calling agent principal. New matching listings are sent to each channel: webhook (HMAC-signed POST), email, or a pollable resource at /api/mcp/resources/subscriptions/{id}. Requires credentials.
可访问外部资源
输入模式
{'type': 'object', 'required': ['query', 'channels'], 'properties': {'query': {'type': 'object', 'description': 'Marketplace filter object (category, minPrice, maxPrice, minQuantity, search, sellerCountry, condition, moqRange, bulkDealsOnly).', 'additionalProperties': True}, 'channels': {'type': 'array', 'items': {'oneOf': [{'type': 'object', 'required': ['type', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'type': {'const': 'webhook'}}}, {'type': 'object', 'required': ['type', 'email'], 'properties': {'type': {'const': 'email'}, 'email': {'type': 'string', 'format': 'email'}}}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'const': 'mcp_resource'}}}]}, 'maxItems': 5, 'minItems': 1, 'description': 'Where to send new matches: 1-5 of webhook (public https URL), email, or mcp_resource (poll).'}}}
已添加
subscribe_to_query
2026年9月29日 02:51
已添加
open_dispute
2026年9月29日 02:51
已添加
get_order_status
2026年9月29日 02:51
已添加
search_inventory_semantic
2026年9月29日 02:51
已添加
get_quote_status
2026年9月29日 02:51
已更改
request_quote
2026年9月29日 02:51
已更改
get_product_details
2026年9月19日 02:41
已添加
quick_buy
2026年9月17日 12:40
已添加
seller_inbox_summarise
2026年9月17日 12:40
已添加
bulk_export_orders
2026年9月17日 12:40
已添加
bulk_mark_shipped
2026年9月17日 12:40
已添加
bulk_update_listings
2026年9月17日 12:40
已添加
respond_to_quote
2026年9月17日 12:40
已添加
get_quote_requests
2026年9月17日 12:40
已添加
get_pricing_recommendation
2026年9月17日 12:40
已添加
create_listing
2026年9月17日 12:40
已添加
request_quote
2026年9月17日 12:40
已添加
get_product_details
2026年9月17日 12:40
已添加
search_inventory
2026年9月17日 12:40