# Acuity Scheduling MCP Server A comprehensive Model Context Protocol (MCP) server for Acuity Scheduling, providing full API integration with 59 tools and 12 interactive React applications. ## Features ### 🛠️ 59 MCP Tools Complete CRUD operations across all Acuity Scheduling domains: - **Appointments** (6 tools): List, get, create, update, cancel, reschedule - **Calendars** (2 tools): List, get - **Appointment Types** (5 tools): List, get, create, update, delete - **Clients** (5 tools): List, get, create, update, delete - **Availability** (2 tools): Get available dates and times - **Blocks** (5 tools): List, get, create, update, delete (block out time) - **Products** (5 tools): List, get, create, update, delete - **Certificates** (4 tools): List, get, create, delete (gift certificates) - **Coupons** (5 tools): List, get, create, update, delete - **Forms** (5 tools): List, get, create, update, delete (intake forms) - **Labels** (5 tools): List, get, create, update, delete - **Packages** (5 tools): List, get, create, update, delete - **Subscriptions** (5 tools): List, get, create, update, delete ### 🎨 12 React Applications Modern, dark-themed UI applications: 1. **Appointment Calendar** - View and manage daily/weekly appointments 2. **Appointment Detail** - Detailed view of individual appointments 3. **Client Directory** - Browse and search all clients 4. **Client Detail** - Complete client profile with appointment history 5. **Availability Manager** - Manage available time slots and blocks 6. **Product Catalog** - View and manage products/services 7. **Certificate Viewer** - Manage gift certificates 8. **Coupon Manager** - Create and track discount coupons 9. **Form Builder** - Design and manage intake forms 10. **Analytics Dashboard** - Business insights and metrics 11. **Booking Flow** - End-to-end appointment booking experience 12. **Schedule Overview** - Weekly schedule summary and revenue tracking ## Installation ```bash npm install ``` ## Configuration Set the following environment variables: ```bash export ACUITY_USER_ID="your_acuity_user_id" export ACUITY_API_KEY="your_acuity_api_key" ``` You can find your User ID and API Key in your Acuity Scheduling account under: **Business Settings → Integrations → API** ## Usage ### As MCP Server Build and start the server: ```bash npm run build npm start ``` ### With Claude Desktop Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS): ```json { "mcpServers": { "acuity": { "command": "node", "args": ["/path/to/acuity-scheduling-mcp-server/dist/main.js"], "env": { "ACUITY_USER_ID": "your_user_id", "ACUITY_API_KEY": "your_api_key" } } } } ``` ### Development Watch mode for TypeScript: ```bash npm run dev ``` Type checking without building: ```bash npm run typecheck ``` ### Running React Apps Each React app can be run independently using Vite: ```bash cd src/ui/react-app/src/apps/appointment-calendar npm install npm run dev ``` ## Architecture ### API Client The `AcuityClient` class (`src/clients/acuity.ts`) handles: - Basic Authentication (userId + API key) - Request/response handling - Error handling - Pagination support ### Tools Each domain has its own tool file in `src/tools/`: - Standardized input schemas - Proper error handling - Type-safe operations ### Type System Complete TypeScript definitions in `src/types/index.ts` covering: - Request/response types - API entities - Client configuration ## API Reference ### Example Tool Calls **List appointments:** ```typescript { "name": "acuity_list_appointments", "arguments": { "minDate": "2024-01-01", "maxDate": "2024-01-31", "max": 100 } } ``` **Create appointment:** ```typescript { "name": "acuity_create_appointment", "arguments": { "appointmentTypeID": 123, "datetime": "2024-01-15T14:00:00", "firstName": "John", "lastName": "Doe", "email": "john@example.com", "phone": "555-1234" } } ``` **Get availability:** ```typescript { "name": "acuity_get_availability_dates", "arguments": { "appointmentTypeID": 123, "month": "2024-01", "timezone": "America/New_York" } } ``` ## Tech Stack - **Server**: TypeScript, Node.js, MCP SDK - **UI**: React 18, TypeScript, Vite, Tailwind CSS - **API**: Acuity Scheduling REST API v1 ## License MIT ## Support For issues or questions: - Acuity API Docs: https://developers.acuityscheduling.com/ - MCP Docs: https://modelcontextprotocol.io/ --- Built with ❤️ for the Model Context Protocol