gohighlevel-mcp

AskChad/gohighlevel-mcp

3.2

If you are the rightful owner of gohighlevel-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The GoHighLevel MCP Server is a Model Context Protocol server that integrates Claude AI with GoHighLevel CRM, facilitating AI-driven automation and management.

🚀 GoHighLevel Multi-Tenant MCP Server

Connect ANY GoHighLevel account to Claude AI AND OpenAI with 23+ tools!

🎯 NEW: OpenAI Assistant Support - Works with both Claude and OpenAI!


✨ Features

Multi-Tenant - Works with unlimited GoHighLevel accounts
Dynamic Authentication - Pass credentials via request body, headers, or environment
23+ Tools - Complete GoHighLevel API coverage
Claude Desktop - Direct integration via MCP protocol
OpenAI Assistants - Full function calling support
Vercel Ready - One-click deployment
Zero Setup - No environment variables required


🤖 AI Platform Support

Claude (via MCP Protocol)

  • Direct integration with Claude Desktop
  • Uses /mcp endpoint
  • Configure in claude_desktop_config.json

OpenAI Assistants

  • Function calling support
  • Uses /openai/function/* endpoints
  • Get functions list at /openai/functions

Any HTTP Client

  • REST API at /tools/*
  • Works with Zapier, Make, n8n, etc.

🔐 Three Ways to Authenticate:

1. Request Body (Recommended)

{
  "ghl_api_key": "your_key",
  "ghl_location_id": "your_location",
  "firstName": "John",
  "email": "john@example.com"
}

2. HTTP Headers

-H "X-GHL-API-Key: your_key"
-H "X-GHL-Location-ID: your_location"

3. Environment Variables (Fallback)

GHL_API_KEY=your_key
GHL_LOCATION_ID=your_location

📚 Available Tools

Contact Management (5 tools)

  • search_contacts - Search contacts by email, phone, name
  • get_contact - Get specific contact details
  • create_contact - Create new contacts
  • update_contact - Update existing contacts
  • delete_contact - Delete contacts

Opportunities/Deals (7 tools)

  • search_opportunities - Search deals in pipelines
  • get_opportunity - Get specific opportunity
  • create_opportunity - Create new deals
  • update_opportunity - Update deal status/value
  • delete_opportunity - Delete opportunities
  • get_pipelines - List all pipelines
  • get_pipeline_stages - Get pipeline stages

Calendar & Appointments (6 tools)

  • get_calendars - List all calendars
  • get_calendar_slots - Get available slots
  • search_appointments - Search appointments
  • create_appointment - Schedule appointments
  • update_appointment - Modify appointments
  • delete_appointment - Cancel appointments

Tasks & Notes (5 tools)

  • search_tasks - Find tasks
  • create_task - Create new tasks
  • update_task - Update task status
  • delete_task - Remove tasks
  • add_note - Add notes to contacts

🚀 Quick Deploy to Vercel

Deploy with Vercel


🔧 Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "gohighlevel": {
      "type": "http",
      "url": "https://your-app.vercel.app/mcp",
      "headers": {
        "X-GHL-API-Key": "YOUR_API_KEY",
        "X-GHL-Location-ID": "YOUR_LOCATION_ID"
      }
    }
  }
}

🤖 OpenAI Assistant Setup

1. Get Function Definitions

curl https://your-app.vercel.app/openai/functions

2. Add Functions to Assistant

Copy the functions from step 1 into your OpenAI Assistant configuration at platform.openai.com

3. Use with Python

import requests

def execute_ghl_function(function_name, arguments):
    response = requests.post(
        f"https://your-app.vercel.app/openai/function/{function_name}",
        json=arguments,
        headers={
            "X-GHL-API-Key": "your_key",
            "X-GHL-Location-ID": "your_location"
        }
    )
    return response.json()

See for detailed OpenAI setup.


📡 API Endpoints

  • GET / - Server info and endpoints list
  • GET /health - Health check
  • GET /tools - List all available tools
  • POST /tools/:toolName - Execute a specific tool
  • POST /mcp - Claude MCP protocol endpoint
  • GET /openai/functions - OpenAI function definitions
  • POST /openai/function/:name - OpenAI function execution

🧪 Testing

Test Health

curl https://your-app.vercel.app/health

Test Tool Execution

curl -X POST https://your-app.vercel.app/tools/search_contacts \
  -H "Content-Type: application/json" \
  -H "X-GHL-API-Key: your_key" \
  -H "X-GHL-Location-ID: your_location" \
  -d '{"query": "@gmail.com"}'

📝 Environment Variables (Optional)

Set these in Vercel dashboard for default credentials:

  • GHL_API_KEY - Default GoHighLevel API key
  • GHL_LOCATION_ID - Default location ID
  • GHL_BASE_URL - API base URL (default: https://services.leadconnectorhq.com)
  • CORS_ORIGINS - CORS allowed origins (default: *)

🛠️ Local Development

# Clone the repository
git clone https://github.com/AskChad/gohighlevel-mcp.git
cd gohighlevel-mcp

# Install dependencies
npm install

# Create .env file
cp .env.example .env
# Edit .env with your credentials

# Run development server
npm run dev

# Build for production
npm run build

🔒 Security

  • Never commit API keys to git
  • Use environment variables or headers for credentials
  • Enable CORS restrictions in production
  • Consider rate limiting for public endpoints

📚 Resources


📄 License

MIT - See


🙏 Credits

Built with ❤️ for the GoHighLevel community

Star this repo if you find it useful! ⭐


📞 Support


Works with Claude AND OpenAI - No environment setup required! 🎉