GoHighLevel API and MCP server Let your AI agent build your HighLevel workflows.

Read GoHighLevel workflows, statistics and funnel steps through MCP or REST. Connect your sub-account to an AI agent, reporting workflow or script.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with HighLevel
GoHighLevel logo GoHighLevel Cloud Browser

13 tools Read and write

Workflows and funnels

What can you automate in GoHighLevel? Use an AI agent, a workflow or a script.

  • Build a workflow from a brief

  • Rank workflows by trigger match rate

  • Test a workflow on a contact

  • Read what changed in a workflow

  • Publish or pause a workflow

  • Set funnel page titles and descriptions

Official, with gaps

Does GoHighLevel have an MCP server or an API? Yes, and it stops short of the builder.

Yes. HighLevel has a public REST API and official MCP servers with more than 550 operations (checked 27 Oct 2026). Its workflow create and update endpoints work only on selected sub-accounts, and its funnels API only lists. Cotlet runs 13 tools hosted for the rest, over MCP for agents and REST for scripts.

  • The official MCP server uses OAuth, works on one sub-account per request and shows the agent five tools that search and run the operations.
  • Any other sub-account gets "403 WORKFLOW_API_NOT_ENABLED_FOR_LOCATION" on Create Workflow and Update Workflow Definition. HighLevel marks both "Limited availability".
  • The funnels API has three read endpoints: funnels, funnel pages and the page count. It cannot edit a page or publish.
  • Zapier and n8n both list HighLevel. They call the same API.
HighLevel official MCP, a GitHub MCP server and Cotlet compared
What you need Official MCPGitHub serverCotlet
Contacts, conversations, opportunities, payments Yes, 550+ operations Yes, through the API Use the official MCP
Build a workflow on any sub-account Selected sub-accounts only Same limit Yes, as a draft
Version history and test runs No endpoint No endpoint Yes
Funnel page SEO and publish Read only Read only Yes, publish after your OK
Allowed by HighLevel's terms Yes, official Yes, official API Uses the web app

Checked 27 Oct 2026. Sources: HighLevel API: LeadConnector MCP Server · HighLevel API: Workflows · HighLevel API: Funnels · HighLevel Support: Workflow Builder Walkthrough · HighLevel pricing

Set up once

How does Cotlet connect to GoHighLevel? One account, two ways to connect.

  1. 1Sign in to GoHighLevel

    Use your own account in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run your workflow

    Ask your agent or send an HTTP request.

We never keep your HighLevel password, and no workflow goes live until you approve it. Who can see your session

Any MCP client

Connect GoHighLevel to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

  1. 1

    Enable GoHighLevel for agents. Sign up, log in to HighLevel in its Cloud Browser, then press Enable for agents.

  2. 2

    Paste the Cotlet address. Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.

  3. 3

    Approve the connection. Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.

One shared address, https://cotlet.dev/mcp/v1, also carries HighLevel next to your other apps. Keep HighLevel's own MCP server connected for contacts and conversations; Cotlet adds the builder tools next to it. If you enable HighLevel after connecting, refresh the connector so the new tools show up.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-gohighlevel \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-gohighlevel": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-gohighlevel]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: gohighlevel_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: gohighlevel_write
Scripts and HTTP

How to use the GoHighLevel REST API

Create your Cotlet API key

Create a Cotlet API key with access to GoHighLevel and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.

Sign in to GoHighLevel in its Cotlet Cloud Browser and enable the app for agents. Your sub-account user needs permission for Automation > Workflows and Sites > Funnels.

Make your first GoHighLevel API request

REST
curl https://cotlet.dev/api/v1/gohighlevel/workflows \
  -H "Authorization: Bearer $COTLET_API_KEY"

Read workflows and inspect their current state

A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt
{
  "status": "success",
  "app": "gohighlevel",
  "tool": "list_workflows",
  "result": {
    "workflows": [
      {
        "id": "wf_1042",
        "name": "New lead follow-up",
        "status": "published"
      }
    ]
  }
}

Read result.workflows; workflow listing has no pagination input. Use a returned workflow id for details, statistics and version reads.

Filter by status or name query when needed. Compare draft or published state and current statistics as well as IDs when refreshing an audit.

