Awning
What this MCP does
Finds local businesses and offerings, checks availability, creates or cancels bookings, and supports business listing and schedule management.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_id'], 'properties': {'reason': {'type': 'string', 'maxLength': 500}, 'booking_id': {'type': 'string'}, 'manage_token': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['hold_id'], 'properties': {'note': {'type': 'string', 'maxLength': 2000}, 'address': {'type': 'object', 'description': 'Where to come or deliver, e.g. {"line1":"Rawai Beach Resort"}', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'hold_id': {'type': 'string'}, 'customer': {'type': 'object', 'properties': {'name': {'type': 'string', 'maxLength': 120}, 'email': {'type': 'string', 'maxLength': 200}, 'phone': {'type': 'string', 'maxLength': 40}, 'language': {'type': 'string', 'maxLength': 10}, 'telegram': {'type': 'string', 'maxLength': 64}, 'timezone': {'type': 'string', 'maxLength': 64}}}, 'intake_answers': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'idempotency_key': {'type': 'string', 'maxLength': 100, 'minLength': 8, 'description': 'Random string; reuse it on retries'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['offering_id'], 'properties': {'to': {'type': 'string', 'description': 'Rental return. ISO 8601. With an offset it is absolute; without an offset it is local time of the business (e.g. 2026-09-18T15:00).'}, 'qty': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'from': {'type': 'string', 'description': 'Rental pickup. ISO 8601. With an offset it is absolute; without an offset it is local time of the business (e.g. 2026-09-18T15:00).'}, 'start': {'type': 'string', 'description': 'Slot start. ISO 8601. With an offset it is absolute; without an offset it is local time of the business (e.g. 2026-09-18T15:00).'}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}, 'value': {'type': ['boolean', 'number', 'string']}}}, 'description': 'Selected extras from get_business, e.g. [{"id":"deep_conditioning","value":true}]'}, 'tickets': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'count'], 'properties': {'type': {'type': 'string'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}}}, 'party_size': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'session_id': {'type': 'string'}, 'offering_id': {'type': 'string'}, 'resource_id': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['offering_id', 'from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'Window end (slots, sessions) or return time (period). ISO 8601. With an offset it is absolute; without an offset it is local time of the business (e.g. 2026-09-18T15:00).'}, 'qty': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Units to rent (period mode)'}, 'from': {'type': 'string', 'description': 'Window start (slots, sessions) or pickup time (period). ISO 8601. With an offset it is absolute; without an offset it is local time of the business (e.g. 2026-09-18T15:00).'}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}, 'value': {'type': ['boolean', 'number', 'string']}}}, 'description': 'Selected extras from get_business, e.g. [{"id":"deep_conditioning","value":true}]'}, 'party_size': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'offering_id': {'type': 'string'}, 'resource_id': {'type': 'string', 'description': 'Only this staff member or place'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_id'], 'properties': {'booking_id': {'type': 'string'}, 'manage_token': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['business'], 'properties': {'business': {'type': 'string', 'maxLength': 120, 'description': 'business_id or slug'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'everywhere': {'type': 'boolean'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'period': {'enum': ['upcoming', 'past', 'all'], 'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'maxLength': 120}, 'phone': {'type': 'string', 'maxLength': 40}, 'language': {'type': 'string', 'maxLength': 10}, 'contact_channel': {'enum': ['email', 'telegram'], 'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'status': {'enum': ['submitted', 'approved', 'rejected'], 'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'query': {'type': 'string', 'maxLength': 120}, 'status': {'enum': ['draft', 'review', 'published', 'suspended'], 'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['application_id', 'decision'], 'properties': {'note': {'type': 'string', 'maxLength': 1000}, 'decision': {'enum': ['approve', 'reject', 'recall'], 'type': 'string'}, 'expected_name': {'type': 'string', 'maxLength': 200, 'description': 'To approve: the business name you were shown in op_applications. Required unless the route is rename.'}, 'application_id': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['lead_id', 'decision'], 'properties': {'note': {'type': 'string', 'maxLength': 1000}, 'lead_id': {'type': 'string'}, 'decision': {'enum': ['invite', 'close'], 'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'status': {'enum': ['new', 'contacted', 'converted', 'closed'], 'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['business_id', 'reason'], 'properties': {'reason': {'type': 'string', 'maxLength': 500, 'minLength': 3}, 'business_id': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['business_id', 'offering'], 'properties': {'offering': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 120}, 'price': {'type': 'number', 'description': 'In major units of the business currency, e.g. 2500'}, 'units': {'type': 'number', 'description': 'Rentals: how many identical items'}, 'deposit': {'type': 'number'}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'price': {'type': 'number'}, 'per_day': {'type': 'boolean'}, 'extra_min': {'type': 'number'}}}, 'maxItems': 50}, 'capacity': {'type': 'number', 'description': 'Classes: people per class'}, 'schedule': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'time'], 'properties': {'days': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 20}, 'maxItems': 14}], 'description': 'e.g. "mon-sat", "daily", ["tue","thu"]'}, 'time': {'type': 'string', 'maxLength': 20}}}, 'maxItems': 50, 'description': 'Classes: when they run'}, 'price_from': {'type': 'boolean', 'description': "Price is 'from'"}, 'price_unit': {'enum': ['booking', 'person', 'hour', 'day', 'night', 'week', 'month'], 'type': 'string'}, 'quote_only': {'type': 'boolean'}, 'description': {'type': 'string', 'maxLength': 600}, 'duration_min': {'type': 'number'}}}, 'business_id': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'open': {'type': 'boolean'}, 'reason': {'type': 'string', 'maxLength': 200}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}, 'resource_id': {'type': 'string'}, 'remove_exception_id': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_id', 'reason'], 'properties': {'reason': {'type': 'string', 'maxLength': 500, 'minLength': 2}, 'booking_id': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_id', 'decision'], 'properties': {'price': {'type': 'number'}, 'reason': {'type': 'string', 'maxLength': 500}, 'decision': {'enum': ['confirm', 'decline', 'quote', 'complete', 'no_show'], 'type': 'string'}, 'booking_id': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD, default today'}, 'days': {'type': 'integer', 'maximum': 7, 'minimum': 1}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'status': {'enum': ['pending', 'quoted', 'confirmed', 'cancelled', 'declined', 'expired', 'completed', 'no_show'], 'type': 'string'}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['paused'], 'properties': {'paused': {'type': 'boolean'}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 10}, 'files': {'type': 'array', 'items': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string'}, 'file_name': {'type': 'string'}, 'mime_type': {'type': 'string'}, 'download_url': {'type': 'string'}}}}, 'draft_id': {'type': 'string', 'description': 'Which business being set up gets the photos, when there are several'}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}, 'ai_generated': {'type': 'boolean', 'description': 'True when the pictures were generated rather than photographed; they are then shown as illustrations'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['photo_ids'], 'properties': {'draft_id': {'type': 'string', 'description': 'The business being set up, when the photos are in a questionnaire'}, 'photo_ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50, 'minItems': 1}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['hours'], 'properties': {'hours': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'open', 'close'], 'properties': {'days': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 20}, 'maxItems': 14}], 'description': 'e.g. "mon-sat", "daily", ["tue","thu"]'}, 'open': {'type': 'string', 'maxLength': 20, 'description': 'HH:MM'}, 'close': {'type': 'string', 'maxLength': 20, 'description': 'HH:MM'}}}, 'maxItems': 100}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}, 'resource_id': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'answers': {'type': 'object', 'properties': {'city': {'type': 'string', 'maxLength': 80}, 'name': {'type': 'string', 'maxLength': 120}, 'skip': {'type': 'array', 'items': {'enum': ['staff', 'policies', 'photos'], 'type': 'string'}}, 'hours': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'open', 'close'], 'properties': {'days': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 20}, 'maxItems': 14}], 'description': 'e.g. "mon-sat", "daily", ["tue","thu"]'}, 'open': {'type': 'string', 'maxLength': 20, 'description': 'HH:MM'}, 'close': {'type': 'string', 'maxLength': 20, 'description': 'HH:MM'}}}, 'maxItems': 100}, 'staff': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'hours': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'open', 'close'], 'properties': {'days': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 20}, 'maxItems': 14}], 'description': 'e.g. "mon-sat", "daily", ["tue","thu"]'}, 'open': {'type': 'string', 'maxLength': 20, 'description': 'HH:MM'}, 'close': {'type': 'string', 'maxLength': 20, 'description': 'HH:MM'}}}, 'maxItems': 100}}}, 'maxItems': 100}, 'contact': {'type': 'object', 'properties': {'phone': {'type': 'string', 'maxLength': 200}, 'channel': {'enum': ['email', 'telegram'], 'type': 'string'}, 'website': {'type': 'string', 'maxLength': 200}, 'whatsapp': {'type': 'string', 'maxLength': 200}, 'instagram': {'type': 'string', 'maxLength': 200}, 'public_email': {'type': 'string', 'maxLength': 200}}}, 'country': {'type': 'string', 'maxLength': 60, 'description': 'ISO 3166-1 alpha-2'}, 'category': {'type': 'string', 'maxLength': 120, 'description': "Category code from needs_confirmation options, or a few words like 'hair salon'"}, 'currency': {'type': 'string', 'maxLength': 10, 'description': 'ISO 4217; derived from country when omitted'}, 'location': {'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'mode': {'enum': ['fixed', 'mobile', 'online'], 'type': 'string'}, 'address': {'type': 'string', 'maxLength': 200}, 'radius_km': {'type': 'number'}}}, 'policies': {'type': 'object', 'properties': {'auto_confirm': {'type': 'boolean'}, 'late_fee_pct': {'type': 'number'}, 'free_cancel_hours': {'type': 'number'}, 'min_advance_hours': {'type': 'number'}}}, 'timezone': {'type': 'string', 'maxLength': 64, 'description': 'IANA, required in countries with several time zones'}, 'languages': {'type': 'array', 'items': {'type': 'string', 'maxLength': 35}, 'maxItems': 20}, 'offerings': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 120}, 'price': {'type': 'number', 'description': 'In major units of the business currency, e.g. 2500'}, 'units': {'type': 'number', 'description': 'Rentals: how many identical items'}, 'deposit': {'type': 'number'}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'price': {'type': 'number'}, 'per_day': {'type': 'boolean'}, 'extra_min': {'type': 'number'}}}, 'maxItems': 50}, 'capacity': {'type': 'number', 'description': 'Classes: people per class'}, 'schedule': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'time'], 'properties': {'days': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 20}, 'maxItems': 14}], 'description': 'e.g. "mon-sat", "daily", ["tue","thu"]'}, 'time': {'type': 'string', 'maxLength': 20}}}, 'maxItems': 50, 'description': 'Classes: when they run'}, 'price_from': {'type': 'boolean', 'description': "Price is 'from'"}, 'price_unit': {'enum': ['booking', 'person', 'hour', 'day', 'night', 'week', 'month'], 'type': 'string'}, 'quote_only': {'type': 'boolean'}, 'description': {'type': 'string', 'maxLength': 600}, 'duration_min': {'type': 'number'}}}, 'maxItems': 100}, 'description': {'type': 'string', 'maxLength': 1000}, 'photos_done': {'type': 'boolean'}}}, 'draft_id': {'type': 'string'}, 'new_business': {'type': 'boolean', 'description': 'Start another business even if one is still being set up'}, 'copy_from_business_id': {'type': 'string', 'description': 'Start a branch: copy services, prices, hours, staff and rules from a business this owner runs'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'draft_id': {'type': 'string'}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'name': {'type': 'string', 'maxLength': 120}, 'address': {'type': 'string', 'maxLength': 200}, 'contacts': {'type': 'object', 'properties': {'email': {'type': 'string', 'maxLength': 200}, 'phone': {'type': 'string', 'maxLength': 200}, 'website': {'type': 'string', 'maxLength': 200}, 'telegram': {'type': 'string', 'maxLength': 200}, 'whatsapp': {'type': 'string', 'maxLength': 200}, 'instagram': {'type': 'string', 'maxLength': 200}, 'public_email': {'type': 'string', 'maxLength': 200}}, 'description': 'Public contacts customers see: phone, whatsapp, telegram, instagram, website, email (public_email means the same as email). An empty string clears one; the ones not sent stay as they are.', 'additionalProperties': False}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}, 'description': {'type': 'string', 'maxLength': 1000}, 'auto_confirm': {'type': 'boolean'}, 'late_fee_pct': {'type': 'number'}, 'free_cancel_hours': {'type': 'number'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['offering_id'], 'properties': {'name': {'type': 'string', 'maxLength': 120}, 'price': {'type': 'number'}, 'archive': {'type': 'boolean'}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}, 'description': {'type': 'string', 'maxLength': 600}, 'offering_id': {'type': 'string'}, 'duration_min': {'type': 'number'}, 'buffer_after_min': {'type': 'number'}, 'min_advance_hours': {'type': 'number'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['offering_id', 'schedule'], 'properties': {'schedule': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'time'], 'properties': {'days': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 20}, 'maxItems': 14}], 'description': 'e.g. "mon-sat", "daily", ["tue","thu"]'}, 'time': {'type': 'string', 'maxLength': 20}, 'capacity': {'type': 'number'}, 'duration_min': {'type': 'number'}, 'capacity_online': {'type': 'number'}}}, 'maxItems': 50}, 'business_id': {'type': 'string', 'description': 'Only needed if you manage several businesses'}, 'offering_id': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'city': {'type': 'string', 'maxLength': 80}, 'near': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 200, 'description': "What the user wants, in a few words, e.g. 'haircut' or 'scooter rental'"}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2, e.g. KE, TH, US'}, 'category': {'type': 'string', 'maxLength': 120, 'description': 'Category code prefix, e.g. beauty or rental_vehicle'}, 'radius_km': {'type': 'number', 'maximum': 100, 'minimum': 1}}}
Recent tool changes
Similar MCP servers
AgentLot Marketplace
Enables agents and users to discover, bid on, purchase, deliver, and settle paid digital services and compute work.
zobrx
Provides read-only ecommerce operations and analytics for orders, inventory, marketplace performance, advertising, settlements, t…
SupplySlate
Supports component sourcing, fabrication requests, supplier RFQs, catalog imports, quotes, purchase planning, checkout handoffs, …
Obriym CRM
Manages CRM records, sales pipelines, activities, orders, products, inventory, and marketplace catalog operations.
velora
Provides Argentine commerce operations including catalog and inventory, customer and supplier management, cash register tracking,…
Shopify
Provides read access to Shopify Admin data for store operations through the Shopify REST API.
Woocommerce
Provides access to WooCommerce store data through the WooCommerce REST API.
Troostwijk
Searches European industrial and insolvency liquidation auctions and retrieves auction lot details.