← WebMCP Directory

Tool tree

northgardenws.com

Travel & EventsTools verified
Website
North Garden is a Chinese restaurant in West Springfield, MA. See the full menu, hours and directions — and order online for pickup.
Explore capabilities

    page: Every page

    get_restaurant_infoAnswer

    Get this restaurant's name, address, phone, whether it is open now, whether online ordering is available, which of pickup/delivery it offers with estimated wait times, and what the customer pays by. Call this first.

    View tool JSON
    {
      "name": "get_restaurant_info",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get this restaurant's name, address, phone, whether it is open now, whether online ordering is available, which of pickup/delivery it offers with estimated wait times, and what the customer pays by. Call this first.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    list_menu_categoriesAnswer

    List the menu categories available right now, with how many dishes each has.

    View tool JSON
    {
      "name": "list_menu_categories",
      "kind": "answer",
      "impl": "imperative",
      "description": "List the menu categories available right now, with how many dishes each has.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    search_menuAnswer

    Find dishes by name, description or category, optionally within one category. Returns item ids, prices (per size/variation) and whether the dish has options. Use get_item_details before adding a dish that has options. If the restaurant offers Express (see get_restaurant_info), pass expressOnly to list only Express-eligible dishes.

    View tool JSON
    {
      "name": "search_menu",
      "kind": "answer",
      "impl": "imperative",
      "description": "Find dishes by name, description or category, optionally within one category. Returns item ids, prices (per size/variation) and whether the dish has options. Use get_item_details before adding a dish that has options. If the restaurant offers Express (see get_restaurant_info), pass expressOnly to list only Express-eligible dishes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Words to match, e.g. 'general tso chicken' or 'spicy'. Omit to list a category."
          },
          "categoryId": {
            "type": "string",
            "description": "Restrict to one category (from list_menu_categories)."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "default": 20
          },
          "expressOnly": {
            "type": "boolean",
            "description": "Only Express-eligible dishes (shorter wait). Only for restaurants that offer Express."
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }
    get_item_detailsAnswer

    Get one dish's sizes/variations and its option groups (which are required, how many choices are allowed, the default, and each option's extra price). Required groups without a default must be answered in add_to_cart.

    View tool JSON
    {
      "name": "get_item_details",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get one dish's sizes/variations and its option groups (which are required, how many choices are allowed, the default, and each option's extra price). Required groups without a default must be answered in add_to_cart.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          }
        },
        "required": [
          "itemId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    add_to_cartAction

    Add a dish to the customer's cart. If the dish has more than one size, pass variationId. Pass selections for option groups ([{ groupId, optionIds }]); groups you don't mention keep their default. Required groups without a default must be answered. Prices are computed by the restaurant's server. Returns the updated cart.

    View tool JSON
    {
      "name": "add_to_cart",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a dish to the customer's cart. If the dish has more than one size, pass variationId. Pass selections for option groups ([{ groupId, optionIds }]); groups you don't mention keep their default. Required groups without a default must be answered. Prices are computed by the restaurant's server. Returns the updated cart.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "variationId": {
            "type": "string",
            "description": "Required when the dish has more than one size/variation."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "default": 1
          },
          "selections": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "groupId": {
                  "type": "string"
                },
                "optionIds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "groupId",
                "optionIds"
              ],
              "additionalProperties": false
            }
          },
          "note": {
            "type": "string",
            "maxLength": 200,
            "description": "Special request for the kitchen, e.g. 'no onions'."
          }
        },
        "required": [
          "itemId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    get_cartAnswer

    Get the current cart: each line (with its lineIndex), quantities, chosen options, notes, line totals and the subtotal.

    View tool JSON
    {
      "name": "get_cart",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the current cart: each line (with its lineIndex), quantities, chosen options, notes, line totals and the subtotal.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    update_cart_itemAction

    Change the quantity of a cart line (lineIndex from get_cart). Quantity 0 removes the line.

    View tool JSON
    {
      "name": "update_cart_item",
      "kind": "act",
      "impl": "imperative",
      "description": "Change the quantity of a cart line (lineIndex from get_cart). Quantity 0 removes the line.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lineIndex": {
            "type": "integer",
            "minimum": 0
          },
          "quantity": {
            "type": "integer",
            "minimum": 0,
            "maximum": 50
          }
        },
        "required": [
          "lineIndex",
          "quantity"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    remove_cart_itemAction

    Remove a line from the cart (lineIndex from get_cart).

    View tool JSON
    {
      "name": "remove_cart_item",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove a line from the cart (lineIndex from get_cart).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lineIndex": {
            "type": "integer",
            "minimum": 0
          }
        },
        "required": [
          "lineIndex"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    set_fulfillment_methodAction

    Choose pickup or delivery (only methods the restaurant offers; see get_restaurant_info). The delivery address is entered by the customer at checkout.

    View tool JSON
    {
      "name": "set_fulfillment_method",
      "kind": "act",
      "impl": "imperative",
      "description": "Choose pickup or delivery (only methods the restaurant offers; see get_restaurant_info). The delivery address is entered by the customer at checkout.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "enum": [
              "pickup",
              "delivery"
            ]
          }
        },
        "required": [
          "method"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    start_checkoutSensitive Action

    Open the checkout screen with the current cart. Then use the checkout tools (set_contact_details, set_delivery_address, send_verification_code / verify_phone_code, set_payment_method, place_order), or let the customer finish on screen. Card payment is always entered by the customer.

    View tool JSON
    {
      "name": "start_checkout",
      "kind": "transact",
      "impl": "imperative",
      "description": "Open the checkout screen with the current cart. Then use the checkout tools (set_contact_details, set_delivery_address, send_verification_code / verify_phone_code, set_payment_method, place_order), or let the customer finish on screen. Card payment is always entered by the customer.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    get_checkout_statusAnswer

    What the open checkout still needs before the order can be placed: contact fields, delivery address state, phone verification, payment method, total, and the blocking reason shown on the Place order button.

    View tool JSON
    {
      "name": "get_checkout_status",
      "kind": "answer",
      "impl": "imperative",
      "description": "What the open checkout still needs before the order can be placed: contact fields, delivery address state, phone verification, payment method, total, and the blocking reason shown on the Place order button.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    set_contact_detailsAction

    Fill the customer's name, phone and email on the open checkout (only what you pass changes). Use the customer's real details, with their permission. The email gets the receipt.

    View tool JSON
    {
      "name": "set_contact_details",
      "kind": "act",
      "impl": "imperative",
      "description": "Fill the customer's name, phone and email on the open checkout (only what you pass changes). Use the customer's real details, with their permission. The email gets the receipt.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 80
          },
          "phone": {
            "type": "string",
            "description": "US phone number, e.g. 413-555-0123."
          },
          "email": {
            "type": "string",
            "format": "email"
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }
    set_delivery_addressAction

    For delivery orders: fill the address and run the same check the customer's Confirm button does (address lookup, delivery zone, distance). Returns status valid, outside (with distance and max), unavailable, or unverifiable (the address couldn't be verified; only call confirm_unverified_address if the customer says to deliver there anyway).

    View tool JSON
    {
      "name": "set_delivery_address",
      "kind": "act",
      "impl": "imperative",
      "description": "For delivery orders: fill the address and run the same check the customer's Confirm button does (address lookup, delivery zone, distance). Returns status valid, outside (with distance and max), unavailable, or unverifiable (the address couldn't be verified; only call confirm_unverified_address if the customer says to deliver there anyway).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string"
          },
          "apt": {
            "type": "string",
            "description": "Apartment / suite, if any."
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "description": "Two-letter state, e.g. MA."
          },
          "zip": {
            "type": "string"
          },
          "notes": {
            "type": "string",
            "description": "Instructions for the driver."
          }
        },
        "required": [
          "street",
          "city",
          "state",
          "zip"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    confirm_unverified_addressAction

    Only after set_delivery_address returned unverifiable AND the customer confirmed the address is right: accept it as typed (the same as the customer tapping 'Deliver here anyway').

    View tool JSON
    {
      "name": "confirm_unverified_address",
      "kind": "act",
      "impl": "imperative",
      "description": "Only after set_delivery_address returned unverifiable AND the customer confirmed the address is right: accept it as typed (the same as the customer tapping 'Deliver here anyway').",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    send_verification_codeSensitive Action

    Pay-in-person pickup orders need the phone verified: this texts a code to the phone on the checkout. Ask the customer to read you the code, then call verify_phone_code. Returns not_required when no verification is needed.

    View tool JSON
    {
      "name": "send_verification_code",
      "kind": "transact",
      "impl": "imperative",
      "description": "Pay-in-person pickup orders need the phone verified: this texts a code to the phone on the checkout. Ask the customer to read you the code, then call verify_phone_code. Returns not_required when no verification is needed.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    verify_phone_codeAction

    Enter the code the customer received by text message.

    View tool JSON
    {
      "name": "verify_phone_code",
      "kind": "act",
      "impl": "imperative",
      "description": "Enter the code the customer received by text message.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "minLength": 3,
            "maxLength": 10
          }
        },
        "required": [
          "code"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    set_payment_methodAction

    Choose pay in person (pay at pickup or to the driver). Agents can't choose or enter card payment; for card, the customer completes payment in the card form on screen.

    View tool JSON
    {
      "name": "set_payment_method",
      "kind": "act",
      "impl": "imperative",
      "description": "Choose pay in person (pay at pickup or to the driver). Agents can't choose or enter card payment; for card, the customer completes payment in the card form on screen.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "enum": [
              "pay_in_person"
            ]
          }
        },
        "required": [
          "method"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    place_orderSensitive Action

    Place the order (pay in person only). Before calling, confirm the cart, pickup/delivery and total with the customer. Fails with the same reason the Place order button shows if anything is still missing. Returns the order id on success.

    View tool JSON
    {
      "name": "place_order",
      "kind": "transact",
      "impl": "imperative",
      "description": "Place the order (pay in person only). Before calling, confirm the cart, pickup/delivery and total with the customer. Fails with the same reason the Place order button shows if anything is still missing. Returns the order id on success.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }