Skip to main content

Connect Kajabi to Claude or ChatGPT

Set up the Kajabi MCP server to manage Courses, Offers, Contacts, and more from Claude, ChatGPT, and other AI tools.

Kajabi MCP is a Model Context Protocol server that connects your Kajabi account to AI tools like Claude and ChatGPT. Once connected, you can ask the AI to list Courses, draft Email Broadcasts, search Contacts, create Offers, and more, all from a single conversation.

How it works

Using Kajabi MCP follows three steps:

  1. Ask: Describe what you want in plain language.

  2. Build: Kajabi MCP constructs pages, emails, Offers, or other content based on your request, usually in under a minute.

  3. Review: Open the draft in the Kajabi admin UI to make final edits and publish.

For example, instead of building pricing variations, drafting an announcement email, and updating a landing page across three separate tools, you can ask:

"Create a 30% off Offer for my Photography Fundamentals Course running next Tuesday, draft an email broadcast announcing the sale, and update the Course landing page to mention the discount."

Kajabi MCP creates the draft Offer, broadcast, and landing page edits in seconds. Open each in the Kajabi admin UI to fine-tune the copy and publish when ready.

What's possible

  • Browse and inspect: List and fetch Sites, Courses, Products, Offers, Contacts, Forms, Landing Pages, Blog posts, Email Broadcasts and Sequences, Coaching products, and themes. Search Contacts and Products by text.

  • Create drafts: New Blog posts, Courses (with modules and lessons), Coaching products, Offers with pricing, Landing Pages, Email Broadcasts, and Email Sequences with scheduled emails.

  • Edit existing content: Update Course structure, Coaching metadata, Blog post body, SEO, tags, Form fields and settings, and theme content.

  • Wire up Automations: Read the Automations already on a site to see what starts them and which Forms, Offers, Tags, and Sequences they touch, then draft a new Automation with a trigger and an ordered chain of steps.

  • See who's who: Contact profiles with tags, purchases, and access; tag and segment lists.

  • Work with your Media Library: Browse and search library assets, inspect where an asset is used, add new media through Kajabi's uploader, place an asset onto a supported page, crop an asset to fit a slot, and replace one asset with another everywhere it appears.

What it won't do: Take actions on behalf of customers, process payments, send email blasts, surface analytics, or touch account settings.

Before you begin

Before you start: log into the correct Kajabi account in your browser. The OAuth approval uses that session.

Choose what your AI tool can do

When you authorize access to Kajabi, you choose which actions your AI tool can take on your behalf. Each permission can be turned on or off independently, so you can grant only what you need.

Permission

What it allows

Read your Kajabi data

View contacts, products, content, and analytics.

Create and edit blog posts, landing pages, newsletters, forms, and courses

Draft and update these content types.

Create and edit offers, products, coaching, and events

Draft and update commerce and coaching items.

Create and edit contact tags and segments

Organize contacts with tags and saved segments.

Send DMs, post in community channels, and edit community settings

Take community actions on your behalf.

Create and edit broadcasts, sequences, and newsletter posts

Draft and update email content.

Create and edit automations (workflows), their triggers, actions, and steps

Draft and update Automations, including their triggers, actions, and steps.

Publish or unpublish content

Change the publish state of content. Only takes effect when paired with a Create and edit permission above.

Edit theme content, custom JavaScript, and custom CSS

Update theme code and styling. Changes take effect immediately on published pages.

List and add account users

View the users on your account and add new ones. Turned off by default.

Warning: Editing theme code and adding account users can make changes that are hard to undo. Only grant these to an AI tool you trust.

Claude on the web (claude.ai)

Requires a paid Claude plan (Pro, Max, Team, or Enterprise).

  1. Go to claude.ai and sign in.

  2. Click your profile → Settings → Connectors.

  3. Click the Add custom connector button at the bottom of the page.

  4. Enter Kajabi as the Name.

  5. Enter https://mcp.kajabi.com/mcp as the URL.

  6. Click Add, then approve the Kajabi consent screen in your browser.

  7. In a new chat, enable the Kajabi connector via the tools/attachments menu.

Verify: Ask "List my Kajabi sites."

