Myrtle Beach food trucks, restaurants, shops and HOAs: live menus, stops, pickup times, order links.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Returns the public profile of one Shortlist business: name, type, description, town, phone, website, page URL, hours (fixed locations only), whether online ordering is open, and the order page URL when it is. Mobile businesses (food trucks) have no fixed address; their locations are the upcoming stops in the upcoming-events data.
The business subdomain, e.g. "nitos" for nitos.shortlistpass.com
Returns the public profile of one Shortlist business: name, type, description, town, phone, website, page URL, hours (fixed locations only), whether online ordering is open, and the order page URL when it is. Mobile businesses (food trucks) have no fixed address; their locations are the upcoming stops in the upcoming-events data.
| Argument | Type | Description |
|---|---|---|
| subdomain* | string | The business subdomain, e.g. "nitos" for nitos.shortlistpass.com |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subdomain"
],
"properties": {
"subdomain": {
"type": "string",
"maxLength": 63,
"minLength": 1,
"description": "The business subdomain, e.g. \"nitos\" for nitos.shortlistpass.com"
}
}
}Returns the current public menu of one business: every active item with its id (use it in start_order), name, description, price, category, tags, available and sold_out flags, an image URL, and options: its sizes and add-ons (group key, label, and each choice's value, label and price). Prices are in US dollars. For a business with menu_source "event" (food trucks), this is the full catalog of everything it sells; what is sold on a given day is listed per stop in the upcoming-events data, and the note field states this. The response includes the business summary with the order page URL when ordering is open.
| Argument | Type | Description |
|---|---|---|
| subdomain* | string | The business subdomain, e.g. "nitos" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subdomain"
],
"properties": {
"subdomain": {
"type": "string",
"maxLength": 63,
"minLength": 1,
"description": "The business subdomain, e.g. \"nitos\""
}
}
}Food trucks in one city today (local time), in two lists. "tonight" (status "out_tonight"): trucks with a stop confirmed for today — truck name, park if it is at one, address, start and end time, open_now, the truck page link, and order_url only when that truck is taking preorders for that stop. "usually_here" (status "usually_here"): trucks that regularly park at a listed park but have NO stop confirmed for today — say "usually here", never "out tonight". Also lists the parks with today's and usual truck counts. Optional "days" (1-7, default 1): also returns "days", the posted stops for today and the next days grouped by date (truck, where, start, end, open_now, page link); a day with no posted stop is left out. Test pages, private events and cancelled or hidden stops are never included. Cities: Myrtle Beach, Austin.
| Argument | Type | Description |
|---|---|---|
| city* | string | City name or slug, e.g. "Austin" or "myrtle-beach" |
| days | integer | How many days from today, 1-7 (default 1) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "City name or slug, e.g. \"Austin\" or \"myrtle-beach\""
},
"days": {
"type": "integer",
"maximum": 7,
"minimum": 1,
"description": "How many days from today, 1-7 (default 1)"
}
}
}Returns the upcoming published events and stops for one business; for a food truck these are its locations. Each has a name, ISO start and end with the local offset, location name and address, whether pre-orders are open for that stop, the pickup time slots still available with remaining capacity (null means no cap), and a menu with menu_status: "set" means the items listed are what is sold at that stop and their offering ids are accepted by start_order for that stop; "not_live" means the business has not put a menu on that stop yet, the menu is empty, menu_note carries the explanation, and start_order does not accept the stop; "catalog" means a fixed business whose standing menu applies. Recurring events carry a recurrence description and the next date. Cancelled and test events are not included.
| Argument | Type | Description |
|---|---|---|
| subdomain* | string | The business subdomain, e.g. "nitos" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subdomain"
],
"properties": {
"subdomain": {
"type": "string",
"maxLength": 63,
"minLength": 1,
"description": "The business subdomain, e.g. \"nitos\""
}
}
}Searches real local businesses on Shortlist Pass (food trucks, restaurants, shops, HOAs and more). Optional filters: a town slug (e.g. "myrtle-beach"), a business category key (e.g. "food_truck", "restaurant", "bakery"), and a free-text query. The query matches every word, in any order, against the business name, headline and type, and also against its active menu items (name, description, tags, category); a business found through its menu carries matched_items (id, name, price, up to 5). For food trucks, matched items come from the full catalog and menu_note says so; what is sold on a given day is per stop. Businesses with a menu match rank first. Returns up to 25 matches, each with its subdomain, which is the identifier the other tools take. Demo and test pages are not included.
| Argument | Type | Description |
|---|---|---|
| town | string | Town slug, e.g. "myrtle-beach" |
| query | string | Free-text query, e.g. "empanadas" or "buffalo chicken fries"; matched word-by-word against the business and its menu items |
| category | string | Business category key, e.g. "food_truck" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"town": {
"type": "string",
"maxLength": 80,
"description": "Town slug, e.g. \"myrtle-beach\""
},
"query": {
"type": "string",
"maxLength": 80,
"description": "Free-text query, e.g. \"empanadas\" or \"buffalo chicken fries\"; matched word-by-word against the business and its menu items"
},
"category": {
"type": "string",
"maxLength": 80,
"description": "Business category key, e.g. \"food_truck\""
}
}
}Creates a short-lived cart for a customer at one Shortlist business and returns a cart_url on the business's own page, where the customer reviews the order and pays through the business's checkout. Input is offering ids (preferred) or item names, and quantities; prices are not accepted. Order by id from get_menu or the stop's menu. If you only have a name, send it as name: when it is unclear or not on the menu, no cart is made and the reply (error "needs_choice") lists each line as matched, choose (options with ids) or not_found (genuinely close items with ids, or none) with a message to read to your user; ask them and resend with the offering_id. The server prices every line from the menu, applies the business's deals and tax, and returns the resulting quote. For businesses with menu_source "event" (food trucks), event_id is required and identifies one upcoming stop; the offering ids accepted are those listed in that stop's menu in the upcoming-events data, and pickup_time is one of that stop's open pickup_slots. A stop whose menu_status is "not_live" is refused. The cart expires in 30 minutes. This tool does not accept payment details or addresses; payment happens on the business's page at the returned cart_url. In the quote, total_before_tip excludes the optional tip, which the customer chooses on the checkout page; quote.tip.note states the business's suggested percentage. agent.name is recorded on the cart and the order so the business can see which assistant helped.
| Argument | Type | Description |
|---|---|---|
| agent | object | The name of the assistant placing the order, e.g. { "name": "Claude" }. Optional; defaults to "AI assistant". |
| items* | array | |
| customer | object | Customer details, if provided; pre-filled on the order sheet |
| event_id | string |
| A stop id from the upcoming-events results. Required for businesses with menu_source "event". |
| subdomain* | string | The business subdomain, e.g. "nitos" |
| pickup_time | string | One of the stop's open pickup_slots, "HH:MM" 24-hour |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subdomain",
"items"
],
"properties": {
"agent": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 60,
"minLength": 1
}
},
"description": "The name of the assistant placing the order, e.g. { \"name\": \"Claude\" }. Optional; defaults to \"AI assistant\"."
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"quantity"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Only when you have no id: the item's name as your user said it. If it is unclear the reply is error \"needs_choice\" with options (ids) per line; ask your user and resend with the offering_id."
},
"options": {
"type": "object",
"description": "The offering's own variant or modifier choices, by option value or label",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"quantity": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Whole number, 1 to 100"
},
"offering_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "An offering id from the stop's menu (or from get_menu for a fixed business). Preferred."
}
}
},
"maxItems": 12,
"minItems": 1
},
"customer": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 80
},
"email": {
"type": "string",
"maxLength": 120
},
"phone": {
"type": "string",
"maxLength": 30
}
},
"description": "Customer details, if provided; pre-filled on the order sheet"
},
"event_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "A stop id from the upcoming-events results. Required for businesses with menu_source \"event\"."
},
"subdomain": {
"type": "string",
"maxLength": 63,
"minLength": 1,
"description": "The business subdomain, e.g. \"nitos\""
},
"pickup_time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "One of the stop's open pickup_slots, \"HH:MM\" 24-hour"
}
}
}