MCP 服务器

valet-parking-directory

com.getvaletparking/valet-parking-directory
地图与位置 旅行与酒店 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Searches a US directory of valet parking operators by city, service, proximity, and location, and can submit confirmed quote requests.

valet_find_nearest_operators
Find Nearest Operators
List nearest valet operators within a 100-mile cap of a coordinate, optionally narrowed by service. Use this when a user is in a city with no listed operators and you need the closest available fallback ranked nearest-first. Empty array if nothing within 100 miles.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees (WGS84). Range: -90 to 90.'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees (WGS84). Range: -180 to 180.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Max results to return; default 10, capped at 50'}, 'service': {'enum': ['wedding-valet', 'corporate-event-valet', 'private-event-valet', 'funeral-valet', 'hotel-resort-valet', 'restaurant-valet', 'hospital-medical-valet', 'major-venue-valet', 'general-valet'], 'type': 'string', 'description': 'Optional service narrowing. One of the 9 canonical valet service slugs. Omit to list every nearby operator regardless of services offered.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operators', 'data_freshness', '_meta'], 'properties': {'_meta': {'type': 'object', 'required': ['terms', 'attribution'], 'properties': {'terms': {'type': 'string', 'format': 'uri'}, 'attribution': {'type': 'string'}}, 'description': 'TOOL-11 ToS and attribution block', 'additionalProperties': False}, 'operators': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'primary_city_name', 'primary_state_name', 'primary_city_slug', 'primary_state_slug', 'services', 'phone', 'tier', 'description_text', 'distance_miles'], 'properties': {'name': {'type': 'string', 'description': 'Operator business name'}, 'slug': {'type': 'string', 'description': 'Canonical kebab-case operator slug; pass to valet_get_operator for details'}, 'tier': {'type': 'string', 'description': "Operator tier: 'free', 'paid', or 'custom'"}, 'phone': {'type': ['string', 'null'], 'description': 'Operator phone number, null if not on file'}, 'services': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical service slugs this operator offers'}, 'distance_miles': {'type': 'number', 'description': 'Distance from the input coordinate to operator HQ, rounded to 1 decimal'}, 'description_text': {'type': ['string', 'null'], 'description': 'Plain-text summary; null if not on file'}, 'primary_city_name': {'type': 'string', 'description': 'Display name of operator HQ city'}, 'primary_city_slug': {'type': 'string', 'description': 'Canonical kebab-case HQ city slug'}, 'primary_state_name': {'type': 'string', 'description': 'Display name of operator HQ state'}, 'primary_state_slug': {'type': 'string', 'description': 'Canonical kebab-case HQ state slug'}}, 'additionalProperties': False}, 'description': 'Operators within 100 miles of the input coordinate, sorted nearest-first. Empty array means nothing within 100 miles.'}, 'data_freshness': {'type': 'object', 'required': ['indexed_at', 'source'], 'properties': {'source': {'type': 'string', 'description': 'Origin tag: typesense:operators or typesense:operators:empty'}, 'indexed_at': {'type': 'string', 'description': 'ISO timestamp of the freshest row in the batch'}}, 'description': 'TOOL-10 freshness stamp', 'additionalProperties': False}}, 'additionalProperties': False}
valet_find_operators_in_city
Find Operators In City
List valet operators serving a city slug plus state slug, optionally narrowed by service. Use this when an agent has a city already disambiguated and wants its operator roster ranked by listing tier then name. Empty array if no listed operators.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['state_slug', 'city_slug'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Max results to return; default 10, capped at 50'}, 'service': {'enum': ['wedding-valet', 'corporate-event-valet', 'private-event-valet', 'funeral-valet', 'hotel-resort-valet', 'restaurant-valet', 'hospital-medical-valet', 'major-venue-valet', 'general-valet'], 'type': 'string', 'description': 'Optional service narrowing. One of the 9 canonical valet service slugs. Omit to list every operator serving the city.'}, 'city_slug': {'type': 'string', 'minLength': 1, 'description': "Lowercase kebab-case city slug (e.g. 'houston', 'san-francisco')"}, 'state_slug': {'type': 'string', 'minLength': 1, 'description': "Lowercase kebab-case US state slug (e.g. 'tx', 'new-york')"}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operators', 'data_freshness', '_meta'], 'properties': {'_meta': {'type': 'object', 'required': ['terms', 'attribution'], 'properties': {'terms': {'type': 'string', 'format': 'uri'}, 'attribution': {'type': 'string'}}, 'description': 'TOOL-11 ToS and attribution block', 'additionalProperties': False}, 'operators': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'primary_city_name', 'primary_state_name', 'primary_city_slug', 'primary_state_slug', 'services', 'phone', 'tier', 'description_text'], 'properties': {'name': {'type': 'string', 'description': 'Operator business name'}, 'slug': {'type': 'string', 'description': 'Canonical kebab-case operator slug; pass to valet_get_operator for details'}, 'tier': {'type': 'string', 'description': "Operator tier: 'free', 'paid', or 'custom'"}, 'phone': {'type': ['string', 'null'], 'description': 'Operator phone number, null if not on file'}, 'services': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical service slugs this operator offers'}, 'description_text': {'type': ['string', 'null'], 'description': 'Plain-text summary; null if not on file'}, 'primary_city_name': {'type': 'string', 'description': 'Display name of operator HQ city'}, 'primary_city_slug': {'type': 'string', 'description': 'Canonical kebab-case HQ city slug'}, 'primary_state_name': {'type': 'string', 'description': 'Display name of operator HQ state'}, 'primary_state_slug': {'type': 'string', 'description': 'Canonical kebab-case HQ state slug'}}, 'additionalProperties': False}, 'description': 'Operators serving the city, ranked tier:desc then name:asc. Empty array means no matches.'}, 'data_freshness': {'type': 'object', 'required': ['indexed_at', 'source'], 'properties': {'source': {'type': 'string', 'description': 'Origin tag: typesense:operators or typesense:operators:empty'}, 'indexed_at': {'type': 'string', 'description': 'ISO timestamp of the freshest row in the batch'}}, 'description': 'TOOL-10 freshness stamp', 'additionalProperties': False}}, 'additionalProperties': False}
valet_find_operators_near
Find Operators Near
Find valet operators within a given radius of a coordinate, ranked by listing tier then distance. Use this when you have a coordinate and an event-context radius (5mi single venue, 25mi metro, 50mi regional). radius_miles is required; empty array if no matches.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['lat', 'lng', 'radius_miles'], 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees (WGS84). Range: -90 to 90.'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees (WGS84). Range: -180 to 180.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Max results to return; default 10, capped at 50'}, 'service': {'enum': ['wedding-valet', 'corporate-event-valet', 'private-event-valet', 'funeral-valet', 'hotel-resort-valet', 'restaurant-valet', 'hospital-medical-valet', 'major-venue-valet', 'general-valet'], 'type': 'string', 'description': 'Optional service narrowing. One of the 9 canonical valet service slugs. Omit to list every operator within radius regardless of services offered.'}, 'radius_miles': {'type': 'number', 'maximum': 500, 'minimum': 0.1, 'description': 'Search radius in miles. REQUIRED, no default. Pick based on context: 5 mi for a single venue, 25 mi for a metro, 50 mi for a regional sweep.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operators', 'data_freshness', '_meta'], 'properties': {'_meta': {'type': 'object', 'required': ['terms', 'attribution'], 'properties': {'terms': {'type': 'string', 'format': 'uri'}, 'attribution': {'type': 'string'}}, 'description': 'TOOL-11 ToS and attribution block', 'additionalProperties': False}, 'operators': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'primary_city_name', 'primary_state_name', 'primary_city_slug', 'primary_state_slug', 'services', 'phone', 'tier', 'description_text', 'distance_miles'], 'properties': {'name': {'type': 'string', 'description': 'Operator business name'}, 'slug': {'type': 'string', 'description': 'Canonical kebab-case operator slug; pass to valet_get_operator for details'}, 'tier': {'type': 'string', 'description': "Operator tier: 'free', 'paid', or 'custom'"}, 'phone': {'type': ['string', 'null'], 'description': 'Operator phone number, null if not on file'}, 'services': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical service slugs this operator offers'}, 'distance_miles': {'type': 'number', 'description': 'Distance from the input coordinate to operator HQ, rounded to 1 decimal'}, 'description_text': {'type': ['string', 'null'], 'description': 'Plain-text summary; null if not on file'}, 'primary_city_name': {'type': 'string', 'description': 'Display name of operator HQ city'}, 'primary_city_slug': {'type': 'string', 'description': 'Canonical kebab-case HQ city slug'}, 'primary_state_name': {'type': 'string', 'description': 'Display name of operator HQ state'}, 'primary_state_slug': {'type': 'string', 'description': 'Canonical kebab-case HQ state slug'}}, 'additionalProperties': False}, 'description': 'Operators within radius_miles of the input coordinate, ranked tier:desc then distance:asc. Empty array means no matches within radius.'}, 'data_freshness': {'type': 'object', 'required': ['indexed_at', 'source'], 'properties': {'source': {'type': 'string', 'description': 'Origin tag: typesense:operators or typesense:operators:empty'}, 'indexed_at': {'type': 'string', 'description': 'ISO timestamp of the freshest row in the batch'}}, 'description': 'TOOL-10 freshness stamp', 'additionalProperties': False}}, 'additionalProperties': False}
valet_get_operator
Get Operator Profile
Get the full operator profile by slug including address, phone, listing URL, website (paid listings only), services, venues_served, FAQs, and tipping note. Use this when an agent has a slug from a search tool or directory URL and needs the profile. Returns isError on slug 404 or upstream outage.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': "Canonical kebab-case operator slug (e.g. '12-oaks-parking-llc'). Lowercase letters, digits, hyphens only."}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operator', 'data_freshness', '_meta'], 'properties': {'_meta': {'type': 'object', 'required': ['terms', 'attribution'], 'properties': {'terms': {'type': 'string', 'format': 'uri'}, 'attribution': {'type': 'string'}}, 'description': 'TOOL-11 ToS and attribution block', 'additionalProperties': False}, 'operator': {'type': 'object', 'required': ['id', 'name', 'slug', 'primary_city_name', 'primary_state_name', 'primary_city_slug', 'primary_state_slug', 'service_area_city_slugs', 'service_area_count', 'services', 'tier', 'verified', 'claimed', 'phone', 'description_text', 'photo_url', 'address', 'website', 'listing_url', 'venues_served', 'faqs', 'buyer_question_phrasings'], 'properties': {'id': {'type': 'string', 'description': 'Payload UUID; matches Typesense document id'}, 'faqs': {'type': 'array', 'items': {'type': 'object', 'required': ['question', 'answer'], 'properties': {'answer': {'type': 'string'}, 'source': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Structured FAQs; tipping guidance lives here as one entry'}, 'name': {'type': 'string', 'description': 'Operator business name'}, 'slug': {'type': 'string', 'description': 'Canonical kebab-case slug; matches the input'}, 'tier': {'type': 'string', 'description': 'Subscription tier: free | paid | custom'}, 'phone': {'type': ['string', 'null'], 'description': 'E.164 phone number; null if none'}, 'address': {'type': ['string', 'null'], 'description': 'Full street address; null if none'}, 'claimed': {'type': 'boolean', 'description': 'Operator-claim status'}, 'website': {'type': ['string', 'null'], 'description': "Operator's own website with ?ref=mcp UTM stamp (TOOL-12). Paid and custom listings only; null on free listings and when none is set"}, 'services': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical service slugs from valet_list_services taxonomy'}, 'verified': {'type': 'boolean', 'description': 'Manual verification status'}, 'photo_url': {'type': ['string', 'null'], 'description': 'Profile photo URL; null if none'}, 'listing_url': {'type': 'string', 'description': 'Get Valet Parking profile URL for this operator with ?ref=mcp UTM stamp (TOOL-12); present on every tier'}, 'venues_served': {'type': 'array', 'items': {'type': 'object', 'required': ['venue'], 'properties': {'venue': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Venues this operator regularly serves'}, 'description_text': {'type': ['string', 'null'], 'description': 'Plaintext description; null if none. Lexical AST not exposed.'}, 'primary_city_name': {'type': 'string', 'description': 'HQ proxy city display name'}, 'primary_city_slug': {'type': 'string', 'description': 'HQ proxy city slug (URL-safe)'}, 'primary_state_name': {'type': 'string', 'description': 'HQ proxy state display name'}, 'primary_state_slug': {'type': 'string', 'description': 'HQ proxy state slug (URL-safe)'}, 'service_area_count': {'type': 'number', 'description': 'Count of service-area cities'}, 'service_area_city_slugs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'All city slugs this operator serves'}, 'buyer_question_phrasings': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'description': 'LLM-seeded phrasings of buyer-checklist questions'}}, 'description': 'The full merged operator profile (Typesense + Payload long-tail fields)', 'additionalProperties': False}, 'data_freshness': {'type': 'object', 'required': ['indexed_at', 'source'], 'properties': {'source': {'type': 'string', 'description': 'Origin of the data; for this tool: typesense:operators'}, 'indexed_at': {'type': 'string', 'description': 'ISO datetime of the Typesense indexed_at stamp'}}, 'description': 'TOOL-10 freshness stamp', 'additionalProperties': False}}, 'additionalProperties': False}
valet_list_services
List Valet Services
List the 9 canonical valet service slugs with display name and category. Use this when an agent needs to validate or discover the supported service taxonomy before composing a follow-up search (e.g. valet_search_by_service_and_city). Returns the in-bundle catalog; no upstream call; no isError path.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['services', 'data_freshness', '_meta'], 'properties': {'_meta': {'type': 'object', 'required': ['terms', 'attribution'], 'properties': {'terms': {'type': 'string', 'format': 'uri'}, 'attribution': {'type': 'string'}}, 'description': 'TOOL-11 ToS and attribution block', 'additionalProperties': False}, 'services': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'displayName', 'category'], 'properties': {'slug': {'type': 'string', 'description': 'Canonical kebab-case service slug (e.g. wedding-valet)'}, 'category': {'type': 'string', 'description': 'Broad grouping: event, corporate, hospitality, medical, venue, or general'}, 'displayName': {'type': 'string', 'description': 'Human-readable service name'}}, 'additionalProperties': False}, 'description': 'The 9 canonical valet service types, in catalog order'}, 'data_freshness': {'type': 'object', 'required': ['indexed_at', 'source'], 'properties': {'source': {'type': 'string', 'description': 'Origin of the data, sourced from the in-bundle catalog'}, 'indexed_at': {'type': 'string', 'description': 'YYYY-MM-DD when this catalog was last updated'}}, 'description': 'TOOL-10 freshness stamp', 'additionalProperties': False}}, 'additionalProperties': False}
valet_request_quote
Request Valet Quote
Submit a valet parking quote request to the operators serving a US city. Use this when a person has asked you to arrange valet and has given their name, email, phone, city, service type and event date. The request is only sent after they confirm by email.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contact_name', 'contact_email', 'contact_phone', 'service', 'event_date'], 'properties': {'notes': {'type': 'string', 'maxLength': 2000, 'description': 'Free-text notes for the operator, e.g. venue name or timing details'}, 'service': {'enum': ['wedding-valet', 'corporate-event-valet', 'private-event-valet', 'funeral-valet', 'hotel-resort-valet', 'restaurant-valet', 'hospital-medical-valet', 'major-venue-valet', 'general-valet'], 'type': 'string', 'description': 'One of the 9 canonical valet service slugs'}, 'city_slug': {'type': 'string', 'pattern': '^[a-z0-9-]+$', 'description': "Canonical kebab-case city slug from valet_search_cities, e.g. 'austin'. Omit if using city_other."}, 'city_other': {'type': 'string', 'maxLength': 120, 'minLength': 2, 'description': 'Free-text city name when no directory slug is known. Omit if using city_slug.'}, 'event_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Event date in YYYY-MM-DD format'}, 'guest_count': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Approximate guest count, if known'}, 'contact_name': {'type': 'string', 'maxLength': 120, 'minLength': 2, 'description': "The requester's full name"}, 'contact_email': {'type': 'string', 'format': 'email', 'maxLength': 254, 'description': 'Email address to send the one-tap confirmation link to'}, 'contact_phone': {'type': 'string', 'maxLength': 40, 'minLength': 7, 'description': 'Phone number the operator can call'}, 'operator_slug': {'type': 'string', 'pattern': '^[a-z0-9-]+$', 'description': 'Send to this one operator only instead of the full fan-out for the city. Omit to notify every matched operator in the city.'}, 'vehicle_count': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Approximate vehicle count, if known'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['reference', 'status', 'next', '_meta'], 'properties': {'next': {'type': 'string', 'description': 'What the agent should tell the person to do next'}, '_meta': {'type': 'object', 'required': ['terms', 'attribution'], 'properties': {'terms': {'type': 'string', 'format': 'uri'}, 'attribution': {'type': 'string'}}, 'description': 'TOOL-11 ToS and attribution block', 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'pending-confirmation', 'description': 'Always pending-confirmation on success'}, 'reference': {'type': 'string', 'description': 'Short human-readable reference for this quote request'}}, 'additionalProperties': False}
valet_search_by_service_and_city
Search By Service And City
Search valet operators by service slug plus city slug across all matching states. Use this when an agent has both a service slug and a city slug and wants a cross-state tier-then-name ranked list. Invalid service slugs surface the 9 canonical alternatives.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['service_slug', 'city_slug'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Max results to return; default 10, capped at 50'}, 'city_slug': {'type': 'string', 'minLength': 1, 'description': "Lowercase kebab-case city slug (e.g. 'austin', 'springfield'). May match multiple cities across states."}, 'service_slug': {'enum': ['wedding-valet', 'corporate-event-valet', 'private-event-valet', 'funeral-valet', 'hotel-resort-valet', 'restaurant-valet', 'hospital-medical-valet', 'major-venue-valet', 'general-valet'], 'type': 'string', 'description': 'Required canonical valet service slug. One of 9 values; call valet_list_services for the full set.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operators', 'data_freshness', '_meta'], 'properties': {'_meta': {'type': 'object', 'required': ['terms', 'attribution'], 'properties': {'terms': {'type': 'string', 'format': 'uri'}, 'attribution': {'type': 'string'}}, 'description': 'TOOL-11 ToS and attribution block', 'additionalProperties': False}, 'operators': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'primary_city_name', 'primary_state_name', 'primary_city_slug', 'primary_state_slug', 'services', 'phone', 'tier', 'description_text'], 'properties': {'name': {'type': 'string', 'description': 'Operator business name'}, 'slug': {'type': 'string', 'description': 'Canonical kebab-case operator slug'}, 'tier': {'type': 'string', 'description': "Operator tier: 'free', 'paid', or 'custom'"}, 'phone': {'type': ['string', 'null'], 'description': 'Operator phone number, null if not on file'}, 'services': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Canonical service slugs this operator offers'}, 'description_text': {'type': ['string', 'null'], 'description': 'Plain-text summary; null if not on file'}, 'primary_city_name': {'type': 'string', 'description': 'Display name of operator HQ city'}, 'primary_city_slug': {'type': 'string', 'description': 'Canonical kebab-case HQ city slug'}, 'primary_state_name': {'type': 'string', 'description': 'Display name of operator HQ state'}, 'primary_state_slug': {'type': 'string', 'description': 'Canonical kebab-case HQ state slug; key disambiguation field'}}, 'additionalProperties': False}, 'description': 'Operators offering service_slug in any city matching city_slug across all states. Empty array means no matches.'}, 'data_freshness': {'type': 'object', 'required': ['indexed_at', 'source'], 'properties': {'source': {'type': 'string', 'description': 'Origin tag: typesense:operators or typesense:operators:empty'}, 'indexed_at': {'type': 'string', 'description': 'ISO timestamp of the freshest row in the batch'}}, 'description': 'TOOL-10 freshness stamp', 'additionalProperties': False}}, 'additionalProperties': False}
valet_search_cities
Search Cities
Search the cities directory by name prefix with population-ranked results. Use this when an agent needs to resolve a partial city name into a canonical city slug plus state slug plus lat/lng before composing valet_find_operators_in_city or valet_find_operators_near. Empty array if no matches.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 8, 'maximum': 25, 'minimum': 1, 'description': 'Max results to return; default 8, capped at 25'}, 'query': {'type': 'string', 'minLength': 2, 'description': 'Partial or full city name (>=2 chars). Matched against name and lowercase name fields with prefix semantics.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cities', 'data_freshness', '_meta'], 'properties': {'_meta': {'type': 'object', 'required': ['terms', 'attribution'], 'properties': {'terms': {'type': 'string', 'format': 'uri'}, 'attribution': {'type': 'string'}}, 'description': 'TOOL-11 ToS and attribution block', 'additionalProperties': False}, 'cities': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'state_slug', 'lat', 'lng', 'population'], 'properties': {'lat': {'type': ['number', 'null'], 'description': 'City centroid latitude; null if unset in the index'}, 'lng': {'type': ['number', 'null'], 'description': 'City centroid longitude; null if unset in the index'}, 'slug': {'type': 'string', 'description': 'Canonical kebab-case city slug (URL-safe)'}, 'population': {'type': 'number', 'description': 'Census population estimate; used as the sort tiebreaker'}, 'state_slug': {'type': 'string', 'description': 'Canonical kebab-case state slug (e.g. texas, new-york)'}}, 'additionalProperties': False}, 'description': 'Cities matching the query, ranked by text match then population desc'}, 'data_freshness': {'type': 'object', 'required': ['indexed_at', 'source'], 'properties': {'source': {'type': 'string', 'description': 'Origin of the data; for this tool: typesense:cities'}, 'indexed_at': {'type': 'string', 'description': 'Date the cities collection was last fully reindexed'}}, 'description': 'TOOL-10 freshness stamp', 'additionalProperties': False}}, 'additionalProperties': False}
已更改
valet_get_operator
2026年10月1日 02:53
已添加
valet_request_quote
2026年9月17日 12:35
已添加
valet_find_operators_near
2026年9月17日 12:35
已添加
valet_find_nearest_operators
2026年9月17日 12:35
已添加
valet_search_by_service_and_city
2026年9月17日 12:35
已添加
valet_find_operators_in_city
2026年9月17日 12:35
已添加
valet_search_cities
2026年9月17日 12:35
已添加
valet_get_operator
2026年9月17日 12:35
已添加
valet_list_services
2026年9月17日 12:35