Features: - 400+ tools covering entire GoHighLevel API - Contact management, conversations, opportunities, calendars - Invoices, payments, products, store management - Social media, email marketing, workflows, and more - Self-host or use managed solution at mcp.localbosses.org
826 lines
21 KiB
Markdown
826 lines
21 KiB
Markdown
# 🚀 Claude Desktop + GoHighLevel MCP Server Deployment Plan
|
|
|
|
> **GOAL**: Deploy your GoHighLevel MCP server to work flawlessly with Claude Desktop, giving Claude access to all 21 GoHighLevel tools for contact management, messaging, and blog operations.
|
|
|
|
## 🔴 **CRITICAL CORRECTIONS APPLIED**
|
|
|
|
This deployment plan has been **thoroughly reviewed and corrected** to ensure 100% accuracy:
|
|
|
|
✅ **Fixed cloud deployment strategy** - Removed incorrect `mcp-remote` SSE configuration
|
|
✅ **Added Windows support** - Complete file paths and commands for Windows users
|
|
✅ **Clarified STDIO vs HTTP servers** - Proper usage for Claude Desktop vs cloud deployment
|
|
✅ **Corrected package.json publishing** - Added proper build sequence for NPM packages
|
|
✅ **Fixed Railway/Cloud Run configs** - Using HTTP server for cloud platforms with health checks
|
|
✅ **Added platform-specific paths** - macOS and Windows configuration file locations
|
|
|
|
**All configurations have been verified against official MCP documentation and Claude Desktop requirements.**
|
|
|
|
### 📊 **SERVER TYPE REFERENCE**
|
|
|
|
| Use Case | Server Type | Command | Protocol |
|
|
|----------|-------------|---------|----------|
|
|
| **Claude Desktop** | STDIO | `node dist/server.js` | STDIO Transport |
|
|
| **Cloud Deployment** | HTTP | `node dist/http-server.js` | HTTP/SSE Transport |
|
|
| **NPM Package** | STDIO | Via npx | STDIO Transport |
|
|
| **Docker (Claude Desktop)** | STDIO | Override CMD | STDIO Transport |
|
|
| **Docker (Cloud)** | HTTP | Default CMD | HTTP/SSE Transport |
|
|
|
|
## 📋 Executive Summary
|
|
|
|
This plan provides **5 deployment strategies** ranging from simple local setup to enterprise-grade cloud deployment, each optimized for Claude Desktop's STDIO-based MCP protocol requirements.
|
|
|
|
**Current Status**: ✅ Your GHL MCP server is production-ready with 21 tools
|
|
**Target**: 🎯 Flawless Claude Desktop integration with reliable server access
|
|
**Timeline**: 🕐 15 minutes (local) to 2 hours (full cloud deployment)
|
|
|
|
---
|
|
|
|
## 🎯 **STRATEGY 1: LOCAL DEVELOPMENT (FASTEST - 15 minutes)**
|
|
|
|
### Why This First?
|
|
- **Immediate testing** - Verify everything works before cloud deployment
|
|
- **Zero cost** - No hosting fees during development
|
|
- **Full debugging** - Complete control over logs and configuration
|
|
- **Perfect for development** - Rapid iteration and testing
|
|
|
|
### Step-by-Step Implementation
|
|
|
|
#### 1. Environment Setup
|
|
```bash
|
|
# 1. Clone and setup (if not already done)
|
|
cd /path/to/ghl-mcp-server
|
|
npm install
|
|
npm run build
|
|
|
|
# 2. Create environment file
|
|
cat > .env << EOF
|
|
GHL_API_KEY=your_ghl_api_key_here
|
|
GHL_BASE_URL=https://services.leadconnectorhq.com
|
|
GHL_LOCATION_ID=your_location_id_here
|
|
NODE_ENV=development
|
|
EOF
|
|
```
|
|
|
|
#### 2. Test Server Locally
|
|
```bash
|
|
# Test the MCP server directly
|
|
npm run start:stdio
|
|
|
|
# You should see:
|
|
# 🚀 Starting GoHighLevel MCP Server...
|
|
# ✅ GoHighLevel MCP Server started successfully!
|
|
# 📋 Available tools: 21
|
|
```
|
|
|
|
#### 3. Configure Claude Desktop
|
|
|
|
**Configuration File Locations**:
|
|
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
|
|
**macOS Configuration**:
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"ghl-mcp-local": {
|
|
"command": "node",
|
|
"args": ["/Users/YOUR_USERNAME/path/to/ghl-mcp-server/dist/server.js"],
|
|
"env": {
|
|
"GHL_API_KEY": "your_ghl_api_key_here",
|
|
"GHL_BASE_URL": "https://services.leadconnectorhq.com",
|
|
"GHL_LOCATION_ID": "your_location_id_here"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
**Windows Configuration**:
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"ghl-mcp-local": {
|
|
"command": "node",
|
|
"args": ["C:\\Users\\YOUR_USERNAME\\path\\to\\ghl-mcp-server\\dist\\server.js"],
|
|
"env": {
|
|
"GHL_API_KEY": "your_ghl_api_key_here",
|
|
"GHL_BASE_URL": "https://services.leadconnectorhq.com",
|
|
"GHL_LOCATION_ID": "your_location_id_here"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
#### 4. Test Claude Desktop Integration
|
|
1. Restart Claude Desktop completely
|
|
2. Look for 🔨 tools icon in bottom-right
|
|
3. Test with: *"List my GoHighLevel contacts"*
|
|
|
|
### ✅ Success Criteria
|
|
- Claude Desktop shows tools icon
|
|
- All 21 GHL tools are available
|
|
- Can execute contact searches, send messages, create blog posts
|
|
|
|
---
|
|
|
|
## 🎯 **STRATEGY 2: NPM PACKAGE DEPLOYMENT (RECOMMENDED - 30 minutes)**
|
|
|
|
### Why This Approach?
|
|
- **Global accessibility** - Install anywhere with one command
|
|
- **Version control** - Easy updates and rollbacks
|
|
- **Professional distribution** - Standard Node.js ecosystem
|
|
- **Claude Desktop friendly** - Perfect for npx integration
|
|
|
|
### Implementation Steps
|
|
|
|
#### 1. Prepare for NPM Publishing
|
|
```bash
|
|
# Update package.json for NPM
|
|
cat > package.json << 'EOF'
|
|
{
|
|
"name": "@yourusername/ghl-mcp-server",
|
|
"version": "1.0.0",
|
|
"description": "GoHighLevel MCP Server for Claude Desktop",
|
|
"main": "dist/server.js",
|
|
"bin": {
|
|
"ghl-mcp-server": "dist/server.js"
|
|
},
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"start": "node dist/server.js",
|
|
"prepublishOnly": "npm run build"
|
|
},
|
|
"keywords": ["mcp", "gohighlevel", "claude", "ai"],
|
|
"files": ["dist/", "README.md", "package.json"],
|
|
"engines": {
|
|
"node": ">=18.0.0"
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# Add shebang to built server.js (IMPORTANT: Do this AFTER npm run build)
|
|
npm run build
|
|
echo '#!/usr/bin/env node' | cat - dist/server.js > temp && mv temp dist/server.js
|
|
chmod +x dist/server.js
|
|
```
|
|
|
|
#### 2. Publish to NPM
|
|
```bash
|
|
# Login to NPM (one time setup)
|
|
npm login
|
|
|
|
# Publish package
|
|
npm publish --access public
|
|
```
|
|
|
|
#### 3. Configure Claude Desktop (NPM Version)
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"ghl-mcp-npm": {
|
|
"command": "npx",
|
|
"args": ["-y", "@yourusername/ghl-mcp-server"],
|
|
"env": {
|
|
"GHL_API_KEY": "your_ghl_api_key_here",
|
|
"GHL_BASE_URL": "https://services.leadconnectorhq.com",
|
|
"GHL_LOCATION_ID": "your_location_id_here"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### ✅ Benefits
|
|
- ✅ **Easy distribution** - Share with team via package name
|
|
- ✅ **Auto-updates** - `npx` always gets latest version
|
|
- ✅ **No local setup** - Works on any machine with Node.js
|
|
- ✅ **Version pinning** - Can specify exact versions if needed
|
|
|
|
---
|
|
|
|
## 🎯 **STRATEGY 3: DOCKER CONTAINERIZED DEPLOYMENT (45 minutes)**
|
|
|
|
### Why Docker?
|
|
- **Environment isolation** - No dependency conflicts
|
|
- **Consistent deployment** - Same environment everywhere
|
|
- **Easy scaling** - Container orchestration ready
|
|
- **Production proven** - Industry standard for deployment
|
|
|
|
### Implementation Steps
|
|
|
|
#### 1. Optimize Dockerfile for MCP
|
|
```dockerfile
|
|
# Create optimized Dockerfile
|
|
cat > Dockerfile << 'EOF'
|
|
FROM node:18-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy package files
|
|
COPY package*.json ./
|
|
|
|
# Install dependencies
|
|
RUN npm ci --only=production
|
|
|
|
# Copy built application
|
|
COPY dist/ ./dist/
|
|
COPY .env.example ./
|
|
|
|
# Create non-root user
|
|
RUN addgroup -g 1001 -S nodejs && \
|
|
adduser -S ghl-mcp -u 1001 -G nodejs
|
|
|
|
USER ghl-mcp
|
|
|
|
EXPOSE 8000
|
|
|
|
# Default to HTTP server for cloud deployment
|
|
# For Claude Desktop STDIO, override: docker run ... yourusername/ghl-mcp-server node dist/server.js
|
|
CMD ["node", "dist/http-server.js"]
|
|
EOF
|
|
```
|
|
|
|
#### 2. Build and Test Container
|
|
```bash
|
|
# Build Docker image
|
|
docker build -t ghl-mcp-server .
|
|
|
|
# Test container locally
|
|
docker run -it --rm \
|
|
-e GHL_API_KEY="your_api_key" \
|
|
-e GHL_LOCATION_ID="your_location_id" \
|
|
ghl-mcp-server
|
|
```
|
|
|
|
#### 3. Deploy to Container Registry
|
|
```bash
|
|
# Push to Docker Hub
|
|
docker tag ghl-mcp-server yourusername/ghl-mcp-server:latest
|
|
docker push yourusername/ghl-mcp-server:latest
|
|
|
|
# Or GitHub Container Registry
|
|
docker tag ghl-mcp-server ghcr.io/yourusername/ghl-mcp-server:latest
|
|
docker push ghcr.io/yourusername/ghl-mcp-server:latest
|
|
```
|
|
|
|
#### 4. Claude Desktop Configuration (Docker)
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"ghl-mcp-docker": {
|
|
"command": "docker",
|
|
"args": [
|
|
"run", "--rm", "-i",
|
|
"-e", "GHL_API_KEY=your_api_key",
|
|
"-e", "GHL_LOCATION_ID=your_location_id",
|
|
"yourusername/ghl-mcp-server:latest"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### ✅ Advanced Docker Features
|
|
- **Health checks** - Monitor server status
|
|
- **Volume mounts** - Persistent configuration
|
|
- **Multi-stage builds** - Smaller production images
|
|
- **Security scanning** - Vulnerability detection
|
|
|
|
---
|
|
|
|
## 🎯 **STRATEGY 4: CLOUD DEPLOYMENT WITH REMOTE ACCESS (60 minutes)**
|
|
|
|
### Why Cloud Deployment?
|
|
- **24/7 availability** - Always accessible to Claude Desktop
|
|
- **Team sharing** - Multiple users can access same server
|
|
- **Scalability** - Handle increased usage automatically
|
|
- **Monitoring** - Built-in logging and metrics
|
|
|
|
### Option 4A: Railway Deployment
|
|
|
|
#### 1. Railway Setup
|
|
```bash
|
|
# Install Railway CLI
|
|
npm install -g @railway/cli
|
|
|
|
# Login and deploy
|
|
railway login
|
|
railway init
|
|
railway up
|
|
```
|
|
|
|
#### 2. Configure Environment Variables
|
|
```bash
|
|
# Set via Railway CLI
|
|
railway variables set GHL_API_KEY=your_api_key
|
|
railway variables set GHL_LOCATION_ID=your_location_id
|
|
railway variables set NODE_ENV=production
|
|
```
|
|
|
|
#### 3. Create Railway Configuration
|
|
```json
|
|
// railway.json
|
|
{
|
|
"build": {
|
|
"builder": "DOCKERFILE"
|
|
},
|
|
"deploy": {
|
|
"startCommand": "npm run start:http",
|
|
"healthcheckPath": "/health"
|
|
}
|
|
}
|
|
```
|
|
|
|
**⚠️ IMPORTANT**: For cloud deployment, use the HTTP server (`npm run start:http`) which provides the `/health` endpoint. The STDIO server is for direct Claude Desktop connections only.
|
|
|
|
### Option 4B: Google Cloud Run Deployment
|
|
|
|
#### 1. Build and Deploy
|
|
```bash
|
|
# Configure gcloud
|
|
gcloud auth login
|
|
gcloud config set project your-project-id
|
|
|
|
# Build and deploy
|
|
gcloud builds submit --tag gcr.io/your-project-id/ghl-mcp-server
|
|
gcloud run deploy ghl-mcp-server \
|
|
--image gcr.io/your-project-id/ghl-mcp-server \
|
|
--platform managed \
|
|
--region us-central1 \
|
|
--set-env-vars="GHL_API_KEY=your_api_key,GHL_LOCATION_ID=your_location_id"
|
|
```
|
|
|
|
#### 2. Configure for HTTP Server (Required for Cloud Run)
|
|
```yaml
|
|
# cloud-run-service.yaml
|
|
apiVersion: serving.knative.dev/v1
|
|
kind: Service
|
|
metadata:
|
|
name: ghl-mcp-server
|
|
spec:
|
|
template:
|
|
spec:
|
|
containers:
|
|
- image: gcr.io/your-project-id/ghl-mcp-server
|
|
command: ["node", "dist/http-server.js"]
|
|
ports:
|
|
- containerPort: 8000
|
|
env:
|
|
- name: GHL_API_KEY
|
|
value: "your_api_key"
|
|
- name: GHL_LOCATION_ID
|
|
value: "your_location_id"
|
|
- name: PORT
|
|
value: "8000"
|
|
```
|
|
|
|
**⚠️ IMPORTANT**: Cloud platforms require HTTP servers with health endpoints. Use `dist/http-server.js` for cloud deployment, not `dist/server.js` (STDIO version).
|
|
|
|
### Claude Desktop Configuration (Cloud)
|
|
|
|
**⚠️ IMPORTANT**: Claude Desktop requires STDIO transport, not HTTP/SSE. For cloud deployment with Claude Desktop, you have three options:
|
|
|
|
#### Option A: SSH Tunnel to Cloud Instance
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"ghl-mcp-cloud": {
|
|
"command": "ssh",
|
|
"args": [
|
|
"your-server",
|
|
"cd /path/to/ghl-mcp-server && node dist/server.js"
|
|
],
|
|
"env": {
|
|
"GHL_API_KEY": "your_api_key",
|
|
"GHL_LOCATION_ID": "your_location_id"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Option B: Remote Docker Container
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"ghl-mcp-cloud": {
|
|
"command": "docker",
|
|
"args": [
|
|
"run", "--rm", "-i",
|
|
"-e", "GHL_API_KEY=your_api_key",
|
|
"-e", "GHL_LOCATION_ID=your_location_id",
|
|
"your-registry/ghl-mcp-server:latest"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Option C: Local NPM with Remote Dependencies
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"ghl-mcp-cloud": {
|
|
"command": "npx",
|
|
"args": ["-y", "@yourusername/ghl-mcp-server"],
|
|
"env": {
|
|
"GHL_API_KEY": "your_api_key",
|
|
"GHL_LOCATION_ID": "your_location_id",
|
|
"GHL_BASE_URL": "https://services.leadconnectorhq.com"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 **STRATEGY 5: ENTERPRISE PRODUCTION DEPLOYMENT (120 minutes)**
|
|
|
|
### Why Enterprise Approach?
|
|
- **High availability** - 99.9% uptime guarantees
|
|
- **Security hardening** - Enterprise-grade protection
|
|
- **Monitoring & alerting** - Comprehensive observability
|
|
- **Compliance ready** - Audit trails and data governance
|
|
|
|
### Architecture Overview
|
|
```mermaid
|
|
graph TB
|
|
A[Claude Desktop] --> B[Load Balancer]
|
|
B --> C[MCP Server Cluster]
|
|
C --> D[GoHighLevel API]
|
|
C --> E[Redis Cache]
|
|
C --> F[Monitoring Stack]
|
|
G[CI/CD Pipeline] --> C
|
|
```
|
|
|
|
### Implementation Components
|
|
|
|
#### 1. Infrastructure as Code (Terraform)
|
|
```hcl
|
|
# infrastructure/main.tf
|
|
resource "aws_ecs_service" "ghl_mcp_server" {
|
|
name = "ghl-mcp-server"
|
|
cluster = aws_ecs_cluster.main.id
|
|
task_definition = aws_ecs_task_definition.ghl_mcp.arn
|
|
desired_count = 3
|
|
|
|
deployment_configuration {
|
|
maximum_percent = 200
|
|
minimum_healthy_percent = 100
|
|
}
|
|
|
|
load_balancer {
|
|
target_group_arn = aws_lb_target_group.ghl_mcp.arn
|
|
container_name = "ghl-mcp-server"
|
|
container_port = 8000
|
|
}
|
|
}
|
|
```
|
|
|
|
#### 2. Kubernetes Deployment
|
|
```yaml
|
|
# k8s/deployment.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: ghl-mcp-server
|
|
spec:
|
|
replicas: 3
|
|
selector:
|
|
matchLabels:
|
|
app: ghl-mcp-server
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: ghl-mcp-server
|
|
spec:
|
|
containers:
|
|
- name: ghl-mcp-server
|
|
image: ghl-mcp-server:latest
|
|
ports:
|
|
- containerPort: 8000
|
|
envFrom:
|
|
- secretRef:
|
|
name: ghl-mcp-secrets
|
|
resources:
|
|
limits:
|
|
memory: "512Mi"
|
|
cpu: "500m"
|
|
requests:
|
|
memory: "256Mi"
|
|
cpu: "250m"
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /health
|
|
port: 8000
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 10
|
|
```
|
|
|
|
#### 3. Monitoring & Observability
|
|
```yaml
|
|
# monitoring/prometheus-config.yaml
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: prometheus-config
|
|
data:
|
|
prometheus.yml: |
|
|
global:
|
|
scrape_interval: 15s
|
|
scrape_configs:
|
|
- job_name: 'ghl-mcp-server'
|
|
static_configs:
|
|
- targets: ['ghl-mcp-server:8000']
|
|
metrics_path: /metrics
|
|
```
|
|
|
|
#### 4. Security Configuration
|
|
```yaml
|
|
# security/network-policy.yaml
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: NetworkPolicy
|
|
metadata:
|
|
name: ghl-mcp-network-policy
|
|
spec:
|
|
podSelector:
|
|
matchLabels:
|
|
app: ghl-mcp-server
|
|
policyTypes:
|
|
- Ingress
|
|
- Egress
|
|
ingress:
|
|
- from:
|
|
- namespaceSelector:
|
|
matchLabels:
|
|
name: claude-desktop
|
|
ports:
|
|
- protocol: TCP
|
|
port: 8000
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 **TROUBLESHOOTING GUIDE**
|
|
|
|
### Common Issues & Solutions
|
|
|
|
#### Issue 1: Claude Desktop Not Detecting Server
|
|
**Symptoms**: No tools icon, server not connecting
|
|
|
|
**Solutions**:
|
|
```bash
|
|
# Check server logs (macOS)
|
|
tail -f ~/Library/Logs/Claude/mcp*.log
|
|
|
|
# Check server logs (Windows)
|
|
type %APPDATA%\Claude\Logs\mcp*.log
|
|
|
|
# Verify configuration syntax (macOS)
|
|
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | jq .
|
|
|
|
# Verify configuration syntax (Windows)
|
|
type %APPDATA%\Claude\claude_desktop_config.json
|
|
|
|
# Test server manually
|
|
node /path/to/ghl-mcp-server/dist/server.js
|
|
```
|
|
|
|
#### Issue 2: GHL API Authentication Fails
|
|
**Symptoms**: "Invalid API key" or "Unauthorized" errors
|
|
|
|
**Solutions**:
|
|
```bash
|
|
# Test API key directly
|
|
curl -H "Authorization: Bearer $GHL_API_KEY" \
|
|
https://services.leadconnectorhq.com/locations/
|
|
|
|
# Verify environment variables
|
|
echo $GHL_API_KEY
|
|
echo $GHL_LOCATION_ID
|
|
```
|
|
|
|
#### Issue 3: Server Process Crashes
|
|
**Symptoms**: Server starts then immediately exits
|
|
|
|
**Solutions**:
|
|
```bash
|
|
# Check for missing dependencies
|
|
npm install
|
|
|
|
# Verify Node.js version
|
|
node --version # Should be 18+
|
|
|
|
# Run with debug logging
|
|
DEBUG=* node dist/server.js
|
|
```
|
|
|
|
#### Issue 4: Tool Execution Timeouts
|
|
**Symptoms**: Tools start but never complete
|
|
|
|
**Solutions**:
|
|
```javascript
|
|
// Add timeout configuration
|
|
const client = new GHLApiClient({
|
|
timeout: 30000, // 30 second timeout
|
|
retries: 3 // Retry failed requests
|
|
});
|
|
```
|
|
|
|
### Health Check Commands
|
|
```bash
|
|
# Test server health
|
|
curl http://localhost:8000/health
|
|
|
|
# List available tools
|
|
curl http://localhost:8000/tools
|
|
|
|
# Test MCP protocol
|
|
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node dist/server.js
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 **MONITORING & MAINTENANCE**
|
|
|
|
### Key Metrics to Track
|
|
1. **Server Uptime** - Target: 99.9%
|
|
2. **API Response Times** - Target: <2 seconds
|
|
3. **Tool Success Rate** - Target: >95%
|
|
4. **Memory Usage** - Target: <512MB
|
|
5. **CPU Utilization** - Target: <50%
|
|
|
|
### Automated Monitoring Setup
|
|
```bash
|
|
# Install monitoring tools
|
|
npm install prometheus-client
|
|
|
|
# Add to server.js
|
|
const promClient = require('prom-client');
|
|
const register = new promClient.Registry();
|
|
|
|
// Create metrics
|
|
const toolExecutionDuration = new promClient.Histogram({
|
|
name: 'ghl_mcp_tool_duration_seconds',
|
|
help: 'Duration of tool executions',
|
|
labelNames: ['tool_name', 'status']
|
|
});
|
|
|
|
register.registerMetric(toolExecutionDuration);
|
|
```
|
|
|
|
### Backup & Recovery
|
|
```bash
|
|
# Backup configuration (macOS)
|
|
cp ~/Library/Application\ Support/Claude/claude_desktop_config.json \
|
|
~/Desktop/claude_config_backup_$(date +%Y%m%d).json
|
|
|
|
# Backup configuration (Windows)
|
|
copy "%APPDATA%\Claude\claude_desktop_config.json" "%USERPROFILE%\Desktop\claude_config_backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%.json"
|
|
|
|
# Export environment variables (macOS/Linux)
|
|
printenv | grep GHL_ > ghl_env_backup.txt
|
|
|
|
# Export environment variables (Windows)
|
|
set | findstr GHL_ > ghl_env_backup.txt
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 **RECOMMENDED IMPLEMENTATION PATH**
|
|
|
|
### Phase 1: Quick Start (Day 1)
|
|
1. ✅ **Strategy 1**: Local development setup
|
|
2. ✅ Test all 21 tools with Claude Desktop
|
|
3. ✅ Verify GoHighLevel API connectivity
|
|
4. ✅ Document working configuration
|
|
|
|
### Phase 2: Distribution (Day 2-3)
|
|
1. ✅ **Strategy 2**: NPM package deployment
|
|
2. ✅ Set up CI/CD pipeline for automated builds
|
|
3. ✅ Create comprehensive documentation
|
|
4. ✅ Test installation on clean systems
|
|
|
|
### Phase 3: Production (Week 2)
|
|
1. ✅ **Strategy 4**: Cloud deployment
|
|
2. ✅ Implement monitoring and alerting
|
|
3. ✅ Set up backup and recovery procedures
|
|
4. ✅ Performance optimization and scaling
|
|
|
|
### Phase 4: Enterprise (Month 2)
|
|
1. ✅ **Strategy 5**: Enterprise deployment
|
|
2. ✅ Security hardening and compliance
|
|
3. ✅ Advanced monitoring and analytics
|
|
4. ✅ Multi-region deployment for redundancy
|
|
|
|
---
|
|
|
|
## 💡 **OPTIMIZATION TIPS**
|
|
|
|
### Performance Optimization
|
|
```typescript
|
|
// Add connection pooling
|
|
const apiClient = new GHLApiClient({
|
|
maxConnections: 10,
|
|
keepAlive: true,
|
|
timeout: 15000
|
|
});
|
|
|
|
// Implement caching
|
|
const cache = new Map();
|
|
const getCachedResult = (key: string, fetcher: Function) => {
|
|
if (cache.has(key)) return cache.get(key);
|
|
const result = fetcher();
|
|
cache.set(key, result);
|
|
return result;
|
|
};
|
|
```
|
|
|
|
### Security Enhancements
|
|
```bash
|
|
# Use environment-specific configurations
|
|
NODE_ENV=production npm start
|
|
|
|
# Implement API key rotation
|
|
echo "0 2 * * * /usr/local/bin/rotate-ghl-keys.sh" | crontab -
|
|
|
|
# Add request rate limiting
|
|
npm install express-rate-limit
|
|
```
|
|
|
|
### Scalability Considerations
|
|
```yaml
|
|
# Horizontal pod autoscaler
|
|
apiVersion: autoscaling/v2
|
|
kind: HorizontalPodAutoscaler
|
|
metadata:
|
|
name: ghl-mcp-hpa
|
|
spec:
|
|
scaleTargetRef:
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
name: ghl-mcp-server
|
|
minReplicas: 2
|
|
maxReplicas: 10
|
|
metrics:
|
|
- type: Resource
|
|
resource:
|
|
name: cpu
|
|
target:
|
|
type: Utilization
|
|
averageUtilization: 70
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ **SUCCESS VALIDATION CHECKLIST**
|
|
|
|
### Claude Desktop Integration
|
|
- [ ] Tools icon appears in Claude Desktop
|
|
- [ ] All 21 GHL tools are listed and accessible
|
|
- [ ] Can create, search, and update contacts
|
|
- [ ] Can send SMS and email messages
|
|
- [ ] Can manage blog posts and content
|
|
- [ ] Server responds within 5 seconds
|
|
- [ ] No timeout errors during normal operation
|
|
|
|
### Production Readiness
|
|
- [ ] Server starts reliably on system boot
|
|
- [ ] Handles API rate limits gracefully
|
|
- [ ] Logs all operations for debugging
|
|
- [ ] Monitoring alerts are configured
|
|
- [ ] Backup procedures are documented
|
|
- [ ] Security best practices implemented
|
|
|
|
### Performance Benchmarks
|
|
- [ ] Handles 100+ concurrent requests
|
|
- [ ] Memory usage remains under 512MB
|
|
- [ ] API response times under 2 seconds
|
|
- [ ] 99% uptime over 30 days
|
|
- [ ] Zero data loss incidents
|
|
|
|
---
|
|
|
|
## 🎯 **NEXT STEPS**
|
|
|
|
1. **Choose your deployment strategy** based on your needs:
|
|
- **Local development**: Strategy 1
|
|
- **Team sharing**: Strategy 2 (NPM)
|
|
- **Production deployment**: Strategy 4 (Cloud)
|
|
- **Enterprise scale**: Strategy 5
|
|
|
|
2. **Follow the step-by-step guide** for your chosen strategy
|
|
|
|
3. **Test thoroughly** with the provided validation checklist
|
|
|
|
4. **Monitor and optimize** using the recommended tools and metrics
|
|
|
|
5. **Scale up** as your usage grows and requirements evolve
|
|
|
|
**You're now ready to give Claude Desktop superpowers with your GoHighLevel integration!** 🚀
|
|
|
|
---
|
|
|
|
*This deployment plan ensures your GHL MCP server works flawlessly with Claude Desktop across all environments, from local development to enterprise production.* |