Ghl Mcp Server

io.github.northrosetechPublished by GitHub account northrosetechv1.0.1Updated Oct 24, 2026

GoHighLevel CRM for AI agents. 60+ tools for contacts, messaging, calendars, and payments.

Overview

AI-generated overview

A local MCP server that connects an AI assistant to a GoHighLevel CRM sub-account, exposing 60+ tools for contacts, messaging, calendars, pipelines, payments, e

What you can do
Search, create, update, delete and upsert contacts, manage tags, notes, tasks and workflow membership, and look up locations, users, custom fields, forms, surveys, campaigns, funnels, products and blogs.
When to use it
Use it when you work inside GoHighLevel and want an assistant to look up or change CRM records, send messages, book appointments, move deals or handle invoices without switching to the GoHighLevel interface.
Requirements
Runs as a local Node.js process installed from the npm package, started over stdio or HTTP. Requires a GoHighLevel Private Integration Token in GHL_API_KEY and a sub-account ID in GHL_LOCATION_ID; optional GHL_API_VERSION, GHL_BASE_URL, LOG_LEVEL and TRANSPORT. The integration must be granted the scopes for the features you use.
Before you install
The token grants access to your GoHighLevel sub-account, so scope it narrowly and keep it out of shared configs. Many tools write or delete data (contacts, notes, tasks, appointments, deals, tags, custom fields) and some send messages or emails and create, send or void invoices, which can reach real customers and involve money. Actions run under your integration's permissions.

Installation

In SourceWeft

  1. Open Ghl Mcp Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

GHL MCP Server

GoHighLevel MCP Server for Claude, N8N, and Custom AI Agents Built by Saurabh K Shah (https://saurabhshah.com)

A comprehensive Model Context Protocol (MCP) server that connects AI assistants directly to your GoHighLevel CRM. Supports 60+ tools across contacts, conversations, calendars, pipelines, payments, invoices, workflows, custom fields, social media, and more.

Features

  • Contacts: Search, create, update, delete, upsert, tags, notes, tasks, workflow management
  • Conversations & Messaging: SMS, Email, WhatsApp, search threads, send messages, schedule sends
  • Calendars & Appointments: List calendars, get free slots, create/update/delete events
  • Opportunities & Pipelines: Full deal management, stage transitions, pipeline listing
  • Payments & Invoices: Orders, transactions, subscriptions, create/send/void invoices
  • Workflows: List all workflows, add/remove contacts from workflows
  • Custom Fields: List, create custom fields for contacts
  • Locations: Sub-account details, tags management
  • Users: Search team members
  • Forms & Surveys: List forms/surveys, get submissions
  • Campaigns: List all campaigns
  • Social Media: List/create posts, view connected accounts
  • Funnels & Blogs: List funnels, blogs
  • Products: List products and prices

Quick Start

1. Get Your GHL Credentials

  1. Log into GoHighLevel → Settings → Private Integrations
  2. Click Create New Integration
  3. Name it (e.g., "Claude MCP Server")
  4. Select all scopes you need (contacts, conversations, calendars, payments, etc.)
  5. Copy the Private Integration Token
  6. Note your Location ID (visible in the URL when viewing any sub-account)

2. Install & Configure

bash
git clone https://github.com/northrosetech/ghl-mcp-server.gitcd ghl-mcp-servernpm installcp .env.example .env

Edit .env:

env
GHL_API_KEY=your_private_integration_token_hereGHL_LOCATION_ID=your_location_id_here

Build:

bash
npm run build

3. Connect to Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on Mac):

json
{  "mcpServers": {    "ghl": {      "command": "node",      "args": ["/absolute/path/to/ghl-mcp-server/dist/index.js"],      "env": {        "GHL_API_KEY": "your_private_integration_token",        "GHL_LOCATION_ID": "your_location_id",        "TRANSPORT": "stdio"      }    }  }}

Restart Claude Desktop. You should see GHL tools available.

4. Connect to N8N (HTTP Mode)

Start the server in HTTP mode:

bash
TRANSPORT=http PORT=3001 GHL_API_KEY=your_token GHL_LOCATION_ID=your_id node dist/index.js

In N8N:

  1. Add an MCP Client node
  2. Set URL to http://localhost:3001/mcp
  3. Set transport to HTTP Streamable
  4. Use the GHL tools in your workflows

5. Connect to Claude Code

Add to your project's .mcp.json:

json
{  "mcpServers": {    "ghl": {      "command": "node",      "args": ["./ghl-mcp-server/dist/index.js"],      "env": {        "GHL_API_KEY": "your_token",        "GHL_LOCATION_ID": "your_id"      }    }  }}

Available Tools (60+)

Contacts (15 tools)

ToolDescription
ghl_search_contactsSearch contacts by query, tags, filters
ghl_get_contactGet contact by ID
ghl_create_contactCreate new contact
ghl_update_contactUpdate existing contact
ghl_delete_contactDelete contact
ghl_upsert_contactCreate or update by email/phone
ghl_add_contact_tagsAdd tags to contact
ghl_remove_contact_tagsRemove tags from contact
ghl_get_contact_notesGet contact notes
ghl_create_contact_noteAdd note to contact
ghl_delete_contact_noteDelete a note
ghl_get_contact_tasksGet contact tasks
ghl_create_contact_taskCreate task for contact
ghl_update_contact_taskUpdate task
ghl_add_contact_to_workflowAdd contact to workflow
ghl_remove_contact_from_workflowRemove from workflow

Conversations & Messaging (6 tools)

ToolDescription
ghl_search_conversationsSearch conversation threads
ghl_get_conversationGet conversation details
ghl_get_messagesGet messages in a thread
ghl_send_messageSend SMS/Email/WhatsApp/etc.
ghl_cancel_scheduled_messageCancel scheduled message
ghl_update_conversationUpdate conversation status

Calendars & Appointments (8 tools)

ToolDescription
ghl_list_calendarsList all calendars
ghl_get_calendarGet calendar details
ghl_get_free_slotsGet available booking slots
ghl_get_eventsGet appointments/events
ghl_create_eventCreate appointment
ghl_update_eventUpdate appointment
ghl_delete_eventDelete appointment
ghl_create_calendarCreate new calendar

Opportunities & Pipelines (7 tools)

ToolDescription
ghl_search_opportunitiesSearch deals
ghl_get_opportunityGet deal details
ghl_create_opportunityCreate new deal
ghl_update_opportunityUpdate deal / move stages
ghl_delete_opportunityDelete deal
ghl_update_opportunity_statusChange deal status
ghl_list_pipelinesList pipelines & stages

Payments & Invoices (9 tools)

ToolDescription
ghl_list_ordersList payment orders
ghl_get_orderGet order details
ghl_list_transactionsList transactions
ghl_list_subscriptionsList subscriptions
ghl_list_invoicesList invoices
ghl_get_invoiceGet invoice details
ghl_create_invoiceCreate invoice
ghl_send_invoiceEmail invoice to contact
ghl_void_invoiceVoid an invoice

Other Tools (15+ tools)

ToolDescription
ghl_list_workflowsList all workflows
ghl_list_custom_fieldsList custom fields
ghl_create_custom_fieldCreate custom field
ghl_get_locationGet location details
ghl_get_location_tagsGet location tags
ghl_create_location_tagCreate new tag
ghl_search_usersSearch team members
ghl_list_formsList forms
ghl_get_form_submissionsGet form submissions
ghl_list_surveysList surveys
ghl_list_campaignsList campaigns
ghl_list_social_postsList social posts
ghl_create_social_postCreate/schedule social post
ghl_list_social_accountsList connected social accounts
ghl_list_funnelsList funnels/websites
ghl_list_productsList products
ghl_list_blogsList blogs
ghl_list_linksList trigger links

Architecture

ghl-mcp-server/├── src/│   ├── index.ts              # Entry point (stdio + HTTP transport)│   ├── constants.ts          # All GHL API endpoints & config│   ├── types.ts              # TypeScript interfaces│   ├── services/│   │   └── api-client.ts     # Auth, rate limiting, error handling│   └── tools/│       ├── contacts.ts       # Contact management tools│       ├── conversations.ts  # Messaging tools│       ├── calendars.ts      # Calendar & appointment tools│       ├── opportunities.ts  # Pipeline & deal tools│       └── business.ts       # Payments, invoices, workflows, etc.├── dist/                     # Compiled JS├── package.json├── tsconfig.json└── .env.example

Rate Limits

The server includes built-in rate limiting matching GHL's limits:

  • Burst: 100 requests per 10 seconds
  • Daily: 200,000 requests per day

The server automatically queues and retries when limits are approached.

Error Handling

All tools return actionable error messages with hints:

  • 401: Check your API key (must be Private Integration Token)
  • 403: Missing scopes — edit your Private Integration in GHL Settings
  • 404: Resource not found — check the ID
  • 422: Validation error with details
  • 429: Rate limit — automatic retry

License

MIT — Built by Saurabh K Shah (https://saurabhshah.com)

Source: README.md at commit 95da1e8

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts