Skip to main content

ghl-pro-mcp

Le das una orden en tu idioma y te monta el embudo entero dentro de GoHighLevel.

«Quiero un embudo para mi clínica de mascotas, y que agende citas»

A partir de ahí, el asistente pregunta lo que le falta —no inventa nada—, investiga el mercado de tu zona, y despliega en tu cuenta: etiquetas, campos personalizados, pipeline con sus etapas, landing con formulario real y el workflow de respuesta y seguimiento. Todo queda en borrador, y se puede deshacer de una pieza.

Esto es un servidor MCP local: funciona con Claude Code, Claude Desktop, Codex, Cursor, Cline, Windsurf o VS Code. Corre en tu ordenador — tus credenciales y los datos de tu CRM no pasan por ningún servidor intermedio.


Por qué este y no otro

MCP oficial de GHL Este
Leer workflows Sí Sí
Crear y guardar workflows No Sí
Crear embudos No Sí
Guardar y publicar páginas No Sí
Crear y editar surveys No Sí
Operaciones de la API pública disponibles 548 548

No es una opinión: la API pública de GoHighLevel solo permite leer workflows, embudos, páginas y surveys. Es un muro de su API, no de su configuración. Cualquier integración que se apoye solo en la API pública se queda fuera de ahí — y ahí es donde está el trabajo.

Este servidor usa además la vía de sesión para esas cuatro cosas, que es lo que le deja montar el embudo completo en lugar de limitarse a consultarlo.


El flujo, de principio a fin

«quiero un embudo para mi clínica de mascotas»
        │
        ├─ nuevo_proyecto ──────► crea el brief y devuelve las preguntas
        │
        ├─ responder_brief ─────► se contestan (el asistente pregunta lo que falta)
        │
        ├─ guia_de_investigacion ► qué hay que averiguar del mercado de esa zona
        ├─ guardar_investigacion ► 3-5 competidores y las palabras que usa su cliente
        │
        ├─ ver_plan_despliegue ──► enseña qué va a crear y qué falta
        │
        ├─ desplegar_plan ───────► LO CREA TODO, en borrador
        │
        └─ ver_manifiesto ───────► qué se creó, para poder deshacerlo
              deshacer_plan ─────► borra lo que creó, y dice lo que no pudo

El brief manda. Sin las respuestas críticas —sector, objetivo, oferta, zona, quién atiende y qué es un buen lead— el despliegue no se ejecuta. Y sin la investigación del mercado tampoco: sin las palabras que usa tu cliente, la landing sale con los tópicos del sector, igual que la de cualquier competidor.

Qué crea el despliegue

  1. Etiquetas de segmentación, según lo que el negocio necesite
  2. Campos personalizados — los que tú digas: la fecha de la última visita, la talla, lo que haga falta para el seguimiento. Sin esto no hay recordatorio del próximo servicio, que es la táctica que más dinero devuelve cuando se vende varias veces al mismo cliente
  3. Pipeline con etapas derivadas del objetivo (no las mismas cinco para todos)
  4. Landing con formulario nativo de GoHighLevel — se comprueba que capte de verdad
  5. Workflow: crea la oportunidad en el pipeline, responde al cliente por el canal que tenga, avisa al negocio, espera un día y deja una tarea de repaso

Nada se publica. Los workflows quedan en borrador y la landing sin publicar: publicar es tu decisión.

Nada se duplica. Si despliegas dos veces, reutiliza lo que se llame igual y te dice qué revisar. Y lo que ya tenías no se apunta en el manifiesto, así que deshacer no te borra algo tuyo.


Requisitos

  • uv (recomendado), o Python 3.10 o superior.
  • Una Private Integration Token de GoHighLevel, creada dentro de la subcuenta que quieras conectar y con los scopes que necesites.

Instalación

No hay que instalar nada a mano. Con uv en el equipo, el cliente MCP se lo baja de PyPI la primera vez que lo usa:

{
  "mcpServers": {
    "ghl-pro": {
      "command": "uvx",
      "args": ["ghl-pro-mcp@latest"],
      "env": { "GHL_ENABLE_SESSION": "1" }
    }
  }
}

Es el equivalente a npx. El @latest comprueba si hay versión nueva cada vez, así que los arreglos llegan solos.

Los comandos de terminal

El cliente se lo baja solo con uvx, así que no hace falta instalar nada — pero los comandos de configuración y diagnóstico (setup, doctor) se lanzan igual, con uvx delante:

uvx ghl-pro-mcp@latest --version     # comprobar que arranca
uvx ghl-pro-mcp@latest setup         # configurar
uvx ghl-pro-mcp@latest doctor        # comprobar contra tu GoHighLevel

Si lo instalas como herramienta (uv tool install ghl-pro-mcp), el uvx sobra y los comandos quedan como ghl-pro-mcp setup y ghl-pro-mcp doctor. Las dos vías valen; uvx no deja nada instalado.

Funciona igual en Windows, macOS y Linux.


Configuración

Un solo comando:

uvx ghl-pro-mcp@latest setup

Te pide el token privado y el Location ID —y te confirma el nombre de la subcuenta antes de guardar nada—, y después te ofrece configurar workflows y embudos: con la extensión de Chrome, a mano, o dejarlo para más tarde.

Hazlo en una terminal, nunca desde el chat de la IA. Lo que se escribe en la conversación acaba en el historial, y el token privado da acceso completo al CRM.

Las credenciales quedan en un único archivo, en tu carpeta de usuario:

Sistema Ruta
Windows %LOCALAPPDATA%\ghl-pro-mcp\credentials.env
macOS ~/Library/Application Support/ghl-pro-mcp/credentials.env
Linux ~/.config/ghl-pro-mcp/credentials.env

Si prefieres decidir tú la ubicación, define GHL_PRO_ENV_PATH y el asistente escribirá ahí: respeta esa variable, igual que el servidor al leer.


Añádelo a tu cliente

Al terminar, setup te muestra el bloque exacto que necesitas. Es el de arriba.

GHL_ENABLE_SESSION enciende workflows, embudos y páginas. Sin esa línea tendrás las 548 operaciones de la API pública, pero no el extra — y ese extra es la diferencia.

Reinicia tu cliente de IA después de añadirlo.

Cliente Dónde va
Claude Code .mcp.json en la raíz de tu proyecto
Claude Desktop %APPDATA%\Claude\claude_desktop_config.json (Windows) · ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) · ~/.config/Claude/claude_desktop_config.json (Linux)
Cursor, Cline, Windsurf Su propio archivo de configuración de MCP

Hace falta uv: winget install astral-sh.uv, o curl -LsSf https://astral.sh/uv/install.sh | sh.


Comprobar que funciona

uvx ghl-pro-mcp@latest doctor

Comprueba la configuración contra tu GoHighLevel real y te dice, una a una, qué funciona y qué no. No modifica nada salvo que se lo pidas expresamente. Y si quieres llegar más lejos, tiene dos banderas que sí escriben, pero que dejan todo como estaba:

uvx ghl-pro-mcp@latest doctor --escritura          # crea un workflow de prueba y LO BORRA
uvx ghl-pro-mcp@latest doctor --pagina <pageId>    # guarda esa página sin cambiarla

Las 68 herramientas

El flujo — de la orden al embudo montado

Herramienta Qué hace
nuevo_proyecto Empieza: crea el brief y devuelve las preguntas que hay que hacer
responder_brief Guarda las respuestas (fusiona, nunca borra lo ya contestado)
ver_brief Cómo va, qué falta, y cuál es el siguiente paso
listar_proyectos Los proyectos empezados y a cuáles les falta información
guia_de_investigacion Qué hay que averiguar del mercado de esa zona, y por qué
guardar_investigacion Guarda competidores, palabras del cliente, objeciones y precios
ver_plan_despliegue Qué va a crear, en qué orden y qué falta
desplegar_plan Lo crea todo, en borrador
ver_manifiesto Qué se creó y con qué id
deshacer_plan Borra lo que creó, y dice lo que no se pudo borrar

Cuenta y conocimiento

Herramienta Qué hace
get_account_context Subcuenta, pipelines con etapas, calendarios y usuarios
list_playbooks Índice de los 20 documentos de conocimiento
get_playbook Devuelve un documento entero, o una sección suya

Workflows — el foso

Herramienta Qué hace
catalogo_acciones Qué acciones puede tener un workflow
listar_workflows · ver_workflow Listar y leer, con sus nodos
ver_triggers Los disparadores de un workflow, con sus filtros
crear_workflow · guardar_workflow Crear y guardar las acciones
crear_trigger Crear un disparador
publicar_workflow · despublicar_workflow Encender y apagar
borrar_workflow · borrar_workflows_por_nombre Borrar

Embudos y páginas — el foso

Herramienta Qué hace
listar_embudos · ver_pagina Listar y leer
crear_embudo · crear_paso Crear la estructura
guardar_pagina Guardar el contenido de una página
generar_landing_con_ia Pedirle la landing a la IA de GoHighLevel, con tu copy
publicar_pagina Publicar (necesita dominio)

Surveys — el foso

Un formulario recoge datos; un survey califica. El que no encaja se descarta solo, y el que llega a la llamada ya viene caliente y con sus respuestas escritas. La API pública solo puede leer surveys, así que esto tampoco está en el MCP oficial.

Herramienta Qué hace
crear_survey Todo en un paso: los campos, las preguntas, los descartes y los textos finales
listar_surveys · ver_survey Listar, leer, y decir qué tiene mal
guardar_survey Guardar uno ya editado — se niega si perdería preguntas o textos
respuestas_de_survey Las respuestas, por contacto y por pregunta
borrar_survey Borrar (pide confirmación: se lleva también las respuestas)

Se diseña así, y no es adorno: una pregunta por pantalla (diez juntas no las contesta nadie), la primera fácil, los descartes repartidos —tres seguidos parecen un interrogatorio— y una pregunta abierta, penúltima y sin obligar: es la que dice qué quiere aprender el lead, con sus palabras.

Contactos, CRM y agenda

Herramienta Qué hace
search_contacts · create_contact Buscar y crear contactos
list_tags · ensure_tags Etiquetas: listar y crear solo las que falten
list_pipelines · ver_pipeline · crear_pipeline · borrar_pipeline Pipelines
ver_etapas_del_pipeline Las etapas, en orden
crear_oportunidad · mover_oportunidad · buscar_oportunidades El lead en el tablero
listar_calendarios · ver_huecos_libres · agendar_cita · ver_citas_de_contacto Calendario y citas
listar_campos_personalizados · crear_campos_personalizados Los campos del seguimiento

Mensajes y archivos

Herramienta Qué hace
enviar_email · enviar_sms Enviar, pasando antes por el checklist de copy
estado_de_email Comprobar si llegó
listar_archivos · subir_archivo · borrar_archivo Archivos
listar_caller_ids Números verificados
Herramienta Qué hace
estado_catalogo Cuántas operaciones hay y de qué dominios
buscar_operaciones · describir_operacion · llamar_operacion Cualquiera de las 548 operaciones de la API pública
estado_sesion Si la vía de sesión está encendida

Las escrituras empiezan en seco

Ninguna herramienta escribe a la primera. Unas usan dry_run=true —la primera llamada enseña lo que haría y no crea nada— y otras usan confirmar=true. En cualquiera de los dos casos, nada se crea ni se envía sin que lo hayas pedido expresamente.

Y hay reglas que están en el código, no en un documento:

  • El copy se revisa antes de enviar o guardar. Un SMS con un hueco sin rellenar, o con urgencia inventada, no sale.
  • No se manda SMS sin que lo hayas elegido. Cuesta dinero por mensaje y exige consentimiento.
  • Los workflows nacen en borrador y la landing sin publicar.

Lo que todavía NO hace

Preferimos decirlo:

  • Recordatorio de cita, petición de reseña y reactivación. El plan monta la respuesta inmediata y el seguimiento; esas tres necesitan disparadores de cita o de tiempo que la API no tiene verificados, y un disparador inventado falla en silencio.
  • WhatsApp. Fuera de las 24 horas siguientes al último mensaje del cliente, WhatsApp solo admite plantillas aprobadas por Meta. No se pueden inventar.
  • El filtro del disparador por formulario. Se crea sin filtro y el asistente te avisa: hay que ponerlo a mano en la interfaz si la cuenta tiene más de un formulario.
  • Publicar una página necesita un dominio en la cuenta.
  • Meter un survey dentro de una página del embudo. El survey se crea entero y funciona solo (tiene su propia URL), pero incrustarlo en una página de GoHighLevel todavía se hace a mano en el editor. El elemento nativo existe (c-survey); lo que falta es la herramienta.

Dónde se guarda cada cosa

Qué Dónde
El programa Dentro del paquete instalado (solo lectura)
Tus preferencias, briefs y manifiestos Directorio de configuración del sistema
Tus credenciales Donde tú decidas, vía GHL_PRO_ENV_PATH
Sistema Preferencias
Windows %LOCALAPPDATA%\ghl-pro-mcp
macOS ~/Library/Application Support/ghl-pro-mcp
Linux ~/.config/ghl-pro-mcp

Diagnóstico

El servidor nunca escribe en stdout salvo el protocolo: todos los logs van a stderr. Si algo falla, sube el detalle con:

GHL_PRO_LOG_LEVEL=DEBUG uvx ghl-pro-mcp

Errores frecuentes:

Síntoma Causa
«Falta configuración: GHL_PRIVATE_TOKEN» No definiste la variable o el archivo
«GHL_PRO_ENV_PATH apunta a un archivo que no existe» Ruta mal escrita
401 al llamar El token caducó o se revocó
403 al llamar Al token le falta el scope de esa operación
Faltan datos del catálogo El paquete se instaló sin la carpeta data/

Licencia

Propietaria. Ver el paquete en PyPI.

Metadata

Release files for ghl-pro-mcp 0.1.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ghl-pro-mcp 0.1.13
File Size Uploaded
ghl_pro_mcp-0.1.13.tar.gz 618.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ghl-pro-mcp 0.1.13
File Interpreter ABI Platform
ghl_pro_mcp-0.1.13-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / ghl_pro_mcp-0.1.13.tar.gz

Download URL ghl_pro_mcp-0.1.13.tar.gz
Size 618.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7cb4916b8735cc8823c9837d241543f614f966979c3181407c766fd1054e5167
BLAKE2b-256 checksum
How to use checksums
8f7f408d1caf25c3d0f433af966ce29edc22e492b9a2fb5f6ae75858f80b49a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / ghl_pro_mcp-0.1.13-py3-none-any.whl

Download URL ghl_pro_mcp-0.1.13-py3-none-any.whl
Size 435.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
adea81396296c12ec08153af2d1ca3fc5ca37b2ab0910d3075a43877833195c0
BLAKE2b-256 checksum
How to use checksums
8d93e735ea359fc61e13bd2f90bba73e855960f7e3ee20275a5ff45e7cea10b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

This release

0.1.13 This release

2 release files

0.1.11

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page