# Phorest MCP

> Phorest MCP Server manages salon or spa operations—including client details, staff timetables, and appointments—directly through your AI agent. It lets you list clients, update bookings, check in patrons, and manage staff breaks using natural conversation.

## Overview
- **Category:** customer-relationship-management
- **Price:** Free
- **Tags:** salon-management, appointment-booking, spa-software, client-management, staff-scheduling

## Description

# Phorest Management via MCP Server

Connect your Phorest account to any compatible AI agent. You'll use this server to handle day-to-day salon or spa business operations without opening a single desktop application. This toolset exposes core functions for managing client data, scheduling appointments, and tracking staff resources, letting you talk through complex tasks with natural conversation.

### Client Profiles and Data Management

You can manage the full lifecycle of your customer records. If you gotta add a brand-new person to the books, use **`create_client`** to log their details immediately. Need to correct an address or phone number? Just hit up **`update_client`**. For existing clients, you'll always have access to their history; run **`list_client_courses`** to see all available packages and options, then use **`get_client_course`** to pull detailed records on a specific client’s past treatments or service package history. You don't gotta keep paper files for anything.

### Appointments and Check-Ins

The booking process is totally covered. To get a full picture of what's booked, you can run **`list_appointments`** to see every scheduled slot across the entire branch or within a date range. If you only need details on one specific time slot, use **`get_appointment`**. You gotta confirm those bookings? Use **`confirm_appointments`** to lock in multiple appointments at once. When a client walks through the door, mark them as present immediately using **`checkin_appointment`**. And if things change—maybe they need to swap services or reschedule completely—you can modify an existing booking with **`update_appointment`**.

### Staff Scheduling and Breaks

You'll maintain total visibility over your team. To check the general work schedule for every staff member at a specific location, use **`get_branch_timetable`**. For just one person, pull their individual hours using **`get_staff_timetable`**. You can also get a list of all current breaks logged by staff with **`list_breaks`**, or you can log a break period into the system for an employee when they step away from work using **`create_break`**.

### Reporting and Exporting Data

For your accounting or marketing reports, this server handles data extraction. To start generating a massive CSV file containing business data, use **`create_csv_export_job`**. If you need to know if that export job is done or where the download link is, run **`get_csv_export_job`**.

This system gives your AI client total operational control. You manage clients, schedules, and inventory reporting without ever needing to log into the Phorest desktop program.

## Tools

### checkin_appointment
Marks a client as present for an appointment.

### confirm_appointments
Confirms one or more scheduled appointments in the system.

### create_break
Logs a staff member's break time into the schedule.

### create_client
Adds a brand new client record to the system.

### create_csv_export_job
Initiates an export job, queuing up data for CSV download later.

### get_appointment
Retrieves full details for a single specific appointment time slot.

### get_branch_timetable
Gets the work schedule and hours for all staff at a specific branch location.

### get_client_course
Retrieves detailed records about one client's treatment package or course history.

### get_csv_export_job
Checks the status and provides the download link for a previously requested CSV export job.

### get_staff_timetable
Retrieves the work schedule for all staff members at a specific branch.

### list_appointments
Lists all scheduled appointments for a given branch or date range.

### list_breaks
Retrieves a list of currently logged staff breaks.

### list_client_courses
Lists all available treatment packages or course options for clients.

### list_clients
Retrieves a list of all existing client records within the business.

### update_appointment
Modifies details for an existing booking, like changing the time or service type.

### update_client_course
Updates a client's package status, such as extending an expiry date.

### update_client
Edits basic information (contact details) on a client's profile.

## Prompt Examples

**Prompt:** 
```
List all clients for business ID 12345.
```

**Response:** 
```
I've retrieved the client list for business 12345. I found 50 clients on the first page, including 'Jane Doe' and 'John Smith'. Would you like to see more details for a specific client?
```

**Prompt:** 
```
Show me the appointments for branch 678 today.
```

**Response:** 
```
Fetching appointments for branch 678... There are 12 appointments scheduled for today. The next one is a 'Full Hair Color' at 2:00 PM for client ID 9988.
```

**Prompt:** 
```
Get the timetable for staff member 5544 in branch 678.
```

**Response:** 
```
Accessing staff timetable... Staff member 5544 is working from 9:00 AM to 6:00 PM today with a break scheduled at 1:00 PM. They have 3 available slots remaining.
```

## Capabilities

### Client Registration
Create a new client record or update existing details for any customer.

### Appointment Status Management
List, retrieve specific details, confirm, or check in clients for their scheduled appointments.

