# MyTime MCP

> MyTime connects your business operations to your AI agent. It lets you manage staff schedules, check customer history, list inventory products, and track appointments—all through natural conversation. Forget jumping between the portal and Slack; just ask your agent for the current day's schedule or John Doe’s availability next week. It handles multi-location data retrieval so you can run operations from a single chat window.

## Overview
- **Category:** customer-relationship-management
- **Price:** Free
- **Tags:** appointment-booking, staff-management, service-scheduling, point-of-sale, customer-management, business-operations

## Description

Listen up. This server connects your whole operation—the stuff running in the background of MyTime—straight to your AI agent. You don't gotta jump between ten different screens just to check a booking or see what stock you got. Your agent handles all that messy data retrieval through natural conversation.

### Staffing and Scheduling

If you need to know who’s working, you ask for the roster using `list_staff`, and it gives you every employee directory entry along with their specific roles and permissions. Need to check if someone's free? You use `get_availability` to see open time slots for a staff member or even just by service type, based on dates you give it. When you know who’s available, you can list all appointments using `list_appointments`, giving you every booking scheduled across your entire business within a date range you specify.

For the details on one specific gig, you use `get_appointment` to pull up all the fine points of a single booked appointment. If you gotta know what services you offer and how much they cost, run `list_services`; it lists every service type your business provides, including its standard price and duration. You can also check out your merchandise catalog using `list_products`, which pulls the full list and pricing for every retail good you sell.

### Client Management and Locations

You gotta keep track of who's buying stuff. If you need a searchable directory of registered clients, use `list_customers`; it retrieves all customer profiles in the system so your agent can find them fast. If your business operates in more than one spot, you run `list_locations` to get a list of every physical branch or location managed by the company. When dealing with customers, the tool also lets your agent pull recent feedback using `list_reviews`, giving you key data points on what clients are saying.

### Operational Overview

Want the big picture? Use `get_business_info` to get basic, high-level operational details about the entire business structure. You can also run `list_services` and `list_products` together to view your full offerings—your services and goods catalog—from one chat window.

Basically, you tell your agent what you need—whether it's checking if John is free Tuesday afternoon, listing every item in the stockroom, or pulling up all client names from last month. The server runs the specific API calls using your credentials, grabs the structured data (JSON), and hands it back to your agent so it can talk to you in plain English. It’s a single conversation for multi-location data retrieval.

## Tools

### get_appointment
Gets all the specific details for one single scheduled appointment.

### get_availability
Checks open time slots for a specified staff member or service type.

### get_business_info
Pulls basic, high-level information about the entire business.

### list_appointments
Lists all appointments scheduled across your business for a given date range.

### list_customers
Retrieves a searchable list of all registered customers in the system.

### list_locations
Provides a directory listing of every physical branch or location managed by the company.

### list_products
Fetches the full catalog list and pricing for all retail products sold.

### list_reviews
Retrieves recent customer reviews and feedback data points.

### list_services
Lists every service type offered by the business, including durations and standard pricing.

### list_staff
Retrieves a directory of all staff members and their associated roles/permissions.

## Prompt Examples

**Prompt:** 
```
Show me today's appointment schedule.
```

**Response:** 
```
I've retrieved today's schedule. You have 6 appointments: 3 for Haircuts, 2 for Manicures, and 1 for a Consultation. Shall I give you the details for the first one?
```

**Prompt:** 
```
Check if staff member 'John Doe' is available for a 'Full Massage' this Friday.
```

**Response:** 
```
Searching availability... John Doe has 3 open slots this Friday: 10:00 AM, 1:30 PM, and 4:00 PM. Would you like to see the customer details for anyone on his waitlist?
```

**Prompt:** 
```
List all our retail products and prices.
```

**Response:** 
```
I've fetched your product catalog. You have 15 items in stock, including 'Premium Shampoo' ($25.00), 'Argan Oil' ($30.00), and others. Shall I check the current inventory levels for any of these?
```

## Capabilities

### Get Appointment Details
Retrieves specific information about a single scheduled appointment.

### Check Staff Availability
Determines open time slots for staff members based on requested dates and services.

### Get Business Overview
Pulls high-level data points about the overall business structure and operations.

### List Scheduled Appointments
Retrieves a full list of all appointments within a specified time frame or location.

### List Business Customers
Provides a searchable list of registered business customers and their associated profiles.

