Skip to content

Acuity Scheduling MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi

Read appointments, types, calendars and availability; create, cancel or reschedule bookings.

Deletes · 4

18 tools: 4 can delete or cancel things and 14 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http acuity-scheduling https://acuity-scheduling.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

18 tools

Deletes or cancels 4Claude Code: deny
  • acuity_cancel_appointmentCANCELS an existing appointment.No findings

    Why it is in this group

    • The name "acuity_cancel_appointment" says "cancel": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    CANCELS an existing appointment. This MODIFIES the calendar and, unless suppressed, may send cancellation emails. Acuity REST: PUT /appointments/{id}/cancel.

    Annotations the server declares

    • title: Cancel appointment
    • destructiveHint: true
  • acuity_create_appointmentCREATES a new appointment (books a client into a time slot).No findings

    Why it is in this group

    • The name "acuity_create_appointment" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    CREATES a new appointment (books a client into a time slot). This MODIFIES the calendar and, unless suppressed, may send confirmation emails. Acuity REST: POST /appointments.

    Annotations the server declares

    • title: Create appointment
    • destructiveHint: true
  • acuity_create_clientCREATES a new client record in the account's client list.No findings

    Why it is in this group

    • The name "acuity_create_client" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    CREATES a new client record in the account's client list. This ADDS data to the account. Acuity REST: POST /clients.

    Annotations the server declares

    • title: Create client
    • destructiveHint: true
  • acuity_reschedule_appointmentRESCHEDULES an existing appointment to a new time (and optionally a new calendar).No findings

    Why it is in this group

    • The name "acuity_reschedule_appointment" says "reschedule": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    RESCHEDULES an existing appointment to a new time (and optionally a new calendar). This MODIFIES the calendar and, unless suppressed, may send update emails. Acuity REST: PUT /appointments/{id}/reschedule.

    Annotations the server declares

    • title: Reschedule appointment
    • destructiveHint: true
