GHL Command
GHL Command is a GoHighLevel MCP server for Claude providing 229 tools across 48 modules for full GoHighLevel control. Here's what you can do:
Setup & Licensing
Validate license & credentials (
setup_ghl_mcp): Validate your license and GoHighLevel credentials (API key, Location ID, optional Firebase fields) to activate up to 212 tools (163 without Firebase).Request a license (
request_license): Submit your email to receive a purchase link ($97 one-time, 3-machine activation).
Version Management
Check version (
get_mcp_version): Verify your installed version against the latest npm release and get update instructions if needed.
Firebase / Workflow Builder Setup
Capture Firebase credentials (
auto_capture_firebase_script): Generate a browser console script to extract the 3 Firebase credentials needed to unlock 49 additional Workflow Builder tools.
Full GoHighLevel Control (post-setup)
Programmatically create, edit, and publish workflows (the only programmatic GHL workflow builder available).
Perform silent-failure workflow audits.
Build funnels and forms programmatically.
Execute bulk operations.
Construct complete client sub-accounts from a single prompt.
Manage contacts, opportunities, campaigns, triggers, and more across 48 modules.
Support
Report bugs or request features via GitHub issues; billing inquiries via dedicated email support.
Provides integration with Firebase, offering 49 extra Firebase-gated tools for workflow building and automation within the GoHighLevel ecosystem.
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.
npm package:
@elitedcs/ghl-mcpMCP registry ID:
io.github.drjerryrelth/ghl-commandWebsite: https://ghlcommand.com
Documentation: https://elitedcs.com/ghl-mcp-server
Setup guide: https://elitedcs.com/ghl-mcp-setup-guide
Works with: Claude Desktop app and Claude Code
Transport: stdio
License model: commercial — see Pricing below
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@latestClaude 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 ( | 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_buildertool walks you through this
Tool reference
All tool names below are the exact identifiers exposed over MCP.
Contacts & CRM (15)
add_contact_tagsadd_contact_to_workflowcreate_contactcreate_contact_notecreate_contact_taskdelete_contactget_contactget_contact_appointmentsget_contact_notesget_contact_tasksremove_contact_from_workflowremove_contact_tagssearch_contactsupdate_contactupsert_contact
Conversations & Messaging (8)
add_inbound_messagecreate_conversationget_conversationget_messageget_messagessearch_conversationssend_messageupdate_message_status
Opportunities & Pipelines (7)
create_opportunitydelete_opportunityget_opportunityget_pipelinessearch_opportunitiesupdate_opportunityupdate_opportunity_status
Calendars & Appointments (11)
create_appointmentcreate_calendardelete_appointmentdelete_calendarget_appointmentget_calendarget_calendar_eventsget_calendarsget_free_slotsupdate_appointmentupdate_calendar
Workflow Builder (exclusive) (10)
build_goal_eventbuild_if_else_branchcreate_workflowdelete_workflow_fullget_trigger_registryget_workflow_fulllist_workflows_fullpublish_workflowupdate_workflow_actionsworkflow_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_funnelcreate_funnel_pagedelete_funneldelete_funnel_pageget_page_contentget_page_fulllist_funnels_fullupdate_funnelupdate_funnel_stepupdate_page_content
Funnels (read) (2)
get_funnel_pagesget_funnels
Funnel QA (1)
verify_funnel
Form Builder (exclusive) (5)
create_formdelete_formget_form_fullget_form_submissions_fullupdate_form
Forms (read) (2)
get_form_submissionsget_forms
Pipeline Builder (exclusive) (5)
create_pipelinedelete_pipelineget_pipeline_fulllist_pipelines_fullupdate_pipeline
Template Deployment (3)
deploy_templateget_template_questionnairelist_templates
Intake → Build (6)
apply_build_planget_intake_question_setinstall_intake_formnormalize_submission_to_briefvalidate_briefvalidate_build_plan
Multi-Tenant Location Switching (11)
create_sub_accountdelete_sub_accountget_current_locationlist_available_locationslist_registered_locationsregister_agency_keyregister_company_firebaseregister_locationswitch_locationunregister_company_firebaseunregister_location
Locations & Custom Fields (15)
create_custom_fieldcreate_custom_valuecreate_location_tagdelete_custom_fielddelete_custom_valuedelete_location_tagget_custom_fieldsget_custom_valuesget_locationget_location_tagssearch_locationsupdate_custom_fieldupdate_custom_valueupdate_locationupdate_location_tag
Account Export & Diff (2)
compare_locationsexport_account
Account Health (1)
get_account_health_summary
Build Validation (2)
audit_workflowsvalidate_workflow
Bulk Operations (5)
bulk_add_tagsbulk_add_to_workflowbulk_delete_contactsbulk_remove_tagsbulk_update_contacts
Custom Objects (7)
create_custom_object_recorddelete_custom_object_recordget_custom_objectget_custom_object_recordlist_custom_objectssearch_custom_object_recordsupdate_custom_object_record
Invoices (8)
create_invoicedelete_invoiceget_invoicelist_invoicesrecord_invoice_paymentsend_invoiceupdate_invoicevoid_invoice
Estimates (6)
create_estimatedelete_estimateget_estimatelist_estimatessend_estimateupdate_estimate
Payments (4)
get_orderget_ordersget_subscriptionsget_transactions
Products (6)
create_productdelete_productget_productlist_product_priceslist_productsupdate_product
Coupons (5)
create_coupondelete_couponget_couponlist_couponsupdate_coupon
Documents (6)
delete_documentget_documentlist_document_templateslist_documentssend_documentsend_document_template
Email Templates (9)
archive_email_templatecreate_email_templatecreate_sms_templatedelete_email_templateget_email_campaignslist_email_templateslist_message_templatesrename_email_templateupdate_email_template
Email Campaigns (1)
create_email_campaign
Campaigns (1)
get_campaigns
Social Planner (5)
create_social_postdelete_social_postget_social_media_accountsget_social_postget_social_posts
Blogs (5)
check_blog_slugget_blog_authorsget_blog_categoriesget_blog_postget_blog_posts
Memberships & Courses (7)
create_coursecreate_membership_categorycreate_membership_lessoncreate_membership_offerlist_membership_categorieslist_membership_lessonslist_membership_offers
Courses (1)
get_courses
Surveys (2)
get_survey_submissionsget_surveys
Reputation & Reviews (2)
get_review_link_listlist_reviews
Smart Lists (5)
create_smart_listdelete_smart_listget_smart_listlist_smart_listsupdate_smart_list
Trigger Links (4)
create_trigger_linkdelete_trigger_linkget_trigger_linksupdate_trigger_link
Webhooks (5)
create_webhookdelete_webhookget_webhooklist_webhooksupdate_webhook
Associations (3)
create_associationdelete_associationlist_associations
Businesses (5)
create_businessdelete_businessget_businessget_businessesupdate_business
Users (2)
get_userget_users
Media (2)
delete_media_fileget_media_files
Phone Numbers (2)
list_number_poolslist_phone_numbers
Snapshots (2)
create_snapshot_share_linklist_snapshots
Setup & Diagnostics (5)
auto_capture_firebase_scriptcapture_firebase_interactiveenable_workflow_builderrequest_licensesetup_ghl_mcp
Meta (1)
get_mcp_version
Support
Bugs and feature requests: Issues
Email: support@ghlcommand.com
Changelog: https://www.npmjs.com/package/@elitedcs/ghl-mcp?activeTab=versions
Median time from reported bug to shipped fix has been under one week across 30+ npm releases.
About
Built by Elite DCs, LLC — https://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 toolsauto_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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Your name (optional). | |
| Yes | Your email — where to send the purchase link and setup help. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email used at purchase. | ||
| ghl_api_key | Yes | GHL Private Integration key (starts with 'pit-'). Created INSIDE the sub-account at Settings > Integrations > Private Integrations. | |
| ghl_user_id | No | (Workflow Builder, manual path) Firebase User ID. Prefer firebase_paste instead. | |
| license_key | Yes | License key from your purchase email. | |
| firebase_paste | No | (Workflow Builder, one-paste path) Paste the JSON output from auto_capture_firebase_script here. Replaces the three separate Firebase fields below. | |
| ghl_company_id | No | (Agency only) Company ID for multi-location access. | |
| ghl_location_id | Yes | GHL Location ID (sub-account ID). Found in your GHL URL: /location/THIS_PART/dashboard. | |
| ghl_firebase_api_key | No | (Workflow Builder, manual path) Firebase API Key starting with 'AIza'. Prefer firebase_paste instead. | |
| ghl_firebase_refresh_token | No | (Workflow Builder, manual path) Firebase refresh token. Prefer firebase_paste instead. |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v3.27.1- First observed
auto_capture_firebase_script - First observed
get_mcp_version - First observed
request_license - First observed
setup_ghl_mcp
TDQS
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.
All tool names follow a consistent snake_case pattern with descriptive verbs (auto_capture, get, request, setup), making them predictable.
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.
Covers key management actions (setup, license, version, feature utility) but lacks update/uninstall/debug tools. Minor gaps exist but core workflow is covered.
Maintenance
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
Marketo MCP server for AI. 130 tools to operate Marketo from Claude, Cursor, or ChatGPT.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
Related MCP Servers
- AlicenseBqualityDmaintenanceA comprehensive MCP server that connects AI assistants to GoHighLevel CRM, enabling management of contacts, conversations, calendars, pipelines, payments, and more through 60+ tools.6456MIT
- AlicenseNot gradedqualityCmaintenanceIntegrates Claude Desktop with GoHighLevel CRM, providing 269+ tools for contact management, messaging, sales, marketing, and more via MCP.26ISC
- AlicenseBqualityDmaintenanceMCP 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.501MIT
- AlicenseNot gradedqualityCmaintenanceA comprehensive MCP server that connects AI systems to GoHighLevel CRM, providing 269+ tools for contact management, messaging, calendar, sales, and automation.10MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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