otherapi_key

HighLevel MCP

HighLevel MCP lets authorized agents work with contacts, conversations, calendars, opportunities, and other location-scoped HighLevel resources.

Verdict

HighLevel MCP connects your team to a white-label CRM and marketing automation platform built for agencies. @mention it to manage blog content, pull appointment notes, check calendar availability, or update client records without leaving Switchy. Marketing teams use it to draft and schedule blog posts across client sites; account managers use it to surface appointment context before calls. The MCP exposes 36 tools covering blogs, calendars, contacts, and campaigns. You'll need a HighLevel API key with appropriate location access — some operations require admin permissions, and the tool set assumes you're already managing client workspaces inside HighLevel.

Common use cases

  • Draft blog posts for client sites
  • Check appointment notes before sales calls
  • Validate URL slugs before publishing content
  • Retrieve calendar availability for scheduling
  • Update contact records after team meetings

Integration

Vendor
HighLevel MCP
Category
other
Auth
API_KEY
Tools
36
Composio slug
highlevel_mcp

Tools

  • Blogs check-url-slug-exists

    Validates whether a URL slug is available for a blog post before publishing. Checks if the slug already exists for other posts, optionally excluding a specific post ID. Returns a boolean indicating slug availability. Use this tool when user

  • Blogs create-blog-post

    Creates a new blog post for a blog site with comprehensive content and metadata. Accepts blog post details including title, description, HTML content, featured image, categories, tags, author assignment, URL slug, canonical link, and public

  • Blogs get-all-blog-authors-by-location

    Retrieves all blog authors for a specific location with pagination support. Returns a list of authors including author ID, name, location ID, and canonical link. Supports pagination with limit and offset parameters. Use this tool when users

  • Blogs get-all-categories-by-location

    Retrieves all blog categories for a specific location with pagination support. Returns a list of categories including category ID, label, location ID, URL slug, and canonical link. Supports pagination with limit and offset parameters. Use t

  • Blogs get-blog-post

    Retrieves blog posts for a specific blog site using blog ID with filtering and pagination. Supports filtering by publication status (published, scheduled, archived, draft), search terms for post name, and pagination with limit and offset. R

  • Blogs get-blogs

    Retrieves a list of blog sites for a location with pagination and search support. Returns blog sites with their IDs and names. Supports filtering by search terms and pagination with skip and limit parameters. Use this tool when users want t

  • Blogs update-blog-post

    Modifies an existing blog post including content, metadata, categories, tags, and publication settings. Can update title, description, HTML content, featured image, status, SEO fields (URL slug, canonical link), categories, tags, author, an

  • Calendars get-appointment-notes

    Retrieves notes associated with a specific appointment. Returns a paginated list of notes including note ID, body, user ID, creation date, and creator information. Supports pagination with limit and offset parameters. Use this tool when use

  • Calendars get-calendar-events

    Retrieves calendar events and appointments within a specified time range. Filters events by user ID, group ID, or calendar ID to show appointments for specific team members or calendars. Returns appointment details including participants, d

  • Contacts add-tags

    Adds one or more tags to an existing contact record. Appends the new tags to the contact's current tag list without removing any existing tags, allowing incremental tag assignment. Returns the updated contact with the complete tag list incl

  • Contacts create-contact

    Creates a new contact record in the CRM with personal and business information. Accepts contact details including name, email, phone number, address, company information, tags, custom fields, and assigned user. Returns the newly created con

  • Contacts get-all-tasks

    Retrieves all tasks associated with a specific contact. Returns a list of tasks including title, description, body, due date, completion status, assigned user, and task ID. Shows both completed and pending tasks for the contact. Use this to

  • Contacts get-contact

    Retrieves detailed contact information by contact ID. Returns complete contact profile including personal details (name, email, phone), address information, tags, custom fields, and associated opportunities. Use this tool when users want to

  • Contacts get-contacts

    Retrieves a list of contacts with pagination support. Supports filtering by location ID, query terms for name/email search, and pagination using startAfter and startAfterId. Returns a list of contacts with basic information. Note: This endp

  • Contacts remove-tags
    destructive

    Removes specified tags from a contact record. Deletes only the provided tags while preserving all other tags on the contact, allowing selective tag removal. Returns the updated contact with the remaining tags. Use this tool when users want

  • Contacts update-contact

    Modifies existing contact information in the CRM. Can update any contact property including name, email, phone number, address, tags, custom fields, and company details. Updates only the provided fields while preserving all other existing c

  • Contacts upsert-contact

    Creates a new contact or updates an existing contact based on duplicate detection settings. Uses global unique identifier for de-duplication when duplicate contacts are disabled, or creates a new contact when duplicates are allowed. Accepts

  • Conversations get-messages

    Retrieves messages from a specific conversation with optional filtering by message type. Supports filtering by message types (SMS, Email, Call, Facebook, Instagram, WhatsApp, etc.) and pagination using lastMessageId and limit. Returns a lis

  • Conversations search-conversation

    Searches conversations using multiple filters including contact, assigned user, followers, mentions, status, message type, and date range. Supports sorting by last message date or score profile, filtering by conversation status (all, read,

  • Conversations send-a-new-message

    Sends a new message to a contact through various channels including SMS, Email, WhatsApp, Instagram, Facebook, Custom, or Live Chat. Supports text messages, HTML email content, attachments, email CC/BCC, reply threading, template usage, and

  • Emails create-template

    Creates a new email template with various types including HTML, builder, blank, folder, or imported templates. Supports importing from Mailchimp, ActiveCampaign, or Kajabi, and accepts template name, parent folder, builder version, and temp

  • Emails fetch-template

    Retrieves email templates for a location with advanced filtering and pagination. Supports filtering by name, parent folder, builder version, archived status, search terms, and sorting by date. Returns template list with name, ID, type, last

  • Locations get-custom-fields

    Retrieves custom fields for a location with optional filtering by model type. Supports filtering by model (contact, opportunity, or all) to retrieve custom fields for specific entity types. Returns custom field list including field ID, name

  • Locations get-location

    Retrieves detailed information for a sub-account (formerly location) by location ID. Returns complete location details including name, domain, address, business information, social media links, settings, company ID, contact information, and

  • Opportunities get-opportunity

    Retrieves detailed information for a specific opportunity by opportunity ID. Returns complete opportunity details including name, monetary value, pipeline and stage information, status, assigned user, contact details, custom fields, notes,

  • Opportunities get-pipelines

    Retrieves all sales pipelines for a location. Returns pipeline list including pipeline ID, name, stages, visibility settings (funnel and pie chart), and location ID. Use this tool when users want to get pipelines, list sales pipelines, find

  • Opportunities search-opportunity

    Searches and filters opportunities in the sales pipeline using multiple criteria. Supports filtering by pipeline, pipeline stage, contact, opportunity status (open, won, lost, abandoned), assigned user, campaign, date range, and country. Re

  • Opportunities update-opportunity

    Modifies an existing opportunity in the sales pipeline. Can update opportunity name, pipeline, pipeline stage, status, monetary value, assigned user, and custom fields. Returns the updated opportunity with modified fields. Use this tool whe

  • Payments get-order-by-id

    Retrieves detailed information for a specific order using its unique order ID. Returns complete order details including order ID, contact information, currency, amount, status, fulfillment status, order items, payment source, amount summary

  • Payments list-transactions

    Retrieves a paginated list of transactions with comprehensive filtering options. Supports filtering by payment mode, date range, transaction source type and subtype, contact, subscription ID, entity ID, and search terms. Returns transaction

  • Social-media-posting create-post

    Creates a new social media post for multiple platforms. Supports posting to Facebook, Instagram, Twitter, LinkedIn, Google My Business, and TikTok with platform-specific content and media. Accepts post content, media files, scheduling infor

  • Social-media-posting edit-post

    Modifies an existing social media post including content, media, scheduling, and platform-specific settings. Can update post summary, media files, schedule date, tags, categories, approval details, and platform configurations. Returns the u

  • Social-media-posting get-account

    Retrieves a list of connected social media accounts and groups for a location. Returns account information including account IDs, platform types, and group associations. Use this tool when users want to get social media accounts, list conne

  • Social-media-posting get-post

    Retrieves detailed information for a specific social media post by post ID. Returns complete post details including content, media, status, schedule information, platform accounts, tags, categories, and post metadata. Use this tool when use

  • Social-media-posting get-posts

    Retrieves social media posts with advanced filtering and pagination. Supports filtering by post type (recent, all, scheduled, draft, failed, in_review, published, in_progress, deleted), account IDs, date range, and post type (post, story, r

  • Social-media-posting get-social-media-statistics

    Retrieve analytics data for multiple social media accounts. Provides metrics for the last 7 days with comparison to the previous 7 days. Supports filtering by platforms and specific connected accounts. Capabilities: get_get-social-media-st

Setup

Setup guide

  1. 11. In Switchy, open your workspace settings and navigate to the Integrations tab. 2. Click 'Add MCP Integration' and select HighLevel MCP from the directory. 3. You'll be prompted to enter your HighLevel API key — generate this from your HighLevel account under Settings > API Keys, ensuring it has read and write access to the locations you manage. 4. Paste the key into Switchy and click 'Connect'. 5. Switchy will validate the key and display the locations your key can access. 6. Open any Project, type '@HighLevel' in the chat, and ask it to list your blog sites or retrieve recent appointments — if you see results, the connection is live. 7. If a tool fails, verify your API key has the correct location permissions in HighLevel's admin panel.

What teammates see: by default, memories from HighLevel MCP are scoped to the Project (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.

Works well with

Top models

Compatibility data appears once enough Projects have used this MCP together with a given model.

How Switchy teams use it

Not enough Projects yet to publish anonymised usage stats (we require ≥ 50 Projects per week).

Starter prompts

Draft Client Blog Post

@HighLevel Create a blog post titled 'Five Ways to Automate Your Sales Pipeline' for the blog site with ID [blog_id]. Include an introduction, three actionable tips, and a call-to-action. Set the status to draft.

Summarize Appointment Notes

@HighLevel Retrieve all notes for appointment ID [appointment_id] and summarize the key discussion points, action items, and any client concerns mentioned.

Check Blog Slug Availability

@HighLevel Check if the URL slug 'sales-automation-guide' is available for the blog site with ID [blog_id]. If it's taken, suggest three alternative slugs.

List Blog Authors by Location

@HighLevel Get all blog authors for location ID [location_id] and list their names and author IDs. Show me the first 20 results.

Update Published Post Metadata

@HighLevel Update the blog post with ID [post_id] to change the meta description to 'Learn how to automate your sales process in five steps' and add the category 'Sales Tips'.

Example outputs

Illustrative - representative of the model's voice and quality, not literal recordings.

Prompt

@HighLevel list all blog posts published in the last 30 days for our main site, grouped by category

Output

Found 12 published blog posts across 4 categories in the last 30 days: **Product Updates (5 posts)**: 'New CRM Dashboard Released', 'Mobile App v2.3 Features', 'Integration with Zapier', 'Custom Fields Now Available', 'Performance Improvements' **Marketing Tips (4 posts)**: 'Email Segmentation Best Practices', 'Landing Page Optimization', 'A/B Testing Guide', 'Social Media Scheduling' **Case Studies (2 posts)**: 'Agency Growth Story: 300% Revenue', 'Automation Success at Scale' **Tutorials (1 post)**: 'Getting Started with Workflows' Each post includes metadata like author, tags, and canonical URLs. This is an illustrative example showing typical blog content organization.

Notes

This example demonstrates the MCP's read capabilities across the Blogs toolset. Requires API key with read access to the blog module. The get-blog-post tool supports filtering by date ranges and publication status, though actual response structure depends on your HighLevel account's blog configuration and content volume.

Prompt

@HighLevel create a new blog post titled 'Q1 Product Roadmap' with draft status, assign it to author ID 'auth_123', and add categories 'announcements' and 'product'

Output

Blog post created successfully with ID 'post_789': **Title**: Q1 Product Roadmap **Status**: Draft **Author**: auth_123 (John Smith) **Categories**: announcements, product **URL Slug**: q1-product-roadmap (validated as available) **Created**: 2024-01-15 10:30 UTC The post is now in draft status and visible only to team members with blog editing permissions. You can add content, featured images, and SEO metadata before publishing. This illustrative example shows the typical creation workflow.

Notes

This write operation demonstrates the create-blog-post tool's ability to set up structured content with metadata. The MCP validates URL slugs before creation to prevent conflicts. Note that author IDs and category labels must exist in your HighLevel location first—the tool won't create them automatically. Side-effect: creates a permanent draft record.

Prompt

@HighLevel review all appointment notes from the last week and summarize common customer questions or concerns by topic

Output

Analyzed 47 appointment notes from January 8-15, 2024. Here are the recurring themes: **Pricing Questions (18 notes)**: Customers frequently ask about enterprise tier discounts and annual vs monthly billing differences. Common concern: unclear upgrade path from starter plan. **Technical Issues (12 notes)**: Integration problems with calendar syncing (8 mentions) and mobile app login errors (4 mentions). Most resolved within 24 hours. **Feature Requests (10 notes)**: Bulk contact import (6 requests), custom reporting dashboards (4 requests). **Onboarding Feedback (7 notes)**: Users want more video tutorials for workflow automation setup. This synthesis combines the MCP's data retrieval with AI analysis to surface actionable patterns.

Notes

This example pairs the get-appointment-notes tool with AI reasoning to extract insights from unstructured text. The MCP retrieves raw note data; the AI performs the categorization and summarization. Requires API access to the calendar module. Rate limits apply when fetching large note volumes—pagination helps manage this. The analysis quality depends on note detail and consistency.

Use-case deep-dives

Agency client blog publishing workflow

When HighLevel MCP fits multi-client content operations

A 6-person marketing agency managing 15 client blogs needs to draft, review, and schedule posts across accounts without logging into each HighLevel sub-account. The MCP's blog tooling (create, update, check-slug, get-categories) lets the team build a shared Switchy workspace where one person drafts in the morning, another reviews SEO fields at lunch, and a third schedules publication—all referencing the same conversation thread. The 36-tool scope means you're also pulling calendar appointment notes and other HighLevel data, which adds noise if you only care about blogs. If your agency runs fewer than 10 clients or publishes fewer than 5 posts per week, the setup overhead outweighs the gain. Above that threshold, the MCP turns HighLevel into a collaborative surface instead of a per-user silo.

Sales team appointment context lookup

HighLevel MCP for pre-call research at scale

A 4-person sales team books 40+ discovery calls per week through HighLevel calendars and needs to review appointment notes before each call. The get-appointment-notes tool surfaces context (previous conversations, deal stage, pain points) without opening the CRM tab-by-tab. In Switchy, the rep pastes the appointment ID into a shared thread, the MCP fetches notes, and the team discusses positioning in the same workspace. This works when your HighLevel instance is the single source of truth for customer touchpoints. If notes live in Salesforce or HubSpot instead, the MCP becomes a dead end—you'll spend more time reconciling data than prepping calls. The buying call: if HighLevel calendars drive your pipeline and notes are consistently logged there, the MCP cuts pre-call prep from 8 minutes to under 2.

Franchise location content audit

When HighLevel MCP handles multi-location content sprawl

A franchise brand with 30 locations uses HighLevel to manage local blogs and needs to audit which sites have stale content or missing categories. The get-blogs, get-all-categories-by-location, and get-blog-post tools let a 2-person ops team pull a snapshot of all 30 blogs in one Switchy session, compare publication cadence, and flag locations that haven't posted in 60 days. The MCP's pagination support matters here—without it, you'd hit rate limits or timeout on large pulls. The trade-off: if your franchise runs fewer than 10 locations or publishes infrequently (under 2 posts per location per month), a manual spreadsheet audit is faster. Above 10 locations with active publishing, the MCP turns a 4-hour quarterly audit into a 20-minute query.

Frequently asked

What does the HighLevel MCP let me do in Switchy?

The HighLevel MCP connects your HighLevel CRM to Switchy's AI agents, giving them read-write access to contacts, calendars, blog posts, and campaigns. Agents can create appointments, publish blog content, check URL slug availability, retrieve customer notes, and manage categories across your HighLevel locations. It's built for agencies running client workflows through HighLevel who want AI to handle repetitive CRM tasks without switching apps.

Do I need admin access to connect HighLevel MCP?

You need a HighLevel API key with permissions matching what you want agents to do. HighLevel uses API key authentication, not OAuth, so whoever generates the key controls scope. If you want agents creating blog posts or booking appointments, the key needs write access to those resources. Check your HighLevel account settings under API to generate a key with appropriate permissions for your use case.

Can the MCP manage multiple HighLevel locations at once?

Yes. The MCP's tools accept a location ID parameter, so agents can work across different client accounts or sub-accounts within your HighLevel agency setup. You retrieve blogs, authors, and categories per location, and create appointments or posts scoped to specific locations. This matches how HighLevel structures multi-client agencies, where each client gets their own location ID in the platform.

How is this different from using HighLevel's native automations?

HighLevel's workflows trigger on events and follow fixed logic. The MCP lets Switchy's AI agents make decisions based on conversation context, unstructured data, or cross-tool reasoning. An agent can read appointment notes, check if a blog slug exists, then draft and publish a post—all in one flow without pre-mapping every conditional. Use HighLevel automations for predictable sequences; use the MCP when you need adaptive, multi-step reasoning.

Who on my team should connect the HighLevel MCP?

Whoever manages your HighLevel API keys and understands which locations need agent access. Typically an agency admin or operations lead. They'll generate the API key, paste it into Switchy's MCP config, then decide which team members can invoke agents that use HighLevel tools. The person connecting it doesn't need to use the agents daily, but they control what data agents can touch.

More other MCPs

See all other MCPs →

Data last verified 61 hours ago.Sources aggregated hourly to weekly. See docs/architecture/model-directory.md.