Funnel and workflow access follows the selected sub-account. These reporting reads do not edit, publish or enroll contacts in an automation.

GoHighLevel workflows for agents and automations

GoHighLevel workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestRead workflow lists and details into a trigger-and-action audit without editing or publishing workflows.
MakeHTTP > Make a requestCombine workflow IDs and statistics into a sub-account automation performance report.
Python or Node.jsREST APIRead funnels and their steps into a page-title and description review sheet without changing pages.

Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads GoHighLevel; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.

6 read, 7 write

GoHighLevel API endpoints and MCP tools

Read workflows4

Read only. Stats cover the last 30 days for triggers, as Stats View does, and HighLevel does not let you edit a workflow while Stats View is on.

  • list_workflows Lists the workflows in the sub-account with their status. read

    Returns each workflow with its ID, name and whether it is a draft or published. Reads the Workflow List under Automation > Workflows. The IDs feed every other workflow tool.

    MCP callgohighlevel_read → list_workflows

    REST endpointGET https://cotlet.dev/api/v1/gohighlevel/workflows

    Parameters

    Parameters: list_workflows
    NameTypeDescription
    status string string Filter by status: draft or published.
    query string string Part of a workflow name.

    Example response

    {
      "workflows": [
        {
          "id": "wf_1042",
          "name": "New lead follow-up",
          "status": "published"
        },
        {
          "id": "wf_1077",
          "name": "Missed call text back",
          "status": "published"
        },
        {
          "id": "wf_1103",
          "name": "Review request",
          "status": "draft"
        }
      ]
    }
  • get_workflow Returns the triggers and actions of one workflow, in order. read

    Returns the workflow status, every trigger with its settings, and every action in the order the builder shows them, including conditional, drip and goal actions with their branches. Reads what the Workflow Builder shows. Changes nothing, and does not open a published workflow for editing.

    MCP callgohighlevel_read → get_workflow

    REST endpointGET https://cotlet.dev/api/v1/gohighlevel/workflows/{workflow_id}

    Parameters

    Parameters: get_workflow
    NameTypeDescription
    workflow_id string required string Workflow ID from list_workflows.

    Example input

    {
      "workflow_id": "workflow_8c41d2"
    }

    Example response

    {
      "id": "wf_1042",
      "name": "New lead follow-up",
      "status": "published",
      "triggers": [
        {
          "name": "Contact Added",
          "settings": {
            "filter": "Tag is lead"
          }
        }
      ],
      "actions": [
        {
          "id": "act_1",
          "name": "Send Email",
          "settings": {
            "template": "Welcome"
          }
        },
        {
          "id": "act_2",
          "name": "Assign to User",
          "settings": {
            "user": "Maya R."
          }
        }
      ]
    }
  • get_workflow_stats Returns trigger and communication-action statistics for one workflow. read

    Returns what Stats View shows. Each trigger has attempted, matched and unmatched contacts; HighLevel counts the last 30 days for triggers. Each communication action has its delivery and engagement numbers. Reads only, so it never turns Stats View into an edit lock for your team.

    MCP callgohighlevel_read → get_workflow_stats

    REST endpointGET https://cotlet.dev/api/v1/gohighlevel/workflows/{workflow_id}/stats

    Parameters

    Parameters: get_workflow_stats
    NameTypeDescription
    workflow_id string required string Workflow ID from list_workflows.

    Example input

    {
      "workflow_id": "workflow_8c41d2"
    }

    Example response

    {
      "workflow_id": "wf_1042",
      "triggers": [
        {
          "name": "Contact Added",
          "attempted": 412,
          "matched": 388,
          "unmatched": 24
        }
      ],
      "actions": [
        {
          "name": "Send Email",
          "sent": 388,
          "delivered": 379,
          "opened": 201
        }
      ]
    }
  • list_workflow_versions Lists the saved versions in a workflow history. read

    Returns the versions that the History icon in the Workflow Builder lists, each with an ID and the time it was saved. Use get_workflow for the current steps. Reads only, nothing is restored.

    MCP callgohighlevel_read → list_workflow_versions

    REST endpointGET https://cotlet.dev/api/v1/gohighlevel/workflow-versions

    Parameters

    Parameters: list_workflow_versions
    NameTypeDescription
    workflow_id string required string Workflow ID from list_workflows.

    Example input

    {
      "workflow_id": "workflow_8c41d2"
    }

    Example response

    {
      "workflow_id": "wf_1077",
      "versions": [
        {
          "id": "ver_7",
          "saved_at": "2026-10-20T14:05:00Z"
        },
        {
          "id": "ver_6",
          "saved_at": "2026-10-12T09:41:00Z"
        }
      ]
    }

