# 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-mcp`](https://www.npmjs.com/package/@elitedcs/ghl-mcp) - **MCP registry ID:** `io.github.drjerryrelth/ghl-command` - **Website:** 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](https://github.com/drjerryrelth/ghl-command-feedback/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. --- ## Install ```bash npx -y @elitedcs/ghl-mcp@latest ``` Claude Desktop / Claude Code config: ```json { "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` ### Trigger Links (4) - `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 - **Bugs and feature requests:** [Issues](https://github.com/drjerryrelth/ghl-command-feedback/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.