{"name":"io.github.davidandradebar/ghl-master","slug":"davidandradebar-ghl-master","title":null,"description":"The GoHighLevel MCP for Claude — 214 tools, programmatic workflow builder, multi-tenant.","url":"https://mcp.market/server/davidandradebar-ghl-master","rating":null,"grade":"C","score":65,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":11,"stars":null,"forks":null,"downloads_week":45,"last_push_at":null,"license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":null,"website":"https://ghl-master.salesfactoryagency.com","version":"1.0.4","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"ghl-master","version":"1.0.4","transport":{"type":"stdio"}}],"tools":[{"name":"auto_capture_firebase_script","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"build_goal_event","description":"Build a correctly-shaped GHL workflow goal-event node. Goal events sit inline in the action chain \\u2014 when the goal condition fires during workflow execution, the configured action runs (default: exit the workflow). The previous action's `next` should point to the goal node's id; the goal node itself does not have a `next`. All 10 goal_condition values are catalogued (from GHL's workflow-builde","write_action":false,"price_micros":0,"input_schema":null},{"name":"build_if_else_branch","description":"Build a correctly-shaped GHL if/else branch node set for a tag-based condition (Build Your Own / CUSTOM recipe). Returns a condition-node, branch-yes, branch-no, and branch child actions with parent/parentKey/sibling/order links populated. Shape mirrors what GHL's UI saves so dropdowns render correctly.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bulk_add_tags","description":"Add tags to multiple contacts at once. Rate-limited to avoid API throttling. Returns a summary of successes and failures.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bulk_add_to_workflow","description":"Enroll multiple contacts into a workflow at once. Rate-limited.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bulk_delete_contacts","description":"Delete multiple contacts at once. IRREVERSIBLE. Rate-limited. Use with extreme caution.","write_action":true,"price_micros":0,"input_schema":null},{"name":"bulk_remove_tags","description":"Remove tags from multiple contacts at once. Rate-limited.","write_action":true,"price_micros":0,"input_schema":null},{"name":"bulk_update_contacts","description":"Update the same field(s) on multiple contacts at once. Rate-limited. Example: set a custom field value, change source, update address for a batch of contacts.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clone_workflow","description":"Deep clone a workflow \\u2014 creates an exact copy with new IDs for all actions, triggers, and references. The clone starts as a draft. Useful for creating templates or duplicating workflows across projects.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_locations","description":"Compare two GHL sub-accounts side by side \\u2014 shows differences in pipelines, workflows, custom fields, tags, forms, and funnels. Useful for ensuring consistency across locations or auditing before/after changes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_form","description":"Create a new form. Starts with a basic structure \\u2014 use update_form to add fields and configure settings.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_funnel","description":"Create a new funnel/website. Starts empty \\u2014 add steps and pages after creation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_funnel_page","description":"Create a new step (page entry) in a funnel. The client generates a step UUID locally and sends it in the request; GHL auto-creates a blank page inside the step on the server side. The response includes the new step's id and the page's Firestore reference, which you can then update via update_page_content.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_pipeline","description":"Create a new pipeline with stages. Each stage needs a name and position (0-based).","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_smart_list","description":"Create a new smart list (dynamic filter list). Required: name + objectKey. Filters define the saved-search criteria \\u2014 pass an empty array to create an empty list and add filters later via update_smart_list. The shape of filters/columns is opaque here; query an existing smart list with get_smart_list to see the format GHL expects.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_workflow","description":"Create a new empty workflow (starts as draft). Requires Firebase auth. Flow: 1) create_workflow \\u2192 2) update_workflow_actions (add triggers + steps) \\u2192 3) publish_workflow (make it live).","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_form","description":"Permanently delete a form. IRREVERSIBLE.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_funnel","description":"Permanently delete a funnel and all its steps/pages. IRREVERSIBLE.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_funnel_page","description":"Permanently delete a step (and all its pages) from a funnel. IRREVERSIBLE. SIGNATURE CHANGED in v3.7.0: was pageId, now requires funnelId + stepId to match GHL's actual delete-step endpoint.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_pipeline","description":"Permanently delete a pipeline and all its stages. Opportunities become unassigned. IRREVERSIBLE.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_smart_list","description":"Permanently delete a smart list. IRREVERSIBLE. The list configuration is removed but the contacts/opportunities themselves are NOT touched \\u2014 smart lists are just saved filters. Any workflow trigger / dashboard / report that referenced this list by ID will stop working.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_workflow_full","description":"Permanently delete a workflow. IRREVERSIBLE.","write_action":true,"price_micros":0,"input_schema":null},{"name":"deploy_template","description":"Deploy a template to set up a GHL sub-account. Creates tags, custom fields, pipelines with stages, calendars, workflows, and forms based on the template and the user's questionnaire answers. This is the main setup automation tool.","write_action":true,"price_micros":0,"input_schema":null},{"name":"enable_workflow_builder","description":"Add Firebase credentials to an existing GHL Master install to unlock 49 additional tools across the internal-API modules: workflow builder (create/edit/clone/delete/publish/validate workflows, build_if_else_branch, build_goal_event, get_trigger_registry), funnel + page builder, form builder, pipeline builder, workflow cloner, smart lists, reputation, email campaigns, email templates, and membershi","write_action":false,"price_micros":0,"input_schema":null},{"name":"export_account","description":"Export a complete inventory of the GHL sub-account: location info, contacts (count + sample), pipelines with stages, workflows (with full actions if builder auth is configured), funnels with pages, forms, custom fields, custom values, tags, calendars, and users. Returns a comprehensive JSON report for auditing or backup.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_current_location","description":"Show which GHL sub-account (location) is currently active, including API key status and installed MCP version. All tools use this location by default unless you specify a different one.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_form_full","description":"Get a form with full builder data: all fields (labels, types, IDs, validation), conditional logic, auto-responder config, email notification settings, styling, and version history. This is the internal API \\u2014 it returns everything the form builder UI shows.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_form_submissions_full","description":"Get form submissions with full field data, contact info, and submission timestamps via the internal API. Offset-based pagination via skip/limit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_mcp_version","description":"Check the installed version of GHL Master (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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_page_content","description":"Download the full page builder content from a page's data URL. Returns the complete page structure: sections, elements, settings, styles, tracking codes, and popups. Use get_page_full first to get the pageDataDownloadUrl.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_page_full","description":"Get a funnel/website page with full builder data: metadata, version, preview snapshot URL, and page data download URL. To get the actual page content (sections, elements, styles), use get_page_content with the pageDataDownloadUrl from this response.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_pipeline_full","description":"Get a single pipeline with complete stage configuration: IDs, names, positions, display settings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_smart_list","description":"Get a single smart list by ID with its full configuration: filters, columns, permissions, and metadata. The filters array is what defines who/what is in the list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_template_questionnaire","description":"Get the questionnaire for a specific template. Returns all the questions that need to be answered before deploying. Present these to the user one at a time in a conversational style.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_trigger_registry","description":"Return GHL's marketplace catalogue of workflow triggers from 3rd-party apps (Zoom, Shopify, WooCommerce, Monday, etc.). Each app exposes one or more trigger templates with custom variable mappings. Calls /marketplace/core/search/module?type=triggers. NOTE: This is the MARKETPLACE only. GHL's NATIVE trigger types (form_submission, contact_tag, payment_received, opportunity_*, inbound_webhook, etc.)","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_workflow_full","description":"Get a workflow with full details including all actions (steps), triggers, conditions, if/else branches, and configuration. Requires Firebase auth. ALWAYS call this before update_workflow_actions to see the current state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"health_check","description":"Run a full health check of the GHL Master MCP install. Reports on: npm registry + version status, GHL API key validity, default location reachability, Firebase auth status (workflow builder), and token registry. Returns a structured pass/fail/warn list with detail per check. Use this when something feels broken or after credentials change.","write_action":true,"price_micros":0,"input_schema":null},{"name":"list_available_locations","description":"List all GHL sub-accounts (locations) accessible with the current or agency API key. Shows locations that exist in the GHL account \\u2014 use register_location to add their tokens. Offset-based pagination via skip/limit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_funnels_full","description":"List all funnels/websites with full details including steps, pages, and metadata. Uses the internal API for richer data than the public API.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_pipelines_full","description":"List all pipelines with full stage details including IDs, positions, funnel/pie chart visibility. Uses the internal API for richer data than the public API.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_registered_locations","description":"List all GHL sub-accounts in the token registry (names, IDs, owning company) plus any companies with registered Firebase credentials for multi-tenant workflow-builder access. These are locations switch_location can automatically authenticate to.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_smart_lists","description":"List smart lists (dynamic / saved-filter lists) in a location. Smart Lists are saved searches over contacts or opportunities \\u2014 agencies use them to segment by complex criteria. Filters and columns aren't returned in the list view; use get_smart_list for the full filter spec.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_templates","description":"List all available setup templates. Each template is a complete sub-account blueprint for a specific business type (clinic, med spa, dental, etc.).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_workflows_full","description":"List all workflows with full metadata including version, permissions, and timestamps. Requires Firebase auth. Use this instead of get_workflows when you need version numbers or internal IDs for update_workflow_actions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"publish_workflow","description":"Publish a draft workflow, making it active and processing contacts.","write_action":true,"price_micros":0,"input_schema":null},{"name":"register_company_firebase","description":"Register a GHL company's Firebase credentials so the workflow builder and all Firebase-gated tools work when you switch into THAT company's sub-accounts. Firebase refresh tokens are company-scoped, so managing a client's GHL (e.g. an account where you're an admin user) requires that company's own token. Capture the values from a browser session logged into the client's account and register them ke","write_action":false,"price_micros":0,"input_schema":null},{"name":"register_location","description":"Add a GHL sub-account to the token registry so switch_location can automatically use its API key. Each sub-account needs its own Private Integration key created in GHL Settings > Integrations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"request_license","description":"Get a GHL Master 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 Master is $97 one-time \\u2014 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"setup_ghl_mcp","description":"First-run setup for GHL Master 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).","write_action":false,"price_micros":0,"input_schema":null},{"name":"switch_location","description":"Switch the active GHL sub-account. Automatically swaps the API key from the token registry if available. After switching, all tools default to the new location.","write_action":false,"price_micros":0,"input_schema":null},{"name":"unregister_company_firebase","description":"Remove a company's Firebase credentials from the registry. Workflow-builder tools will stop working for that company's sub-accounts until re-registered.","write_action":true,"price_micros":0,"input_schema":null},{"name":"unregister_location","description":"Remove a GHL sub-account from the token registry.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_form","description":"Update a form's structure \\u2014 fields, labels, conditional logic, auto-responder, email notifications, styling. Use get_form_full first to read the current form, modify the formData object, then pass it here. If name is omitted, the current name is preserved (one extra GET).","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_funnel","description":"Update a funnel's settings: name, path/slug, tracking codes, GDPR + payment + chat widget flags, etc. This is the 'save settings panel' endpoint \\u2014 it sends the entire settings object, so the tool fetches current settings first, merges your overrides on top, then POSTs back. To rename a single step (page) inside a funnel, use update_funnel_step instead.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_funnel_step","description":"Update a single step (page entry) inside a funnel \\u2014 display name, URL slug, or attached domain. A step is GHL's container for one or more pages (multiple pages exist when split-testing). Use update_funnel for funnel-level settings instead.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_page_content","description":"Update a page's builder content \\u2014 sections, elements, settings, pageStyles, trackingCode, popups, popupsList, fontsForPreview. Use get_page_content first to see the current structure, modify it, then pass the full 8-field envelope here. GHL's UI fires three POSTs to this endpoint per save (one collaborative-edit broadcast + two commits); for MCP use, one POST with write=true is enough.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_pipeline","description":"Update a pipeline's name, stages, or display settings. You can add, remove, rename, or reorder stages. Pass the complete stages array \\u2014 stages not included will be removed.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_smart_list","description":"Update an existing smart list's name, filters, or columns. The objectKey CANNOT be changed after creation (GHL rejects with 422 if you try). Use get_smart_list first to inspect the current filters; partial updates work \\u2014 pass only the fields you want to change.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_workflow_actions","description":"Update a workflow's actions (steps), triggers, name, or status. IMPORTANT: Call get_workflow_full first to see the current state before updating. Handles version tracking automatically. Uses the internal builder API (requires Firebase auth). Action types: sms, email, add_contact_tag, remove_contact_tag, wait, webhook, internal_update_opportunity, custom_code, update_contact_field, add_notes, inter","write_action":true,"price_micros":0,"input_schema":null},{"name":"validate_workflow","description":"Pre-flight ID validation for a deployed GHL workflow. Scans every trigger and action for references to pipelines, pipeline stages, custom fields, users, workflows, forms, calendars, and surveys; verifies each ID exists in the current location. Use this BEFORE publish_workflow when a workflow has been edited, or whenever a published workflow stops behaving as expected. Catches the silent-failure bu","write_action":false,"price_micros":0,"input_schema":null},{"name":"workflow_builder_status","description":"Check if the workflow builder (internal API) is configured. Needs Firebase credentials, added via enable_workflow_builder.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":65,"grade":"C","scanned_at":"2026-09-27T12:15:18.866Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T12:15:18.918Z","components":{"code":{"score":25,"max":25,"notes":["5 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"packages":[{"registryType":"npm","identifier":"ghl-master","version":"1.0.4","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-06-05T03:13:06.362Z","weeklyDownloads":45}],"repo":{"found":false},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":45,"license":"MIT","lastPushAt":null,"score":11}}}},"grade_history":[],"reviews":[]}