Thinkific API服务

Thinkific MCP Server是一个生产级的MCP服务器,为Thinkific的REST Admin API和GraphQL API提供支持,允许AI助手直接管理课程、学生、注册等。

  • by ackbarguppi-ai
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ackbarguppi-ai/thinkific-mcp

使用说明

Thinkic MCP服务器

A生产质量 模型上下文协议 (MCP)服务器 思考 REST管理API和GraphQL API。让人工智能助手(Claude、GPT等)直接与您的Thinkific网站交互——管理课程、学生、注册、订单、优惠券、社区等。

特性

  • 108个MCP工具 涵盖整个Thinkific API表面-77个REST工具和31个GraphQL工具
  • 完整的REST覆盖 --课程、用户、注册、订单、产品、捆绑包、优惠券、组、讲师、评论、促销、类别、网站脚本、外部订单、发布请求等
  • GraphQL支持 --通过以下方式查询和修改社区、帖子、课程、作业和高级数据访问 https://api.thinkific.com/stable/graphql
  • 3 MCP资源 获取快速站点概览数据
  • 双重认证 -API密钥或OAuth承载令牌
  • 分页 在每个列表端点上(页面+限制参数)
  • 限速意识 --对429个响应进行指数回退的自动重试
  • 结构化错误处理 --人为可读错误,永远不会导致服务器崩溃
  • TypeScript --全类型,严格模式,JSDoc贯穿始终

快速开始

1.安装

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

# Install dependencies
npm install

# Build
npm run build

2.配置身份验证

你需要 一 在两种身份验证方法中:

选项A:API密钥(单个站点)

在Thinkific管理员中查找您的API密钥: 设置→ 代码和分析→ API.

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

选项B:OAuth令牌(多站点应用程序)

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

3.跑步

# Direct
node dist/index.js

# Or via npm
npm start

使用Claude Desktop

添加到您的Claude Desktop MCP配置(~/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"
      }
    }
  }
}

使用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工具参考

用户

工具 说明 关键参数
list_users 列出所有用户/学生 page, limit
get_user 按ID获取用户详细信息 user_id
create_user 创建新用户 first_name, last_name, email, password?, roles?, company?, send_welcome_email?
search_users 按电子邮件/姓名搜索用户 query, page, limit
update_user 更新用户详细信息 user_id,要更新的字段
delete_user 删除用户 user_id

注册人数

工具 说明 关键参数
list_enrollments 列出注册(可过滤) page, limit, query_user_id?, query_course_id?, query_email?
create_enrollment 为用户注册课程 course_id, user_id, activated_at?, expiry_date?
get_enrollment 按ID获取注册详细信息 enrollment_id
update_enrollment 更新注册 enrollment_id,要更新的字段

课程

工具 说明 关键参数
list_courses 列出所有带页码的课程 page, limit
get_course 按ID获取单门课程 course_id

章节

工具 说明 关键参数
list_chapters 列出课程中的章节 course_id, page, limit
get_chapter 按ID获取章节详细信息 chapter_id

目录

工具 说明 关键参数
list_contents 在一章中列出课程 chapter_id, page, limit
get_content 按ID获取内容/课程详细信息 content_id

订单

工具 说明 关键参数
list_orders 列出订单(可过滤) page, limit, query_user_id?, query_email?
get_order 按ID获取订单详细信息 order_id

产品

工具 说明 关键参数
list_products 列出所有产品 page, limit
get_product 按ID获取产品详细信息 product_id
list_related_products 列出相关产品 product_id, page, limit

捆绑包

工具 说明 关键参数
list_bundles 列出课程包 page, limit
get_bundle 按ID获取捆绑包详细信息 bundle_id
list_bundle_courses 在捆绑包中列出课程 bundle_id, page, limit
list_bundle_enrollments 列出捆绑注册 bundle_id, page, limit
create_bundle_enrollment 将用户注册到捆绑包中 bundle_id, user_id
update_bundle_enrollment 更新捆绑包注册 bundle_id, enrollment_id,要更新的字段

群组

工具 说明 关键参数
list_groups 列出所有组 page, limit
get_group 按ID获取组详细信息 group_id
create_group 创建新组 name
delete_group 删除组 group_id

集团分析师

工具 说明 关键参数
list_group_analysts 列出某个组的分析师 group_id, page, limit
add_group_analyst 将分析师添加到组中 group_id, user_id
remove_group_analyst 从组中删除分析师 group_id, user_id

组的用户

工具 说明 关键参数
add_user_to_group 将用户添加到组 group_id, user_id

优惠券

工具 说明 关键参数
list_coupons 列出所有优惠券 page, limit
create_coupon 创建折扣码 code, discount_type, discount_amount, note?, quantity?, product_ids?, expires_at?
get_coupon 通过ID获取优惠券详细信息 coupon_id
update_coupon 更新优惠券 coupon_id,要更新的字段
delete_coupon 删除优惠券 coupon_id
bulk_create_coupons 批量创建优惠券 count,优惠券参数

促销

工具 说明 关键参数
list_promotions 列出促销活动 page, limit
create_promotion 创建促销 name, discount_type, discount_amount,促销参数
get_promotion 按ID获取促销详情 promotion_id
update_promotion 更新促销活动 promotion_id,要更新的字段
delete_promotion 删除促销 promotion_id
get_promotion_by_coupon 获取优惠券代码的促销 coupon_code

分类

工具 说明 关键参数
list_categories 列出类别 page, limit
create_category 创建新类别 name
get_category 按ID获取类别详细信息 category_id
update_category 更新类别 category_id,要更新的字段
delete_category 删除类别 category_id
list_category_products 按类别列出产品 category_id, page, limit
add_products_to_category 将产品添加到类别 category_id, product_ids
remove_products_from_category 从类别中删除产品 category_id, product_ids