Build and publish workflows5

Triggers and actions go into drafts only. Publishing and test runs wait for your OK, because they can message contacts.

  • create_workflow Creates an empty draft workflow. write

    Creates the workflow from scratch in the Workflow List and returns its ID. It starts as a draft, so no contact enters it and nothing is sent. It reaches no one, so it needs no confirmation. You remove it from the Workflow List in the app if you do not want it.

    MCP callgohighlevel_write → create_workflow

    REST endpointPOST https://cotlet.dev/api/v1/gohighlevel/workflows

    Parameters

    Parameters: create_workflow
    NameTypeDescription
    name string required string Workflow name.
    folder string string Name of an existing workflow folder to put it in.

    Example input

    {
      "name": "New lead follow-up"
    }

    Example response

    {
      "id": "wf_1120",
      "name": "New lead follow-up",
      "status": "draft"
    }
  • add_workflow_trigger Adds one trigger to a draft workflow. write

    Clicks Add New Trigger, picks the trigger by name, fills in its settings and saves. A workflow can have several triggers, and each starts the workflow when its own conditions are met. Works on drafts only, so no contact is affected. It returns an error that names the field when the builder rejects the settings.

    MCP callgohighlevel_write → add_workflow_trigger

    REST endpointPOST https://cotlet.dev/api/v1/gohighlevel/workflows/{workflow_id}/trigger

    Parameters

    Parameters: add_workflow_trigger
    NameTypeDescription
    workflow_id string required string Workflow ID from list_workflows.
    trigger string required string Trigger name as the builder lists it, for example Contact Added or Appointment Booked.
    settings object object Trigger settings as the builder shows them, such as filters.

    Example input

    {
      "workflow_id": "workflow_8c41d2",
      "trigger": "trigger"
    }

    Example response

    {
      "workflow_id": "wf_1120",
      "trigger": {
        "name": "Contact Added",
        "settings": {
          "filter": "Tag is lead"
        }
      },
      "saved": true
    }
  • add_workflow_action Adds one action to a draft workflow. write

    Clicks the + button in the workflow line, picks the action by name, fills in its settings and saves. Works on drafts only, so the action sends nothing until the workflow is published. Integration-powered actions that need a connected account return an error that says to connect it in the app first.

    MCP callgohighlevel_write → add_workflow_action

    REST endpointPOST https://cotlet.dev/api/v1/gohighlevel/workflows/{workflow_id}/action

    Parameters

    Parameters: add_workflow_action
    NameTypeDescription
    workflow_id string required string Workflow ID from list_workflows.
    action string required string Action name as the builder lists it, for example Send Email or Assign to User.
    settings object object Action settings as the builder shows them.
    after_action_id string string Action ID to add it after. Without it the action goes at the end.

    Example input

    {
      "workflow_id": "workflow_8c41d2",
      "action": "action"
    }

    Example response

    {
      "workflow_id": "wf_1120",
      "action": {
        "id": "act_1",
        "name": "Send Email",
        "settings": {
          "template": "Welcome"
        }
      },
      "saved": true
    }
  • set_workflow_status Switches a workflow between draft and published. writeasks first

    Uses the Draft/Publish toggle. A published workflow starts enrolling contacts and runs its actions, which can send email and SMS to your contacts. HighLevel says saving and publishing are separate, so the tool saves any unsaved changes before it publishes. By default you confirm each call; you can switch that off for this tool.

    MCP callgohighlevel_write → set_workflow_status

    REST endpointPUT https://cotlet.dev/api/v1/gohighlevel/workflows/{workflow_id}/status

    Parameters

    Parameters: set_workflow_status
    NameTypeDescription
    workflow_id string required string Workflow ID from list_workflows.
    status string required string draft or published.

    Example input

    {
      "workflow_id": "workflow_8c41d2",
      "status": "status"
    }

    Example response

    {
      "workflow_id": "wf_1120",
      "status": "published"
    }
  • test_workflow Runs a workflow once on one contact with Test Workflow. writeasks first

    Clicks Test Workflow, selects the contact and clicks Run Test, then reports what the run shows for each step. The run can send messages to that contact. HighLevel notes that a test on a contact is not exact, especially when you reuse the same contact. By default you confirm each call; you can switch that off for this tool.

    MCP callgohighlevel_write → test_workflow

    REST endpointPOST https://cotlet.dev/api/v1/gohighlevel/contacts/{contact_id}/workflows/{workflow_id}/test

    Parameters

    Parameters: test_workflow
    NameTypeDescription
    workflow_id string required string Workflow ID from list_workflows.
    contact_id string required string ID of the contact to run the test on.

    Example input

    {
      "workflow_id": "workflow_8c41d2",
      "contact_id": "contact_8c41d2"
    }

    Example response

    {
      "workflow_id": "wf_1120",
      "contact": "Sam Rivera",
      "steps": [
        {
          "name": "Send Email",
          "result": "Executed"
        },
        {
          "name": "Assign to User",
          "result": "Executed"
        }
      ]
    }

Funnels4

Saving a page change and publishing are separate in HighLevel, and here too. Nothing goes live until publish_funnel runs.

  • list_funnels Lists the funnels in the sub-account. read

    Returns each funnel with its ID, name and the number of steps. Reads the list under Sites > Funnels. The IDs feed list_funnel_steps, update_funnel_page_seo and publish_funnel.

    MCP callgohighlevel_read → list_funnels

    REST endpointGET https://cotlet.dev/api/v1/gohighlevel/funnels

    Parameters

    Parameters: list_funnels
    NameTypeDescription
    query string string Part of a funnel name.

    Example response

    {
      "funnels": [
        {
          "id": "fn_208",
          "name": "Spring Promo",
          "steps": 3
        },
        {
          "id": "fn_215",
          "name": "Free Consultation",
          "steps": 2
        }
      ]
    }
  • list_funnel_steps Lists the steps of a funnel with their page name and URL path. read

    Returns each step in the funnel with its ID, page name, URL path and the page title and meta description, empty when none is set. Reads the Steps tab of the funnel. Does not open the page builder.

    MCP callgohighlevel_read → list_funnel_steps

    REST endpointGET https://cotlet.dev/api/v1/gohighlevel/funnel-steps

    Parameters

    Parameters: list_funnel_steps
    NameTypeDescription
    funnel_id string required string Funnel ID from list_funnels.

    Example input

    {
      "funnel_id": "funnel_8c41d2"
    }

    Example response

    {
      "funnel_id": "fn_208",
      "steps": [
        {
          "id": "st_1",
          "page_name": "Landing",
          "url_path": "/spring",
          "title": "Spring Promo for Local Studios",
          "description": ""
        },
        {
          "id": "st_2",
          "page_name": "Thank you",
          "url_path": "/thank-you",
          "title": "",
          "description": ""
        }
      ]
    }
  • update_funnel_page_seo Sets the title and meta description of one funnel step. write

    Opens the page settings of the step and writes the SEO fields, then saves the funnel as a new version. HighLevel says publishing is a separate click, so the change is not live until publish_funnel runs. It reaches no one until then, so it needs no confirmation.

    MCP callgohighlevel_write → update_funnel_page_seo

    REST endpointPATCH https://cotlet.dev/api/v1/gohighlevel/steps/{step_id}/funnels/{funnel_id}/page-seo

    Parameters

    Parameters: update_funnel_page_seo
    NameTypeDescription
    funnel_id string required string Funnel ID from list_funnels.
    step_id string required string Step ID from list_funnel_steps.
    title string string Page title.
    description string string Meta description.

    Example input

    {
      "funnel_id": "funnel_8c41d2",
      "step_id": "step_8c41d2"
    }

    Example response

    {
      "funnel_id": "fn_208",
      "step_id": "st_2",
      "title": "Thank you for booking",
      "description": "Your spring consultation is booked. Check your email for details.",
      "saved": true,
      "live": false
    }
  • publish_funnel Publishes the saved version of a funnel. writeasks first

    Clicks Publish, which makes the saved version live for visitors. If the funnel has no domain, HighLevel asks you to attach one; the tool stops and says so instead of choosing a domain. By default you confirm each call; you can switch that off for this tool.

    MCP callgohighlevel_write → publish_funnel

    REST endpointPOST https://cotlet.dev/api/v1/gohighlevel/funnels/{funnel_id}/publish

    Parameters

    Parameters: publish_funnel
    NameTypeDescription
    funnel_id string required string Funnel ID from list_funnels.

    Example input

    {
      "funnel_id": "funnel_8c41d2"
    }

    Example response

    {
      "funnel_id": "fn_208",
      "published": true,
      "domain": "promo.example.com"
    }
Encrypted, revocable

Who can see my HighLevel session, and how do I revoke it?

  • What we store

    Your logged-in HighLevel profile, encrypted with AES-256-GCM, in Finland. Not the password.

  • What your agent gets

    The 13 GoHighLevel tools. Never the cookie.

  • What the session sees

    The sub-account you open: workflows, funnels, and the contacts a workflow touches.

  • What no tool touches

    Billing, plan, password, two-factor and deleting.

  • If HighLevel asks to verify

    A new device may ask for a code. You type it in, we never do.

  • How to cut access

    Disable for agents, reset the browser, or sign out of the session in HighLevel.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet.

Account risk

Is it against HighLevel's terms? Account safety Their terms ban bots and point to the API.

"Use of any robot, spider or other automatic device, process or means to access the Platform for any purpose, including monitoring or copying any of the material on the Platform."
HighLevel Terms of Service, Code of Conduct, last updated June 2026

The same list bans use that could "disable, overburden, damage, or impair the Platform". The clause has no exception for the official API. If your job fits the API or the official MCP server, use them: they are the sanctioned route. Cotlet works through the HighLevel web app in your own login, but HighLevel could still read it as automation. We found no public case of a HighLevel account closed for automation (checked 27 Oct 2026).

How we keep your account looking like you

  • Your own HighLevel login, signed in by you
  • One Cloud Browser with its own IP and cookies, so no new-device check every call
  • Publishing and test runs wait for your OK
  • No tool deletes a workflow, funnel or contact
  • If HighLevel objects, we pause the GoHighLevel tools for everyone within 24 h

Build in a draft first. A published workflow starts messaging contacts, so read the draft with get_workflow before you approve.

Tested every 12 h

What happens when HighLevel changes? We repair the tool; your prompts stay the same.

between tests of the GoHighLevel reads and drafts
12 h
between tests of publishing and test runs
24 h
for a call to a GoHighLevel tool paused for repair
$0

HighLevel ships builder changes often. When it moves a button or renames a field, the fix happens on our side and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.

3 tools ask first

Approvals, undo and mistakes Contacts hear nothing until you say so.

  1. 01 Drafts it create_workflow starts empty and unpublished.
  2. 02 Adds trigger and actions Each one is saved in the draft, nothing is sent.
  3. 03 Waits for your OK The test run or publish shows up in your Cotlet console first.
  4. 04 Reports the result Status, steps and what the test run did for each step.
Which GoHighLevel actions can be undone
ActionUndo
Create a workflowRemove it from the Workflow List in HighLevel
Add a trigger or action to a draftEdit or delete the step in the Workflow Builder, or restore a version from History
Publish a workflowSwitch it back to draft; contacts already enrolled keep their place
Test a workflowNo, messages the test sent are out
Save funnel page SEOChange the fields again; it is not live until published
Publish a funnelPublish an earlier saved version

3 of 13 tools ask first: set_workflow_status, test_workflow and publish_funnel, the three that can reach contacts or visitors. Drafts, triggers, actions and SEO fields reach nobody, so they run at once. Switch the wait off per tool for a scheduled run.

HighLevel says changes to upcoming actions reach contacts already in a published workflow. The agent edits drafts only.

