GoHighLevel

Provides MCP-based access to GoHighLevel sub-account APIs for AI automation and Claude Desktop integration.
  • typescript

0

GitHub Stars

typescript

Language

3 months ago

First Indexed

3 weeks ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

You can use this MCP server to connect GoHighLevel sub-account APIs to AI assistants and Claude Desktop, enabling automated workflows, data access, and action execution across contacts, opportunities, calendars, invoices, and more. It provides a foundation to build AI-powered automations against GoHighLevel with safe, event-driven tooling through MCP (Model Context Protocol).

How to use

Connect an MCP client to the server via a remote HTTP endpoint or through a local stdio process. For web-based clients, you will interact with a streaming MCP endpoint that delivers events and accepts commands to perform actions in your GoHighLevel account. For Claude Desktop or other local clients, you run the MCP server as a local process and configure the client to point at the local stdio interface. Use the available tools to manage contacts, messages, calendars, opportunities, invoices, products, workflows, and more.

How to install

# Prerequisites: Node.js 18+; a GoHighLevel account with API access

# Clone the MCP server repository
git clone https://github.com/mastanley13/GoHighLevel-MCP.git
cd GoHighLevel-MCP

# Install dependencies
npm install

# Create environment file (copy from example and edit values)
cp .env.example .env

# Build the project
npm run build

# Start the server (production)
npm start

# For development with hot reload
npm run dev

Configuration & usage notes

The server relies on a private Integrations API key from GoHighLevel and a specific Location ID. Set environment variables accordingly and ensure you enable the required scopes in your Private Integration. Use these values when configuring your MCP client and Claude Desktop integration.

Claude Desktop integration

# Claude Desktop MCP configuration example
{
  "mcpServers": {
    "ghl_mcp": {
      "command": "node",
      "args": ["path/to/ghl-mcp-server/dist/server.js"],
      "env": {
        "GHL_API_KEY": "YOUR_PRIVATE_INTEGRATIONS_API_KEY",
        "GHL_BASE_URL": "https://services.leadconnectorhq.com",
        "GHL_LOCATION_ID": "YOUR_LOCATION_ID"
      }
    }
  }
}

HTTP MCP endpoint for web apps

For web-based MCP clients, use the streaming endpoint provided by your deployment. Example endpoint path is the SSE URL exposed after deployment, which delivers MCP events for real-time interaction.

Deployment & runtime options

You can deploy the MCP server using several hosting environments. Choose Vercel for zero-config deployment, Railway for quick one-click setup, or Render for automatic deployments. Each option supports environment variable configuration to supply your API key, base URL, and location ID.

Testing & validation

curl http://localhost:8000/health
curl http://localhost:8000/tools
curl -H "Accept: text/event-stream" http://localhost:8000/sse

Security & best practices

Do not commit API keys to version control. Use environment variables for sensitive data. Enforce proper permissions, monitor API usage, and implement rate limiting and error handling. Ensure only trusted clients can reach your MCP endpoints.

Troubleshooting

If you encounter connectivity issues, verify that your Private Integrations API key is active and has the required scopes, confirm the Location ID matches your GHL account, and ensure environment variables are correctly configured. For memory or startup problems, increase Node.js memory limits and verify the build artifacts are present.

Notes on scalability

Plan for production use with proper monitoring, logging, and autoscaling. Use pagination for large data results, cache frequently requested data, and implement exponential backoff for API retries to stay within GoHighLevel rate limits.

Available tools

create_contact

Create a new contact with given details and assign attributes, tags, and related records as needed.

search_contacts

Query contacts by filters and return matching results with optional pagination.

get_contact

Retrieve a single contact by ID.

update_contact

Update contact fields, including tags and relationships.

delete_contact

Remove a contact from the system.

add_contact_tags

Attach one or more tags to a contact for categorization.

remove_contact_tags

Detach tags from a contact to refine grouping.

get_contact_tasks

List tasks associated with a contact.

create_contact_task

Create a new task for a contact.

update_contact_task

Modify an existing contact task.

delete_contact_task

Delete a contact task.

get_contact_notes

Fetch notes tied to a contact.

create_contact_note

Add a note to a contact's history.

update_contact_note

Update an existing contact note.

delete_contact_note

Remove a contact note.

upsert_contact

Smart create or update a contact in a single operation.

get_duplicate_contact

Check for potential duplicate contacts based on identifiers.

bulk_update_contact_tags

Apply tag updates to multiple contacts in a single operation.

add_contact_to_workflow

Add a contact to a workflow automation.

remove_contact_from_workflow

Remove a contact from a workflow automation.

add_contact_followers

Assign followers to a contact for collaboration.

remove_contact_followers

Remove followers from a contact.

send_sms

Send an SMS to a contact with optional formatting.

send_email

Send an email with HTML/plain text content.

search_conversations

Find conversations by criteria.

get_conversation

Retrieve a specific conversation.

create_conversation

Create a new conversation thread.

get_message

Fetch a message by ID.

get_email_message

Fetch an email message by ID.

upload_message_attachments

Attach files to messages.

update_message_status

Update the delivery/read status of a message.

cancel_scheduled_message

Cancel a scheduled message.

get_message_recording

Retrieve a recording for a message/call.

get_message_transcription

Fetch transcription for an audio message or call.

download_transcription

Download the transcription text.

add_inbound_message

Log an incoming message manually.

add_outbound_call

Log an outbound call in the system.

live_chat_typing

Indicate typing activity in live chat.

create_blog_post

Create a new blog post with content and SEO metadata.

update_blog_post

Edit an existing blog post.

get_blog_posts

