Shortlist Pass Local Businesses
Myrtle Beach food trucks, restaurants, shops and HOAs: live menus, stops, pickup times, order links.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"local-businesses": {
"url": "https://app.shortlistpass.com/mcp"
}
}
}リモートエンドポイント
https://app.shortlistpass.com/mcpstreamable-httpできること
ツール一覧
ツール(5)
🟢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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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#"
}コミュニティ
エビデンス