Skip to main content
Glama
drjerryrelth

GHL Command

by drjerryrelth

GHL Command — GoHighLevel MCP Server for Claude

232 tools across 48 modules. Full programmatic control of a GoHighLevel account from Claude — including the only workflow builder, funnel/page builder, form builder, and pipeline builder available through any MCP server.

This repository is the public issue tracker and metadata home for GHL Command. The server itself is distributed via npm; the source is not open. File bugs and feature requests in Issues.


Pricing

$97 USD per month (recurring subscription). Not a one-time purchase.

Price

$97/month, recurring

Sub-accounts

Unlimited — never billed per account

Machines

Up to 3 per license

Free tier

Yes — 106 read-only tools, no card required, at https://ghlcommand.com/free

Guarantee

30-day money-back if it doesn't save you 5+ hours on your first client build

A read-only free tier is available indefinitely. Paid licensing unlocks the write tools and the Firebase-gated builders.


Related MCP server: GoHighLevel MCP Server

Install

npx -y @elitedcs/ghl-mcp@latest

Claude Desktop / Claude Code config:

{
  "mcpServers": {
    "ghl-command": {
      "command": "npx",
      "args": ["-y", "@elitedcs/ghl-mcp@latest"],
      "env": {
        "GHL_API_KEY": "your-ghl-api-key",
        "GHL_LOCATION_ID": "your-location-id",
        "GHL_LICENSE_KEY": "your-license-key"
      }
    }
  }
}

Get a free read-only key at https://ghlcommand.com/free, or a full license at https://ghlcommand.com.


How this differs from other GoHighLevel MCP servers

GoHighLevel's public API v2 has no write endpoints for workflows, funnels, pages, forms, or pipelines. Every MCP server built purely on the public API — including HighLevel's own official MCP and the free community servers — can therefore read those objects but cannot build or edit them.

GHL Command additionally uses GHL's internal backend API (the same one the GHL web UI calls) to provide:

Capability

Public-API servers

GHL Command

Read/write contacts, conversations, calendars, opportunities

Yes

Yes

Create / edit / publish workflows

No

Yes

Deep workflow cloning with full UUID remapping

No

Yes

Build and edit funnels and landing pages

No

Yes

Build forms with conditional logic

No

Yes

Create and edit pipelines and stages

No

Yes

Account-wide silent-failure audit (audit_workflows)

No

Yes

Multi-tenant token registry — switch client sub-accounts mid-session

No

Yes

Full account export and location diff

No

Yes

Template deployment — whole sub-account from one template

No

Yes

If you only need to read and write CRM records, HighLevel's official MCP is free and works well. GHL Command is for building and repairing accounts, not just querying them. They can run side by side.

audit_workflows

GoHighLevel does not warn you when a workflow references a pipeline stage, tag, custom field, or calendar that has since been renamed or deleted. The workflow still shows as published and simply stops firing. audit_workflows scans every workflow in a location and reports these dangling references. This class of failure is the single most common cause of "my automation was working and now it isn't."


Requirements

  • Node.js 20+

  • A GoHighLevel account with API access (Agency or Sub-Account)

  • A GHL Location ID

  • A GHL Command license key (free read-only tier available)

  • Firebase credentials for the builder tools — the built-in enable_workflow_builder tool walks you through this


Tool reference

All tool names below are the exact identifiers exposed over MCP.

Contacts & CRM (15)

  • add_contact_tags

  • add_contact_to_workflow

  • create_contact

  • create_contact_note

  • create_contact_task

  • delete_contact

  • get_contact

  • get_contact_appointments

  • get_contact_notes

  • get_contact_tasks

  • remove_contact_from_workflow

  • remove_contact_tags

  • search_contacts

  • update_contact

  • upsert_contact

Conversations & Messaging (8)

  • add_inbound_message

  • create_conversation

  • get_conversation

  • get_message

  • get_messages

  • search_conversations

  • send_message

  • update_message_status

Opportunities & Pipelines (7)

  • create_opportunity

  • delete_opportunity

  • get_opportunity

  • get_pipelines

  • search_opportunities

  • update_opportunity

  • update_opportunity_status

Calendars & Appointments (11)

  • create_appointment

  • create_calendar

  • delete_appointment

  • delete_calendar

  • get_appointment

  • get_calendar

  • get_calendar_events

  • get_calendars

  • get_free_slots

  • update_appointment

  • update_calendar