List blog posts with optional filters.

get_blog_sites

Retrieve available blog sites.

get_blog_authors

Fetch blog authors.

get_blog_categories

Fetch blog categories for organization.

check_url_slug

Validate SEO-friendly URL slug availability.

search_opportunities

Advanced filtering to find opportunities by pipeline, stage, and contact.

get_pipelines

Retrieve sales pipelines.

create_opportunity

Create a new sales opportunity.

update_opportunity

Update an existing opportunity.

delete_opportunity

Remove an opportunity.

update_opportunity_status

Quickly set opportunity status to won/lost/in-progress.

upsert_opportunity

Smartly create or update an opportunity.

add_opportunity_followers

Assign team members to an opportunity.

remove_opportunity_followers

Detach followers from an opportunity.

get_calendar_groups

List calendar groups.

get_calendars

List calendars.

create_calendar

Create a new calendar.

update_calendar

Update a calendar.

delete_calendar

Delete a calendar.

get_calendar_events

Fetch events for a calendar.

get_free_slots

Check available time slots for scheduling.

create_appointment

Book a new appointment.

get_appointment

Retrieve an appointment by ID.

update_appointment

Update appointment details.

delete_appointment

Cancel an appointment.

create_block_slot

Block a time slot for scheduling constraints.

update_block_slot

Modify a block slot.

get_email_campaigns

List email campaigns.

create_email_template

Create a new email template.

get_email_templates

List email templates.

update_email_template

Update an existing email template.

delete_email_template

Delete an email template.

get_location_tags

List tags for locations.

create_location_tag

Create a new location tag.

update_location_tag

Update a location tag.

delete_location_tag

Delete a location tag.

get_location_custom_fields

Fetch custom fields for locations.

create_location_custom_field

Create a location custom field.

update_location_custom_field

Update a location custom field.

get_location_custom_values

Get values for a location custom field.

create_location_custom_value

Create a value for a location custom field.

update_location_custom_value

Update a location custom value.

get_location_templates

List location templates.

delete_location_template

Delete a location template.

get_timezones

Retrieve available time zones.

verify_email

Verify an email address for deliverability and risk assessment.

search_social_posts

Search social posts across connected platforms.

create_social_post

Publish a new social post.

get_social_post

Retrieve a social post.

update_social_post

Update a social post.

delete_social_post

Delete a social post.

bulk_delete_social_posts

Delete multiple social posts in one operation.

get_social_accounts

List connected social accounts.

delete_social_account

Remove a connected social account.

start_social_oauth

Initiate OAuth flow for a social platform.

upload_social_csv

Upload a CSV to batch-create social accounts.

get_csv_upload_status

Check status of CSV upload.

set_csv_accounts

Assign accounts from a CSV to campaigns or platforms.

get_social_categories

List social post categories.

get_social_tags

List tags for social content.

get_social_tags_by_ids

Fetch social tags by IDs.

ghl_get_all_associations

Retrieve all object associations.

ghl_create_association

Create a new object association.

ghl_get_association_by_id

Fetch an association by ID.

ghl_update_association

Update an existing association.

ghl_delete_association

Delete an association.

ghl_create_relation

Create a relation between records.

ghl_get_relations_by_record

Fetch relations for a given record.

ghl_delete_relation

Delete a relation.

ghl_get_workflows

Discover automation workflows available.

ghl_get_custom_field_by_id

Fetch a custom field by ID.

ghl_create_custom_field

Create a new custom field.

ghl_update_custom_field

Update a custom field.

ghl_delete_custom_field

Delete a custom field.

ghl_get_custom_fields_by_object_key

List custom fields for an object.

ghl_create_custom_field_folder

Create a folder for custom fields.

ghl_update_custom_field_folder

Update a custom field folder.

ghl_delete_custom_field_folder

Delete a custom field folder.

ghl_list_product_collections

List product collections.

ghl_create_product_collection

Create a product collection.

ghl_get_product

Get a product by ID.

ghl_update_product

Update product details.

ghl_delete_product

Delete a product.

ghl_create_product

Create a new product entry.

ghl_list_products

List all products.

ghl_create_price

Create a price for a product.

ghl_list_prices

List product prices.

ghl_list_inventory

Check product inventory.

ghl_create_shipping_zone

Create a shipping zone.

ghl_list_shipping_zones

List shipping zones.

ghl_get_shipping_zone

Get a shipping zone by ID.

ghl_update_shipping_zone

Update a shipping zone.

ghl_delete_shipping_zone

Delete a shipping zone.

ghl_get_available_shipping_rates

Get available shipping rates.

ghl_create_shipping_rate

Create a shipping rate.

ghl_list_shipping_rates

List shipping rates.

ghl_get_shipping_rate

Get a shipping rate by ID.

ghl_update_shipping_rate

Update a shipping rate.

ghl_delete_shipping_rate

Delete a shipping rate.

ghl_create_store_setting

Create store setting.

ghl_get_store_setting

Get a store setting.

ghl_verify_email

Verify email deliverability.

ghl_get_all_objects

List all custom object schemas.

ghl_create_object_schema

Create a new custom object schema.

ghl_get_object_schema

Get a custom object schema by key.

ghl_update_object_schema

Update a custom object schema.

ghl_get_object_record

Retrieve a record from a custom object.

ghl_create_object_record

Create a new record in a custom object.

ghl_update_object_record

Update a custom object record.

ghl_delete_object_record

Delete a custom object record.

ghl_search_object_records

Search custom object records with filters.

ghl_create_association

Create an association between two objects.

ghl_get_all_associations

Retrieve all object associations.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational