{"ok":true,"site":{"host":"trader-network.pages.dev","url":"https://trader-network.pages.dev/","type":"live","desc":"Trader Network helps market traders sell or exchange surplus stock with the help of WebMCP-enabled agents.","tools":[{"name":"get_inventory","kind":"answer","impl":"imperative","description":"Seller only (or illustrative sandbox without a profile). Returns the trader's inventory, availability, price, and freshness window. Use urgentOnly for perishable stock within 48 hours. Buyers must use find_stock_for_request.","title":"Review trader inventory","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"urgentOnly":{"type":"boolean","description":"When true, only return goods with 48 hours or less in their freshness window.","default":false}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_inventory_item","kind":"act","impl":"imperative","description":"Seller only (or illustrative sandbox without a profile). Shows the workspace containing the selected stock so the trader and agent can review it together.","title":"Show an inventory item","inputSchema":{"type":"object","properties":{"itemId":{"type":"string","description":"The inventory item ID returned by get_inventory."}},"required":["itemId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"find_surplus_matches","kind":"answer","impl":"imperative","description":"Seller only (or illustrative sandbox without a profile). Returns compatible buyer demand for the trader's stock using D1 records. This is a read-only lookup; live areas are labels, not measured distances.","title":"Find nearby demand","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"itemId":{"type":"string","description":"The inventory item ID returned by get_inventory."},"maxDistanceKm":{"type":"number","minimum":0.1,"maximum":100,"default":10,"description":"Illustrative sandbox only. Live matching uses area labels, not measured distances; this parameter does not filter live records."}},"required":["itemId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"draft_surplus_offer","kind":"act","impl":"imperative","description":"Seller only (or illustrative sandbox without a profile). Prepares a reversible offer draft in the visible workspace. Never sends or reserves inventory; the trader must review and approve it in the page.","title":"Prepare a surplus offer","inputSchema":{"type":"object","properties":{"itemId":{"type":"string","description":"The inventory item to offer."},"quantity":{"type":"integer","minimum":1,"description":"Whole number of units to offer."},"pricePerUnit":{"type":"number","minimum":1,"description":"Offer price per unit in Nigerian naira."},"matchId":{"type":"string","description":"Optional demand match ID returned by find_surplus_matches."},"note":{"type":"string","maxLength":180,"description":"Optional pickup or condition note."}},"required":["itemId","quantity","pricePerUnit"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_trade_context","kind":"answer","impl":"imperative","description":"Read role and data source first. A registered profile always uses live data. Without a profile, Agent sandbox offers Demo seller and Demo buyer; choose the role with the page buttons. All sandbox records are fictional and need no credentials.","title":"Check current trading role","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_my_requests","kind":"answer","impl":"imperative","description":"Buyer only. Read the current live buyer's requests, or fictional requests when anonymous with Demo buyer selected. Always check source. Includes the unpublished in-page request draft.","title":"Read my buyer requests","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"find_stock_for_request","kind":"answer","impl":"imperative","description":"Buyer only. Use demandId from get_my_requests, or full request fields. Shows live stock for a registered buyer, or fictional stock in anonymous Demo buyer mode. Exact product/unit matching; subtracts accepted reservations. Area labels are not distances. Delivery and pickup need confirmation; below-asking prices need negotiation. Never reserves or purchases.","title":"Find stock for a buyer request","inputSchema":{"type":"object","properties":{"demandId":{"type":"string","description":"An existing request belonging to this buyer."},"itemName":{"type":"string","maxLength":80,"description":"Exact product name; use the trader's spelling when known."},"category":{"type":"string","maxLength":40},"requestedQuantity":{"type":"integer","minimum":1,"maximum":100000},"unit":{"type":"string","enum":["crates","baskets","bags","packs","kilograms","piece"],"description":"Must match the stock unit; never assume unit conversions."},"maximumPricePerUnit":{"type":["integer","null"],"minimum":0,"maximum":1000000000,"description":"Maximum naira per unit, or null for an open budget."},"neededBy":{"type":"string","description":"Future ISO 8601 date including timezone; Nigeria is +01:00."},"deliveryArea":{"type":"string","maxLength":80,"description":"Broad collection area, not a private address."},"fulfilmentPreference":{"type":"string","enum":["pickup","delivery","either"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"review_incoming_offers","kind":"act","impl":"imperative","description":"Buyer only. Read offers actually sent to this buyer, with totals and request budget. Excludes unsent trader drafts and other buyers' offers. Explain the terms; acceptance or decline remains a human action in the page. Does not reveal private contact details.","title":"Review offers sent to me","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"draft_purchase_request","kind":"transact","impl":"imperative","description":"Buyer only. Prepare an editable unpublished request in the page. Does not call a backend, publish, buy, reserve or accept. Human approval uses Approve and publish request (live), or Approve demo request (anonymous sandbox). Sandbox publishing supports only the four sample products and exact units. Cannot overwrite a draft; discard first. Drafts are lost on reload.","title":"Prepare a buyer request for approval","inputSchema":{"type":"object","properties":{"itemName":{"type":"string","maxLength":80,"description":"Exact product name; use the trader's spelling when known."},"category":{"type":"string","maxLength":40},"requestedQuantity":{"type":"integer","minimum":1,"maximum":100000},"unit":{"type":"string","enum":["crates","baskets","bags","packs","kilograms","piece"],"description":"Must match the stock unit; never assume unit conversions."},"maximumPricePerUnit":{"type":["integer","null"],"minimum":0,"maximum":1000000000,"description":"Maximum naira per unit, or null for an open budget."},"neededBy":{"type":"string","description":"Future ISO 8601 date including timezone; Nigeria is +01:00."},"deliveryArea":{"type":"string","maxLength":80,"description":"Broad collection area, not a private address."},"fulfilmentPreference":{"type":"string","enum":["pickup","delivery","either"]}},"required":["itemName","requestedQuantity","unit","maximumPricePerUnit","neededBy","deliveryArea","fulfilmentPreference"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Productivity & Business","apiSurface":"spec","toolCount":9}}