Workflow Builder (exclusive) (10)

  • build_goal_event

  • build_if_else_branch

  • create_workflow

  • delete_workflow_full

  • get_trigger_registry

  • get_workflow_full

  • list_workflows_full

  • publish_workflow

  • update_workflow_actions

  • workflow_builder_status

Workflow Cloning (exclusive) (1)

  • clone_workflow

Workflows (read) (1)

  • get_workflows

Workflow Audit (exclusive) (1)

  • health_check

Funnel & Page Builder (exclusive) (10)

  • create_funnel

  • create_funnel_page

  • delete_funnel

  • delete_funnel_page

  • get_page_content

  • get_page_full

  • list_funnels_full

  • update_funnel

  • update_funnel_step

  • update_page_content

Funnels (read) (2)

  • get_funnel_pages

  • get_funnels

Funnel QA (1)

  • verify_funnel

Form Builder (exclusive) (5)

  • create_form

  • delete_form

  • get_form_full

  • get_form_submissions_full

  • update_form

Forms (read) (2)

  • get_form_submissions

  • get_forms

Pipeline Builder (exclusive) (5)

  • create_pipeline

  • delete_pipeline

  • get_pipeline_full

  • list_pipelines_full

  • update_pipeline

Template Deployment (3)

  • deploy_template

  • get_template_questionnaire

  • list_templates

Intake → Build (6)

  • apply_build_plan

  • get_intake_question_set

  • install_intake_form

  • normalize_submission_to_brief

  • validate_brief

  • validate_build_plan

Multi-Tenant Location Switching (11)

  • create_sub_account

  • delete_sub_account

  • get_current_location

  • list_available_locations

  • list_registered_locations

  • register_agency_key

  • register_company_firebase

  • register_location

  • switch_location

  • unregister_company_firebase

  • unregister_location

Locations & Custom Fields (15)

  • create_custom_field

  • create_custom_value

  • create_location_tag

  • delete_custom_field

  • delete_custom_value

  • delete_location_tag

  • get_custom_fields

  • get_custom_values

  • get_location

  • get_location_tags

  • search_locations

  • update_custom_field

  • update_custom_value

  • update_location

  • update_location_tag

Account Export & Diff (2)

  • compare_locations

  • export_account

Account Health (1)

  • get_account_health_summary

Build Validation (2)

  • audit_workflows

  • validate_workflow

Bulk Operations (5)

  • bulk_add_tags

  • bulk_add_to_workflow

  • bulk_delete_contacts

  • bulk_remove_tags

  • bulk_update_contacts

Custom Objects (7)

  • create_custom_object_record

  • delete_custom_object_record

  • get_custom_object

  • get_custom_object_record

  • list_custom_objects

  • search_custom_object_records

  • update_custom_object_record

Invoices (8)

  • create_invoice

  • delete_invoice

  • get_invoice

  • list_invoices

  • record_invoice_payment

  • send_invoice

  • update_invoice

  • void_invoice

Estimates (6)

  • create_estimate

  • delete_estimate

  • get_estimate

  • list_estimates

  • send_estimate

  • update_estimate

Payments (4)

  • get_order

  • get_orders

  • get_subscriptions

  • get_transactions

Products (6)

  • create_product

  • delete_product

  • get_product

  • list_product_prices

  • list_products

  • update_product

Coupons (5)

  • create_coupon

  • delete_coupon

  • get_coupon

  • list_coupons

  • update_coupon

Documents (6)

  • delete_document

  • get_document

  • list_document_templates

  • list_documents

  • send_document

  • send_document_template

Email Templates (9)

  • archive_email_template

  • create_email_template

  • create_sms_template

  • delete_email_template

  • get_email_campaigns

  • list_email_templates

  • list_message_templates

  • rename_email_template

  • update_email_template

Email Campaigns (1)

  • create_email_campaign

Campaigns (1)

  • get_campaigns

Social Planner (5)

  • create_social_post

  • delete_social_post

  • get_social_media_accounts

  • get_social_post

  • get_social_posts

Blogs (5)

  • check_blog_slug

  • get_blog_authors

  • get_blog_categories

  • get_blog_post

  • get_blog_posts

Memberships & Courses (7)

  • create_course

  • create_membership_category

  • create_membership_lesson

  • create_membership_offer

  • list_membership_categories

  • list_membership_lessons

  • list_membership_offers

Courses (1)

  • get_courses

Surveys (2)

  • get_survey_submissions

  • get_surveys

Reputation & Reviews (2)

  • get_review_link_list

  • list_reviews

Smart Lists (5)

  • create_smart_list

  • delete_smart_list

  • get_smart_list

  • list_smart_lists

  • update_smart_list

  • create_trigger_link

  • delete_trigger_link

  • get_trigger_links

  • update_trigger_link

Webhooks (5)

  • create_webhook

  • delete_webhook

  • get_webhook

  • list_webhooks

  • update_webhook

Associations (3)

  • create_association

  • delete_association

  • list_associations

Businesses (5)

  • create_business

  • delete_business

  • get_business

  • get_businesses

  • update_business

Users (2)

  • get_user

  • get_users

Media (2)

  • delete_media_file

  • get_media_files

Phone Numbers (2)

  • list_number_pools

  • list_phone_numbers

Snapshots (2)

  • create_snapshot_share_link

  • list_snapshots

Setup & Diagnostics (5)

  • auto_capture_firebase_script

  • capture_firebase_interactive

  • enable_workflow_builder

  • request_license

  • setup_ghl_mcp

Meta (1)

  • get_mcp_version


Support

Median time from reported bug to shipped fix has been under one week across 30+ npm releases.


About

Built by Elite DCs, LLChttps://elitedcs.com — founded by Dr. Jerry Relth, DC. GHL Command grew out of running GoHighLevel builds for healthcare and wellness clinics, where the same account-construction work was being repeated by hand for every client.

Author: Dr. Jerry Relth, DC Company: Elite DCs, LLC Tech stack: TypeScript, Node.js, MCP SDK, Zod, GHL API v2, Firebase Auth

Copyright (c) 2026 Elite DCs, LLC.

Available Tools

4 tools
auto_capture_firebase_scriptA

Get the browser-console script that auto-extracts the 3 Firebase fields needed to enable the Workflow Builder. Run this, copy the script, paste it into Chrome DevTools Console on a tab logged into GHL, press Enter, and the result lands in your clipboard. Then paste the JSON into setup_ghl_mcp's firebase_paste field (or enable_workflow_builder's). No manual IndexedDB digging.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description discloses the tool outputs a script, modifies clipboard, and is non-destructive. Assures no manual digging, but does not detail side effects or permissions. Still reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is about 4 sentences, front-loaded with purpose, step-by-step, no wasted words. Highly concise and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains the output (script) and what to do with it. Complexity low, no parameters. Complete guidance for the intended use case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters. Rule states baseline 4 for zero parameters. Description does not need to add meaning beyond schema, which is trivial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves a browser-console script for auto-extracting 3 Firebase fields to enable Workflow Builder. It distinguishes from siblings by specifying integration with setup_ghl_mcp and enable_workflow_builder.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides step-by-step instructions: run, copy script, paste in Chrome DevTools Console, press Enter, result in clipboard, then paste into another tool. Clearly indicates when to use (no manual IndexedDB digging). No explicit sibling differentiation but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mcp_versionA

Check the installed version of GHL Command (the GoHighLevel MCP server) against the latest version published to npm. Use this to confirm an upgrade landed after restarting Claude. Returns installed version, latest version, whether up-to-date, and the one-line restart instruction if not.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Lists returned fields (installed, latest, up-to-date, restart instruction). Implies read-only check with network access, no side effects disclosed beyond what stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded purpose, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Describes return values fully (no output schema), low complexity, no gaps given sibling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so description adds no param info but baseline is 4 thanks to full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Check the installed version... against the latest version' with specific verb and resource, and distinct from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to confirm an upgrade landed after restarting Claude.' No exclusions needed as siblings are unrelated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_licenseA