### Locate Branches
Returns a comprehensive list of all physical locations managed by the business.

### List Products & Services
Retrieves the full catalog of retail goods and available services offered.

## Use Cases

### Client Inquiry: When a customer asks about availability.
The client calls in. Instead of manually checking the staff calendar, the agent runs `get_availability` for the specific provider and service requested. The response is immediate: 'John Doe has 10:30 AM or 2:00 PM open today.' Problem solved before the customer hangs up.

### Daily Ops Check: Running a staff capacity report.
The operations manager needs to know if the team is overbooked. They ask the agent to cross-reference `list_appointments` against `list_staff`. The system flags any potential conflicts or gaps in coverage for the week.

### New Product Launch: Checking inventory and training staff.
A product manager needs to know if they have enough 'Premium Shampoo' (via `list_products`) before a big weekend. They check the stock, then use `list_staff` to confirm which employees need retraining on the new items.

### Support Follow-up: Verifying customer status.
A support agent needs context for a returning client. They ask the agent to look up the client using `list_customers`, then immediately pull their most recent review via `list_reviews` to guide the conversation.

## Benefits

- Saves time checking staff availability. Instead of logging into a calendar system to check John Doe's schedule, you just ask the agent to run `get_availability` for him next Friday. You get the open slots immediately.
- Reduces manual data lookups. Need a customer’s history? The agent runs `list_customers`, giving you their profile details and linking them directly to past services or reviews from `list_reviews`. No copy-pasting IDs needed.
- Handles multi-site complexity. You can check staffing or inventory across all branches (using `list_locations` context) without running separate queries for every single physical location.
- Centralizes catalog data. Get a complete picture of what you sell—from services via `list_services` to retail goods using `list_products`. It’s one query, not two different systems.
- Speeds up operations oversight. Instead of sifting through spreadsheets, the agent runs `list_appointments`, summarizing today's schedule and grouping appointments by service type instantly.

## How It Works

The bottom line is: You talk to your agent like a human coworker; it talks to the API like an internal script.

1. Subscribe to this server using your MyTime Partner API Key. This key authenticates your agent against your business data.
2. Your AI client sends a natural language request (e.g., 'Who is available today?'). The agent maps this intent to the correct tool (e.g., `get_availability`).
3. The server executes the function, pulls the live data from MyTime's backend, and returns structured JSON output that your AI client reads aloud.

## Frequently Asked Questions

**How do I check staff availability using get_availability?**
You ask your agent for the specific staff member and service, plus the date range (e.g., 'Is Jane available for a manicure next Tuesday?'). The tool returns open time slots so you know exactly when they can take bookings.

**Can list_appointments handle multiple locations?**
Yes. If you specify the location using `list_locations`, the agent narrows the search, ensuring you only see appointments relevant to that specific branch or site.

**What is the difference between get_appointment and list_appointments?**
Use `list_appointments` when you need a summary of many bookings (e.g., 'Show me all appointments today'). Use `get_appointment` only if you already know the specific appointment ID and just need its detailed record.

**Does list_customers give me payment history?**
No, it gives you a profile lookup. It lists business customers and their basic contact/service history, but financial or payment transaction details require separate integration.

**When using `get_business_info`, what specific credentials must I provide?**
The function requires your MyTime Partner API Key for authentication. This key authorizes your agent to read high-level business metrics, such as total locations and overall revenue summaries.

**How can I narrow the search when calling `list_products`?**
You pass filters directly into the `list_products` tool. You should specify product categories (e.g., 'Shampoo') or minimum stock counts in the request payload to focus results.

**Does `list_reviews` allow filtering by date range or star rating?**
Yes, you can narrow the scope of `list_reviews` using specific parameters. You should pass start and end dates, or request reviews that meet a minimum star rating (1-5).

**What data fields does the response include when I call `list_staff`?**
The response from `list_staff` includes the staff member's name, unique ID, primary role, and current employment status. This lets your agent verify who is active before scheduling.

**How do I get a MyTime Partner API Key?**
The MyTime Partner API is a restricted service. You must contact MyTime support or your account manager to have API access enabled for your business and receive your unique key.

**Can I check availability for a specific professional?**
Yes! Use the `get_availability` tool with the professional's Staff ID and the target Service ID to see open slots.

**Does this support multiple business locations?**
Yes. The `list_locations` tool will retrieve all branches associated with your account, and other tools will return data relevant to your entire business scope.