Phorest MCP server Let your AI agent run the Phorest front desk.

Your AI agent books appointments from messages, finds free slots, moves a sick stylist's day and finds clients due back. Sign in to Phorest once in your own Cloud Browser. No API request, no development team.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Phorest
Phorest logo Phorest Cloud Browser

10 tools Read and write

Message to booking

What can your AI agent do in Phorest? The front desk work between the message and the chair.

  • Book appointments from messages

  • Find free slots for a service

  • Move a sick stylist's day

  • Find clients due for a visit

  • Add new clients and notes

  • See tomorrow's gaps per stylist

API on request

Does Phorest have an MCP server or an API? An API through Support, and no MCP server.

Phorest has no MCP server and no ChatGPT or Claude app. Its API needs credentials from Phorest Support, requested with your account number, and "your own development team for setup" (Phorest help, checked 8 Nov 2026). Cotlet runs 10 Phorest tools hosted, over MCP for agents and REST for scripts, in your own Phorest login.

  • Phorest asks you to contact Support with your account number for API access.
  • The Phorest API has no webhooks, so new bookings must be polled.
  • Phorest has no connector in the ChatGPT apps directory or in Claude.
The Phorest API, other options and Cotlet compared
What you need Phorest APIBy handCotlet
Appointments and free slots With credentials Yes, one by one Yes
Book or move a booking With credentials Yes, one by one Yes, after your OK
Clients and notes With credentials Yes, one by one Yes
Ask in ChatGPT or Claude No No Yes
Developer needed Yes No No

Checked 8 Nov 2026. Sources: Phorest help: Getting Started with Phorest API · Phorest developer docs · Phorest help: access Phorest in a web browser

Set up once

How does the Phorest MCP server work? Your agent works in your own Phorest login.

  1. 1Sign in to Phorest

    Once, in a browser we host for you.

  2. 2Connect your AI agent

    One address in its settings.

  3. 3Hand it the busywork

    It drafts the work, you OK what customers get.

We never keep your Phorest password, and no booking, move or cancellation goes through until you approve it. Who can see your session

Any MCP client

How to connect Phorest to your AI agent

  1. 1

    Sign in to Phorest in a Cloud Browser. Create a Cotlet account, open Phorest in its Cloud Browser, sign in with your Phorest login on my.phorest.com and press Enable for agents.

  2. 2

    Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.

  3. 3

    Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.

Phorest shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned Phorest on after connecting? Refresh the connector and the 10 tools appear.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: phorest_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: phorest_write
5 read, 5 write

All 10 Phorest MCP tools

Appointments5

