Skip to main content
Glama
centrender

CashClaw GHL MCP

by centrender

CashClaw GHL MCP

The only GoHighLevel MCP server with independently verified live test coverage.

82 tools. 72/72 live-verified against a real GHL sub-account. 16 bugs found and fixed that exist in every alternative. Runs on Claude Desktop, Cursor, Windsurf, and any MCP-native agent — today.


Why this one

Every other GHL MCP connector has at least one of these problems:

Problem

Who has it

269 tools registered but most silently fail to load

mastanley13 (168 stars, abandoned)

Auto-generated from OpenAPI spec, zero live testing

drausal (only npm package)

461 tools, maintainer unknown, no verified write coverage

BusyBee3333

HTTP-only, incompatible with Claude Desktop

Official GHL MCP

Maintainer redirecting users to paid SaaS

mastanley13

CashClaw GHL MCP:

  • 82 tools — lean by design, every one registers and responds

  • 72/72 independent live-test passes against a real GHL sub-account (run npm test to verify yours)

  • 16 production bugs found and fixed — bugs that exist in every fork of mastanley13

  • stdio transport — works with Claude Desktop out of the box, no HTTP bridge needed

  • Actively maintained by a solo GHL operator running it in production daily


Related MCP server: GHL MCP Server

The 16 bugs fixed

Every GHL MCP forked from mastanley13 ships these broken:

  1. get_appointments — wrong URL path, always 404

  2. delete_appointment — IAM 401, missing required field

  3. create_appointment / update_appointmentappointmentStatus field rejected by GHL

  4. search_contacts — sent as GET, GHL requires POST

  5. create_contact_task — missing required completed field

  6. move_opportunity_stage — PATCH 404, GHL requires PUT

  7. Custom fields path — 403 on wrong endpoint

  8. Email templates — wrong endpoint (/emails/templates/emails/builder)

  9. Email campaigns — wrong endpoint (/emails/campaigns/emails/schedule)

  10. Payments — missing altId/altType params, returns empty

  11. create_invoice — minimal body not accepted, required fields missing

  12. send_invoice — missing userId, silently fails

  13. get_contacts / get_opportunities — pagination off-by-one, drops last page

  14. get_form_submissions — wrong page param name

  15. get_social_posts — GET endpoint, GHL requires POST

  16. trigger_workflow — timestamp format rejected (must be +00:00 not Z)

If you're using any other community GHL MCP, all 16 of these are live bugs in your setup right now.


Tools (82 total)

Module

Tools

Contacts

get, create, update, upsert, delete, search, add/remove tags, notes CRUD, tasks CRUD

Opportunities

list, get, create, update, delete, move stage, pipeline list, pipeline summary

Conversations

list, get, messages, send SMS / email / RVM, create, mark read, update status

Calendar

list calendars, CRUD appointments, free slots, blocked slots

Workflows

list, get by ID, trigger for contact, remove contact

Campaigns

list, add contact, remove contact, fire inbound webhook

Forms

list forms, get submissions

Funnels

list funnels, list pages

Social

list posts, create/schedule post

Payments

products, orders, invoices (create/send/record payment), transactions, subscriptions

Email Marketing

templates CRUD, campaigns CRUD, campaign stats

Location

settings, users, custom fields/values, tags, health snapshot

Agency

list sub-accounts, create sub-account


Setup

1. Get your GHL Private Integration Token

GHL → Settings → Integrations → API Keys → Create Private Integration → All scopes → Copy key.

2. Get your Location ID

It's in the URL when inside a sub-account: https://app.gohighlevel.com/location/YOUR_LOCATION_ID/...

3. Install

git clone https://github.com/centrender/ghl-mcp.git
cd ghl-mcp
npm install
cp .env.example .env
# Paste your GHL_API_KEY and GHL_LOCATION_ID into .env

4. Verify it works

npm test

72 tool probes fire against your GHL account and report pass/fail. If something is broken in your token scopes, you'll know before you start using it.

5. Connect to Claude Desktop

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "ghl-cashclaw": {
      "command": "node",
      "args": ["/absolute/path/to/ghl-mcp/src/index.js"],
      "env": {
        "GHL_API_KEY": "pit-your-key-here",
        "GHL_LOCATION_ID": "your-location-id-here"
      }
    }
  }
}

Restart Claude Desktop. Tools appear automatically.

Connect to Cursor / Windsurf

Same config format. Refer to your editor's MCP docs for the exact config file location.


Usage examples

"Give me a full snapshot of my GHL account"
"Show me all contacts tagged 'RVM Sent' added this week"
"Move opportunity [ID] to the 'Demo Booked' stage"
"Send a follow-up SMS to all contacts in stage 'Called Back'"
"List all workflows and trigger 'Scout Outreach' for contact [ID]"
"Create a contact: John Smith, 310-555-0101, tag: scout-2026"
"Create an invoice for $497 for contact [ID], due in 7 days, and send it"
"Book an appointment for [contact] tomorrow at 2pm on calendar [ID]"
"Pull revenue summary for this month"

Platform support

Platform

Support

Notes

Claude Desktop

Native (stdio)

This repo

Claude Code

Native

Same config

Cursor

Native

Same config

Windsurf

Native

Same config

VS Code Copilot

Native

Same config

ChatGPT / Gemini

Via HTTP bridge

Needs thin wrapper (not yet included)

LangChain / CrewAI / AutoGen

Via MCP client

mcp Python package


What it costs

This server: $0. Runs on your machine or any VPS.

GHL API calls are included in your GHL subscription. Hosting on Hetzner CX22 (~$4/mo) handles it with room to spare if you want it server-side.


File structure

ghl-mcp/
├── src/
│   ├── index.js            ← MCP server entry point
│   └── ghl-client.js       ← GHL REST client (429 retry, full CRUD)
├── tools/
│   ├── contacts.js
│   ├── opportunities.js
│   ├── conversations.js
│   ├── calendar.js
│   ├── automation.js       ← workflows, campaigns, forms, funnels, social
│   ├── payments.js
│   ├── email-marketing.js
│   └── location.js
├── .env.example
└── package.json

Built by

Faruk Sahin — Centrender LLC

Running this in production at VoxLead Agency for AI receptionist outreach at scale. If it breaks, I fix it — because I'm using it too.

Issues and PRs welcome.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/centrender/ghl-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server