Skip to main content
Glama

Thinkific MCP Server

A production-quality Model Context Protocol (MCP) server for the Thinkific REST Admin API and GraphQL API. Lets AI assistants (Claude, GPT, etc.) interact with your Thinkific site directly — manage courses, students, enrollments, orders, coupons, communities, and more.

Features

  • 108 MCP tools covering the full Thinkific API surface — 77 REST tools and 31 GraphQL tools

  • Full REST coverage — courses, users, enrollments, orders, products, bundles, coupons, groups, instructors, reviews, promotions, categories, site scripts, external orders, publish requests, and more

  • GraphQL support — queries and mutations for communities, posts, lessons, assignments, and advanced data access via https://api.thinkific.com/stable/graphql

  • 3 MCP resources for quick site overview data

  • Dual authentication — API Key or OAuth Bearer token

  • Pagination on every list endpoint (page + limit params)

  • Rate-limit awareness — automatic retry with exponential back-off on 429 responses

  • Structured error handling — human-readable errors, never crashes the server

  • TypeScript — fully typed, strict mode, JSDoc throughout

Quick Start

1. Install

# Clone or copy the project
cd ~/Documents/thinkific-mcp

# Install dependencies
npm install

# Build
npm run build

2. Configure Authentication

You need one of the two auth methods:

Option A: API Key (single site)

Find your API key in your Thinkific admin: Settings → Code & Analytics → API.

export THINKIFIC_API_KEY="your-api-key"
export THINKIFIC_SUBDOMAIN="your-site-subdomain"

Option B: OAuth Token (multi-site apps)

export THINKIFIC_OAUTH_TOKEN="your-oauth-bearer-token"

3. Run

# Direct
node dist/index.js

# Or via npm
npm start

Usage with Claude Desktop

Add to your Claude Desktop MCP config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "thinkific": {
      "command": "node",
      "args": ["/path/to/thinkific-mcp/dist/index.js"],
      "env": {
        "THINKIFIC_API_KEY": "your-api-key",
        "THINKIFIC_SUBDOMAIN": "your-subdomain"
      }
    }
  }
}

Usage with OpenClaw / mcporter

# Register the server
mcporter add thinkific -- node /path/to/thinkific-mcp/dist/index.js

# Set env vars
mcporter env thinkific THINKIFIC_API_KEY=your-api-key
mcporter env thinkific THINKIFIC_SUBDOMAIN=your-subdomain

# Verify tools are visible
mcporter tools thinkific

REST Tool Reference

Users

Tool

Description

Key Parameters

list_users

List all users/students

page, limit

get_user

Get user details by ID

user_id

create_user

Create a new user

first_name, last_name, email, password?, roles?, company?, send_welcome_email?

search_users

Search users by email/name

query, page, limit

update_user

Update user details

user_id, fields to update

delete_user

Delete a user

user_id

Enrollments

Tool

Description

Key Parameters

list_enrollments

List enrollments (filterable)

page, limit, query_user_id?, query_course_id?, query_email?

create_enrollment

Enroll a user in a course

course_id, user_id, activated_at?, expiry_date?

get_enrollment

Get enrollment details by ID

enrollment_id

update_enrollment

Update an enrollment

enrollment_id, fields to update

Courses

Tool

Description

Key Parameters

list_courses

List all courses with pagination

page, limit

get_course

Get a single course by ID

course_id

Chapters

Tool

Description

Key Parameters

list_chapters

List chapters in a course

course_id, page, limit

get_chapter

Get chapter details by ID

chapter_id

Contents

Tool

Description

Key Parameters

list_contents

List lessons in a chapter

chapter_id, page, limit

get_content

Get content/lesson details by ID

content_id

Orders

Tool

Description

Key Parameters

list_orders

List orders (filterable)

page, limit, query_user_id?, query_email?

get_order

Get order details by ID

order_id

Products

Tool

Description

Key Parameters

list_products

List all products

page, limit

get_product

Get product details by ID

product_id

list_related_products

List related products

product_id, page, limit

Bundles

Tool

Description

Key Parameters

list_bundles

List course bundles

page, limit

get_bundle

Get bundle details by ID

bundle_id

list_bundle_courses

List courses in a bundle

bundle_id, page, limit

list_bundle_enrollments

List bundle enrollments

bundle_id, page, limit

create_bundle_enrollment

Enroll a user in a bundle

bundle_id, user_id

update_bundle_enrollment

Update a bundle enrollment

bundle_id, enrollment_id, fields to update

Groups

Tool

Description

Key Parameters

list_groups

List all groups

page, limit

get_group

Get group details by ID

group_id

create_group

Create a new group

name

delete_group

Delete a group

group_id

Group Analysts

Tool

Description

Key Parameters

list_group_analysts

List analysts for a group

group_id, page, limit

add_group_analyst

Add an analyst to a group

group_id, user_id

remove_group_analyst

Remove an analyst from a group

group_id, user_id

Group Users

Tool

Description

Key Parameters

add_user_to_group

Add a user to a group

group_id, user_id

Coupons

Tool

Description

Key Parameters

list_coupons

List all coupons

page, limit

create_coupon

Create a discount code

code, discount_type, discount_amount, note?, quantity?, product_ids?, expires_at?

get_coupon

Get coupon details by ID

coupon_id

update_coupon

Update a coupon

coupon_id, fields to update

delete_coupon

Delete a coupon

coupon_id

bulk_create_coupons

Bulk create coupons

count, coupon params

Promotions

Tool

Description

Key Parameters

list_promotions

List promotions

page, limit

create_promotion

Create a promotion

name, discount_type, discount_amount, promotion params

get_promotion

Get promotion details by ID

promotion_id

update_promotion

Update a promotion

promotion_id, fields to update

delete_promotion

Delete a promotion

promotion_id

get_promotion_by_coupon

Get promotion for a coupon code

coupon_code

Categories

Tool

Description

Key Parameters

list_categories

List categories

page, limit

create_category

Create a new category

name

get_category

Get category details by ID

category_id

update_category

Update a category

category_id, fields to update

delete_category

Delete a category

category_id

list_category_products

List products in a category

category_id, page, limit

add_products_to_category

Add products to a category

category_id, product_ids

remove_products_from_category

Remove products from a category

category_id, product_ids

Course Reviews

Tool

Description

Key Parameters

list_course_reviews

List reviews (filterable)

course_id?, page, limit

create_course_review

Create a course review

course_id, user_id, rating, title?, review?

get_course_review

Get review details by ID

review_id

Instructors

Tool

Description

Key Parameters

list_instructors

List instructors

page, limit

create_instructor

Create an instructor profile

user_id, instructor fields

get_instructor

Get instructor details by ID

instructor_id

update_instructor

Update an instructor profile

instructor_id, fields to update

delete_instructor

Delete an instructor profile

instructor_id

Custom Profile Fields

Tool

Description

Key Parameters

list_custom_profile_fields

List all custom profile fields

(none)

External Orders

Tool

Description

Key Parameters

create_external_order

Create an external order

user_id, product_id, order params

refund_external_order

Refund an external order

order_id

purchase_external_order

Process an external order purchase

order_id

Product Publish Requests

Tool

Description

Key Parameters

list_publish_requests

List product publish requests

page, limit

get_publish_request

Get a publish request by ID

request_id

approve_publish_request

Approve a publish request

request_id

deny_publish_request

Deny a publish request

request_id

Site Scripts

Tool

Description

Key Parameters

list_site_scripts

List all site scripts

page, limit

create_site_script

Create a site script

name, src, load_method?, location?

get_site_script

Get site script details by ID

script_id

update_site_script

Update a site script

script_id, fields to update

delete_site_script

Delete a site script

script_id

Site

Tool

Description

Key Parameters

get_site_info

Site overview (counts and settings)

(none)

GraphQL Tool Reference

GraphQL tools use the Thinkific GraphQL endpoint: https://api.thinkific.com/stable/graphql

Queries

Tool

Description

Key Parameters

gql_site

Fetch site details via GraphQL

(none)

gql_me

Get current authenticated user

(none)

gql_course

Get course details by ID

id

gql_course_by_slug

Get course details by slug

slug

gql_user

Get user details by ID

id

gql_user_by_email

Get user details by email

email

gql_bundle

Get bundle details by ID

id

gql_category

Get category details by ID

id

gql_chapter

Get chapter details by ID

id

gql_lesson

Get lesson details by ID

id

gql_group

Get group details by ID

id

gql_product

Get product details by ID

id

gql_community

Get community details by ID

id

gql_community_user

Get community user details

community_id, user_id

gql_post

Get a community post by ID

id

gql_space

Get a community space by ID

id

Mutations

Tool

Description

Key Parameters

gql_create_post

Create a community post

space_id, content, title?

gql_reply_to_post

Reply to a community post

post_id, content

gql_update_post

Update a community post

post_id, content?, title?

gql_follow_post

Follow a community post

post_id

gql_unfollow_post

Unfollow a community post

post_id

gql_pin_post

Pin a community post

post_id

gql_unpin_post

Unpin a community post

post_id

gql_move_post

Move a post to another space

post_id, space_id

gql_react_to_post

React to a community post

post_id, reaction

gql_bulk_add_users_to_groups

Bulk add users to groups

user_ids, group_ids

gql_bulk_remove_users_from_groups

Bulk remove users from groups

user_ids, group_ids

gql_mark_lesson_incomplete

Mark a lesson as incomplete for a user

lesson_id, user_id

gql_view_lesson

Mark a lesson as viewed/complete for a user

lesson_id, user_id

gql_update_assignment_submission

Update an assignment submission

submission_id, fields to update

gql_update_product

Update a product via GraphQL

id, fields to update

Resources

Resource URI

Description

thinkific://courses

JSON listing of all courses (first 100)

thinkific://users

JSON listing of all users (first 100)

thinkific://site

JSON overview with total counts

Environment Variables

Variable

Required

Description

THINKIFIC_API_KEY

Yes (API Key auth)

Your Thinkific API key from Settings → Code & Analytics → API

THINKIFIC_SUBDOMAIN

Yes (API Key auth)

Your Thinkific site subdomain (e.g. my-school from my-school.thinkific.com)

THINKIFIC_OAUTH_TOKEN

Yes (OAuth auth)

OAuth2 Bearer token (alternative to API Key auth)

Note: If THINKIFIC_OAUTH_TOKEN is set, it takes precedence over API Key auth.

Project Structure

thinkific-mcp/
├── src/
│   ├── index.ts       # Entry point — server bootstrap
│   ├── client.ts      # Thinkific API client (auth, pagination, retry)
│   ├── tools.ts       # MCP tool definitions and handlers (REST)
│   ├── gql-tools.ts   # MCP tool definitions and handlers (GraphQL)
│   ├── resources.ts   # MCP resource definitions
│   ├── types.ts       # TypeScript interfaces for API responses
│   └── test.ts        # Validation test script
├── dist/              # Compiled JavaScript (after build)
├── package.json
├── tsconfig.json
├── README.md
├── LICENSE
└── .gitignore

Development

# Build
npm run build

# Watch mode
npm run dev

# Type-check only
npm run lint

# Run tests (after build)
npm test

Troubleshooting

"Thinkific authentication not configured"

Set the required environment variables. You need either:

  • THINKIFIC_API_KEY and THINKIFIC_SUBDOMAIN, or

  • THINKIFIC_OAUTH_TOKEN

401 Authentication Error

  • Verify your API key hasn't been rotated (keys are shown only once after reset)

  • Confirm your Thinkific plan supports API access (Grow/Pro + Growth or above)

  • Check the subdomain matches exactly (e.g. my-school, not my-school.thinkific.com)

429 Rate Limit

The server automatically retries with exponential back-off (up to 3 retries). If you're consistently hitting rate limits, reduce request frequency or add pagination with smaller page sizes.

Empty Results

  • Check that you're connecting to the correct site (verify subdomain)

  • Some endpoints require data to exist first (e.g. no enrollments without courses and users)

Server Won't Start

  • Ensure Node.js 18+ is installed: node --version

  • Run npm run build first — the server runs from dist/

  • Check stderr for error messages (stdout is reserved for MCP protocol)

API Documentation

License

MIT — see LICENSE.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
C
quality - C tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/ackbarguppi-ai/thinkific-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server