What this MCP does
Manages Boulevard salon and wellness business data, including clients, appointments, staff, services, memberships, orders and schedules.
Tools
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['entity_id', 'tag_id'], 'properties': {'tag_id': {'type': 'string', 'minLength': 1, 'description': 'The Tag id, e.g. urn:blvd:Tag:<uuid>.'}, 'entity_id': {'type': 'string', 'minLength': 1, 'description': 'Global id of the record to tag, e.g. urn:blvd:Client:<uuid>.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'dob': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Date of birth, YYYY-MM-DD.'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Email address.'}, 'pronoun': {'type': 'string', 'description': 'Pronoun, e.g. she/her.'}, 'last_name': {'type': 'string', 'description': 'Last name.'}, 'first_name': {'type': 'string', 'description': 'First name.'}, 'external_id': {'type': 'string', 'description': 'Your own id for this client.'}, 'mobile_phone': {'type': 'string', 'description': 'Mobile phone in E.164 form, e.g. +15551234567.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['client_id', 'text'], 'properties': {'text': {'type': 'string', 'minLength': 1, 'description': 'The note text.'}, 'client_id': {'type': 'string', 'minLength': 1, 'description': 'The Client id, e.g. urn:blvd:Client:<uuid>.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['location_id', 'staff_id', 'start_time', 'duration'], 'properties': {'title': {'type': 'string', 'description': 'Title shown on the calendar.'}, 'reason': {'enum': ['BUSINESS', 'PERSONAL'], 'type': 'string', 'description': 'Why the time is blocked.'}, 'duration': {'type': 'integer', 'maximum': 1440, 'minimum': 1, 'description': 'Length in minutes.'}, 'staff_id': {'type': 'string', 'minLength': 1, 'description': 'The Staff id, e.g. urn:blvd:Staff:<uuid>.'}, 'start_time': {'type': 'string', 'minLength': 1, 'description': 'Start, ISO 8601 datetime with offset, e.g. 2026-10-02T13:00:00-07:00.'}, 'location_id': {'type': 'string', 'minLength': 1, 'description': 'Location id, e.g. urn:blvd:Location:<uuid> (from boulevard_list_locations).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['appointment_id'], 'properties': {'appointment_id': {'type': 'string', 'minLength': 1, 'description': 'The Appointment id, e.g. urn:blvd:Appointment:<uuid>.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['client_id'], 'properties': {'client_id': {'type': 'string', 'minLength': 1, 'description': 'The Client id, e.g. urn:blvd:Client:<uuid>.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['order_id'], 'properties': {'order_id': {'type': 'string', 'minLength': 1, 'description': 'The Order id, e.g. urn:blvd:Order:<uuid>.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['location_id'], 'properties': {'after': {'type': 'string', 'description': 'Cursor: pageInfo.endCursor from the previous page. Omit for the first page.'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (default 25).'}, 'query': {'type': 'string', 'description': 'Boulevard filter expression (QueryString) over: id, startAt, createdAt, cancelled, staffId. Comparisons joined with AND/OR, strings in single quotes, ISO 8601 datetimes, e.g. "startAt >= \'2026-10-01T00:00:00Z\' AND cancelled = false". Field names are case sensitive.'}, 'client_id': {'type': 'string', 'description': "Only this client's appointments (urn:blvd:Client:<uuid>)."}, 'location_id': {'type': 'string', 'minLength': 1, 'description': 'Location id, e.g. urn:blvd:Location:<uuid> (from boulevard_list_locations).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': 'Cursor: pageInfo.endCursor from the previous page. Omit for the first page.'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (default 25).'}, 'query': {'type': 'string', 'description': 'Boulevard filter expression (QueryString) over: id, email, name, mobilePhone, active, externalId, primaryLocation, createdAt, updatedAt. Comparisons joined with AND/OR, strings in single quotes, ISO 8601 datetimes, e.g. "startAt >= \'2026-10-01T00:00:00Z\' AND cancelled = false". Field names are case sensitive.'}, 'emails': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only clients with these email addresses.'}, 'client_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only these client ids.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': 'Cursor: pageInfo.endCursor from the previous page. Omit for the first page.'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (default 25).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': 'Cursor: pageInfo.endCursor from the previous page. Omit for the first page.'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (default 25).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['location_id'], 'properties': {'after': {'type': 'string', 'description': 'Cursor: pageInfo.endCursor from the previous page. Omit for the first page.'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (default 25).'}, 'query': {'type': 'string', 'description': 'Boulevard filter expression (QueryString) over: id, clientId, closedAt, updatedAt, createdAt. Comparisons joined with AND/OR, strings in single quotes, ISO 8601 datetimes, e.g. "startAt >= \'2026-10-01T00:00:00Z\' AND cancelled = false". Field names are case sensitive.'}, 'location_id': {'type': 'string', 'minLength': 1, 'description': 'Location id, e.g. urn:blvd:Location:<uuid> (from boulevard_list_locations).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': 'Cursor: pageInfo.endCursor from the previous page. Omit for the first page.'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (default 25).'}, 'query': {'type': 'string', 'description': 'Boulevard filter expression (QueryString) over: id, categoryId, externalId. Comparisons joined with AND/OR, strings in single quotes, ISO 8601 datetimes, e.g. "startAt >= \'2026-10-01T00:00:00Z\' AND cancelled = false". Field names are case sensitive.'}, 'include_inactive': {'type': 'boolean', 'description': 'Also return inactive products.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': 'Cursor: pageInfo.endCursor from the previous page. Omit for the first page.'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (default 25).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['location_id', 'start_date', 'end_date'], 'properties': {'end_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Last date, YYYY-MM-DD.'}, 'staff_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only these staff ids.'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'First date, YYYY-MM-DD.'}, 'location_id': {'type': 'string', 'minLength': 1, 'description': 'Location id, e.g. urn:blvd:Location:<uuid> (from boulevard_list_locations).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': 'Cursor: pageInfo.endCursor from the previous page. Omit for the first page.'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (default 25).'}, 'query': {'type': 'string', 'description': 'Boulevard filter expression (QueryString) over: id, email, name, mobilePhone, active. Comparisons joined with AND/OR, strings in single quotes, ISO 8601 datetimes, e.g. "startAt >= \'2026-10-01T00:00:00Z\' AND cancelled = false". Field names are case sensitive.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': 'Cursor: pageInfo.endCursor from the previous page. Omit for the first page.'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (default 25).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['location_id'], 'properties': {'after': {'type': 'string', 'description': 'Cursor: pageInfo.endCursor from the previous page. Omit for the first page.'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (default 25).'}, 'query': {'type': 'string', 'description': 'Boulevard filter expression (QueryString) over: staffId, startAt, cancelled. Comparisons joined with AND/OR, strings in single quotes, ISO 8601 datetimes, e.g. "startAt >= \'2026-10-01T00:00:00Z\' AND cancelled = false". Field names are case sensitive.'}, 'location_id': {'type': 'string', 'minLength': 1, 'description': 'Location id, e.g. urn:blvd:Location:<uuid> (from boulevard_list_locations).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['appointment_id'], 'properties': {'notes': {'type': 'string', 'description': 'New internal notes (replaces the existing notes).'}, 'state': {'enum': ['BOOKED', 'CONFIRMED', 'ARRIVED', 'ACTIVE'], 'type': 'string', 'description': 'New appointment state.'}, 'appointment_id': {'type': 'string', 'minLength': 1, 'description': 'The Appointment id, e.g. urn:blvd:Appointment:<uuid>.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['client_id'], 'properties': {'dob': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Date of birth, YYYY-MM-DD.'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Email address.'}, 'pronoun': {'type': 'string', 'description': 'Pronoun, e.g. she/her.'}, 'client_id': {'type': 'string', 'minLength': 1, 'description': 'The Client id, e.g. urn:blvd:Client:<uuid>.'}, 'last_name': {'type': 'string', 'description': 'Last name.'}, 'first_name': {'type': 'string', 'description': 'First name.'}, 'external_id': {'type': 'string', 'description': 'Your own id for this client.'}, 'mobile_phone': {'type': 'string', 'description': 'Mobile phone in E.164 form, e.g. +15551234567.'}}}
Recent tool changes
Similar MCP servers
AdButler
Manages AdButler advertisers, campaigns, ad items, audiences, zones, creatives, catalogs, and advertising reports.
Duvo MCP
Provides governed retail and CPG operations for cases, queues, approvals, automations, process documentation, integrations, and a…
Lovie Company Formation
Supports company formation and business administration with bank accounts, cards, invoicing, bookkeeping, accounting periods, and…
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
独行录 / opcmenu
Supports founder and company discovery, collaboration goals and tasks, events and signups, networking, messaging, profiles, produ…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…