Free slots come from the calendar and the services each staff member offers. Bookings, moves and cancellations wait for your OK; your reminder settings decide what the client hears.

  • list_appointments Appointments for a day or range, by staff member. read

    Returns appointments with client, service, staff member, start time and status, in calendar order.

    MCP callphorest_read → list_appointments

    REST endpointGET https://cotlet.dev/api/v1/phorest/appointments

    Parameters

    Parameters: list_appointments
    NameTypeDescription
    date_from string required string ISO date.
    date_to string string ISO date. Default: date_from.
    staff string string Staff member name.
    page integer integer Page number. Default: 1.

    Example input

    {
      "date_from": "date from"
    }

    Example response

    {
      "appointments": [
        {
          "appointment_id": "A-73120",
          "client": "Sophie Walsh",
          "service": "Full head colour",
          "staff": "Aoife",
          "start": "2026-11-12T10:00",
          "status": "Booked"
        }
      ],
      "page": 1
    }
  • find_free_slots Open times for a service, optionally with one staff member. read

    Reads the calendar and returns start times where the service fits, per staff member who offers it.

    MCP callphorest_read → find_free_slots

    REST endpointGET https://cotlet.dev/api/v1/phorest/free-slots/find

    Parameters

    Parameters: find_free_slots
    NameTypeDescription
    service string required string Service name as in your menu.
    date string required string ISO date.
    staff string string Staff member name.

    Example input

    {
      "service": "service",
      "date": "date"
    }

    Example response

    {
      "service": "Cut and blow dry",
      "slots": [
        {
          "staff": "Aoife",
          "start": "2026-11-13T14:30"
        },
        {
          "staff": "Niamh",
          "start": "2026-11-13T16:00"
        }
      ]
    }
  • book_appointment Books a service for a client with a staff member. writeasks first

    Creates the appointment on the calendar. Your Phorest reminder settings decide whether the client gets a confirmation. By default you confirm each call; you can switch that off for this tool.

    MCP callphorest_write → book_appointment

    REST endpointPOST https://cotlet.dev/api/v1/phorest/clients/{client_id}/appointments

    Parameters

    Parameters: book_appointment
    NameTypeDescription
    client_id string required string Client ID from list_clients.
    service string required string Service name.
    staff string required string Staff member name.
    start string required string ISO date and time from find_free_slots.
    note string string Appointment note.

    Example input

    {
      "client_id": "CL-40192",
      "service": "Cut and blow dry",
      "staff": "Aoife",
      "start": "2026-11-13T14:30"
    }

    Example response

    {
      "appointment_id": "A-73188",
      "client": "Sophie Walsh",
      "service": "Cut and blow dry",
      "staff": "Aoife",
      "start": "2026-11-13T14:30",
      "status": "Booked"
    }
  • reschedule_appointment Moves an appointment to a new time or staff member. writeasks first

    Moves the appointment on the calendar. Your reminder settings decide whether the client hears about it. By default you confirm each call; you can switch that off for this tool.

    MCP callphorest_write → reschedule_appointment

    REST endpointPOST https://cotlet.dev/api/v1/phorest/appointments/{appointment_id}/reschedule

    Parameters

    Parameters: reschedule_appointment
    NameTypeDescription
    appointment_id string required string Appointment ID from list_appointments.
    start string required string New ISO date and time.
    staff string string New staff member. Default: unchanged.

    Example input

    {
      "appointment_id": "appointment_8c41d2",
      "start": "start"
    }

    Example response

    {
      "appointment_id": "A-73120",
      "start": "2026-11-14T11:00",
      "staff": "Niamh",
      "status": "Booked"
    }
  • cancel_appointment Cancels an appointment with a reason. writeasks first

    Marks the appointment cancelled and frees the slot. The reason is kept on the client record. By default you confirm each call; you can switch that off for this tool.

    MCP callphorest_write → cancel_appointment

    REST endpointPOST https://cotlet.dev/api/v1/phorest/appointments/{appointment_id}/cancel

    Parameters

    Parameters: cancel_appointment
    NameTypeDescription
    appointment_id string required string Appointment ID from list_appointments.
    reason string string Cancellation reason.

    Example input

    {
      "appointment_id": "appointment_8c41d2"
    }

    Example response

    {
      "appointment_id": "A-73120",
      "status": "Cancelled",
      "reason": "Client request"
    }

Clients4

Search matches name, mobile and email, so a returning client is found before a duplicate is made. Notes are for your team only.

  • list_clients Clients, searchable by name, phone or email. read

    Returns clients with ID, contact details and last visit. Pass the client_id to get_client or book_appointment.

    MCP callphorest_read → list_clients

    REST endpointGET https://cotlet.dev/api/v1/phorest/clients

    Parameters

    Parameters: list_clients
    NameTypeDescription
    query string string Name, mobile or email.
    not_visited_days integer integer Only clients with no visit in this many days.
    page integer integer Page number. Default: 1.

    Example response

    {
      "clients": [
        {
          "client_id": "CL-40192",
          "name": "Sophie Walsh",
          "mobile": "+353 85 555 0142",
          "email": "sophie@example.com",
          "last_visit": "2026-09-30"
        }
      ],
      "page": 1
    }
  • get_client One client with visit history, notes and upcoming bookings. read

    Returns the client record: contact details, notes, past services with staff and dates, and upcoming appointments.

    MCP callphorest_read → get_client

    REST endpointGET https://cotlet.dev/api/v1/phorest/clients/{client_id}

    Parameters

    Parameters: get_client
    NameTypeDescription
    client_id string required string Client ID from list_clients.

    Example input

    {
      "client_id": "client_8c41d2"
    }

    Example response

    {
      "client_id": "CL-40192",
      "name": "Sophie Walsh",
      "notes": "Colour formula 6.3 + 20 vol",
      "history": [
        {
          "service": "Full head colour",
          "staff": "Aoife",
          "date": "2026-09-30"
        }
      ],
      "upcoming": []
    }
  • create_client Adds a new client. write

    Creates the client record. Search list_clients first so a returning client does not become a duplicate. Reaches no one, so it runs at once.

    MCP callphorest_write → create_client

    REST endpointPOST https://cotlet.dev/api/v1/phorest/clients

    Parameters

    Parameters: create_client
    NameTypeDescription
    first_name string required string First name.
    last_name string required string Last name.
    mobile string string Mobile number.
    email string string Email.

    Example input

    {
      "first_name": "first name",
      "last_name": "last name"
    }

    Example response

    {
      "client_id": "CL-40311",
      "name": "Emma Byrne",
      "mobile": "+353 87 555 0199"
    }
  • add_client_note Adds a note to a client record. write

    Appends a note, for example a colour formula or a preference. Visible to your team only, so it runs at once.

    MCP callphorest_write → add_client_note

    REST endpointPOST https://cotlet.dev/api/v1/phorest/clients/{client_id}/note

    Parameters

    Parameters: add_client_note
    NameTypeDescription
    client_id string required string Client ID from list_clients.
    note string required string Note text.

    Example input

    {
      "client_id": "client_8c41d2",
      "note": "note"
    }

    Example response

    {
      "client_id": "CL-40192",
      "note_added": "Prefers Saturday mornings"
    }

Services1

The service menu with durations and prices, so bookings use your exact service names.

  • list_services Your service menu with durations and prices. read

    Returns services by category with duration and price, so the agent books the exact service name.

    MCP callphorest_read → list_services

    REST endpointGET https://cotlet.dev/api/v1/phorest/services

    Parameters

    Parameters: list_services
    NameTypeDescription
    category string string Service category.

    Example response

    {
      "services": [
        {
          "name": "Cut and blow dry",
          "category": "Hair",
          "duration_min": 60,
          "price": "55.00"
        }
      ]
    }
Encrypted, revocable

Who can see my Phorest session, and how do I revoke it?

  • What we store

    Your signed-in Phorest profile, AES-256-GCM encrypted, in Finland. No password.

  • What your agent gets

    The 10 Phorest tools, never the session cookie.

  • What the session sees

    What your login sees: calendar, clients, notes, services.

  • What no tool touches

    Card payments, sales, payroll, marketing sends, deletes.

  • If Phorest signs you out

    You sign in again yourself, in the same Cloud Browser.

  • How to cut access

    Disable for agents, reset the browser, or change your Phorest password.

Cotlet never types your password: you sign in yourself, and the agent only uses the session. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).

Tested every 12 h

What happens when Phorest changes? We repair the tool; your prompts stay the same.

between tests of the Phorest reads
12 h
between tests of sends a customer would notice
24 h
for a call to a Phorest tool paused for repair
$0

When Phorest moves a button on the appointment screen or renames a calendar view, we fix the tool and your agent calls it the same way. status.cotlet.dev checks the site, console and API every 3 minutes.

3 tools ask first

Approvals, undo and mistakes Customers get nothing until you say so.

  1. 01 Reads tomorrow's appointments For the stylist who is off.
  2. 02 Finds free slots With other stylists who offer the same service.
  3. 03 Proposes the moves And lists what does not fit.
  4. 04 Waits, then moves The batch shows up in your Cotlet console first.
Which Phorest actions can be undone
ActionUndo
Book an appointmentYes, cancel it
Move an appointmentMove it back; a reminder already sent stays sent
Cancel an appointmentBook it again
Add a client or noteYes, edit it in Phorest

3 of 10 tools ask first: book_appointment, reschedule_appointment, cancel_appointment. A new client or a client note reach no customer, so they run at once. You can turn the wait off per tool once you trust a routine.

