GoHighLevel MCP Server (TailorMadeWeddings/GoHighLevel-MCP) is an MCP server listed on the M8ven Trust Index. It scores 52 out of 100, grade D. It declares 264 tools. No publisher has claimed this listing.
Integrates Claude Desktop with GoHighLevel CRM, providing 269+ tools for contact management, messaging, sales, marketing, and more via MCP.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
TailorMadeWeddings
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
list_subaccountsList all configured GHL sub-accounts and show which one is currently active.
switch_subaccountSwitch the active GHL sub-account. All subsequent tool calls will use this account until switched again.
searchSearch for information in GoHighLevel CRM system
retrieveRetrieve specific data from GoHighLevel
ghl_get_all_associationsGet all associations for a sub-account/location with pagination. Returns system-defined and user-defined associations.
ghl_create_associationCreate a new association that defines relationship types between entities like contacts, custom objects, and opportunities.
ghl_get_association_by_idGet a specific association by its ID. Works for both system-defined and user-defined associations.
ghl_update_associationUpdate the labels of an existing association. Only user-defined associations can be updated.
ghl_delete_associationDelete a user-defined association. This will also delete all relations created with this association.
ghl_get_association_by_keyGet an association by its key name. Useful for finding both standard and user-defined associations.
ghl_get_association_by_object_keyGet associations by object keys like contacts, custom objects, and opportunities.
ghl_create_relationCreate a relation between two entities using an existing association. Links specific records together.
ghl_get_relations_by_recordGet all relations for a specific record ID with pagination and optional filtering by association IDs.
ghl_delete_relationDelete a specific relation between two entities.
create_blog_postCreate a new blog post in GoHighLevel. Requires blog ID, author ID, and category IDs which can be obtained from other blog tools.
update_blog_postUpdate an existing blog post in GoHighLevel. All fields except postId and blogId are optional.
get_blog_postsGet blog posts from a specific blog site. Use this to list and search existing blog posts.
get_blog_sitesGet all blog sites for the current location. Use this to find available blogs before creating or managing posts.
get_blog_authorsGet all available blog authors for the current location. Use this to find author IDs for creating blog posts.
get_blog_categoriesGet all available blog categories for the current location. Use this to find category IDs for creating blog posts.
check_url_slugCheck if a URL slug is available for use. Use this before creating or updating blog posts to ensure unique URLs.
get_calendar_groupsGet all calendar groups in the GoHighLevel location
get_calendarsGet all calendars in the GoHighLevel location with optional filtering
create_calendarCreate a new calendar in GoHighLevel
get_calendarGet detailed information about a specific calendar by ID
update_calendarUpdate an existing calendar in GoHighLevel
delete_calendarDelete a calendar from GoHighLevel
get_calendar_eventsGet appointments/events from calendars within a date range
get_free_slotsGet available time slots for booking appointments on a specific calendar
create_appointmentCreate a new appointment/booking in GoHighLevel
get_appointmentGet detailed information about a specific appointment by ID
update_appointmentUpdate an existing appointment in GoHighLevel
delete_appointmentCancel/delete an appointment from GoHighLevel
create_block_slotCreate a blocked time slot to prevent bookings during specific times
update_block_slotUpdate an existing blocked time slot
create_calendar_groupCreate a new calendar group
validate_group_slugValidate if a calendar group slug is available
update_calendar_groupUpdate calendar group details
delete_calendar_groupDelete a calendar group
disable_calendar_groupEnable or disable a calendar group
get_appointment_notesGet notes for an appointment
create_appointment_noteCreate a note for an appointment
update_appointment_noteUpdate an appointment note
delete_appointment_noteDelete an appointment note
get_calendar_resources_equipmentsGet calendar equipment resources
create_calendar_resource_equipmentCreate a calendar equipment resource
get_calendar_resource_equipmentGet specific equipment resource details
update_calendar_resource_equipmentUpdate equipment resource details
delete_calendar_resource_equipmentDelete an equipment resource
get_calendar_resources_roomsGet calendar room resources
create_calendar_resource_roomCreate a calendar room resource
get_calendar_resource_roomGet specific room resource details
update_calendar_resource_roomUpdate room resource details
delete_calendar_resource_roomDelete a room resource
get_calendar_notificationsGet calendar notifications
create_calendar_notificationsCreate calendar notifications
get_calendar_notificationGet specific calendar notification
update_calendar_notificationUpdate calendar notification
delete_calendar_notificationDelete calendar notification
get_blocked_slotsGet blocked time slots for a location
create_contactCreate a new contact in GoHighLevel
search_contactsSearch for contacts with advanced filtering options
get_contactGet detailed information about a specific contact
update_contactUpdate contact information
delete_contactDelete a contact from GoHighLevel
add_contact_tagsAdd tags to a contact
remove_contact_tagsRemove tags from a contact
get_contact_tasksGet all tasks for a contact
create_contact_taskCreate a new task for a contact
get_contact_taskGet a specific task for a contact
update_contact_taskUpdate a task for a contact
delete_contact_taskDelete a task for a contact
update_task_completionUpdate task completion status
get_contact_notesGet all notes for a contact
create_contact_noteCreate a new note for a contact
get_contact_noteGet a specific note for a contact
update_contact_noteUpdate a note for a contact
delete_contact_noteDelete a note for a contact
upsert_contactCreate or update contact based on email/phone (smart merge)
get_duplicate_contactCheck for duplicate contacts by email or phone
get_contacts_by_businessGet contacts associated with a specific business
get_contact_appointmentsGet all appointments for a contact
bulk_update_contact_tagsBulk add or remove tags from multiple contacts
bulk_update_contact_businessBulk update business association for multiple contacts
add_contact_followersAdd followers to a contact
remove_contact_followersRemove followers from a contact
add_contact_to_campaignAdd contact to a marketing campaign
remove_contact_from_campaignRemove contact from a specific campaign
remove_contact_from_all_campaignsRemove contact from all campaigns
add_contact_to_workflowAdd contact to a workflow
remove_contact_from_workflowRemove contact from a workflow
send_smsSend an SMS message to a contact in GoHighLevel
send_emailSend an email message to a contact in GoHighLevel
search_conversationsSearch conversations in GoHighLevel with various filters
get_conversationGet detailed conversation information including message history
create_conversationCreate a new conversation with a contact
update_conversationUpdate conversation properties (star, mark read, etc.)
get_recent_messagesGet recent messages across all conversations for monitoring
delete_conversationDelete a conversation permanently
get_email_messageGet detailed email message information by email message ID
162 further tools are not listed here. The complete surface is in the source.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `config.proxy`
axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
GHL_ACCOUNTSGHL_API_KEYyour_private_integrations_api_key_here # From Private Integrations, NOT regular API keyGHL_BASE_URLAdd: GHL_API_KEY, , GHL_LOCATION_ID, NODE_ENVGHL_LOCATION_IDyour_location_id_here # From Settings → Company → LocationsMCP_RESOURCE_IDENTIFIERMCP_SERVER_PORTSTYTCH_PROJECT_DOMAINSTYTCH_PROJECT_IDSTYTCH_PUBLIC_TOKENPORTTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
264/264 tools missing one or more hints — list_subaccounts (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); switch_subaccount (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); search (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +261 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool test coverage
Only 23/264 tools referenced in tests (9%)
Write tests that reference each tool by name so every tool has at least one test.
Production dependencies are patched
0 critical, 15 high severity in production deps — @modelcontextprotocol/sdk@1.12.1 (high), @modelcontextprotocol/sdk@1.12.1 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Domain consistency
npm scope @mastanley13 doesn't match GitHub owner tailormadeweddings
Use the same org name across GitHub, npm, and your homepage so users can verify the publisher.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/tailormadeweddings/gohighlevel-mcp)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check