Claude Desktop

  1. Open Claude Desktop.

  2. Go to Settings → Connectors → Add custom Connector.

  3. Enter Kajabi as the Name.

  4. Enter https://mcp.kajabi.com/mcp as the URL.

  5. Click Add and approve the consent screen in your browser.

Verify: Start a new conversation and ask "List my Kajabi sites."

Claude Code (CLI)

claude mcp add kajabi --transport http https://mcp.kajabi.com/mcp

Claude Code opens your browser for OAuth automatically. Approve the consent screen and you're connected.

Verify:

> List my Kajabi sites

ChatGPT

Custom MCP connectors require Developer Mode, which exposes the full MCP tool surface (read + write). Only enable it for servers you trust — Kajabi is yours.

Note: On Business, Enterprise, or Edu workspaces, an admin may need to enable custom connectors first, before any team member can add one. If you do not see the option to create a custom connector, check with your workspace admin.

To enable custom connectors as an admin: go to Workspace Settings → Permissions & Roles → Connected Data, and turn on Create custom MCP connectors.

Enable Developer Mode (one-time)

  1. Open ChatGPT → Settings → Connectors → Advanced.

  2. Toggle Developer mode on.

  3. Read and accept the warning about write-enabled tools.

Note: Developer Mode is available on ChatGPT Plus and Pro plans, but those plans grant read and fetch permissions only. To use write and modify actions, including creating Pages, Offers, Email Sequences, and similar content, you need a ChatGPT Business, Enterprise, or Edu plan. If you do not see Settings > Connectors > Advanced in your ChatGPT account, your current plan may not include Developer Mode access.

Add the Kajabi connector

  1. Open Settings → Plugins→ Browse plugins, and click the + button.

  2. Enter Kajabi as the Name.

  3. Enter https://mcp.kajabi.com/mcp as the MCP Server URL.

  4. Set Authentication to OAuth.

  5. Click Create, then approve the Kajabi consent screen in your browser.

Note: ChatGPT's connector menu has changed names in the past and may do so again. If you do not see Plugins under Settings, check under Connectors or Apps & connectors instead.

Cursor

  1. Open Cursor and go to Settings → MCP → Add new MCP server.

  2. Set the Type to Remote (HTTP)

  3. Enter Kajabi as the Name.

  4. Enter https://mcp.kajabi.com/mcp as the URL.

  5. Approve the consent screen in your browser.

Draft an Automation with your AI tool

Automations are the workflows that connect the rest of your business: a Form submission adds a Tag, a purchase starts a follow-up Email Sequence. Your AI tool can read the Automations already on your site and draft new ones for you to review.

Describe what you want in plain language, for example: "When someone submits my Webinar Signup form, tag them Webinar Lead and send my 3-email nurture sequence." Your AI tool looks up the triggers and actions available on your account, builds the Automation, and returns a link to open it in Kajabi.

An AI tool can build:

  • A trigger, such as a Form submission, a purchase, or a Tag being added

  • An ordered chain of actions after the trigger, with optional wait steps in between

  • One set of branch paths at the end of the chain, routing contacts down different steps based on a contact filter such as a Tag, a submitted Form, or Offer ownership

  • Exit conditions that remove a contact from the Automation when they convert, so a nurture sequence stops once someone buys

  • Email content written straight into a send email step, including Designed drag-and-drop emails

Note: Automation support is rolling out gradually, and individual capabilities, such as editing an existing Automation or setting exit conditions, reach accounts on their own schedule. If your AI tool reports that a capability is not enabled for your account, it has not reached your account yet.

Review and publish an AI-drafted Automation

Your AI tool never publishes an Automation. Everything it creates arrives as a draft, so nothing sends and no contact is enrolled until you open the Automation in Kajabi and publish it yourself.

A draft can arrive with something still to fix. Your AI tool reports whether the Automation is ready to publish and what is blocking it, and Kajabi shows the same detail on the Automation itself.

Editing works on drafts and on Automations you have already published. A published Automation stays live through an edit, and an edit that would break it is refused rather than taking it offline. Contacts already moving through the Automation carry over to the edited version, though removing a step in the middle can move the contacts waiting on it to the step that follows.