MCP call
{
  "name": "book_appointment",
  "arguments": {
    "client_id": "CL-40192",
    "service": "Cut and blow dry",
    "staff": "Aoife",
    "start": "2026-11-13T14:30"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/phorest/clients/CL-40192/appointments \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service":"Cut and blow dry","staff":"Aoife","start":"2026-11-13T14:30"}'
Response
{
  "appointment_id": "A-73188",
  "client": "Sophie Walsh",
  "service": "Cut and blow dry",
  "staff": "Aoife",
  "start": "2026-11-13T14:30",
  "status": "Booked"
}

A cron job or n8n flow can call the same tools over REST at /api/v1/phorest with the same key and price, in JSON. Failed calls are free. Each tool row above shows its REST path.

Pay per call

How much does the Phorest MCP server cost?

About $46 a monthfor a salon with 5 stylists, 7,940 credits. Your Phorest plan stays as it is.

A month of Phorest front desk work for a 5-stylist salon, in credits
JobCallsCredits
Booking from a message3 × 1203,600
Appointment moved3 × 401,200
Tomorrow's book checked1 × 26260
Clients due back, weekly12 × 4480
New client with a note3 × 30900
Cloud Browser, 30 days1,500
Total7,940
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Works on your current Phorest plan

Phorest publishes no booking counts, so the month is our example. Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Phorest MCP server on GitHub, Zapier or hosted: which to use The API needs Support and a developer.

Other ways to connect Phorest, checked 8 Nov 2026
OptionWhat it doesWhere it stops
Phorest APIAppointments, clients and services for your own developer.Credentials through Phorest Support; no webhooks; you build and host the code.
Third-party bridgesHosted connections to ChatGPT and Claude built on the API.Need the same Phorest API credentials first.
By handEvery screen of Phorest, one booking at a time.Your front desk's time.

If you already have Phorest API credentials and a developer, building on the API is cheaper for simple reads. To book and reschedule from ChatGPT or Claude this week, Cotlet works in the Phorest account you already have.

Phorest MCP setup on GitHub and PyPI

Prefer code? Our public repo has a ready Phorest MCP config for Claude Code, ChatGPT and Cursor, an agent skill and a small command-line tool. Add your Cotlet API key and your agent works in your own Phorest account.

cotlet-connect/phorest-mcp
  • MCP config for Claude Code, Cursor and Codex
  • Agent skill and Cursor rules for Phorest
  • Clone it and run, Python standard library only
  • Elastic License 2.0, free in your own business
EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), in business since 2019, led by its founders Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Phorest tools go to contact@cotlet.dev.

Phorest MCP server: questions

How do I get access?

Sign up free at https://cotlet.dev, open Phorest under Integrations in the console and sign in to Phorest in its Cloud Browser. The trial starts with your first app and asks for no card.

How do I connect Phorest to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Phorest once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Phorest account through Cotlet, in their phone apps too.

What can ChatGPT do in Phorest?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Phorest: book appointments from messages; reschedule a sick stylist's day; find clients due for a visit. You ask in plain words, and anything that reaches other people waits for your OK first.

Is there an official ChatGPT or Claude app for Phorest?

No. Phorest has no ChatGPT or Claude connector of its own and Phorest has no official MCP server (checked 8 Nov 2026). Cotlet is an independent one that works in ChatGPT, Claude, Cursor and any MCP client, on your signed-in account.

Can ChatGPT book appointments in Phorest?

Yes, with Cotlet. ChatGPT finds the client, checks free slots for the service and books it with the stylist you name. Booking waits for your OK by default.

Can ChatGPT reschedule appointments in Phorest?

Yes, with Cotlet. ChatGPT moves an appointment to a new time or another stylist, for example when someone is off sick, after your OK.

Can ChatGPT find clients in Phorest?

Yes, with Cotlet. ChatGPT searches clients by name, mobile or email and reads their visit history and notes, for example to find colour clients due back.

Do I need Phorest API credentials to use Cotlet?

No. Cotlet works through your own Phorest login, so you do not need credentials from Phorest Support or a development team. It can do what your login can do in Phorest.

Does it send booking reminders?

Phorest sends its own reminders and confirmations by your settings. A booking the agent makes is a normal Phorest booking, so the same reminders go out.

Is the MCP server different from the REST API?

Only in how it is called. Both carry the same 10 tools, inputs, answers, API key and price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with Phorest?

No. Cotlet is independent and not affiliated with Phorest.

Hand the Phorest front desk to your agent.

Free 7-day trial with 2,000 credits, no card needed.