Skip to content

HairDora Salon Scheduling

by hairdora.com · remote · no sign-in to list tools · v0.1.1 · published by com.hairdora

See your salon's free slots, appointments, stylists, services, clients, quotes and payments.

Changes · 1

14 tools: 1 change things and 13 only read.

Scanned Oct 21, 2026

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

claude mcp add --transport http hairdora https://mcp.hairdora.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "open_hairdora" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_hairdora" says "open": a word for a change.

    What this check looks for

Tools

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

14 tools

Changes things 1Claude Code: ask
  • open_hairdoraUse this when someone wants to open HairDora and browse their salons, upcoming appointment previews, service prices and booking availability in an interactive sidebar.1 finding

    Why it is in this group

    • The name "open_hairdora" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_hairdora" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_hairdora" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Use this when someone wants to open HairDora and browse their salons, upcoming appointment previews, service prices and booking availability in an interactive sidebar. Returns up to 100 salons to start from (no client names, contact details or private notes). Not for booking, cancelling or charging for appointments.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 13Claude Code: allow
  • get_appointmentUse this when someone asks what services a specific appointment includes, their prices, or the appointment's status.No findings

    Why it is in this group

    • The name "get_appointment" says "get": a word for reading.
    Description, as the server wrote it
    Use this when someone asks what services a specific appointment includes, their prices, or the appointment's status. Returns one appointment's client and salon ids, times, status and up to 50 booked services with prices. Not for finding bookings by date.

    Annotations the server declares

    • title: Get appointment details
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_clientUse this when someone asks about one salon client, such as their preferred language or which salon they belong to.No findings

    Why it is in this group

    • The name "get_client" says "get": a word for reading.
    Description, as the server wrote it
    Use this when someone asks about one salon client, such as their preferred language or which salon they belong to. Returns the client's name, salon, language and last edit time. Not for the client's email, phone or booking history.

    Annotations the server declares

    • title: Get client details
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_salonUse this when someone asks for one salon's opening hours, address, phone, website, timezone or default appointment length.No findings

    Why it is in this group

    • The name "get_salon" says "get": a word for reading.
    Description, as the server wrote it
    Use this when someone asks for one salon's opening hours, address, phone, website, timezone or default appointment length. Returns that salon's business settings with up to 14 opening-hour rows, Monday first. Not for free booking slots.

    Annotations the server declares

    • title: Get salon details and opening hours
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_salon_availabilityUse this when someone asks when their hair salon has free appointment slots or the next opening.No findings

    Why it is in this group

    • The name "get_salon_availability" says "get": a word for reading.
    Description, as the server wrote it
    Use this when someone asks when their hair salon has free appointment slots or the next opening. Returns, per day, how many online-booking slots are open plus the first start and last end time, for the next 14 days that have openings (no client or stylist names). Not for making a booking.

    Annotations the server declares

    • title: Find free appointment slots
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_appointmentsUse this when someone asks how many appointments are booked on a day or in a period, how many were canceled or no-shows, or when a client is booked.No findings

    Why it is in this group

    • The name "list_appointments" says "list": a word for reading.
    Description, as the server wrote it
    Use this when someone asks how many appointments are booked on a day or in a period, how many were canceled or no-shows, or when a client is booked. Returns appointments across all the user's salons, or just one, with id, client and salon ids, times and status for any date window, latest first, up to 100. Not for the services inside an appointment.

    Annotations the server declares

    • title: List salon appointments
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_calendar_eventsUse this when someone asks when their salon is closed or has extra opening hours, or when a stylist or chair is blocked for holidays, vacations, sick days, training or meetings.No findings

    Why it is in this group

    • The name "list_calendar_events" says "list": a word for reading.
    Description, as the server wrote it
    Use this when someone asks when their salon is closed or has extra opening hours, or when a stylist or chair is blocked for holidays, vacations, sick days, training or meetings. Returns blocks and extra openings with salon, type, scope, effect, all-day flag and times for all salons unless one is given, earliest first (no titles or notes). Not for client appointments.

    Annotations the server declares

    • title: List closures, days off and blocked time
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_clientsUse this when someone asks who their clients are, or needs a client id to look up that person's appointments, payments or quotes.No findings

    Why it is in this group

    • The name "list_clients" says "list": a word for reading.
    Description, as the server wrote it
    Use this when someone asks who their clients are, or needs a client id to look up that person's appointments, payments or quotes. Returns up to 100 clients (20 by default) across all the user's salons, or just one, with id, name, salon and last edit time, in no particular order and without a name search. Not for a client's email, phone or notes.

    Annotations the server declares

    • title: Look up salon clients
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_paymentsUse this when someone asks what payments their salon took, whether a client paid, or how much came in over a period.No findings

    Why it is in this group

    • The name "list_payments" says "list": a word for reading.
    Description, as the server wrote it
    Use this when someone asks what payments their salon took, whether a client paid, or how much came in over a period. Returns payment records with id, client and salon ids, date, amount, currency and status for any date window and all salons unless one is given, newest first, up to 100 (no card details). Not for charging or refunding a client.

    Annotations the server declares

    • title: List salon payments
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_providersUse this when someone asks which stylists or hairdressers work at their salon or can be booked.No findings

    Why it is in this group

    • The name "list_providers" says "list": a word for reading.
    Description, as the server wrote it
    Use this when someone asks which stylists or hairdressers work at their salon or can be booked. Returns up to 100 hairdresser display names from the organization that owns the salon (no contact details or schedules). Not for stylists' days off.

    Annotations the server declares

    • title: List stylists who take appointments
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_quotesUse this when someone asks about price quotes given to salon clients, such as which are pending, approved or rejected.No findings

    Why it is in this group

    • The name "list_quotes" says "list": a word for reading.
    Description, as the server wrote it
    Use this when someone asks about price quotes given to salon clients, such as which are pending, approved or rejected. Returns quotes with id, client and salon ids, status and date for all salons unless one is given, newest first, up to 100; the status filter applies within that page. Not for quote amounts or line items.

    Annotations the server declares

    • title: List client quotes
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_salonsUse this when someone asks which hair salons they run in HairDora, or a salon's id is needed.No findings

    Why it is in this group

    • The name "list_salons" says "list": a word for reading.
    Description, as the server wrote it
    Use this when someone asks which hair salons they run in HairDora, or a salon's id is needed. Returns up to 100 salons with id, name, currency, default language and last edit time. Not for a salon's address, phone or opening hours.

    Annotations the server declares

    • title: List your salons
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_servicesUse this when someone asks what their salon charges for a cut, colour, blow-dry or other service, or what services it offers.No findings

    Why it is in this group

    • The name "list_services" says "list": a word for reading.
    Description, as the server wrote it
    Use this when someone asks what their salon charges for a cut, colour, blow-dry or other service, or what services it offers. Returns services with id, name, price and salon for all their salons unless one is given, 50 by default and up to 100. Not for what a particular client had done.

    Annotations the server declares

    • title: Look up service prices
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • show_salon_overviewUse this when someone wants a quick overview or dashboard of one hair salon.No findings

    Why it is in this group

    • The name "show_salon_overview" says "show": a word for reading.
    Description, as the server wrote it
    Use this when someone wants a quick overview or dashboard of one hair salon. Returns an overview card with the salon's details, a client count, the next 8 upcoming appointments with time, status and number of services, and up to 12 services with prices (no client names or contact details). Not for one specific booking.

    Annotations the server declares

    • title: Show salon overview
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

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 0.1.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http hairdora https://mcp.hairdora.com/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__hairdora__list_salons",
      "mcp__hairdora__get_salon",
      "mcp__hairdora__get_salon_availability",
      "mcp__hairdora__list_providers",
      "mcp__hairdora__list_clients",
      "mcp__hairdora__get_client",
      "mcp__hairdora__list_appointments",
      "mcp__hairdora__get_appointment",
      "mcp__hairdora__list_calendar_events",
      "mcp__hairdora__list_services",
      "mcp__hairdora__list_payments",
      "mcp__hairdora__list_quotes",
      "mcp__hairdora__show_salon_overview"
    ],
    "ask": [
      "mcp__hairdora__open_hairdora"
    ],
    "deny": []
  }
}

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 hairdora. Review it before you use it.