MCP call
{
  "name": "create_workflow",
  "arguments": {
    "name": "New lead follow-up"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/gohighlevel/workflows \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"New lead follow-up"}'
Tool output
{
  "id": "wf_1120",
  "name": "New lead follow-up",
  "status": "draft"
}

Scripts and cron jobs reach the same tools over REST at /api/v1/gohighlevel, with the same key and price. A failed call costs nothing. The tools table lists the REST path of each tool.

Pay per call

How much does the GoHighLevel MCP server cost?

About $14 a monthfor a sub-account that builds 4 workflows a month, 2,390 credits. Your HighLevel plan is billed by HighLevel as before.

A month of GoHighLevel jobs for one sub-account, in credits
JobCallsCredits
Build a workflow from a brief7 × 4280
Weekly workflow stats report9 × 4360
Test and publish a workflow3 × 4120
Read a workflow history2 × 240
Fix funnel page titles9 × 190
Cloud Browser, 30 days1,500
Total2,390
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • No HighLevel API plan needed, only a login

The month is our example: 4 new workflows, a weekly report over 8, and one funnel SEO pass. HighLevel's own plans run $97, $297 or $497 a month, with "Basic API Access" on the $297 plan. Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

GoHighLevel MCP server: official, GitHub or hosted Use the official one first.

GoHighLevel MCP options, checked 27 Oct 2026
OptionWhat it doesWhere it stops
HighLevel official MCP serverOAuth, more than 550 read, create, update and delete operations, per-client endpoints for Claude, ChatGPT, Codex and Cursor.Workflow create and update work on selected sub-accounts only. Funnels are read only.
BusyBee3333/Go-High-Level-MCP-2026-CompleteCommunity server, 123 stars, last push 11 Sep 2026, claims 927 tools on the v3 API.Calls the API with your token, so the same endpoint limits apply. The README points to a separate product for workflow building.
mastanley13/GoHighLevel-MCPCommunity server, 195 stars.Last push 6 Jul 2025.
tenfoldmarc/ghl-mcpCommunity server for Claude Code, 19 stars, 70+ tools.Workflow tools: list and add a contact to a workflow.
Zapier and n8nBoth list HighLevel and call its API.Same endpoints, so no workflow building where the API is closed.

For contacts, conversations, calendars, opportunities and payments, connect HighLevel's official server: it is free, hosted and sanctioned. Cotlet is for the builder jobs it does not cover on your account. A community server saves you a Cotlet bill and costs you the upkeep.

EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the GoHighLevel tools.

GoHighLevel API and MCP: questions

Can I use the GoHighLevel API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

How do I get access?

Create a free account at https://cotlet.dev, open GoHighLevel under Integrations in the console and log in to HighLevel in its Cloud Browser. The trial starts with your first app, no card asked.

Which HighLevel plan includes API access?

HighLevel's pricing page lists Basic API Access on the Unlimited plan and Advanced API Access on Agency Pro, and does not list API access on Starter (checked 27 Oct 2026). Cotlet works in your signed-in session instead of an API token, so it needs the HighLevel login, not an API plan.

Why does HighLevel's own MCP not edit my workflows?

HighLevel documents its workflow create and update endpoints as limited availability, enabled for selected sub-accounts only. Any other sub-account receives 403 WORKFLOW_API_NOT_ENABLED_FOR_LOCATION. Reading the workflow list works without that.

Do HighLevel terms allow an agent in my account?

HighLevel's Terms of Service (last updated June 2026) list as prohibited "Use of any robot, spider or other automatic device, process or means to access the Platform for any purpose, including monitoring or copying any of the material on the Platform." HighLevel documents the API and MCP servers as its route for automation. Cotlet works in your own signed-in session and does not bypass MFA or CAPTCHAs; read the terms and decide for your account.

Does HighLevel have webhooks?

Yes. HighLevel documents a Webhook Integration Guide and a Webhook Logs Dashboard. Cotlet does not replace them: use webhooks for events and run your agent for the builder jobs.

Can I use HighLevel's official MCP server and Cotlet together?

Yes. Connect both to the same agent. The official one handles contacts, conversations, calendars, opportunities and payments, and Cotlet handles the workflow builder and funnel pages.

Is the MCP server different from the REST API?

Only the door is different. Both expose the same 13 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with HighLevel?

No. Cotlet is independent and not affiliated with HighLevel.

Give your agent access to GoHighLevel.

Free 7-day trial with 2,000 credits, no card needed.