{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json",
  "name": "com.nemahbites/store",
  "title": "nemahBites store",
  "description": "Search, price and order from nemahBites — imported chocolate, candy, biscuits, snacks and groceries delivered across Bangladesh. Live prices in BDT and live stock. An agent can place a real cash-on-delivery order after the customer explicitly confirms the total.",
  "version": "2.0.0",
  "websiteUrl": "https://nemahbites.com",
  "documentationUrl": "https://nemahbites.com/developers",
  "iconUrl": "https://nemahbites.com/img/w240/uploads/logo-short.png",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://nemahbites.com/api/mcp",
      "authentication": {
        "type": "oauth2",
        "required_for": [
          "create_checkout",
          "get_checkout",
          "confirm_order",
          "get_order_status"
        ],
        "authorization_server": "https://nemahbites.com/.well-known/oauth-authorization-server",
        "resource_metadata": "https://nemahbites.com/.well-known/oauth-protected-resource",
        "scopes": [
          "catalog.read",
          "checkout.write"
        ],
        "registration": "https://nemahbites.com/api/agent/identity",
        "skill": "https://nemahbites.com/auth.md"
      }
    },
    {
      "type": "streamable-http",
      "url": "https://mcp.nemahbites.com/mcp",
      "authentication": {
        "type": "none"
      },
      "note": "Alias of the canonical endpoint above. For the tools that need a token, connect to the canonical URL so the OAuth resource identifier matches."
    }
  ],
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "tools": [
    {
      "name": "search_products",
      "description": "Search the catalog by name, brand, category or price range. Returns the product_id every other tool needs."
    },
    {
      "name": "get_product",
      "description": "Full detail for one product by id, slug or GTIN."
    },
    {
      "name": "check_stock",
      "description": "Whether a given quantity can be ordered right now."
    },
    {
      "name": "calculate_shipping",
      "description": "Delivery charge and estimate for a basket and a Bangladeshi address."
    },
    {
      "name": "create_checkout",
      "description": "Price a basket for a named customer. Creates no order."
    },
    {
      "name": "get_checkout",
      "description": "Re-price a checkout against live data before asking the customer to confirm."
    },
    {
      "name": "confirm_order",
      "description": "Place the real order. Requires explicit customer confirmation."
    },
    {
      "name": "get_order_status",
      "description": "Track an order the agent placed."
    },
    {
      "name": "wholesale_quote",
      "description": "Read-only bulk estimate using published tiers off retail prices. Bulk stock and delivery require confirmation; never places an order."
    },
    {
      "name": "search_wholesale_products",
      "description": "Find available exact pack candidates with quantity-specific tier estimates; ask the customer to choose when ambiguous."
    },
    {
      "name": "get_wholesale_eligibility",
      "description": "Read tier eligibility for an exact product and outer-pack quantity."
    },
    {
      "name": "check_bulk_stock",
      "description": "Check counted stock for the requested bulk quantity; uncounted stock requires human confirmation."
    },
    {
      "name": "create_wholesale_enquiry",
      "description": "Requires checkout.write, customer permission and idempotency_key. Sends a quote enquiry, never an order or payment."
    },
    {
      "name": "get_commerce_config",
      "description": "Current public wholesale, rewards, delivery and business clock contract."
    },
    {
      "name": "preview_reward_redemption",
      "description": "Read-only retail estimate, customer-bound loyalty.read. No points reserved or spent; checkout revalidates."
    },
    {
      "name": "get_reward_balance",
      "description": "Private reward balance for the linked customer only; requires loyalty.read. Redemption happens only through confirm_order with loyalty.write and explicit customer approval."
    },
    {
      "name": "list_catalog",
      "description": "List the categories or brands the store carries."
    },
    {
      "name": "store_info",
      "description": "Delivery charges, payment methods, returns, wholesale/bulk quantity pricing, the reward-points programme, and contact details."
    }
  ]
}