Get a GHL Command license. Use this if you installed from npm but don't have a license yet (or setup_ghl_mcp says your license is missing/invalid). GHL Command is $97 one-time — 212 tools across 43 modules, 3-machine activation, no subscription. Leave your email and we'll send the purchase link + setup help; the tool also returns where to buy right now.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoYour name (optional).
emailYesYour email — where to send the purchase link and setup help.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It discloses that the tool triggers an email and returns purchase info. It doesn't cover potential side effects, but for a non-destructive request tool, the disclosure is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each adding unique information: purpose, usage scenario, and outcome. It is slightly verbose but all content is relevant and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple parameters and no output schema, the description covers all key aspects: purpose, trigger conditions, pricing, and expected result (purchase link). It lacks mention of prerequisites like authentication, but the tool is likely accessible.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the purpose of the email parameter (send purchase link) and that name is optional, while the schema provides similar but more concise descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a GHL Command license.' It uses a specific verb and resource, and differs from siblings like `setup_ghl_mcp` which handle license validation, not acquisition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use: 'if you installed from npm but don't have a license yet (or setup_ghl_mcp says your license is missing/invalid).' It also provides context—license costs, features, and what happens after submission.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_ghl_mcpA

First-run setup for GHL Command MCP. Validates your license and GHL credentials, then writes them to a per-user credentials file. Restart Claude after this completes to load all 212 tools (163 if you skip the optional Firebase fields; add Firebase later with enable_workflow_builder).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail used at purchase.
ghl_api_keyYesGHL Private Integration key (starts with 'pit-'). Created INSIDE the sub-account at Settings > Integrations > Private Integrations.
ghl_user_idNo(Workflow Builder, manual path) Firebase User ID. Prefer firebase_paste instead.
license_keyYesLicense key from your purchase email.
firebase_pasteNo(Workflow Builder, one-paste path) Paste the JSON output from auto_capture_firebase_script here. Replaces the three separate Firebase fields below.
ghl_company_idNo(Agency only) Company ID for multi-location access.
ghl_location_idYesGHL Location ID (sub-account ID). Found in your GHL URL: /location/THIS_PART/dashboard.
ghl_firebase_api_keyNo(Workflow Builder, manual path) Firebase API Key starting with 'AIza'. Prefer firebase_paste instead.
ghl_firebase_refresh_tokenNo(Workflow Builder, manual path) Firebase refresh token. Prefer firebase_paste instead.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavior. It discloses validation, writing credentials to file, need for restart, and optional Firebase setup. Lacks details on overwriting existing config or error handling, but sufficient for a setup tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, no fluff. Every sentence adds essential information about what the tool does, what to do after, and optional variants.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a setup tool: explains required vs optional fields, post-setup steps, and ties to other tools (enable_workflow_builder). No output schema needed; the description covers the expected workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 9 parameters have schema descriptions, but the description adds value by explaining the 'one-paste' vs 'manual' Firebase paths and providing context for location IDs and API keys, enhancing understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'First-run setup for GHL Command MCP' with specific verbs 'validates' and 'writes'. Distinguishes from siblings by being a one-time setup, while siblings are for capturing Firebase, version info, or license requests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'First-run setup' and 'Restart Claude after this completes'. Also notes optional Firebase fields and suggests using enable_workflow_builder later, but does not explicitly state when not to use or compare with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv3.27.1
    • First observedauto_capture_firebase_script
    • First observedget_mcp_version
    • First observedrequest_license
    • First observedsetup_ghl_mcp

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose: one for setup, one for license, one for version check, and one for extracting Firebase script. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with descriptive verbs (auto_capture, get, request, setup), making them predictable.

Tool Count4/5

4 tools is slightly low, but they are well-scoped for initial setup and management of a larger set (212 tools). The count fits the bootstrapping purpose.

Completeness3/5

Covers key management actions (setup, license, version, feature utility) but lacks update/uninstall/debug tools. Minor gaps exist but core workflow is covered.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A comprehensive MCP server that connects AI assistants to GoHighLevel CRM, enabling management of contacts, conversations, calendars, pipelines, payments, and more through 60+ tools.
    64
    56
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server for GoHighLevel API v2 that provides 50+ tools for CRM, billing, marketing, and operations workflows, enabling natural language interaction with contacts, opportunities, conversations, and more.
    50
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive MCP server that connects AI systems to GoHighLevel CRM, providing 269+ tools for contact management, messaging, calendar, sales, and automation.
    10
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/drjerryrelth/ghl-command-feedback'

If you have feedback or need assistance with the MCP directory API, please join our Discord server