Shortlist Pass Local Businesses

Myrtle Beach food trucks, restaurants, shops and HOAs: live menus, stops, pickup times, order links.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
97%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,879Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (1.47% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "local-businesses": {
      "url": "https://app.shortlistpass.com/mcp"
    }
  }
}

Remote endpoints

https://app.shortlistpass.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_businesses(town, category, query)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "town": {
      "description": "Town slug, e.g. \"myrtle-beach\"",
      "type": "string",
      "maxLength": 80
    },
    "category": {
      "description": "Business category key, e.g. \"food_truck\"",
      "type": "string",
      "maxLength": 80
    },
    "query": {
      "description": "Free-text query, e.g. \"empanadas\" or \"buffalo chicken fries\"; matched word-by-word against the business and its menu items",
      "type": "string",
      "maxLength": 80
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_business(subdomain)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "subdomain": {
      "description": "The business subdomain, e.g. \"nitos\" for nitos.shortlistpass.com",
      "type": "string",
      "minLength": 1,
      "maxLength": 63
    }
  },
  "required": [
    "subdomain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_menu(subdomain)

Returns the current public menu of one business: every active item with name, description, price, category, tags, a sold-out flag and an image URL. 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.

Input Schema

{
  "type": "object",
  "properties": {
    "subdomain": {
      "description": "The business subdomain, e.g. \"nitos\"",
      "type": "string",
      "minLength": 1,
      "maxLength": 63
    }
  },
  "required": [
    "subdomain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_upcoming_events(subdomain)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "subdomain": {
      "description": "The business subdomain, e.g. \"nitos\"",
      "type": "string",
      "minLength": 1,
      "maxLength": 63
    }
  },
  "required": [
    "subdomain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪start_order(subdomain, event_id, pickup_time, items, customer, ...)

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 and quantities; prices are not accepted. 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.

Input Schema

{
  "type": "object",
  "properties": {
    "subdomain": {
      "description": "The business subdomain, e.g. \"nitos\"",
      "type": "string",
      "minLength": 1,
      "maxLength": 63
    },
    "event_id": {
      "description": "A stop id from the upcoming-events results. Required for businesses with menu_source \"event\".",
      "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)$"
    },
    "pickup_time": {
      "description": "One of the stop's open pickup_slots, \"HH:MM\" 24-hour",
      "type": "string",
      "pattern": "^\\d{2}:\\d{2}$"
    },
    "items": {
      "minItems": 1,
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "offering_id": {
            "description": "An offering id from the stop's menu (or from the menu results for a fixed business)",
            "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)$"
          },
          "quantity": {
            "description": "Whole number, 1 to 100",
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "options": {
            "description": "The offering's own variant or modifier choices, by option value or label",
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          }
        },
        "required": [
          "offering_id",
          "quantity"
        ]
      }
    },
    "customer": {
      "description": "Customer details, if provided; pre-filled on the order sheet",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 80
        },
        "phone": {
          "type": "string",
          "maxLength": 30
        },
        "email": {
          "type": "string",
          "maxLength": 120
        }
      }
    },
    "agent": {
      "description": "The name of the assistant placing the order, e.g. { \"name\": \"Claude\" }. Optional; defaults to \"AI assistant\".",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 60
        }
      },
      "required": [
        "name"
      ]
    }
  },
  "required": [
    "subdomain",
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools