Connect your AI Agents to GoHighLevel in minutes

Merge lets you securely connect your agents to GoHighLevel and thousands of tools instantly

Available tools

list_calendars

List calendars in a location. locationid is required: use searchlocations to find it. Returns calendar IDs for getcalendar, listcalendarevents, and createappointment.

get_calendar

Fetch one calendar by ID. Use list_calendars to find calendar IDs.

list_calendar_events

List calendar events (appointments) in a location. locationid, starttime, and endtime (an epoch-ms window) are all required; use searchlocations for locationid. The API also needs at least one of calendarid (from listcalendars), userid, or groupid. Returns event IDs for getappointment.

get_appointment

Fetch one appointment (calendar event) by ID. Use listcalendarevents to find event IDs.

create_appointment

Book an appointment on a calendar. calendarId, locationId, contactId, and startTime are required. Use listcalendars for calendarId, searchlocations for locationId, and list_contacts for contactId. Returns the new appointment ID.

delete_appointment

Permanently delete an appointment (calendar event) by ID. This cannot be undone. Use listcalendarevents or get_appointment to find event IDs.

list_contacts

List contacts in a location with free-text search and limit paging. locationid is required: use searchlocations to find it. Use the query param to search by name, email, or company. Returns contact IDs for the get/update/delete, task, note, and opportunity tools.

get_contact

Fetch one contact by ID. Use list_contacts to find contact IDs.

create_contact

Create a contact in a location. locationid is required: use searchlocations to find it. Returns the new contact ID for use with the task, note, opportunity, and appointment tools.

update_contact

Update a contact's fields. Only the fields you pass are changed. Use list_contacts to find contact IDs.

delete_contact

Permanently delete a contact by ID. This cannot be undone. Use list_contacts to find contact IDs.

search_locations

Search HighLevel locations (sub-accounts) with offset paging. Use this to discover location IDs required by listcontacts, listpipelines, searchopportunities, listcalendars, createcontact, createopportunity, and create_appointment. Filter by email; page with limit and skip.

get_location

Fetch one HighLevel location (sub-account) by ID. Use search_locations to find location IDs.

list_contact_notes

List all notes on a contact. Use listcontacts to find contact IDs. Returns note IDs for get/update/deletecontact_note.

create_contact_note

Create a note on a contact. body is required. Use list_contacts to find contact IDs. Returns the new note ID.

get_contact_note

Fetch one note on a contact by ID. Use listcontactnotes to find note IDs and list_contacts for contact IDs.

update_contact_note

Update a note on a contact. body is required. Use listcontactnotes to find note IDs and list_contacts for contact IDs.

delete_contact_note

Permanently delete a note on a contact. Use listcontactnotes to find note IDs and list_contacts for contact IDs.

list_pipelines

List opportunity pipelines and their stages in a location. locationid is required: use searchlocations to find it. Call this first to get pipelineId and pipelineStageId values for createopportunity, updateopportunity, and search_opportunities.

search_opportunities

Search opportunities in a location with server-side filters. locationid is required: use searchlocations to find it. Filter by pipelineid and pipelinestageid (from listpipelines), contactid (from listcontacts), status, assigned_to, or free-text q. Returns opportunity IDs.

get_opportunity

Fetch one opportunity by ID. Use search_opportunities to find opportunity IDs.

create_opportunity

Create an opportunity. pipelineId, locationId, name, status, and contactId are required. Call listpipelines first to get a valid pipelineId (and pipelineStageId); use searchlocations for locationId and list_contacts for contactId. status is one of open/won/lost/abandoned. Returns the new opportunity ID.

update_opportunity

Update an opportunity's fields. Only the fields you pass are changed. Use searchopportunities to find opportunity IDs and listpipelines for pipelineId/pipelineStageId values. status is one of open/won/lost/abandoned.

delete_opportunity

Permanently delete an opportunity by ID. This cannot be undone. Use search_opportunities to find opportunity IDs.

list_contact_tasks

List all tasks on a contact. Use listcontacts to find contact IDs. Returns task IDs for get/update/deletecontact_task.

create_contact_task

Create a task on a contact. title, dueDate, and completed are all required (pass completed=false for a new open task). Use list_contacts to find contact IDs. Returns the new task ID.

get_contact_task

Fetch one task on a contact by ID. Use listcontacttasks to find task IDs and list_contacts to find contact IDs.

update_contact_task

Update a task on a contact. Only the fields you pass are changed. Use listcontacttasks to find task IDs and list_contacts for contact IDs.

delete_contact_task

Permanently delete a task on a contact. Use listcontacttasks to find task IDs and list_contacts for contact IDs.

validate_credential

Validate GoHighLevel credentials by making a minimal authenticated call to the locations search endpoint.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's GoHighLevel  MCP server

FAQs on using Merge's GoHighLevel  MCP server

Explore other MCP servers built and managed by Merge

github
GitHub
gitlab
GitLab
gmail
Gmail
goldcast
Goldcast
gong
Gong
google_ads
Google Ads
google_analytics
Google Analytics
google_bigquery
Google BigQuery
google_calendar
Google Calendar
google_docs
Google Docs
google_drive
Google Drive
google_maps
Google Maps
google_meet
Google Meet
google_sheets
Google Sheets
google_slides
Google Slides
google_tasks
Google Tasks
grafana
Grafana
granola
Granola
greenhouse
Greenhouse
guru
Guru
hex
Hex
hibob
HiBob
hubspot
HubSpot
intercom
Intercom

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now