GHL MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "GHL_API_KEY=${GHL_API_KEY}" -e "GHL_LOCATION_ID=${GHL_LOCATION_ID}" ghl-mcp -- npx mcp-remote https://ghl-mcp-server.YOUR_SUBDOMAIN.workers.dev/sse
Required:GHL_API_KEYGHL_LOCATION_ID
README.md

Programmatically manage GoHighLevel accounts through Cloudflare Workers

GHL MCP Server

A remote MCP (Model Context Protocol) server running on Cloudflare Workers that gives AI agents full programmatic access to GoHighLevel.

What This Does

Your AI agents connect to this server as a tool. They can then create, read, update, and delete custom fields, custom values, and custom field folders in your GHL account — no manual work required.

Current capabilities (Phase 1):

  • Contact-level custom fields (full CRUD + bulk create)
  • Custom object fields (Custom Objects + Company)
  • Custom field folders
  • Custom values (location-wide variables)

Planned (Phase 2+):

  • Contacts management
  • Opportunities & Pipelines
  • Calendars & Appointments
  • Conversations & Messaging
  • Workflows
  • And every other GHL API endpoint

Architecture

Your AI Agent (Claude, GPT, etc.)
        │
        │  MCP Protocol (Streamable HTTP)
        ▼
┌─────────────────────────┐
│  Cloudflare Worker       │
│  (GHL MCP Server)        │
│                          │
│  ┌────────────────────┐  │
│  │  McpAgent          │  │  ← Durable Object (stateful sessions)
│  │  (tools defined)   │  │
│  └────────┬───────────┘  │
│           │              │
│  ┌────────▼───────────┐  │
│  │  GHL API Client    │  │  ← Typed HTTP client
│  └────────┬───────────┘  │
└───────────┼──────────────┘
            │
            │  REST API (Bearer token)
            ▼
┌─────────────────────────┐
│  GoHighLevel API         │
│  services.leadconnector  │
│  hq.com                  │
└─────────────────────────┘

Setup

Prerequisites

  • Node.js 18+
  • A Cloudflare account
  • A GoHighLevel Private Integration Token
  • Your GHL Location ID (Sub-Account ID)

1. Clone & Install

git clone https://github.com/YOUR_USERNAME/ghl-mcp-server.git
cd ghl-mcp-server
npm install

2. Configure Secrets

For local development, copy the example env file:

cp .dev.vars.example .dev.vars
# Edit .dev.vars with your actual GHL credentials

For production deployment, set secrets via Wrangler:

npx wrangler secret put GHL_API_KEY
npx wrangler secret put GHL_LOCATION_ID

3. Deploy

npm run deploy

Your MCP server will be live at: https://ghl-mcp-server.YOUR_SUBDOMAIN.workers.dev/sse

4. Connect Your AI Agent

Use the deployed URL as an MCP server endpoint in your AI agent's configuration.

For Claude Desktop (via mcp-remote proxy):

{
  "mcpServers": {
    "ghl": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://ghl-mcp-server.YOUR_SUBDOMAIN.workers.dev/sse"
      ]
    }
  }
}

Available Tools

Contact-Level Custom Fields

Tool Description
ghl_list_contact_custom_fields List all contact custom fields
ghl_get_contact_custom_field Get a specific field by ID
ghl_create_contact_custom_field Create a single field
ghl_update_contact_custom_field Update a field
ghl_delete_contact_custom_field Delete a field
ghl_bulk_create_contact_custom_fields Create multiple fields at once

Custom Object Fields

Tool Description
ghl_list_object_custom_fields List fields for a custom object
ghl_create_object_custom_field Create a field on a custom object
ghl_create_custom_field_folder Create a folder for organizing fields

Custom Values

Tool Description
ghl_list_custom_values List all custom values
ghl_create_custom_value Create a custom value
ghl_update_custom_value Update a custom value
ghl_delete_custom_value Delete a custom value

Supported Field Types

Type Description
TEXT Single-line text
LARGE_TEXT Multi-line text
NUMERICAL Number
PHONE Phone number
MONETORY Currency/money
EMAIL Email address
DATE Date picker
CHECKBOX Checkbox
SINGLE_OPTIONS Dropdown (single select)
MULTIPLE_OPTIONS Multi-select
RADIO Radio buttons
FILE_UPLOAD File attachment
TEXTBOX_LIST List of text inputs

Roadmap

Phase 2: Contacts

  • Create, update, delete, search contacts
  • Bulk contact operations
  • Tag management
  • Notes and tasks

Phase 3: Opportunities & Pipelines

  • Pipeline management
  • Opportunity CRUD
  • Stage updates

Phase 4: Calendars & Conversations

  • Calendar management
  • Appointment scheduling
  • Send messages (SMS, email)

Phase 5: Workflows & Automation

  • Trigger workflows
  • Manage workflow configurations

Phase 6: Everything Else

  • Forms, Surveys, Funnels
  • Payments, Invoices, Products
  • Media library
  • Social media posting

Development

# Local development
npm run dev

# Deploy to production
npm run deploy

GHL API Reference

This server is built against the GoHighLevel API V2. The OpenAPI specs from the [official docs repo](https://github.com/GoH

Tools (13)

ghl_list_contact_custom_fieldsList all contact custom fields
ghl_get_contact_custom_fieldGet a specific field by ID
ghl_create_contact_custom_fieldCreate a single field
ghl_update_contact_custom_fieldUpdate a field
ghl_delete_contact_custom_fieldDelete a field
ghl_bulk_create_contact_custom_fieldsCreate multiple fields at once
ghl_list_object_custom_fieldsList fields for a custom object
ghl_create_object_custom_fieldCreate a field on a custom object
ghl_create_custom_field_folderCreate a folder for organizing fields
ghl_list_custom_valuesList all custom values
ghl_create_custom_valueCreate a custom value
ghl_update_custom_valueUpdate a custom value
ghl_delete_custom_valueDelete a custom value

Environment Variables

GHL_API_KEYrequiredGoHighLevel Private Integration Token
GHL_LOCATION_IDrequiredYour GHL Location ID (Sub-Account ID)

Configuration

claude_desktop_config.json
{"mcpServers": {"ghl": {"command": "npx", "args": ["mcp-remote", "https://ghl-mcp-server.YOUR_SUBDOMAIN.workers.dev/sse"]}}}

Try it

List all existing custom fields in my GHL account to see how they are organized.
Create a new custom field for 'Lead Source' as a dropdown menu.
Update the custom value for 'support_email' to support@example.com.
Create a new folder named 'Onboarding Fields' to organize my contact fields.

Frequently Asked Questions

What are the key features of GHL MCP Server?

Full CRUD operations for contact-level custom fields. Management of custom object and company fields. Organization of fields using custom field folders. Location-wide custom value management. Serverless architecture deployed via Cloudflare Workers.

What can I use GHL MCP Server for?

Automating the setup of new sub-accounts by programmatically creating standard custom fields.. Syncing custom values across multiple GHL locations using an AI agent.. Cleaning up or organizing large numbers of custom fields into folders.. Rapidly deploying new data collection fields for custom objects via natural language commands..

How do I install GHL MCP Server?

Install GHL MCP Server by running: npm run deploy

What MCP clients work with GHL MCP Server?

GHL MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep GHL MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare