GHL MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP server port (used when TRANSPORT=http) | |
| TRANSPORT | No | Transport mode: stdio or http | stdio |
| GHL_API_KEY | Yes | Your GoHighLevel private integration token | |
| GHL_LOCATION_ID | Yes | Your GoHighLevel location ID |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ghl_search_contactsA | Search contacts in GoHighLevel by query, tags, filters, or custom fields. Returns paginated results. Args:
Returns: List of contacts with pagination metadata. |
| ghl_get_contactA | Get a single contact by ID with all details including custom fields, tags, and activity. |
| ghl_create_contactA | Create a new contact in GoHighLevel. Args:
Returns: Created contact object with ID. |
| ghl_update_contactA | Update an existing contact. Only pass fields you want to change. |
| ghl_delete_contactA | Permanently delete a contact. This cannot be undone. |
| ghl_upsert_contactA | Create or update a contact by email/phone. If a match is found, updates; otherwise creates new. |
| ghl_add_contact_tagsA | Add one or more tags to a contact. |
| ghl_remove_contact_tagsA | Remove one or more tags from a contact. |
| ghl_get_contact_notesB | Get all notes for a contact. |
| ghl_create_contact_noteA | Add a note to a contact. |
| ghl_delete_contact_noteA | Delete a specific note from a contact. |
| ghl_get_contact_tasksA | Get all tasks for a contact. |
| ghl_create_contact_taskC | Create a task for a contact. |
| ghl_update_contact_taskA | Update an existing task for a contact. |
| ghl_add_contact_to_workflowA | Add a contact to a GHL workflow/automation. |
| ghl_remove_contact_from_workflowA | Remove a contact from a GHL workflow. |
| ghl_search_conversationsA | Search conversations by contact ID, query, or status. Returns threaded conversations with latest message info. |
| ghl_get_conversationA | Get a single conversation by ID with metadata. |
| ghl_get_messagesA | Get messages in a conversation thread. Returns SMS, email, and other message types. |
| ghl_send_messageA | Send a message (SMS, Email, WhatsApp, or other) to a contact via GoHighLevel. Args:
Returns: Sent message object with ID and status. |
| ghl_cancel_scheduled_messageA | Cancel a previously scheduled message. |
| ghl_update_conversationA | Update conversation status (starred, unread, etc.). |
| ghl_list_calendarsB | Get all calendars for the location. |
| ghl_get_calendarB | Get details of a specific calendar. |
| ghl_get_free_slotsA | Get available booking slots for a calendar within a date range. |
| ghl_get_eventsA | Get appointments/events for a location, optionally filtered by calendar, contact, or date range. |
| ghl_create_eventA | Create a new appointment/event on a GHL calendar. |
| ghl_update_eventB | Update an existing appointment/event. |
| ghl_delete_eventB | Delete/cancel an appointment. |
| ghl_create_calendarB | Create a new calendar in GoHighLevel. |
| ghl_search_opportunitiesC | Search opportunities (deals) by pipeline, stage, status, contact, or monetary value. |
| ghl_get_opportunityA | Get details of a specific opportunity/deal. |
| ghl_create_opportunityB | Create a new opportunity/deal in a pipeline. |
| ghl_update_opportunityA | Update an existing opportunity — move stages, change value, update status, etc. |
| ghl_delete_opportunityA | Permanently delete an opportunity. |
| ghl_update_opportunity_statusA | Change the status of an opportunity (open, won, lost, abandoned). |
| ghl_list_pipelinesA | Get all pipelines and their stages for a location. |
| ghl_list_ordersC | Get payment orders for a location. |
| ghl_get_orderA | Get details of a specific payment order. |
| ghl_list_transactionsB | Get payment transactions for a location. |
| ghl_list_subscriptionsA | Get active subscriptions for a location. |
| ghl_list_invoicesB | Get invoices for a location. Filter by status, contact, or date range. |
| ghl_get_invoiceA | Get details of a specific invoice. |
| ghl_create_invoiceA | Create a new invoice for a contact. |
| ghl_send_invoiceB | Send an invoice to the contact via email. |
| ghl_void_invoiceB | Void an existing invoice. |
| ghl_list_workflowsA | Get all workflows/automations for a location. |
| ghl_list_custom_fieldsA | Get all custom fields for contacts in a location. |
| ghl_create_custom_fieldA | Create a new custom field for contacts. |
| ghl_get_locationA | Get details of a GHL location/sub-account including settings, address, and configuration. |
| ghl_get_location_tagsA | Get all tags defined in a location. |
| ghl_create_location_tagB | Create a new tag in the location. |
| ghl_search_usersB | Search for users/team members in a location. |
| ghl_list_formsA | Get all forms for a location. |
| ghl_get_form_submissionsB | Get submissions for forms in a location. |
| ghl_list_surveysA | Get all surveys for a location. |
| ghl_list_campaignsC | Get all campaigns for a location. |
| ghl_list_social_postsC | Get scheduled and published social media posts. |
| ghl_create_social_postA | Schedule or publish a social media post. |
| ghl_list_social_accountsB | Get all connected social media accounts (Facebook, Instagram, Google, etc.). |
| ghl_list_funnelsB | Get all funnels/websites for a location. |
| ghl_list_productsA | Get all products for a location. |
| ghl_list_blogsB | Get all blogs for a location. |
| ghl_list_linksA | Get all trigger links for a location. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/northrosetech/ghl-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server