Server definition
- Hash
- sha256:7ebbec6a8b421e1f4cec5655dfa4bef2aa40a7acd427e04c1949cccc2e822ae4
- What it is
- What a remote MCP server returned when asked what it offers: 17 tools
The blob, as servednamed by its sha256
{
"instructions": "ForthClear B2B liquidation marketplace. Read tools (search_inventory, get_product_details, get_pricing_recommendation) are public. request_quote also works without credentials: pass buyer_email (the seller replies there); anonymous quotes are limited to 5 per hour per IP. Keep the status_token it returns and pass it to get_quote_status to see the seller's reply. Listings are sold by quote unless get_product_details says instant checkout is available. get_order_status, open_dispute and subscribe_to_query need the buyer's credentials. Other write tools (create_listing, respond_to_quote, quick_buy, get_quote_requests — the SELLER's inbox) require X-MCP-API-Key (sellers) or X-Agent-Token (buyers).",
"tools": [
{
"description": "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.",
"inputSchema": {
"properties": {
"order_ids": {
"description": "Order ids belonging to the calling seller (max 200/request). Orders owned by anyone else are skipped.",
"items": {
"minimum": 1,
"type": "integer"
},
"maxItems": 200,
"minItems": 1,
"type": "array"
}
},
"required": [
"order_ids"
],
"type": "object"
},
"name": "bulk_export_orders",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"carrier_name": {
"description": "Carrier for the shipment. Omit to infer it from tracking_number.",
"maxLength": 255,
"type": "string"
},
"order_ids": {
"description": "Order ids belonging to the calling seller (max 200/request). Orders owned by anyone else are skipped.",
"items": {
"minimum": 1,
"type": "integer"
},
"maxItems": 200,
"minItems": 1,
"type": "array"
},
"tracking_number": {
"description": "Tracking number written to every listed order. Supplying this without carrier_name auto-detects the carrier.",
"maxLength": 255,
"type": "string"
},
"tracking_url": {
"description": "Tracking URL written to every listed order.",
"maxLength": 2000,
"type": "string"
}
},
"required": [
"order_ids"
],
"type": "object"
},
"name": "bulk_mark_shipped",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"properties": {
"mode": {
"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.",
"enum": [
"price_set",
"price_percent_increase",
"price_percent_decrease",
"moq_set"
],
"type": "string"
},
"product_ids": {
"description": "ForthClear product ids to update (max 200/request).",
"items": {
"minimum": 1,
"type": "integer"
},
"maxItems": 200,
"minItems": 1,
"type": "array"
},
"value": {
"description": "USD price for price_set, percent (0-1000) for percent modes, integer units (1-999999) for moq_set.",
"type": "number"
}
},
"required": [
"product_ids",
"mode",
"value"
],
"type": "object"
},
"name": "bulk_update_listings",
"outputSchema": null
},
{
"description": "Create a new product listing (seller tool)",
"inputSchema": {
"properties": {
"category": {
"description": "Catalogue category. One of: electronics, apparel, home_goods, beauty, sports, kitchenware, office_supplies, toys, food_beverage, tools, other.",
"enum": [
"electronics",
"apparel",
"home_goods",
"beauty",
"sports",
"kitchenware",
"office_supplies",
"toys",
"food_beverage",
"tools",
"other"
],
"type": "string"
},
"condition": {
"description": "Standard liquidation condition grade (Task #72)",
"enum": [
"salvage",
"customer_returns",
"shelf_pulls",
"overstock",
"new_or_refurbished"
],
"type": "string"
},
"description": {
"description": "Listing body copy: condition detail, packaging, lot composition. Buyers filter on its presence and agents summarise it.",
"type": "string"
},
"name": {
"description": "Listing title shown to buyers and matched by catalogue search.",
"type": "string"
},
"original_retail_price": {
"description": "Original retail price in cents",
"type": "integer"
},
"price_per_unit": {
"description": "Price in cents",
"type": "integer"
},
"quantity": {
"description": "Units available in this lot.",
"minimum": 1,
"type": "integer"
},
"sku": {
"description": "Seller's own stock-keeping unit, shown to buyers and used for reconciliation.",
"type": "string"
}
},
"required": [
"name",
"category",
"condition",
"quantity",
"price_per_unit"
],
"type": "object"
},
"name": "create_listing",
"outputSchema": {
"properties": {
"listing": {
"properties": {
"category": {
"type": "string"
},
"condition": {
"type": [
"string",
"null"
]
},
"id": {
"type": "string"
},
"image_url": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"original_retail": {
"type": [
"integer",
"null"
]
},
"price": {
"description": "Unit price in cents.",
"type": "integer"
},
"quantity": {
"type": "integer"
},
"sku": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"view_url": {
"description": "Buyer-facing listing page.",
"type": "string"
}
},
"required": [
"id",
"name",
"category",
"quantity",
"price",
"status",
"view_url"
],
"type": "object"
},
"message": {
"type": "string"
},
"success": {
"type": "boolean"
}
},
"required": [
"success",
"message",
"listing"
],
"type": "object"
}
},
{
"description": "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).",
"inputSchema": {
"properties": {
"order_id": {
"description": "ForthClear order id",
"type": "integer"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "get_order_status",
"outputSchema": null
},
{
"description": "Get AI-powered pricing recommendation for inventory (seller tool)",
"inputSchema": {
"properties": {
"category": {
"description": "Catalogue category. One of: electronics, apparel, home_goods, beauty, sports, kitchenware, office_supplies, toys, food_beverage, tools, other.",
"enum": [
"electronics",
"apparel",
"home_goods",
"beauty",
"sports",
"kitchenware",
"office_supplies",
"toys",
"food_beverage",
"tools",
"other"
],
"type": "string"
},
"condition": {
"description": "Standard liquidation condition grade (Task #72)",
"enum": [
"salvage",
"customer_returns",
"shelf_pulls",
"overstock",
"new_or_refurbished"
],
"type": "string"
},
"original_retail": {
"description": "Original retail price in cents",
"type": "integer"
},
"quantity": {
"description": "Lot size being priced; recommendations scale with volume.",
"type": "integer"
}
},
"required": [
"category",
"condition",
"original_retail"
],
"type": "object"
},
"name": "get_pricing_recommendation",
"outputSchema": {
"properties": {
"discount_from_retail": {
"description": "Percent below original retail.",
"type": "number"
},
"factors": {
"items": {
"type": "string"
},
"type": "array"
},
"price_range": {
"properties": {
"high": {
"type": "number"
},
"low": {
"type": "number"
}
},
"required": [
"low",
"high"
],
"type": "object"
},
"recommended_price": {
"type": "number"
},
"tips": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"recommended_price",
"price_range",
"discount_from_retail",
"factors",
"tips"
],
"type": "object"
}
},
{
"description": "Get detailed information about a specific product",
"inputSchema": {
"properties": {
"product_id": {
"description": "Product ID (format: product_123)",
"type": "string"
}
},
"required": [
"product_id"
],
"type": "object"
},
"name": "get_product_details",
"outputSchema": {
"properties": {
"category": {
"type": "string"
},
"condition": {
"type": [
"string",
"null"
]
},
"currency": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"id": {
"type": "string"
},
"instant_checkout": {
"type": "boolean"
},
"name": {
"type": "string"
},
"next_action": {
"type": "string"
},
"original_retail": {
"type": [
"integer",
"null"
]
},
"payment_readiness": {
"type": "string"
},
"price": {
"description": "Unit price in minor units of currency.",
"type": "integer"
},
"quantity_available": {
"type": "integer"
},
"quote_quantity_threshold": {
"type": "integer"
},
"quote_required": {
"type": "boolean"
},
"seller": {
"properties": {
"company": {
"type": "string"
},
"verified": {
"description": "True once the seller has a Stripe account.",
"type": "boolean"
}
},
"required": [
"company",
"verified"
],
"type": "object"
}
},
"required": [
"id",
"name",
"category",
"quantity_available",
"price",
"quote_required"
],
"type": "object"
}
},
{
"description": "Get pending quote requests for seller's products (seller tool)",
"inputSchema": {
"properties": {
"status": {
"default": "pending",
"description": "Which of the calling seller's quote requests to return: pending (awaiting a reply), responded, or all.",
"enum": [
"pending",
"responded",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_quote_requests",
"outputSchema": {
"properties": {
"message": {
"type": "string"
},
"quotes": {
"items": {
"properties": {
"buyer_company": {
"type": "string"
},
"created_at": {
"description": "ISO-8601 timestamp.",
"type": "string"
},
"id": {
"type": "integer"
},
"message": {
"type": [
"string",
"null"
]
},
"product_id": {
"type": "string"
},
"product_name": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"status": {
"type": "string"
},
"target_price": {
"description": "Buyer target in cents.",
"type": [
"integer",
"null"
]
}
},
"required": [
"id",
"product_id",
"quantity",
"status",
"created_at"
],
"type": "object"
},
"type": "array"
},
"total": {
"type": "integer"
}
},
"required": [
"quotes",
"total",
"message"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"quote_id": {
"description": "Quote id from request_quote",
"type": "integer"
},
"status_token": {
"description": "status_token from the request_quote response",
"type": "string"
}
},
"required": [
"quote_id"
],
"type": "object"
},
"name": "get_quote_status",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"properties": {
"description": {
"description": "Free-text description of the issue",
"maxLength": 2000,
"type": "string"
},
"order_id": {
"description": "ForthClear order id",
"type": "integer"
},
"photo_urls": {
"description": "Optional evidence URLs",
"items": {
"format": "uri",
"type": "string"
},
"maxItems": 10,
"type": "array"
},
"reason": {
"description": "Dispute reason",
"enum": [
"missing_units",
"quality_issue",
"damaged",
"wrong_item",
"other"
],
"type": "string"
},
"requested_action": {
"description": "Resolution the buyer is requesting",
"enum": [
"refund",
"replacement",
"partial_refund"
],
"type": "string"
}
},
"required": [
"order_id",
"reason",
"description"
],
"type": "object"
},
"name": "open_dispute",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"buyer_company": {
"description": "Buyer's company name",
"type": "string"
},
"buyer_email": {
"description": "Buyer's email address",
"format": "email",
"type": "string"
},
"buyer_name": {
"description": "Buyer's full name",
"type": "string"
},
"product_id": {
"description": "Product ID (format: product_123)",
"type": "string"
},
"quantity": {
"description": "Number of units to purchase",
"minimum": 1,
"type": "integer"
}
},
"required": [
"product_id",
"quantity",
"buyer_email"
],
"type": "object"
},
"name": "quick_buy",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"buyer_company": {
"description": "Buyer's company name",
"type": "string"
},
"buyer_email": {
"description": "Buyer's email address (required)",
"format": "email",
"type": "string"
},
"buyer_name": {
"description": "Buyer's full name",
"type": "string"
},
"message": {
"description": "Additional message to seller",
"type": "string"
},
"product_id": {
"description": "Product ID (format: product_123)",
"type": "string"
},
"quantity": {
"description": "Number of units to quote",
"minimum": 1,
"type": "integer"
},
"target_price": {
"description": "Target price per unit in cents (optional)",
"type": "integer"
}
},
"required": [
"product_id",
"quantity",
"buyer_email"
],
"type": "object"
},
"name": "request_quote",
"outputSchema": {
"properties": {
"message": {
"type": "string"
},
"quote": {
"properties": {
"expected_response": {
"description": "Human-readable SLA, e.g. \"24-48 hours\".",
"type": "string"
},
"id": {
"type": "integer"
},
"product_id": {
"type": "string"
},
"product_name": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"seller_company": {
"type": "string"
},
"status": {
"type": "string"
},
"target_price": {
"description": "Buyer target per unit, as supplied.",
"type": [
"number",
"null"
]
}
},
"required": [
"id",
"product_id",
"product_name",
"quantity",
"status",
"expected_response"
],
"type": "object"
},
"status_token": {
"description": "Pass to get_quote_status to read this quote back. Keep it: an anonymous caller has no other way in.",
"type": "string"
},
"success": {
"type": "boolean"
}
},
"required": [
"success",
"message",
"quote"
],
"type": "object"
}
},
{
"description": "Respond to a buyer's quote request (seller tool)",
"inputSchema": {
"properties": {
"action": {
"description": "accept the buyer's terms as asked, counter with a different price (requires counter_price), or decline the request.",
"enum": [
"accept",
"counter",
"decline"
],
"type": "string"
},
"counter_price": {
"description": "Counter offer price in cents (for counter action)",
"type": "integer"
},
"message": {
"description": "Optional note sent to the buyer alongside the decision.",
"type": "string"
},
"quote_request_id": {
"description": "Id of the quote request to answer, as returned by get_quote_requests.",
"type": "integer"
}
},
"required": [
"quote_request_id",
"action"
],
"type": "object"
},
"name": "respond_to_quote",
"outputSchema": null
},
{
"description": "Search available liquidation inventory with filters",
"inputSchema": {
"properties": {
"category": {
"description": "Product category",
"type": "string"
},
"condition": {
"description": "Standard liquidation condition grade (Task #72)",
"enum": [
"salvage",
"customer_returns",
"shelf_pulls",
"overstock",
"new_or_refurbished"
],
"type": "string"
},
"limit": {
"default": 20,
"description": "Maximum listings to return (default 20, max 100).",
"maximum": 100,
"type": "integer"
},
"max_price": {
"description": "Maximum price in cents",
"type": "integer"
},
"query": {
"description": "Search query",
"type": "string"
}
},
"type": "object"
},
"name": "search_inventory",
"outputSchema": {
"properties": {
"message": {
"type": "string"
},
"products": {
"items": {
"properties": {
"category": {
"type": "string"
},
"condition": {
"type": [
"string",
"null"
]
},
"discount_percent": {
"description": "Null when the listing has no original retail price on file.",
"type": [
"integer",
"null"
]
},
"id": {
"description": "Opaque listing id, `product_<n>`.",
"type": "string"
},
"name": {
"type": "string"
},
"price": {
"description": "Unit price in cents.",
"type": "integer"
},
"quantity": {
"type": "integer"
}
},
"required": [
"id",
"name",
"category",
"quantity",
"price"
],
"type": "object"
},
"type": "array"
},
"total": {
"description": "Catalogue matches before the limit is applied.",
"type": "integer"
}
},
"required": [
"products",
"total",
"message"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"category": {
"description": "Restrict candidates to a single category",
"type": "string"
},
"condition": {
"description": "Restrict candidates to one condition grade",
"enum": [
"salvage",
"customer_returns",
"shelf_pulls",
"overstock",
"new_or_refurbished"
],
"type": "string"
},
"limit": {
"default": 10,
"description": "Number of ranked results to return",
"maximum": 50,
"type": "integer"
},
"max_price": {
"description": "Maximum price per unit in cents",
"type": "integer"
},
"query": {
"description": "Natural-language description of what the buyer wants",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_inventory_semantic",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"description": "Max items to surface in each bucket.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"window_hours": {
"default": 24,
"description": "Look-ahead window for ship-by-date risk detection (default 24h).",
"maximum": 168,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "seller_inbox_summarise",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"channels": {
"description": "Where to send new matches: 1-5 of webhook (public https URL), email, or mcp_resource (poll).",
"items": {
"oneOf": [
{
"properties": {
"type": {
"const": "webhook"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"type",
"url"
],
"type": "object"
},
{
"properties": {
"email": {
"format": "email",
"type": "string"
},
"type": {
"const": "email"
}
},
"required": [
"type",
"email"
],
"type": "object"
},
{
"properties": {
"type": {
"const": "mcp_resource"
}
},
"required": [
"type"
],
"type": "object"
}
]
},
"maxItems": 5,
"minItems": 1,
"type": "array"
},
"query": {
"additionalProperties": true,
"description": "Marketplace filter object (category, minPrice, maxPrice, minQuantity, search, sellerCountry, condition, moqRange, bulkDealsOnly).",
"type": "object"
}
},
"required": [
"query",
"channels"
],
"type": "object"
},
"name": "subscribe_to_query",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:7ebbec6a8b421e1f4cec5655dfa4bef2aa40a7acd427e04c1949cccc2e822ae4 | sha256sum