- 112 MCP tools across 17 domains (jobs, customers, estimates, invoices, payments, employees, scheduling, dispatch, tags, notifications, reviews, reporting, price book, leads, webhooks, time tracking, settings) - 15 React apps with proper Vite build setup and dark theme - Full API client with Bearer auth, pagination, error handling, rate limiting - Complete TypeScript types for all entities - TSC passes clean - GHL-quality standard achieved
316 lines
9.6 KiB
Markdown
316 lines
9.6 KiB
Markdown
# Housecall Pro MCP Server
|
|
|
|
Complete Model Context Protocol (MCP) server for Housecall Pro field service management platform. Built to GHL-quality standards with comprehensive tools, React apps, and full API integration.
|
|
|
|
## Features
|
|
|
|
- **109 MCP Tools** across 17 domains
|
|
- **15 React Apps** for visual management
|
|
- **Full API Coverage** with Bearer token auth, pagination, error handling, and rate limiting
|
|
- **TypeScript** with strict type checking
|
|
- **Dark Theme UI** for all React apps
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Set the following environment variable:
|
|
|
|
```bash
|
|
export HOUSECALL_PRO_API_KEY="your_api_key_here"
|
|
```
|
|
|
|
Optional:
|
|
```bash
|
|
export HOUSECALL_PRO_BASE_URL="https://api.housecallpro.com" # Default
|
|
```
|
|
|
|
## Usage
|
|
|
|
### As MCP Server (stdio)
|
|
|
|
```bash
|
|
npx housecall-pro-mcp
|
|
```
|
|
|
|
### Configuration in Claude Desktop
|
|
|
|
Add to `claude_desktop_config.json`:
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"housecall-pro": {
|
|
"command": "npx",
|
|
"args": ["-y", "@mcpengine/housecall-pro"],
|
|
"env": {
|
|
"HOUSECALL_PRO_API_KEY": "your_api_key_here"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Available Tools (109)
|
|
|
|
### Jobs (12 tools)
|
|
- `list_jobs` - List jobs with filters
|
|
- `get_job` - Get job details
|
|
- `create_job` - Create new job
|
|
- `update_job` - Update job
|
|
- `complete_job` - Mark job complete
|
|
- `cancel_job` - Cancel job
|
|
- `list_job_line_items` - List job line items
|
|
- `add_job_line_item` - Add line item to job
|
|
- `schedule_job` - Schedule a job
|
|
- `reschedule_job` - Reschedule job
|
|
- `assign_employee` - Assign employee to job
|
|
- `get_dispatch_board` - View dispatch board
|
|
|
|
### Customers (6 tools)
|
|
- `list_customers` - List all customers
|
|
- `get_customer` - Get customer details
|
|
- `create_customer` - Create new customer
|
|
- `update_customer` - Update customer
|
|
- `delete_customer` - Delete customer
|
|
- `search_customers` - Search customers
|
|
|
|
### Estimates (6 tools)
|
|
- `list_estimates` - List estimates
|
|
- `get_estimate` - Get estimate details
|
|
- `create_estimate` - Create new estimate
|
|
- `send_estimate` - Send estimate to customer
|
|
- `approve_estimate` - Mark estimate approved
|
|
- `convert_estimate_to_job` - Convert to job
|
|
|
|
### Invoices (6 tools)
|
|
- `list_invoices` - List invoices
|
|
- `get_invoice` - Get invoice details
|
|
- `create_invoice` - Create new invoice
|
|
- `send_invoice` - Send invoice to customer
|
|
- `mark_invoice_paid` - Mark invoice as paid
|
|
- `list_invoice_payments` - List payments for invoice
|
|
|
|
### Payments (8 tools)
|
|
- `list_payments` - List all payments
|
|
- `get_payment` - Get payment details
|
|
- `create_payment` - Record new payment
|
|
- `refund_payment` - Process refund
|
|
- `void_payment` - Void a payment
|
|
- `process_card_payment` - Process card payment
|
|
- `list_payment_methods` - List saved payment methods
|
|
- `delete_payment_method` - Delete payment method
|
|
|
|
### Employees (6 tools)
|
|
- `list_employees` - List all employees
|
|
- `get_employee` - Get employee details
|
|
- `create_employee` - Create new employee
|
|
- `update_employee` - Update employee
|
|
- `get_employee_schedule` - Get employee schedule
|
|
- `get_employee_performance` - Get performance metrics
|
|
|
|
### Scheduling (7 tools)
|
|
- `get_schedule` - Get schedule for date range
|
|
- `check_availability` - Check employee availability
|
|
- `find_available_slots` - Find available time slots
|
|
- `create_time_off` - Create time-off block
|
|
- `delete_time_off` - Delete time-off block
|
|
- `list_recurring_schedules` - List recurring schedules
|
|
- `create_recurring_schedule` - Create recurring schedule
|
|
|
|
### Dispatch (3 tools)
|
|
- `get_dispatch_board` - Get dispatch board view
|
|
- `assign_employee` - Assign employee to job
|
|
- `get_employee_availability` - Check availability
|
|
|
|
### Tags (5 tools)
|
|
- `list_tags` - List all tags
|
|
- `create_tag` - Create new tag
|
|
- `delete_tag` - Delete tag
|
|
- `add_tag_to_job` - Tag a job
|
|
- `add_tag_to_customer` - Tag a customer
|
|
|
|
### Notifications (2 tools)
|
|
- `list_notifications` - List notifications
|
|
- `send_notification` - Send SMS/email notification
|
|
|
|
### Reviews (3 tools)
|
|
- `list_reviews` - List customer reviews
|
|
- `get_review` - Get review details
|
|
- `request_review` - Request review from customer
|
|
|
|
### Reporting (3 tools)
|
|
- `get_revenue_report` - Revenue analytics
|
|
- `get_job_completion_report` - Job completion metrics
|
|
- `get_employee_performance_report` - Employee performance
|
|
|
|
### Price Book (8 tools)
|
|
- `list_pricebook_items` - List catalog items
|
|
- `get_pricebook_item` - Get item details
|
|
- `create_pricebook_item` - Create new item
|
|
- `update_pricebook_item` - Update item
|
|
- `delete_pricebook_item` - Delete item
|
|
- `list_pricebook_categories` - List categories
|
|
- `create_pricebook_category` - Create category
|
|
- `bulk_update_prices` - Bulk price update
|
|
|
|
### Leads (6 tools)
|
|
- `list_leads` - List all leads
|
|
- `get_lead` - Get lead details
|
|
- `create_lead` - Create new lead
|
|
- `update_lead` - Update lead
|
|
- `convert_lead_to_customer` - Convert to customer
|
|
- `delete_lead` - Delete lead
|
|
|
|
### Webhooks (7 tools)
|
|
- `list_webhooks` - List webhook subscriptions
|
|
- `get_webhook` - Get webhook details
|
|
- `create_webhook` - Create webhook subscription
|
|
- `update_webhook` - Update webhook
|
|
- `delete_webhook` - Delete webhook
|
|
- `test_webhook` - Send test event
|
|
- `list_webhook_deliveries` - List delivery attempts
|
|
|
|
### Time Tracking (8 tools)
|
|
- `list_time_entries` - List time entries
|
|
- `get_time_entry` - Get entry details
|
|
- `clock_in` - Clock in employee
|
|
- `clock_out` - Clock out employee
|
|
- `create_manual_time_entry` - Manual entry
|
|
- `update_time_entry` - Update entry
|
|
- `delete_time_entry` - Delete entry
|
|
- `get_employee_hours` - Get total hours
|
|
|
|
### Settings (8 tools)
|
|
- `get_company_info` - Get company information
|
|
- `update_company_info` - Update company info
|
|
- `get_business_hours` - Get business hours
|
|
- `update_business_hours` - Update business hours
|
|
- `get_notification_settings` - Get notification settings
|
|
- `update_notification_settings` - Update notifications
|
|
- `get_tax_settings` - Get tax settings
|
|
- `update_tax_settings` - Update tax settings
|
|
|
|
## React Apps (15)
|
|
|
|
All apps feature dark theme, responsive design, and MCP API integration.
|
|
|
|
1. **Job Board** - Grid view of all jobs with status filtering
|
|
2. **Job Detail** - Detailed job view with line items and timeline
|
|
3. **Customer List** - Searchable customer directory
|
|
4. **Customer Detail** - Customer profile with job history
|
|
5. **Schedule Calendar** - Visual scheduling interface
|
|
6. **Estimate Builder** - Create and manage estimates
|
|
7. **Invoice Dashboard** - Invoice tracking and management
|
|
8. **Employee Manager** - Team member management
|
|
9. **Review Dashboard** - Customer review analytics
|
|
10. **Payment Tracker** - Payment and revenue tracking
|
|
11. **Price Book** - Service catalog management
|
|
12. **Dispatch Map** - Geographic dispatch view
|
|
13. **Notification Center** - Notification management
|
|
14. **Report Dashboard** - Analytics and insights
|
|
15. **Settings Panel** - System configuration
|
|
|
|
### Building React Apps
|
|
|
|
Each app is independently buildable with Vite:
|
|
|
|
```bash
|
|
cd src/ui/react-app/src/apps/job-board
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
## API Client
|
|
|
|
The `HousecallProClient` class provides:
|
|
|
|
- **Bearer Token Authentication** - Secure API key auth
|
|
- **Automatic Pagination** - Handles multi-page responses
|
|
- **Error Handling** - Comprehensive error types
|
|
- **Rate Limiting** - Built-in retry logic
|
|
- **Type Safety** - Full TypeScript types
|
|
|
|
## Development
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Build server
|
|
npm run build
|
|
|
|
# Watch mode
|
|
npm run dev
|
|
|
|
# Type check
|
|
npx tsc --noEmit
|
|
|
|
# Clean build
|
|
npm run clean && npm run build
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
src/
|
|
├── clients/
|
|
│ └── housecall-pro.ts # API client with all endpoints
|
|
├── tools/
|
|
│ ├── jobs-tools.ts # Job management tools
|
|
│ ├── customers-tools.ts # Customer management tools
|
|
│ ├── estimates-tools.ts # Estimate tools
|
|
│ ├── invoices-tools.ts # Invoice tools
|
|
│ ├── payments-tools.ts # Payment processing tools
|
|
│ ├── employees-tools.ts # Employee management tools
|
|
│ ├── scheduling-tools.ts # Scheduling tools
|
|
│ ├── dispatch-tools.ts # Dispatch tools
|
|
│ ├── tags-tools.ts # Tag management tools
|
|
│ ├── notifications-tools.ts # Notification tools
|
|
│ ├── reviews-tools.ts # Review tools
|
|
│ ├── reporting-tools.ts # Analytics tools
|
|
│ ├── pricebook-tools.ts # Price book tools
|
|
│ ├── leads-tools.ts # Lead management tools
|
|
│ ├── webhooks-tools.ts # Webhook management tools
|
|
│ ├── timetracking-tools.ts # Time tracking tools
|
|
│ ├── settings-tools.ts # Settings management tools
|
|
│ └── index.ts # Tool registry
|
|
├── types/
|
|
│ └── index.ts # TypeScript interfaces
|
|
├── ui/
|
|
│ └── react-app/
|
|
│ └── src/
|
|
│ └── apps/
|
|
│ ├── job-board/
|
|
│ ├── customer-list/
|
|
│ ├── invoice-dashboard/
|
|
│ ├── estimate-builder/
|
|
│ ├── schedule-calendar/
|
|
│ ├── employee-manager/
|
|
│ ├── payment-tracker/
|
|
│ ├── price-book/
|
|
│ ├── dispatch-map/
|
|
│ ├── review-dashboard/
|
|
│ ├── report-dashboard/
|
|
│ ├── settings-panel/
|
|
│ ├── notification-center/
|
|
│ ├── job-detail/
|
|
│ └── customer-detail/
|
|
├── server.ts # MCP server implementation
|
|
├── main.ts # Entry point (stdio)
|
|
└── index.ts # Main export
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|
|
|
|
## Support
|
|
|
|
For issues or questions, visit: https://github.com/mcpengine/housecall-pro
|