Skip to main content
Glama

Skool MCP Server

An MCP (Model Context Protocol) server for interacting with Skool.com communities.

Overview

Skool doesn't have a public API, so this MCP uses authenticated HTTP requests to Skool's internal API endpoints (reverse-engineered from the web app).

Related MCP server: coolify-mcp

Setup

1. Install & Build

cd /mnt/c/projects/skool-mcp   # or wherever you cloned it
npm install
npm run build

2. Configure Skool Auth

Create ~/.config/skool-mcp/config.json:

{
  "cookies": "your-skool-session-cookies-here",
  "defaultCommunity": "ai-agent-academy-6994",
  "baseUrl": "https://www.skool.com"
}

Getting cookies: Open Skool in Chrome → DevTools → Application → Cookies → copy the auth_token value. The cookies field should be: auth_token=YOUR_JWT_HERE

3. Configure Claude Code

Add to your .mcp.json (in your project root or ~/.claude/.mcp.json for global):

{
  "mcpServers": {
    "skool": {
      "command": "node",
      "args": ["/mnt/c/projects/skool-mcp/dist/index.js"],
      "env": {}
    }
  }
}

4. Configure mcporter (OpenClaw)

mcporter add skool --command "node /mnt/c/projects/skool-mcp/dist/index.js" --transport stdio

Then call tools via:

mcporter call skool "skool.request" method="GET" path="/api/v1/..."

Authentication

Uses session cookies from an authenticated Skool session. The auth_token JWT is httpOnly and long-lived (expires ~1 year).

Tools

Discovery

  • skool.request — Make arbitrary authenticated requests to Skool (for API exploration)

Community

  • skool.community.info — Get community details (name, description, member count, settings)

Members

  • skool.members.list — List members of a community

  • skool.members.pending — List pending membership requests

  • skool.members.approve — Approve a pending member

  • skool.members.reject — Reject a pending member

Posts

  • skool.posts.list — List posts in a community (with category filter, pagination)

  • skool.posts.get — Get a specific post with comments

  • skool.posts.create — Create a new post

  • skool.posts.comment — Comment on a post

Classroom

  • skool.courses.list — List courses

  • skool.lessons.list — List lessons in a course

Notifications

  • skool.notifications — Get recent notifications

API Notes

  • Read operations use Next.js data routes (/_next/data/{buildId}/...). The buildId is fetched dynamically.

  • Write operations use api2.skool.com REST endpoints.

  • A User-Agent header is required (CloudFront blocks bare requests with 403).

  • See API-DISCOVERY.md for detailed endpoint documentation and response shapes.

Available Tools

14 tools
skool_community_infoB

Get community details including name, description, member count, and settings. Uses Next.js data route for read access.

NameRequiredDescriptionDefault
communityNoCommunity slug (e.g. 'ai-agent-academy-6994'). Uses default from config if omitted.
skool_community_labelsB

Get category labels for a community from api2.skool.com.

NameRequiredDescriptionDefault
groupIdYesThe group UUID (find via skool_community_info)
skool_courses_listB

List courses in a community classroom. Returns course names and metadata.

NameRequiredDescriptionDefault
groupIdNoGroup UUID — if provided, uses api2.skool.com for richer data
communityNoCommunity slug. Uses default from config if omitted.
skool_lessons_listC

List lessons/modules in a specific course. Uses the Next.js classroom data route with course parameter.

NameRequiredDescriptionDefault
communityNoCommunity slug. Uses default from config if omitted.
courseSlugYesThe course slug/name to list lessons for
skool_members_approveA

Approve a pending member by their membership request ID. Requires admin/moderator auth.

NameRequiredDescriptionDefault
groupIdYesThe group UUID
memberIdYesThe member/membership request UUID to approve
skool_members_listB

List community members with pagination. Returns member info including name, bio, role, and online status.

NameRequiredDescriptionDefault
pageNoPage number (1-based)
communityNoCommunity slug. Uses default from config if omitted.
skool_members_pendingA

List pending membership requests. Requires auth cookies with admin/moderator access.

NameRequiredDescriptionDefault
communityNoCommunity slug. Uses default from config if omitted.
skool_members_rejectA

Reject a pending member by their membership request ID. Requires admin/moderator auth.

NameRequiredDescriptionDefault
groupIdYesThe group UUID
memberIdYesThe member/membership request UUID to reject
skool_notificationsB

Get recent notifications. Tries the Next.js notifications page data route.

NameRequiredDescriptionDefault
pageNoPage number
skool_posts_commentA

Add a comment to a post. Requires auth cookies. Posts to api2.skool.com.

NameRequiredDescriptionDefault
postIdYesThe post UUID to comment on
contentYesComment text content
groupIdYesThe group UUID
skool_posts_createA

Create a new post in a community. Requires auth cookies. Posts to api2.skool.com.

NameRequiredDescriptionDefault
labelNoCategory label UUID
titleYesPost title
contentYesPost body content
groupIdYesThe group UUID
skool_posts_getA

Get a single post with its full content and comments. Provide the post slug (name field from posts list).

NameRequiredDescriptionDefault
postSlugYesThe post slug/name (from the 'name' field in posts list)
communityNoCommunity slug. Uses default from config if omitted.
skool_posts_listA

List posts in a community feed. Supports category filtering and pagination. Returns post title, content preview, author, likes, and comment count.

NameRequiredDescriptionDefault
pageNoPage number (1-based)
sortNoSort order: newest-cm (recent activity), newest (created), top (most liked)newest-cm
categoryNoCategory/label UUID to filter by
communityNoCommunity slug. Uses default from config if omitted.
skool_requestA

Make an arbitrary authenticated HTTP request to any Skool URL. Useful for API discovery and debugging. Cookies and User-Agent are injected automatically.

NameRequiredDescriptionDefault
urlYesFull URL to request (e.g. https://www.skool.com/some/path or https://api2.skool.com/endpoint)
bodyNoRequest body (for POST/PUT/PATCH)
methodNoHTTP methodGET
headersNoAdditional headers as key-value pairs

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv0.1.0
    • First observedskool_community_info
    • First observedskool_community_labels
    • First observedskool_courses_list
    • First observedskool_lessons_list
    • First observedskool_members_approve
    • First observedskool_members_list
    • First observedskool_members_pending
    • First observedskool_members_reject
    • First observedskool_notifications
    • First observedskool_posts_comment
    • First observedskool_posts_create
    • First observedskool_posts_get
    • First observedskool_posts_list
    • First observedskool_request

TDQS

A3.8/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct resource and action: community info vs labels, member management actions are clearly separated (list, pending, approve, reject), posts have list/get/create/comment, and courses/lessons/notifications are separate. The generic skool_request is the only outlier but serves a clearly different purpose as a catch-all.

Naming Consistency5/5

All tools follow the skool_<resource>_<action> pattern consistently, e.g., skool_members_list, skool_posts_create, skool_courses_list. Even the generic request tool fits the prefix convention. No mixed casing or verb style deviations.

Tool Count5/5

14 tools is well within the ideal 3-15 range for a platform-specific server. The count covers the major areas (community, members, posts, courses, lessons, notifications) without being bloated or sparse.

Completeness3/5

The surface covers core read and some write operations, but there are notable gaps: no post update/delete, no member removal, no course creation/management, and lesson content is not fetched. The generic skool_request can fill some gaps but is not a substitute for dedicated tools.

Maintenance

ActivityInactive
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers