- Added 97 tools across 15 domains (jobs, clients, quotes, invoices, scheduling, team, expenses, products, requests, reporting, properties, timesheets, line-items, forms, taxes) - Created 15 React apps with dark theme (job-board, job-detail, client-dashboard, client-detail, quote-builder, invoice-dashboard, schedule-calendar, visit-tracker, expense-manager, timesheet-grid, request-inbox, form-builder, property-map, financial-dashboard, team-overview) - Each app includes App.tsx, index.html, main.tsx, vite.config.ts - Updated tsconfig.json with jsx: react-jsx - Created main.ts entry point - Updated server.ts to include all tool domains - Comprehensive README with full documentation - TypeScript compilation passes cleanly
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
- Appointment Dashboard - Overview dashboard with stats and upcoming appointments
- Appointment Detail - Detailed view of individual appointments
- Appointment Grid - Filterable table view of all appointments
- Availability Calendar - Interactive calendar showing available time slots
- Client Directory - Searchable directory of all clients
- Client Detail - Comprehensive client profiles with appointment history
- Calendar Manager - Manage staff calendars and settings
- Product Catalog - Browse products, packages, and add-ons
- Form Responses - View and manage intake form submissions
- Label Manager - Create and manage appointment labels
- Coupon Manager - Create and track promotional coupons
- Booking Flow - Interactive multi-step booking interface
- Schedule Overview - Week-view schedule across all calendars
- Blocked Time Manager - Manage blocked time slots and staff availability
Installation
npm install
npm run build
Configuration
Create a .env file with your Acuity Scheduling credentials:
# 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
- Log in to your Acuity Scheduling account
- Go to Business Settings → Integrations → API
- 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):
{
"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
npm start
API Reference
Authentication
The server supports two authentication methods:
- Basic Auth (recommended): Uses User ID and API Key
- OAuth2: Uses OAuth2 access token
Tool Examples
List Appointments
{
"tool": "acuity_list_appointments",
"arguments": {
"minDate": "2024-01-01",
"maxDate": "2024-01-31",
"calendarID": 1
}
}
Create Appointment
{
"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
{
"tool": "acuity_get_availability_times",
"arguments": {
"appointmentTypeID": 1,
"date": "2024-01-15"
}
}
MCP Apps
Access interactive apps through MCP resources:
acuity://apps/appointment-dashboardacuity://apps/availability-calendaracuity://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
# 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