DOJO+
What this MCP does
Provides directory access to martial arts schools, classes, instructors, ranks, events, services, bookings, and purchases.
Tools
Input schema
{'type': 'object', 'required': ['place_slug', 'serviceId', 'startDate', 'endDate', 'contact'], 'properties': {'contact': {'type': 'object', 'required': ['name', 'email', 'phone'], 'properties': {'name': {'type': 'string', 'description': 'Full name.'}, 'email': {'type': 'string', 'description': 'Email address.'}, 'phone': {'type': 'string', 'description': 'Phone number, at least 10 digits. Any formatting is accepted.'}}, 'description': 'Who the booking is for. All three are required by the venue to confirm or reschedule.'}, 'endDate': {'type': 'string', 'description': 'Slot end as an ISO instant, exactly as returned by get_availability.'}, 'serviceId': {'type': 'string', 'description': 'Service ID from list_booking_services (called with the same place_slug).'}, 'startDate': {'type': 'string', 'description': 'Slot start as an ISO instant, exactly as returned by get_availability.'}, 'place_slug': {'type': 'string', 'description': 'Venue place slug from search_places.'}, 'resourceId': {'type': 'string', 'description': 'Optional staff/resource ID from the slot, when the user picked a specific professional.'}}}
Input schema
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['productId'], 'properties': {'quantity': {'type': 'number', 'description': 'Quantity (default 1).'}, 'productId': {'type': 'string', 'description': 'Product ID from list_products.'}}}, 'description': 'Products to add to cart.'}}}
Input schema
{'type': 'object', 'required': ['serviceId', 'date'], 'properties': {'date': {'type': 'string', 'description': 'Date in YYYY-MM-DD format (e.g. "2026-06-25").'}, 'serviceId': {'type': 'string', 'description': 'Service ID from list_booking_services.'}, 'place_slug': {'type': 'string', 'description': 'Venue place slug — use the same one passed to list_booking_services.'}}}
Input schema
{'type': 'object', 'required': ['event_slug'], 'properties': {'event_slug': {'type': 'string', 'description': 'Event slug from list_events.'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'URL slug of the place, e.g. "cafe-example".'}}}
Input schema
{'type': 'object', 'required': ['place_slug'], 'properties': {'place_slug': {'type': 'string', 'description': 'The slug of the restaurant, e.g. "bar-do-ze" (from search_places or a place URL).'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max reviews to return (default 10, max 50).'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max posts to return (default 10, max 50).'}, 'category': {'type': 'string', 'description': 'Filter by category label. Case-insensitive substring match.'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'place_slug': {'type': 'string', 'description': "Venue place slug from search_places. Strongly recommended — without it you get the directory's own services, not a venue's."}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max events to return (default 20, max 50).'}, 'filter': {'enum': ['agora', 'hoje', 'amanha', 'fim-de-semana', 'gratis'], 'type': 'string', 'description': 'Narrow the list: "agora" = on stage at this exact moment (season runs and day-granular sources are excluded, because their stored window says nothing about whether a session is on right now); "hoje"/"amanha"/"fim-de-semana" = running on those days, including multi-day runs; "gratis" = free to attend, including externally-ticketed events priced at 0.'}, 'upcoming_only': {'type': 'boolean', 'description': 'Only return upcoming or in-progress events (default true).'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max guides to return (default 20, max 50).'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'kind': {'enum': ['STANDARD', 'FLASH'], 'type': 'string', 'description': 'Filter by offer kind. FLASH = time-limited flash sale with countdown. Omit to return all active offers.'}, 'limit': {'type': 'number', 'description': 'Max offers to return (default 20, max 60).'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'place_slug': {'type': 'string', 'description': "Venue place slug from search_places. Strongly recommended — without it you get the directory's own plans, not a venue's."}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'q': {'type': 'string', 'description': 'Optional search term matched against product name.'}, 'limit': {'type': 'number', 'description': 'Max products to return (default 20, max 100).'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max profiles to return (default 50).'}}}
Input schema
{'type': 'object', 'required': ['place_slug', 'name', 'email', 'partySize', 'requestedAt'], 'properties': {'name': {'type': 'string', 'description': 'Name the table is under.'}, 'email': {'type': 'string', 'description': "The guest's own email — the confirmation link is sent here."}, 'phone': {'type': 'string', 'description': 'Optional phone number for the restaurant to reach the guest.'}, 'message': {'type': 'string', 'description': 'Optional note (occasion, dietary needs, seating preference).'}, 'partySize': {'type': 'number', 'description': 'Number of people (1–30).'}, 'place_slug': {'type': 'string', 'description': 'Restaurant place slug from search_places.'}, 'requestedAt': {'type': 'string', 'description': 'Desired date and time as an ISO instant. Must be in the future.'}}}
Input schema
{'type': 'object', 'required': ['event_slug', 'tickets'], 'properties': {'tickets': {'type': 'array', 'items': {'type': 'object', 'required': ['ticketDefinitionId', 'quantity'], 'properties': {'quantity': {'type': 'number', 'description': 'How many of this type (at least 1).'}, 'ticketDefinitionId': {'type': 'string', 'description': 'Ticket type ID from get_event_tickets.'}}}, 'description': 'Ticket types and quantities to hold.'}, 'event_slug': {'type': 'string', 'description': 'Event slug from list_events.'}}}
Input schema
{'type': 'object', 'required': ['event_slug', 'firstName', 'lastName', 'email'], 'properties': {'email': {'type': 'string', 'description': "The guest's own email — the confirmation link is sent here."}, 'lastName': {'type': 'string', 'description': 'Guest last name.'}, 'firstName': {'type': 'string', 'description': 'Guest first name.'}, 'event_slug': {'type': 'string', 'description': 'Event slug from list_events.'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max dishes to return (default 20, max 50).'}, 'query': {'type': 'string', 'description': 'Dish name or part of it, e.g. "feijoada", "pizza margherita". Omit to list top dishes.'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'q': {'type': 'string', 'description': 'Free-text term matched against place name and address — accent-insensitive and typo-tolerant.'}, 'limit': {'type': 'number', 'description': 'Max results to return (default 20, max 100).'}, 'category': {'type': 'string', 'description': 'Filter by category label (e.g. "Café"). Case-insensitive substring match.'}, 'open_now': {'type': 'boolean', 'description': 'When true, return only places open at the current local time (computed server-side from their opening hours).'}, 'attributes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Amenity slugs a place must ALL have, e.g. ["wifi","outdoor-seating"]. Common slugs: wifi, outdoor-seating, wheelchair, dog-friendly, delivery, takeaway, reservations, live-music, vegan, gluten-free.'}, 'neighborhood': {'type': 'string', 'description': 'Filter by neighborhood name. Case-insensitive substring match.'}}}
Input schema
{'type': 'object', 'required': ['formId', 'fields'], 'properties': {'fields': {'type': 'object', 'description': 'Key-value pairs matching the field keys from list_forms. Example: { "field_1": "João", "field_2": "joao@email.com" }', 'additionalProperties': {'type': 'string'}}, 'formId': {'type': 'string', 'description': 'Form ID from list_forms.'}}}
Recent tool changes
Similar MCP servers
Gracie Barra Jiu-Jitsu
Provides directory capabilities for Jiu-Jitsu schools, classes, instructors, ranks, events, services, bookings, and purchases.
API Direct
Searches and retrieves data from social networks, news and Google services, while also providing Amazon product, seller, ranking,…
concordance
Provides deterministic claim verification and audit receipts, along with Bible references, commentary, geography, indexed knowled…
Lodi Kids Activities
Searches and manages a directory of youth programs, family events, and licensed daycares in Lodi, California, including listings,…
The Ainglish Project
Maintains a measured, auditable register of language constructs, proposals, evidence, adoption, contributors, protocols, and rati…
Torah Library
Provides searchable Jewish texts, commentaries, source sheets, dictionaries, manuscripts, calendars, learning schedules, parasha …
intelligence-gateway
Provides Algerian geography and telecom utilities, talent certification and recruitment tools, corporate training discovery, vide…
Orcid
Retrieves public ORCID researcher records containing works, employment, education, and other profile information.