Thinkific MCP Server
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/graphql3 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 build2. 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 startUsage 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 thinkificREST Tool Reference
Users
Tool | Description | Key Parameters |
| List all users/students |
|
| Get user details by ID |
|
| Create a new user |
|
| Search users by email/name |
|
| Update user details |
|
| Delete a user |
|
Enrollments
Tool | Description | Key Parameters |
| List enrollments (filterable) |
|
| Enroll a user in a course |
|
| Get enrollment details by ID |
|
| Update an enrollment |
|
Courses
Tool | Description | Key Parameters |
| List all courses with pagination |
|
| Get a single course by ID |
|
Chapters
Tool | Description | Key Parameters |
| List chapters in a course |
|
| Get chapter details by ID |
|
Contents
Tool | Description | Key Parameters |
| List lessons in a chapter |
|
| Get content/lesson details by ID |
|
Orders
Tool | Description | Key Parameters |
| List orders (filterable) |
|
| Get order details by ID |
|
Products
Tool | Description | Key Parameters |
| List all products |
|
| Get product details by ID |
|
| List related products |
|
Bundles
Tool | Description | Key Parameters |
| List course bundles |
|
| Get bundle details by ID |
|
| List courses in a bundle |
|
| List bundle enrollments |
|
| Enroll a user in a bundle |
|
| Update a bundle enrollment |
|
Groups
Tool | Description | Key Parameters |
| List all groups |
|
| Get group details by ID |
|
| Create a new group |
|
| Delete a group |
|
Group Analysts
Tool | Description | Key Parameters |
| List analysts for a group |
|
| Add an analyst to a group |
|
| Remove an analyst from a group |
|
Group Users
Tool | Description | Key Parameters |
| Add a user to a group |
|
Coupons
Tool | Description | Key Parameters |
| List all coupons |
|
| Create a discount code |
|
| Get coupon details by ID |
|
| Update a coupon |
|
| Delete a coupon |
|
| Bulk create coupons |
|
Promotions
Tool | Description | Key Parameters |
| List promotions |
|
| Create a promotion |
|
| Get promotion details by ID |
|
| Update a promotion |
|
| Delete a promotion |
|
| Get promotion for a coupon code |
|
Categories
Tool | Description | Key Parameters |
| List categories |
|
| Create a new category |
|
| Get category details by ID |
|
| Update a category |
|
| Delete a category |
|
| List products in a category |
|
| Add products to a category |
|
| Remove products from a category |
|
Course Reviews
Tool | Description | Key Parameters |
| List reviews (filterable) |
|
| Create a course review |
|
| Get review details by ID |
|
Instructors
Tool | Description | Key Parameters |
| List instructors |
|
| Create an instructor profile |
|
| Get instructor details by ID |
|
| Update an instructor profile |
|
| Delete an instructor profile |
|
Custom Profile Fields
Tool | Description | Key Parameters |
| List all custom profile fields | (none) |
External Orders
Tool | Description | Key Parameters |
| Create an external order |
|
| Refund an external order |
|
| Process an external order purchase |
|
Product Publish Requests
Tool | Description | Key Parameters |
| List product publish requests |
|
| Get a publish request by ID |
|
| Approve a publish request |
|
| Deny a publish request |
|
Site Scripts
Tool | Description | Key Parameters |
| List all site scripts |
|
| Create a site script |
|
| Get site script details by ID |
|
| Update a site script |
|
| Delete a site script |
|
Site
Tool | Description | Key Parameters |
| 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 |
| Fetch site details via GraphQL | (none) |
| Get current authenticated user | (none) |
| Get course details by ID |
|
| Get course details by slug |
|
| Get user details by ID |
|
| Get user details by email |
|
| Get bundle details by ID |
|
| Get category details by ID |
|
| Get chapter details by ID |
|
| Get lesson details by ID |
|
| Get group details by ID |
|
| Get product details by ID |
|
| Get community details by ID |
|
| Get community user details |
|
| Get a community post by ID |
|
| Get a community space by ID |
|
Mutations
Tool | Description | Key Parameters |
| Create a community post |
|
| Reply to a community post |
|
| Update a community post |
|
| Follow a community post |
|
| Unfollow a community post |
|
| Pin a community post |
|
| Unpin a community post |
|
| Move a post to another space |
|
| React to a community post |
|
| Bulk add users to groups |
|
| Bulk remove users from groups |
|
| Mark a lesson as incomplete for a user |
|
| Mark a lesson as viewed/complete for a user |
|
| Update an assignment submission |
|
| Update a product via GraphQL |
|
Resources
Resource URI | Description |
| JSON listing of all courses (first 100) |
| JSON listing of all users (first 100) |
| JSON overview with total counts |
Environment Variables
Variable | Required | Description |
| Yes (API Key auth) | Your Thinkific API key from Settings → Code & Analytics → API |
| Yes (API Key auth) | Your Thinkific site subdomain (e.g. |
| Yes (OAuth auth) | OAuth2 Bearer token (alternative to API Key auth) |
Note: If
THINKIFIC_OAUTH_TOKENis 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
└── .gitignoreDevelopment
# Build
npm run build
# Watch mode
npm run dev
# Type-check only
npm run lint
# Run tests (after build)
npm testTroubleshooting
"Thinkific authentication not configured"
Set the required environment variables. You need either:
THINKIFIC_API_KEYandTHINKIFIC_SUBDOMAIN, orTHINKIFIC_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, notmy-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 --versionRun
npm run buildfirst — the server runs fromdist/Check stderr for error messages (stdout is reserved for MCP protocol)
API Documentation
License
MIT — see LICENSE.
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