Skip to main content
Glama
ampware-io

GHL Workflow MCP

by ampware-io

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GHL_MCP_CDP_PORTNoChrome DevTools debug port. Can also be set with the option --port <n>.49222
GHL_MCP_CACHE_DIRNoLocal cache of workflows read by patch_workflow.~/.ghl-wkfl/cache

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
launch_chromeA

Launch a dedicated Chrome window with GoHighLevel. Call this when test_connection fails because Chrome is not running. First call without confirm returns instructions for the user. Call again with confirm=true after the user agrees to proceed.

reconnectA

Re-scan Chrome for GoHighLevel tabs and switch to a different tab or location. Use this to change locations without restarting the server. If called with no targetId, lists available GHL tabs. If called with a targetId, switches to that tab.

test_connectionA

Verify Chrome is reachable, GHL tab is found, and Firebase token is extractable. Call this first to confirm the MCP server can communicate with GoHighLevel.

list_workflowsA

List all workflows in the current GoHighLevel location. Returns workflow summaries including name, ID, status, and dates. Auto-fetches all pages by default. Optionally pass limit/offset to get a specific page, or sortBy/sortOrder to control ordering.

get_workflowA

Get a GoHighLevel workflow's structure including actions and triggers. By default returns a summary with action names, types, and ordering (compact). Set includeActionDetails=true for full action attributes (warning: responses can be very large). Call list_workflows first to find workflow IDs.

create_workflowA

Create a new workflow. Action and trigger types must come from the enums in this schema. Use the then/else scaffold for if_else conditions; the verbose three-sibling form is also accepted. Salvage decisions surface in skippedActions[] (HARD drops) and warnings[] (advisory). When any HARD drop occurs, status is forced to draft. For field meanings, allowed values and worked examples for every step type, use the GHL Workflow Docs MCP.

update_workflowA

Update an existing workflow with partial changes. Action and trigger types must come from the enums in this schema. Use the then/else scaffold for if_else; verbose three-sibling form also accepted. Pass only fields you want to change. Salvage decisions surface in skippedActions[] and warnings[]. When any HARD drop occurs, status is forced to draft. For field meanings, allowed values and worked examples for every step type, use the GHL Workflow Docs MCP.

read_workflow_outlineA

(FREE) Cheap targeted read — returns workflow metadata + step IDs/types/names/order/next/parentKey only (no attributes). Prefer this as the FIRST read when editing a workflow; follow with read_workflow_step for any step you intend to mutate.

read_workflow_stepA

(FREE) Returns one step's full JSON for a given workflow + step ID. Use after read_workflow_outline to inspect a specific step before patching it. Returns a structured step_not_found error with valid_step_ids when the step does not exist.

patch_workflowA

Apply an ordered list of patch operations to a workflow with deterministic server-side pointer rewiring. Ops: insert_after / update_step / delete_step / move / rewire_step (plus add_trigger / update_trigger / remove_trigger). Param roles — step_id = the SUBJECT the op acts on (update_step/delete_step/move/rewire_step); after_step_id = the ANCHOR to position after (insert_after/move); next = the target pointer for rewire_step (a step ID or null to terminate); trigger_id = the subject trigger. insert_after also accepts step_id as an alias for after_step_id. rewire_step overwrites a non-branched step scalar next in place (no splice, no reorder) — it does NOT validate for cycles or orphaned downstream steps; the caller owns flow correctness. All-or-nothing: any op failure aborts before any GHL write. Detects external workflow changes via the version field. Use after read_workflow_outline + read_workflow_step. For whole-workflow rewrites or branched-step splices, fall back to update_workflow. For field meanings, allowed values and worked examples for every step type, use the GHL Workflow Docs MCP.

delete_workflowA

Delete a workflow permanently. Returns the deleted workflow name for confirmation. No undo — the workflow is removed from GHL immediately.

publish_workflowA

Publish a draft workflow, changing its status to published. The workflow will become active and start processing contacts when triggered. Returns the full workflow object after publishing.

clone_workflowA

Clone an existing workflow, creating an independent copy on the same location. GHL handles all UUID remapping and action chain wiring server-side. By default the clone is named "Copy - {original name}" — pass a custom name to override. Returns the full cloned workflow object.

create_folderB

Create a new workflow folder in the current GHL location. Returns the created folder object.

delete_folderA

Delete a workflow folder. Any workflows inside the folder are automatically moved to root level by GHL. Cannot be undone.

rename_folderA

Rename an existing workflow folder.

move_workflowA

Move a workflow into a folder, or back to root level. To move to root, omit folderId or pass null.

list_foldersA

List all workflow folders in the current GHL location. Returns folder names and IDs. Use folder IDs with move_workflow or list_workflows (folderId param).

list_tagsA

List all tags in the current GoHighLevel location. Returns tag names and IDs.

create_tagC

Create a new tag in the current GoHighLevel location.

list_usersA

List all users with access to the current GoHighLevel location. Returns user names, emails, roles, and permissions.

list_pipelinesA

List all opportunity pipelines in the current GoHighLevel location. Returns pipeline names with their stages (name, position).

list_custom_fieldsA

List custom fields in the current GoHighLevel location. Requires a model parameter to specify which entity type (contact or opportunity). Contact and opportunity custom fields use different API endpoints internally.

list_custom_valuesA

List custom values (template variables) for conversations in the current GoHighLevel location. Returns system-defined static variables and location-specific custom values.

list_associationsA

List object associations for contacts in the current GoHighLevel location. Returns association types and cardinality between objects.

list_business_fieldsB

List the business object definition and its fields in the current GoHighLevel location. Returns the object metadata and all custom/standard fields.

list_formsA

List all forms in the current GoHighLevel location. Returns form names and IDs.

list_trigger_linksB

List all trigger links (one-click action links) in the current GoHighLevel location. Returns link names and IDs.

list_email_templatesA

List all email templates in the current GoHighLevel location. Returns template names and IDs for use in workflow email actions.

audit_workflowA

Audit a workflow for broken entity references. Scans all actions and triggers for pipeline, stage, user, custom field, and custom value IDs, then validates each against the location data. Returns which references are valid, which are broken, and suggests replacements.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
entities-guideDescribes which workflow fields need real entity IDs, how to get them, and how entity validation works.

TDQS

A3.7/5.0

Scored across 30 tools

Disambiguation5/5

Each tool has a clearly distinct purpose, with descriptions explicitly guiding when to use which tool (e.g., get_workflow vs read_workflow_outline vs read_workflow_step, and update_workflow vs patch_workflow). The list_* tools are separated by entity type, and connection tools are unique. No two tools appear to do the same thing.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (e.g., list_tags, create_workflow, read_workflow_step, patch_workflow). The few single-verb names like reconnect and launch_chrome are still clear and consistent with the overall style.

Tool Count3/5

With 30 tools, the set is heavy, but the server covers a broad GoHighLevel domain including many entity types needed for workflow construction. Each tool serves a distinct purpose, though some consolidation (e.g., a generic list tool with a type parameter) could reduce the count without losing functionality.

Completeness4/5

The server provides comprehensive CRUD and lifecycle coverage for workflows (create, read, update, delete, publish, clone, patch) and folders, plus all the list operations needed to reference GHL entities. Minor gaps exist, such as no update or delete for tags, but these are not critical for core workflow management.

Maintenance

ActivityMaintained
ResponsivenessNo issues