课程评价

工具 说明 关键参数
list_course_reviews 列出评论(可过滤) course_id?, page, limit
create_course_review 创建课程复习 course_id, user_id, rating, title?, review?
get_course_review 按ID获取审核详细信息 review_id

导师

工具 说明 关键参数
list_instructors 列出讲师 page, limit
create_instructor 创建讲师简介 user_id,讲师字段
get_instructor 按ID获取讲师详细信息 instructor_id
update_instructor 更新讲师简介 instructor_id,要更新的字段
delete_instructor 删除讲师个人资料 instructor_id

自定义配置文件字段

工具 说明 关键参数
list_custom_profile_fields 列出所有自定义配置文件字段 (无)

外部订单

工具 说明 关键参数
create_external_order 创建外部订单 user_id, product_id,订单参数
refund_external_order 退还外部订单 order_id
purchase_external_order 处理外部订单采购 order_id

产品发布请求

工具 说明 关键参数
list_publish_requests 列出产品发布请求 page, limit
get_publish_request 按ID获取发布请求 request_id
approve_publish_request 批准发布请求 request_id
deny_publish_request 拒绝发布请求 request_id

网站脚本

工具 说明 关键参数
list_site_scripts 列出所有站点脚本 page, limit
create_site_script 创建网站脚本 name, src, load_method?, location?
get_site_script 按ID获取站点脚本详细信息 script_id
update_site_script 更新网站脚本 script_id,要更新的字段
delete_site_script 删除网站脚本 script_id

网站

工具 说明 关键参数
get_site_info 站点概述(计数和设置) (无)

GraphQL工具参考

GraphQL工具使用ThinkificGraphQL端点: https://api.thinkific.com/stable/graphql

查询

工具 说明 关键参数
gql_site 通过GraphQL获取站点详细信息 (无)
gql_me 获取当前经过身份验证的用户 (无)
gql_course 按ID获取课程详细信息 id
gql_course_by_slug 通过slug获取课程详情 slug
gql_user 按ID获取用户详细信息 id
gql_user_by_email 通过电子邮件获取用户详细信息 email
gql_bundle 按ID获取捆绑包详细信息 id
gql_category 按ID获取类别详细信息 id
gql_chapter 按ID获取章节详细信息 id
gql_lesson 按ID获取课程详细信息 id
gql_group 按ID获取组详细信息 id
gql_product 按ID获取产品详细信息 id
gql_community 按ID获取社区详细信息 id
gql_community_user 获取社区用户详细信息 community_id, user_id
gql_post 通过ID获取社区帖子 id
gql_space 按ID获取社区空间 id

突变

工具 说明 关键参数
gql_create_post 创建社区帖子 space_id, content, title?
gql_reply_to_post 回复社区帖子 post_id, content
gql_update_post 更新社区帖子 post_id, content?, title?
gql_follow_post 关注社区帖子 post_id
gql_unfollow_post 取消关注社区帖子 post_id
gql_pin_post 固定社区帖子 post_id
gql_unpin_post 取消社区帖子的订阅 post_id
gql_move_post 将帖子移动到另一个空间 post_id, space_id
gql_react_to_post 对社区帖子做出反应 post_id, reaction
gql_bulk_add_users_to_groups 批量将用户添加到组 user_ids, group_ids
gql_bulk_remove_users_from_groups 从组中批量删除用户 user_ids, group_ids
gql_mark_lesson_incomplete 为用户将课程标记为不完整 lesson_id, user_id
gql_view_lesson 将课程标记为用户已查看/已完成 lesson_id, user_id
gql_update_assignment_submission 更新作业提交 submission_id,要更新的字段
gql_update_product 通过GraphQL更新产品 id,要更新的字段

资源

资源URI 描述
thinkific://courses 所有课程的JSON列表(前100名)
thinkific://users 所有用户的JSON列表(前100个)
thinkific://site JSON概述与总计数

环境变量

变量 必填 描述
THINKIFIC_API_KEY 是(API密钥授权) 来自设置的Thinkific API密钥→ 代码和分析→ API
THINKIFIC_SUBDOMAIN 是(API密钥授权) 您的Thinkific网站子域(例如。 my-school 从 my-school.thinkific.com)
THINKIFIC_OAUTH_TOKEN 是(OAuth-auth) OAuth2承载令牌(API密钥身份验证的替代方案)

注: 如果 THINKIFIC_OAUTH_TOKEN 设置,则它优先于API密钥身份验证。

项目结构

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

发展

# Build
npm run build

# Watch mode
npm run dev

# Type-check only
npm run lint

# Run tests (after build)
npm test

故障排除

“未配置特定身份验证”

设置所需的环境变量。您需要:

  • THINKIFIC_API_KEY 和 THINKIFIC_SUBDOMAIN,或
  • THINKIFIC_OAUTH_TOKEN

401身份验证错误

  • 验证您的API密钥未被旋转(重置后密钥只显示一次)
  • 确认您的Thinkific计划支持API访问(Grow/Pro+Growth或以上)
  • 检查子域名是否完全匹配(例如。 my-school,不 my-school.thinkific.com)

429速率限制

服务器以指数回退方式自动重试(最多重试3次)。如果您一直达到速率限制,请降低请求频率或添加页面大小较小的分页。

空结果

  • 检查您是否连接到正确的站点(验证子域)
  • 一些端点要求数据首先存在(例如,没有课程和用户就没有注册)

服务器无法启动

  • 确保已安装Node.js 18+: node --version
  • 跑 npm run build 首先,服务器从 dist/
  • 检查stderr是否有错误消息(stdout是为MCP协议保留的)

API 文档

许可证

麻省理工学院——见 许可证.