- Full API client with Basic Auth and OAuth2 support - 40+ tools across 10 categories (appointments, availability, clients, calendars, products, forms, labels, webhooks, coupons, blocks) - 14 interactive React-based MCP apps for rich UI experiences - Comprehensive error handling and pagination - TypeScript implementation with full type definitions - Complete documentation and examples
222 lines
5.2 KiB
Markdown
222 lines
5.2 KiB
Markdown
# Acuity Scheduling MCP Server
|
|
|
|
A comprehensive Model Context Protocol (MCP) server for Acuity Scheduling API integration.
|
|
|
|
## Features
|
|
|
|
### 40+ Tools Across 10 Categories
|
|
|
|
- **Appointments** (8 tools): List, get, create, update, cancel, reschedule, list types, get type
|
|
- **Availability** (4 tools): Get dates, get times, get classes, check availability
|
|
- **Clients** (5 tools): List, get, create, update, delete
|
|
- **Calendars** (4 tools): List, get, create, update
|
|
- **Products** (6 tools): List products by type (add-ons, packages, subscriptions, gift certificates)
|
|
- **Forms** (3 tools): List forms, get fields, get intake form responses
|
|
- **Labels** (5 tools): List, create, delete, add to appointment, remove from appointment
|
|
- **Webhooks** (3 tools): List, create, delete
|
|
- **Coupons** (5 tools): List, get, create, update, delete
|
|
- **Blocks** (3 tools): List, create, delete time blocks
|
|
|
|
### 14 Interactive MCP Apps
|
|
|
|
1. **Appointment Dashboard** - Overview dashboard with stats and upcoming appointments
|
|
2. **Appointment Detail** - Detailed view of individual appointments
|
|
3. **Appointment Grid** - Filterable table view of all appointments
|
|
4. **Availability Calendar** - Interactive calendar showing available time slots
|
|
5. **Client Directory** - Searchable directory of all clients
|
|
6. **Client Detail** - Comprehensive client profiles with appointment history
|
|
7. **Calendar Manager** - Manage staff calendars and settings
|
|
8. **Product Catalog** - Browse products, packages, and add-ons
|
|
9. **Form Responses** - View and manage intake form submissions
|
|
10. **Label Manager** - Create and manage appointment labels
|
|
11. **Coupon Manager** - Create and track promotional coupons
|
|
12. **Booking Flow** - Interactive multi-step booking interface
|
|
13. **Schedule Overview** - Week-view schedule across all calendars
|
|
14. **Blocked Time Manager** - Manage blocked time slots and staff availability
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Create a `.env` file with your Acuity Scheduling credentials:
|
|
|
|
```bash
|
|
# Required
|
|
ACUITY_USER_ID=your_user_id
|
|
ACUITY_API_KEY=your_api_key
|
|
|
|
# Optional (for OAuth2)
|
|
ACUITY_OAUTH2_TOKEN=your_oauth2_token
|
|
```
|
|
|
|
### Getting API Credentials
|
|
|
|
1. Log in to your Acuity Scheduling account
|
|
2. Go to Business Settings → Integrations → API
|
|
3. Enable API access and copy your User ID and API Key
|
|
|
|
## Usage
|
|
|
|
### As MCP Server
|
|
|
|
Add to your MCP client configuration (e.g., Claude Desktop):
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"acuity-scheduling": {
|
|
"command": "node",
|
|
"args": ["/path/to/acuity-scheduling/dist/main.js"],
|
|
"env": {
|
|
"ACUITY_USER_ID": "your_user_id",
|
|
"ACUITY_API_KEY": "your_api_key"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Standalone
|
|
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
## API Reference
|
|
|
|
### Authentication
|
|
|
|
The server supports two authentication methods:
|
|
|
|
1. **Basic Auth** (recommended): Uses User ID and API Key
|
|
2. **OAuth2**: Uses OAuth2 access token
|
|
|
|
### Tool Examples
|
|
|
|
#### List Appointments
|
|
|
|
```json
|
|
{
|
|
"tool": "acuity_list_appointments",
|
|
"arguments": {
|
|
"minDate": "2024-01-01",
|
|
"maxDate": "2024-01-31",
|
|
"calendarID": 1
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Create Appointment
|
|
|
|
```json
|
|
{
|
|
"tool": "acuity_create_appointment",
|
|
"arguments": {
|
|
"appointmentTypeID": 1,
|
|
"datetime": "2024-01-15T10:00:00",
|
|
"firstName": "John",
|
|
"lastName": "Doe",
|
|
"email": "john@example.com",
|
|
"phone": "555-1234"
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Get Availability
|
|
|
|
```json
|
|
{
|
|
"tool": "acuity_get_availability_times",
|
|
"arguments": {
|
|
"appointmentTypeID": 1,
|
|
"date": "2024-01-15"
|
|
}
|
|
}
|
|
```
|
|
|
|
## MCP Apps
|
|
|
|
Access interactive apps through MCP resources:
|
|
|
|
- `acuity://apps/appointment-dashboard`
|
|
- `acuity://apps/availability-calendar`
|
|
- `acuity://apps/client-directory`
|
|
- And 11 more...
|
|
|
|
Each app provides a rich, interactive UI for managing different aspects of your Acuity Scheduling account.
|
|
|
|
## Architecture
|
|
|
|
```
|
|
src/
|
|
├── clients/
|
|
│ └── acuity.ts # API client with auth & pagination
|
|
├── tools/
|
|
│ ├── appointments-tools.ts
|
|
│ ├── availability-tools.ts
|
|
│ ├── clients-tools.ts
|
|
│ ├── calendars-tools.ts
|
|
│ ├── products-tools.ts
|
|
│ ├── forms-tools.ts
|
|
│ ├── labels-tools.ts
|
|
│ ├── webhooks-tools.ts
|
|
│ ├── coupons-tools.ts
|
|
│ └── blocks-tools.ts
|
|
├── types/
|
|
│ └── index.ts # TypeScript type definitions
|
|
├── ui/
|
|
│ └── react-app/ # 14 interactive MCP apps
|
|
├── server.ts # MCP server implementation
|
|
└── main.ts # Entry point
|
|
```
|
|
|
|
## Development
|
|
|
|
```bash
|
|
# Build
|
|
npm run build
|
|
|
|
# Watch mode
|
|
npm run dev
|
|
|
|
# Run server
|
|
npm start
|
|
```
|
|
|
|
## Error Handling
|
|
|
|
The server includes comprehensive error handling:
|
|
|
|
- API rate limit detection
|
|
- Network error retries
|
|
- Invalid credential detection
|
|
- Missing required parameters validation
|
|
|
|
## Rate Limits
|
|
|
|
Acuity Scheduling API has rate limits. The client handles:
|
|
|
|
- Automatic pagination for large result sets
|
|
- Error responses with status codes
|
|
- Request throttling (if needed)
|
|
|
|
## Support
|
|
|
|
For issues or questions:
|
|
|
|
- Acuity Scheduling API Documentation: https://developers.acuityscheduling.com/
|
|
- MCP Documentation: https://modelcontextprotocol.io/
|
|
|
|
## License
|
|
|
|
MIT
|
|
|
|
## Version
|
|
|
|
1.0.0
|