Only reads 14Claude Code: allow
  • acuity_availability_classesList group class time slots (for class-type appointment types) in a month.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List group class time slots (for class-type appointment types) in a month. Acuity REST: GET /availability/classes.

    Annotations the server declares

    • title: Get available classes
    • readOnlyHint: true
  • acuity_availability_datesList dates in a month that have availability for an appointment type.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List dates in a month that have availability for an appointment type. Acuity REST: GET /availability/dates.

    Annotations the server declares

    • title: Get available dates
    • readOnlyHint: true
  • acuity_availability_timesList available time slots on a given date for an appointment type.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List available time slots on a given date for an appointment type. Acuity REST: GET /availability/times.

    Annotations the server declares

    • title: Get available times
    • readOnlyHint: true
  • acuity_get_appointmentGet a single appointment by its id.No findings

    Why it is in this group

    • The name "acuity_get_appointment" says "get": a word for reading.
    Description, as the server wrote it
    Get a single appointment by its id. Acuity REST: GET /appointments/{id}.

    Annotations the server declares

    • title: Get appointment
    • readOnlyHint: true
  • acuity_get_meGet the authenticated Acuity account's profile (name, email, timezone, plan, currency).No findings

    Why it is in this group

    • The name "acuity_get_me" says "get": a word for reading.
    Description, as the server wrote it
    Get the authenticated Acuity account's profile (name, email, timezone, plan, currency). Acuity REST: GET /me.

    Annotations the server declares

    • title: Get account info
    • readOnlyHint: true
  • acuity_list_appointment_typesList the account's appointment types (services and classes), including price, duration and calendars.No findings

    Why it is in this group

    • The name "acuity_list_appointment_types" says "list": a word for reading.
    Description, as the server wrote it
    List the account's appointment types (services and classes), including price, duration and calendars. Acuity REST: GET /appointment-types.

    Annotations the server declares

    • title: List appointment types
    • readOnlyHint: true
  • acuity_list_appointmentsList appointments scheduled on the account, with optional filters.No findings

    Why it is in this group

    • The name "acuity_list_appointments" says "list": a word for reading.
    Description, as the server wrote it
    List appointments scheduled on the account, with optional filters. Acuity REST: GET /appointments.

    Annotations the server declares

    • title: List appointments
    • readOnlyHint: true
  • acuity_list_blocksList blocked-off (unavailable) time ranges on the account's calendars.No findings

    Why it is in this group

    • The name "acuity_list_blocks" says "list": a word for reading.
    Description, as the server wrote it
    List blocked-off (unavailable) time ranges on the account's calendars. Acuity REST: GET /blocks.

    Annotations the server declares

    • title: List blocked-off times
    • readOnlyHint: true
  • acuity_list_calendarsList the account's calendars (staff/resources appointments can be booked on).No findings

    Why it is in this group

    • The name "acuity_list_calendars" says "list": a word for reading.
    Description, as the server wrote it
    List the account's calendars (staff/resources appointments can be booked on). Acuity REST: GET /calendars.

    Annotations the server declares

    • title: List calendars
    • readOnlyHint: true
  • acuity_list_clientsList clients on the account, optionally filtered by a search string (name/email/phone).No findings

    Why it is in this group

    • The name "acuity_list_clients" says "list": a word for reading.
    Description, as the server wrote it
    List clients on the account, optionally filtered by a search string (name/email/phone). Acuity REST: GET /clients.

    Annotations the server declares

    • title: List clients
    • readOnlyHint: true
  • acuity_list_formsList the account's custom intake forms and their fields.No findings

    Why it is in this group

    • The name "acuity_list_forms" says "list": a word for reading.
    Description, as the server wrote it
    List the account's custom intake forms and their fields. Acuity REST: GET /forms.

    Annotations the server declares

    • title: List intake forms
    • readOnlyHint: true
  • acuity_list_labelsList the appointment labels (colored tags) defined on the account.No findings

    Why it is in this group

    • The name "acuity_list_labels" says "list": a word for reading.
    Description, as the server wrote it
    List the appointment labels (colored tags) defined on the account. Acuity REST: GET /labels.

    Annotations the server declares

    • title: List labels
    • readOnlyHint: true
  • acuity_list_ordersList store orders (product / package / gift-certificate purchases).No findings

    Why it is in this group

    • The name "acuity_list_orders" says "list": a word for reading.
    Description, as the server wrote it
    List store orders (product / package / gift-certificate purchases). Acuity REST: GET /orders.

    Annotations the server declares

    • title: List orders
    • readOnlyHint: true
  • acuity_list_productsList the account's products / packages / gift certificates for sale.No findings

    Why it is in this group

    • The name "acuity_list_products" says "list": a word for reading.
    Description, as the server wrote it
    List the account's products / packages / gift certificates for sale. Acuity REST: GET /products.

    Annotations the server declares

    • title: List products
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.16.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http acuity-scheduling https://acuity-scheduling.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__acuity-scheduling__acuity_list_appointments",
      "mcp__acuity-scheduling__acuity_get_appointment",
      "mcp__acuity-scheduling__acuity_list_appointment_types",
      "mcp__acuity-scheduling__acuity_list_calendars",
      "mcp__acuity-scheduling__acuity_availability_dates",
      "mcp__acuity-scheduling__acuity_availability_times",
      "mcp__acuity-scheduling__acuity_availability_classes",
      "mcp__acuity-scheduling__acuity_list_clients",
      "mcp__acuity-scheduling__acuity_list_forms",
      "mcp__acuity-scheduling__acuity_list_products",
      "mcp__acuity-scheduling__acuity_list_orders",
      "mcp__acuity-scheduling__acuity_list_blocks",
      "mcp__acuity-scheduling__acuity_list_labels",
      "mcp__acuity-scheduling__acuity_get_me"
    ],
    "ask": [],
    "deny": [
      "mcp__acuity-scheduling__acuity_create_appointment",
      "mcp__acuity-scheduling__acuity_cancel_appointment",
      "mcp__acuity-scheduling__acuity_reschedule_appointment",
      "mcp__acuity-scheduling__acuity_create_client"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as acuity-scheduling. Review it before you use it.