{"name":"bcshops","description":"Shop the bcshops marketplace and run a seller store: search, compare, basket, checkout, orders, returns, listings, stock and seller finances.","version":"1.0.0","repository":{"url":"https://bcshops.com","source":"https://github.com/mediafill/bcshops"},"packages":[],"remotes":[{"type":"streamable-http","url":"https://bcshops.com/mcp","headers":[{"name":"Authorization","description":"bcx_ agent key. The person creates one at https://bcshops.com/agent-keys with a daily and monthly spend limit."}]}],"tools":[{"name":"search_products","title":"Search products","description":"Search the bcshops marketplace catalog. Supports free-text queries and structured filters. Returns ranked products with prices, store, and availability."},{"name":"natural_language_search","title":"AI shopping search","description":"Natural-language shopping search. Understands requests like 'a cozy gift for a new dad under $60' and returns an interpretation plus matching products."},{"name":"get_product","title":"Get product details","description":"Fetch full details for a product by its slug."},{"name":"audit_listings","title":"Audit seller listings","description":"Score the seller's own listings out of 100 and list the highest-impact fixes (photos, title, description, price vs market, cost tracking, stock, reviews). Use this before advising a seller on what to improve."},{"name":"price_history","title":"Price history","description":"Show how the price of a product has moved over time, for the seller and for competing stores selling the same product."},{"name":"watch_price","title":"Watch a price","description":"Watch a product and get told when its price drops to your budget. Uses the same price-drop alerts as a human shopper, so the buyer is emailed too. Call list_watches to see which watches have fired."},{"name":"list_watches","title":"List price watches","description":"List the prices this agent is watching, with the current price and whether the target has been reached (ready to buy)."},{"name":"stop_watching","title":"Stop watching a price","description":"Cancel a price watch by product slug."},{"name":"compare_products","title":"Compare products","description":"Compare 2-5 products side by side by slugs."},{"name":"get_cart","title":"View cart","description":"Get the current shopping cart contents and totals."},{"name":"add_to_cart","title":"Add to cart","description":"Add a product to the cart by slug."},{"name":"remove_from_cart","title":"Remove from cart","description":"Remove a product from the cart by slug."},{"name":"cancel_checkout","title":"Cancel saved unpaid checkout","description":"Expire an unpaid checkout and return its exact items to the agent cart. Releases held stock, credits, and spending budget only after payment status is verified. A submitted/paid payment cannot be cancelled here."},{"name":"get_credits_balance","title":"Credits balance","description":"Get the user's bcshops credits balance (points). 100 points = $1 off. Max 50% of any order subtotal can be covered by credits."},{"name":"checkout","title":"Place order","description":"Complete a purchase from the cart. Enforces per-key daily/monthly spend limits. Requires confirm=true. Returns an order summary and a paymentUrl when hosted payment is needed (hand it to the buyer). Credits can be applied via applyCreditsPoints (bounded by balance and 50% of subtotal)."},{"name":"get_order","title":"Get order status","description":"Look up an order placed with this agent key by order number."},{"name":"list_shopping_briefs","title":"The shopper's briefs","description":"The briefs this shopper has written: what they are looking for, the budget and the day it has to be here by."},{"name":"run_shopping_brief","title":"Run a brief","description":"Run one of the shopper's briefs: search the marketplace for what it says, within its budget. The results are the same every time."},{"name":"get_store","title":"Get store info","description":"Get a vendor store profile by slug."},{"name":"list_stores","title":"List stores","description":"List the stores (vendors) on the marketplace, with product counts."},{"name":"get_store_products","title":"Browse a store","description":"List the products sold by a given store (paginated)."},{"name":"setup_store","title":"Set up a storefront from a CSV","description":"Create or update the seller's store from a name, a design brief and a products CSV. This imports the products, applies a deterministic theme/colour, saves the shipping origin when supplied, and returns the missing questions the agent should ask next. Safe to call again with the same CSV (it will not import twice)."},{"name":"answer_store_setup","title":"Answer store setup questions","description":"Save the seller's answers to setup questions returned by setup_store/get_store_setup, and optionally import another products CSV. Use the exact question ids as keys. Returns the updated setup, including any questions still unanswered."},{"name":"get_store_setup","title":"Get store setup status","description":"Read the store's setup state: whether it is ready, which required questions are still open, the import report and the storefront/dashboard links. Call this after any answer or import."},{"name":"seller_overview","title":"Store dashboard","description":"The seller's dashboard in one call: revenue, orders, rating, what needs doing, the products that are selling and the orders waiting to be shipped."},{"name":"seller_profit","title":"True profit and cash","description":"What the store actually keeps: revenue after discounts, cost of goods, platform fees, refunds and postage. Includes profit per listing, cash tied up in stock, dead stock, a 30-day projection and the alerts that matter. Costs are snapshotted at the moment of sale."},{"name":"seller_list_products","title":"List the store's products","description":"Every product in the seller's catalogue, with price, stock, status and the listing quality score. Optionally filter by status or search the title."},{"name":"seller_get_product","title":"One product in full","description":"A single product with its description, images, offers, stock and quality score."},{"name":"seller_create_product","title":"Create a product","description":"Add a product to the store. Needs a title, a description, a price in cents, and the stock. The listing quality score comes back so you can improve it."},{"name":"seller_update_product","title":"Change a product","description":"Change price, stock, title, description or status. Only the fields you pass are changed - everything else is left alone."},{"name":"seller_list_orders","title":"List the store's orders","description":"The orders in the store, newest first, with the status, the total and the buyer. Filter by status: paid, fulfilled, refunded, cancelled."},{"name":"seller_get_order","title":"One order in full","description":"An order with its items, the delivery address and the tracking, so it can be packed and shipped."},{"name":"seller_fulfill_order","title":"Mark an order shipped","description":"Mark an order as shipped. If you have bought a label, pass the carrier and the tracking number and the buyer sees it straight away."},{"name":"seller_list_reviews","title":"Reviews of the store's listings","description":"The reviews of the listings this store sold - the listing that was bought, not the product in general. Reviews with no answer yet are first."},{"name":"seller_respond_to_review","title":"Answer a review","description":"Reply publicly to a review of one of your listings. Buyers read the reply, so make it useful."},{"name":"seller_list_returns","title":"Returns on the store's orders","description":"The returns requested on this store's orders, with the order, the reason and whether it is still open."},{"name":"seller_decide_return","title":"Approve or decline a return","description":"Approve a return (the buyer is refunded) or decline it, with a note the buyer sees."},{"name":"seller_shipping_rates","title":"Carrier rates for an order","description":"Live carrier rates for one of the store's orders, with the price and the delivery date for each service. Needs a connected carrier."},{"name":"seller_boosts","title":"Sponsored listings","description":"The store's sponsored listings with the spend, the impressions and the clicks. Pass a productId and a daily budget to start a new one. Every click costs a few cents out of the daily budget, and the boost stops when the budget is gone."},{"name":"seller_search_terms","title":"What shoppers searched for","description":"The searches that led to this store, with impressions, clicks and purchases - and the gap list: the queries where the store never appeared at all. That list is where the next sale is."},{"name":"seller_listing_quality","title":"Listing quality","description":"The quality score of every listing, worst first, with the fixes worth the most points. The score measures the things that decide whether a shopper buys or leaves."},{"name":"seller_insights","title":"What the store needs","description":"The checks a careful shopper would make - low stock, a price above the market, a listing nobody can find - each with a fix you can apply."},{"name":"seller_payouts","title":"Payout ledger","description":"What the store has earned, what the platform took, what is pending and what has been paid out - with the order-by-order ledger."},{"name":"seller_product_performance","title":"How the products are selling","description":"Every product with the units sold, the revenue, the views in the last 30 days and the conversion rate."},{"name":"seller_inventory","title":"The store's inventory","description":"Every sellable line with the stock, how fast it sells and how many days of stock are left. The number that matters is the days left - it tells the seller when they will run out."},{"name":"seller_set_stock","title":"Set the stock","description":"Change the stock on a line. Give the offer id (or the variant id) and the new number. A line that is out of stock stops selling immediately."},{"name":"seller_restock","title":"The purchase order","description":"What the store should order, grouped by supplier: how many units, what it costs, and the last day the order can go in and still arrive before the stock runs out."},{"name":"seller_set_supplier","title":"Set the supplier","description":"Say who supplies a listing and how many days they take. The purchase order then knows when each order has to be placed, and groups the lines by supplier."},{"name":"seller_growth_desk","title":"The growth desk","description":"Who is undercutting you, where you rank for the searches people make, and which of your listings is dead weight - each with the fix."},{"name":"seller_ask","title":"Ask about the store","description":"Ask a question about how the store is doing - why something is not selling, what to fix first. The answer is grounded in the store's real numbers."}]}