Two limits apply once you ask for something more complex. Branch paths require advanced Automations on your plan, and a branch holds up to 10 paths including a required catch-all path so no contact dead-ends. Branch paths and Designed emails can also be built into a new Automation but not added to an existing one: if an Automation already has branches, an AI tool can still rename it or change its trigger, but its steps are edited in Kajabi.

Tips

  • Always start with kjb_list_sites: Most tools need a site_id.

  • Writes may create drafts or publish content: If drafting the content is an option in Kajabi, the MCP can create a draft for you. This is true for content such as Offers, Pages, and Emails. If it is not possible to create a draft in Kajabi, then the MCP will publish the content you request. This is true for content like Community Posts and Forms.

  • Tokens refresh automatically: If you hit "Unauthorized," remove the connector and re-add it.

Troubleshooting

Issue

Fix

"I don't see any Kajabi tools"

Confirm MCP is enabled on your account. Reply to this article and we will check.

ChatGPT: "Custom connectors not available"

Enable Developer Mode in Settings → Connectors → Advanced.

Consent screen won't load / auth fails

Log into the right Kajabi account in your browser first, then retry.

Full list of tools

Category

Tool

What it does

Core

list_sites

Lists all Kajabi sites the authenticated user can access. Call this first to discover site IDs. Each site row includes a community sub-object when the site has a Kajabi Community.

Core

get_site_summary

Returns a detailed summary of a site including settings, locale, contact info, and the site theme's active_theme_id.

Core

ping

Smoke test that confirms the MCP server is running and reachable.

Blog

create_blog

Create the blog on a site. Required once before any blog posts can be created. Each site can have at most one blog.

Blog

list_blog_posts

List blog posts with optional filtering by status (draft/published/scheduled) and tags. Paginated.

Blog

get_blog_post

Get full HTML content, SEO metadata, tags, and timestamps.

Blog

create_blog_post

Create a draft blog post. Always created as a draft.

Blog

update_blog_post

Update content, tags, SEO metadata, or publish state. Pass published_at to publish now or schedule; pass null to unpublish.

Courses

create_course

Create a course. Supports evergreen (self-paced) and cohort (scheduled).

Courses

get_course

Get the full module/lesson tree with publishing states.

Courses

get_lesson

Get full detail for a single lesson, including title, body HTML, publishing state, position, and parent module/submodule context.

Courses

search_course_content

Search lesson bodies for matching text. Useful for locating template markers, legacy formatting, or broken embeds during course migrations.

Courses

update_course

Update title, description, or thumbnail. Cannot change publish status.

Courses

update_course_content

Add or update modules, submodules, and lessons. Supports reordering, publish/unpublish, drip scheduling, and prerequisite gating.

Coaching

create_coaching

Create a coaching product. Supports 1:1 and group coaching.

Coaching

get_coaching

Get program details including outline sessions or groups, client count, and scheduling config.

Coaching

update_coaching

Update title, description, coach info, and scheduling settings.

Coaching

list_coaching_sessions

List sessions for a coaching program (1:1) or coaching group. Paginated.

Coaching

get_coaching_session

Get details for a single 1:1 or group session.

Coaching

create_coaching_session

Create an ad-hoc 1:1 or group session, including scheduled time, duration, timezone, and location.

Coaching

update_coaching_session

Update an existing session's title, description, or scheduling fields.

Communities

list_members

List community members with filters (role, joined-after, at-risk, onboarding status) and sort options.

Communities

get_member

Full dossier on a single member — points, engagement, onboarding progress, recent RSVPs and challenge entries.

Communities

list_channels

List community channels with filters for access group, privacy, and type (feed/chat).

Communities

list_access_groups

List access groups (the gating layer above channels) with member, post, and last-post-at rollups.

Communities

list_posts

List posts across one or all channels with thread-aware filters. Use parent_post_id or root_post_id to navigate comment/reply threads.

Communities

get_post

Full post body, rich-text data, author, reactions, engagement counts, and inline poll detail.

Communities

create_post

Create a root post, comment, reply, or poll in a channel. Authored as the connected user.

Communities

update_post

Edit an existing post's body.

Communities

get_community

Show a community's title, description, and owner.

Communities

get_metrics

High-level engagement metrics (active users, new members, messages, RSVPs, challenges joined) over a date window.

Communities

list_announcements

List a community's announcements with filters by channel and date window.

Communities

create_announcement

Publish a pinned banner, home-sidebar, or channel-scoped announcement.

Communities

update_announcement

Edit an existing announcement's name, text, subtitle, or placement.

Communities

list_challenges

List community challenges with filters by time (scheduled/active/expired), series, access group, and free-text search.

Communities

get_challenge

Full challenge detail including scheduling, prize, status, engagement counts, series, and gating.

Communities

list_challenge_series

List a community's challenge series (curator groupings of related challenges).

Communities

list_challenge_entries

List submissions to a single challenge, or check whether a specific user submitted.

Communities

list_challenge_entry_comments

List comments on a single challenge entry.

Communities

list_meetups

List community meetups (events) with time, channel, creator, access group, and date-range filters.

Communities

get_meetup

Full meetup detail including scheduling, location, channel scoping, creator, gating, and RSVP counts.

Communities

list_meetup_rsvps

List the RSVP roster for a single meetup, or check whether a specific user RSVPed.

Communities

send_dm

Send a one-off direct message to a single community member, authored as the connected user.

Newsletters

get_newsletter

Get newsletter details including its 10 most recent posts.

Newsletters

get_newsletter_post

Get a newsletter post's draft content, publish status, and email subject.

Newsletters

create_newsletter

Create a newsletter product (also creates its paired opt-in form).

Newsletters

create_newsletter_post

Create a draft newsletter post.

Newsletters

update_newsletter_post

Update draft content.

Email broadcasts

list_broadcasts

List broadcasts with optional filtering by status (draft/scheduled/delivering/delivered).

Email broadcasts

get_broadcast

Get subject, body, recipient filters, and engagement stats (opens, clicks, bounces, rates).

Email broadcasts

create_broadcast

Create a draft broadcast in either the new drag-and-drop builder or the classic HTML editor. Sending happens in the admin UI.

Email sequences

list_sequences

List active sequences with email count and subscriber count.

Email sequences

get_sequence

Get the sequence's emails with drip timing, publication status, and engagement stats.

Email sequences

create_sequence

Create a sequence with title and default send timing. Add emails with add_sequence_email.

Email sequences

add_sequence_email

Add an email to an existing sequence with a day offset and optional send time.

Automations

list_automations

List a site's Automations with status (draft or published), trigger summary, flow count, and admin URL. Paginated.

Automations

get_automation

Get one Automation's full structure: nodes, edges, per-node and workflow-level errors, whether it can be published, and enrollment count.

Automations

list_automation_triggers

List the trigger types available on the account, with each trigger's category, required resource type, options, and the actions it can pair with.

Automations

list_automation_actions

List the action types available on the account, plus the wait and branch step types where the plan allows.

Automations

create_automation

Create an Automation as a draft: one trigger followed by an ordered chain of action and wait steps. Never published.

Automations

update_automation

Rename an Automation, change its trigger, replace its steps, or set its exit conditions. Works on drafts and published Automations.

Events

list_events

List events with optional filter by type. Paginated.

Events

get_event

Get event details including upcoming occurrences.

Events

create_event

Create an event. Returns the event and a link to the admin editor.

Forms

list_forms

List forms with submission counts. Paginated.

Forms

get_form

Get current fields, available site fields that can be added, and submission count.

Forms

create_form

Create a form with default name and email fields. Optionally attach existing site fields or create new custom fields.

Forms

update_form

Update settings, attach existing site fields, or create-and-attach new custom fields.

Forms

remove_form_field

Remove a field from a form. The site field is preserved and can be re-added later.

Forms

list_form_submissions

List submissions for a specific form. Submitted data is in the custom_fields JSONB column.

Pages

list_landing_pages

List standalone landing pages with optional filtering by status. Excludes funnel/pipeline step pages.

Pages

get_landing_page

Get SEO metadata, publish status, form count, URLs, and the page's active_theme_id (page content lives entirely in the theme).

Pages

create_landing_page

Create a draft landing page. Optionally specify a theme preset slug.

Pages

update_landing_page

Update title, slug, SEO metadata, or publish state. Pass publish_at to publish or schedule; null to unpublish.

Pages

list_website_pages

List website pages with optional filtering by status. Paginated from the active theme.

Pages

get_website_page

Get SEO metadata, publish status, and URLs for a website page.

Navigation

list_navbars

List navigation menus, categorized as default (main-menu, footer, member-menu, about-menu) or custom.

Navigation

get_navbar

Get a menu and its ordered list of links, including each link's type and target.

Navigation

create_navbar

Create a new custom navigation menu. Populate it via create_navbar_link.

Navigation

update_navbar

Rename an existing navigation menu (default or custom).

Navigation

create_navbar_link

Add a new link to a navigation menu.

Navigation

update_navbar_link

Update an existing navigation menu link.

Navigation

delete_navbar_link

Remove a single link from a navigation menu.

Navigation

reorder_navbar_links

Reorder all links inside a menu in a single call.

Commerce

list_offers

List offers with optional filtering by status. Includes pricing summary and product count.

Commerce

get_offer

Get pricing breakdown, variants, linked products, and the offer's checkout-page active_theme_id.

Commerce

create_offer

Create a draft offer. Supports free, one-time, subscription, and payment plan pricing.

Commerce

update_offer

Update an offer's details, pricing, or publish state. Pass publish_at to publish or schedule; null to unpublish.

Commerce

list_offer_purchases

List purchases with optional filtering by member, offer, or date range.

Commerce

get_offer_purchase

Get pricing breakdown, billing status, member details, product access, and subscription info.

Products

search_products

Search products by title with optional filtering by product type and sellable status.

Products

get_product

Get product type, description, linked offers, and the product's consumption-side active_theme_id.

Contacts

search_contacts

Search and filter contacts by name/email plus tags and segments.

Contacts

get_contact

Get contact profile including tags, custom fields, purchases, product access, and admin notes.

Contacts

list_tags

List contact tags with contact count per tag.

Contacts

create_tag

Create a new contact tag.

Contacts

tag_contact

Add a tag to a contact. Idempotent.

Contacts

untag_contact

Remove a tag from a contact. Idempotent.

Contacts

list_segments

List dynamic contact segments (filter queries, not static lists).

Contacts

create_segment

Create a saved segment with a title and filter map. Use to target broadcasts or search contacts.

Contacts

update_segment

Update a segment's title and/or filters. Filters are a full replacement when provided.

Themes

get_theme_content

Get theme settings and section types for any themed page (site, course, landing page, offer, email, coaching).

Themes

update_theme_content

Update theme settings on any themed page. Changes take effect immediately on published pages; there is no draft layer.

Media Library

list_media

List and filter Media Library assets by name, tag, recency, and in-use status. Sort by newest, name, size, or usage. Covers all media types.

Media Library

get_media

Get an asset's name, type, dimensions, file size, tags, a viewable link, alt text, and everywhere it is used. Covers all media types.

Media Library

place_media

Place a library asset into a slot on a themed or fixed-slot surface. Covers images today, with file, video, and audio support on select surfaces. Aspect-locked slots auto-crop to fit.

Media Library

crop_media

Crop an image to a target size, saved as a new asset. Images only. The original is untouched.

Media Library

add_media

Open Kajabi's uploader, pre-set to the right media type, so you can add new media. Covers all media types.

Media Library

replace_media

Swap one asset for another everywhere the original is used, in a single action. Neither asset is deleted. Covers all media types.

Downloads

create_download

Create a draft digital download collection. Files and an offer are added in the admin UI.

Account users

list_account_users

List non-owner users on the account. Admins/owners only.

Account users

add_account_user

Add a Support Specialist or Assistant. Admins/owners only.

Analytics

get_contacts_analytics

Contacts analytics for a site over a date window.

Analytics

get_revenue_analytics

Revenue analytics for a site over a date window.

Analytics

get_revenue_by_offer

Revenue broken down by offer, showing which products and offers are generating the most revenue.

Analytics

get_subscriptions_mrr

Monthly recurring revenue for a site's subscriptions.

Analytics

get_subscription_analytics

Subscription analytics for a site over a date window.

FAQs

Which Kajabi plans include MCP?

MCP is currently included with all Kajabi plans. Future limits may apply.

Do I still have access to Cofounder if I connect Claude or ChatGPT?

Yes, you continue to have access to Cofounder alongside other connected AI tools.

Can I connect Claude or ChatGPT to multiple Kajabi accounts?

A single Claude or ChatGPT connection links to one Kajabi account at a time. To switch accounts, disconnect your existing connection in Kajabi, log into the Kajabi account you want to use, and then reconnect from your AI tool.

Can my team members use Claude or ChatGPT with our Kajabi account?

Yes. Each team member connects their own AI tool to Kajabi using their own Kajabi login. What they can do through the AI is limited by their Kajabi user role — for example, only Admin and Owner users can manage account users.

Why do I have to keep reconnecting Claude or ChatGPT to Kajabi?

A few different things can cause repeat reconnects:

  • For security, connections that go unused for a period of time will expire on their own

  • The authorization link you click during the connect flow expires after a short window, so long pauses mid-flow will require you to start over

  • Your Claude or ChatGPT desktop app may need a restart after a Kajabi update before it can reconnect cleanly

  • The connect flow uses whichever Kajabi account is the active browser session. If another Kajabi tab is the active one (such as a partner site you help manage), the connection can fail or attach to the wrong account

If reconnects keep happening, sign into the correct Kajabi account in your browser, restart your AI tool, and try once more. If the issue continues, contact Kajabi Support.

Can Claude or ChatGPT publish an Automation for me?

No. Your AI tool drafts an Automation and hands it back for you to review. Publishing, which is what arms an Automation to run on your contacts, stays a manual step you take in Kajabi.

Why does my AI tool say an Automation is published when I paused it?

Pausing an Automation stops it from running, but it does not change its status. A paused Automation is still a published one, and your AI tool reads the status rather than the pause, so a paused Automation looks live to it. Open the Automation in Kajabi when you need to confirm whether it is actually running.

Why can't my AI tool branch on whether someone opened an email?

Branch paths use a set list of contact filters, covering what a contact is or has rather than what they did recently. Your AI tool can branch on Tags, whether a contact submitted a specific Form, subscription status, contact field values, and which Products or Offers a contact owns.

Filters based on recent activity are not available on a branch. That includes email opens and clicks, how recently a contact was created or last active, Assessment results, Event registrations, coupons used, and Email Sequence membership.

Why don't I see all of my Kajabi tools in Claude or ChatGPT?

Not every Kajabi feature is available through the connection yet. The connection currently supports the most common workflows: managing contacts, courses, products, offers, pages, emails, and forms. We are adding coverage to more features over time.

Some capabilities also roll out gradually, so a tool can exist without having reached your account yet. Automations is rolling out this way.

You may also see fewer tools than another user on your account because what you can do through the AI is limited by your Kajabi user role.

If a Kajabi feature you rely on is missing, let us know. Your feedback shapes what we build next: https://feedback.kajabi.com/feature-request?selectedCategory=mcp

Why don't reports from Claude or ChatGPT match my Kajabi dashboard?

Small differences usually come from one of three things:

  • The connection returns data in UTC, while your dashboard may use your local time zone

  • The connection may include all billing statuses, while your dashboard filters some out by default

  • Different definitions of "this week", such as Sunday-start vs. Monday-start, for example

For an exact match, ask your AI tool to re-run the query with a specific date range, such as "show me completed purchases from May 1st, 2026 through May 7th, 2026."

Where do I see or remove the AI tools connected to my account?

In Kajabi, go to Settings → Integrations & Webhooks → AI Assistants . You will see each connected AI tool along with the date it was authorized. Use the Disconnect option next to any tool to revoke its access.

Why can't Claude or ChatGPT upload my media files directly?

The connection has no way to move a file off your device on its own, so your AI tool cannot upload media for you. Instead, when you ask it to add an image, video, audio file, or PDF, it hands back a link to Kajabi's uploader, already set to the right type of media. Open that link, choose your file, and the upload finishes inside Kajabi, the same way you would add media in your Media Library normally. This applies to every media type the connection supports: images, videos, audio, and files like PDFs.

Did this answer your question?