### Staff Time Tracking
View the work schedules and breaks for staff members across a branch.

### Client History Lookup
Fetch detailed records of a client's past treatments or service packages.

### Data Reporting
Start data export jobs to generate CSV files for business reporting and analysis.

## Use Cases

### The Day-of Emergency Check-in
A receptionist needs to quickly process a client who is running late. Instead of finding the appointment in the calendar, manually checking their file, and then marking them present, they just tell their agent: 'Check in Jane Doe for her 2 PM color.' The agent uses `checkin_appointment` and the task is done instantly.

### Post-Service Follow-up
A business analyst needs to know if a client's promotional package expired. They prompt their agent: 'What courses are active for Client ID 123?' The agent runs `get_client_course`, providing the expiry date and allowing staff to use `update_client_course` if it needs extension.

### Morning Staff Huddle Prep
The salon owner arrives early. Instead of logging into the app, they ask: 'Who is working today in Branch 789?' The agent runs `get_branch_timetable`, providing a full list of staff and their hours, letting them adjust shifts before anyone walks in.

### End-of-Month Reporting
The office manager needs to analyze all appointments from the last quarter. They command: 'Create a CSV export job for all bookings.' The agent runs `create_csv_export_job`, and later, they check the status using `get_csv_export_job` to download the clean dataset.

## Benefits

- Check a client's full treatment history instantly using `get_client_course`, eliminating manual record searches for packages or services. You see exactly what they received last time.
- Never miss an update: Use `update_appointment` and `confirm_appointments` to modify bookings—rescheduling, adding notes, or confirming status—without navigating deep into the web portal.
- Staffing management is simple. Get a clear view of who's working today using `get_branch_timetable`, then log breaks with `create_break`. You track availability in one go.
- Client data integrity matters. Use `update_client` to fix misspelled names or phone numbers on a client record, keeping your CRM clean and current.
- Stop manually compiling reports. Trigger an export job using `create_csv_export_job`, then check its status later with `get_csv_export_job`. The data comes directly to you.

## How It Works

The bottom line is: you talk to your AI client; it talks to Phorest's tools; you get the actionable data back.

1. Subscribe to the Phorest server and enter your required API credentials (Username/Password).
2. Direct your AI client to execute a task, like listing all appointments for today using `list_appointments`.
3. The server runs the function against Phorest and returns structured data—like confirming 12 appointments or providing a list of clients.

## Frequently Asked Questions

**How do I check a client's history using get_client_course?**
The `get_client_course` tool retrieves the specific details of a client's package or treatment course. You give it the client ID, and it returns their full service history.

**Can I schedule staff breaks using create_break?**
Yes, `create_break` logs a staff member’s break time directly into the system's timetable. This ensures that scheduling tools know when they are unavailable.

**What is the difference between list_appointments and get_appointment?**
`list_appointments` gives you an overview, showing many appointments for a branch. `get_appointment` dives deeper, giving full details on just one specific booking slot.

**How do I export data to CSV using create_csv_export_job?**
You run `create_csv_export_job` first. This doesn't give you the file instantly; it just queues the job. You must then use `get_csv_export_job` later to check the status and get the download link.

**Do I need to know the client ID for update_client?**
Yes, while you can ask by name, using the client ID is more reliable. The tool requires specific identifiers to ensure you modify the correct record and maintain data integrity.

**Does `create_client` require specific permissions or credentials?**
Yes, your AI agent needs valid Phorest API credentials to perform this action. The system uses these credentials to authenticate against your business account, ensuring the client record is created in real time.

**What happens if I use `update_appointment` and the data has changed?**
The tool requires a version field for optimistic locking. If another user updated the appointment after you retrieved it, the update will fail. Your agent must detect this failure and prompt you for fresh information.

**How do I check staff availability using `get_staff_timetable`?**
This tool retrieves the full work schedule for specified staff members at a branch. It lists working hours, scheduled breaks, and shows available slots, letting your agent confirm who is free before booking.

**Can I check in a client for their appointment using the AI?**
Yes! Use the `checkin_appointment` tool with the Business ID, Branch ID, and Appointment ID. The agent will process the check-in immediately.

**How do I see a specific staff member's schedule?**
You can use the `get_staff_timetable` tool. Just provide the Business ID, Branch ID, and Staff ID to see their working hours and availability.

**Is it possible to export client data to CSV?**
Yes, you can initiate an export using `create_csv_export_job` and then retrieve the status or file using `get_csv_export_job`.