Skool MCP
Skool MCP lets Claude access your Skool communities through your own login, with 13 read/write tools.
Confirm login and list your communities (
skool_whoami).Browse recent community posts and read full posts with comments.
Publish new posts and add comments publicly under your name.
List community members with id, name, email, and bio.
Browse classroom courses and read course modules, lessons, and lesson content.
View your DM inbox and read conversations.
Send DMs into existing conversations, mark conversations read, and start new DMs with members.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Skool MCP what did people post this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Skool MCP
Give Claude access to your Skool community. Posts, comments, members, classroom, and your DM inbox.
Ask Claude things like "what did people post this week?", "draft a reply to the last 5 DMs", or "pull my member list into a spreadsheet". It runs on your computer, using your own Skool login.
Unofficial. Not built by Skool, not affiliated with Skool.
What you can do with it
13 tools. The read ones are safe to fire off. The write ones post publicly under your name, so Claude should confirm the wording with you first.
Tool | What it does | Read or write |
| Confirms your Skool login works and lists the communities you belong to. Run this first when something breaks. | read |
| Lists recent posts in your community feed: title, snippet, comment and upvote counts, author. | read |
| Reads one full post and its comments. | read |
| Publishes a new post to your community feed. | write |
| Adds a comment to a post. | write |
| Lists members of your community: id, name, email, short bio. | read |
| Lists the classroom courses in your community. | read |
| Reads a course's modules and lessons, and the content of one lesson. | read |
| Your DM inbox: unread counts and last-message previews. | read |
| Reads the messages in one DM conversation. | read |
| Sends a DM into an existing conversation. | write |
| Marks a DM conversation as read. | write |
| Opens a new DM with a member. | write |
Related MCP server: Socials MCP
Before you start
macOS or Windows. (Linux is untested.)
Claude Code or Claude Desktop.
A Skool account that is actually a member of the community you want to connect.
That's it. You do not need Python installed. The setup installs everything it needs.
Install
Step 1. Get the folder onto your computer. Either way works.
Option A, if you have git:
cd ~
git clone https://github.com/Solnest-AI/skool-mcp-community.git skool-mcpThat drops it at ~/skool-mcp, which is exactly where you want it.
Option B, the ZIP:
Download the ZIP (on the repo page: green Code button, then Download ZIP).
Unzip it.
Rename the folder to
skool-mcpand move it so it sits directly in your home folder.
Step 2. Put it in the right place. This matters more than it sounds like it should.
Mac:
~/skool-mcp(that is/Users/yourname/skool-mcp)Windows:
C:\Users\yourname\skool-mcp
Not Documents. Not Desktop. Not Downloads. macOS locks down those folders, and background tasks that try to read them fail in a way that is genuinely annoying to debug. Home folder, done.
Step 3. Point Claude at the folder and say "set this up".
In Claude Code:
cd ~/skool-mcp
claudeThen type: Set this up.
Claude reads SETUP.md and runs the whole thing: installs the tools, opens a browser so you can
log into Skool yourself, verifies the connection, registers the server, and tests it. It stops and
asks you when it needs you.
Setting up for Claude Desktop instead? Same thing. Run the setup from Claude Code (or by hand), and at the registration step tell Claude you want to use it in Claude Desktop.
How this works and what to know
Read this part. It is short and it is the honest version.
Skool has no official API. There is no developer program, no API key, no supported way in. So this does what your browser does: it uses your own logged-in session to talk to the same internal endpoints the Skool website uses.
Your login stays on your machine. During setup, a real browser window opens and you log into
Skool yourself, exactly like normal (Google sign-in and 2FA both work). The script reads the
session cookie out of that browser and writes it to a local file called .env. Nothing is sent to
Solnest, to Anthropic, or anywhere else.
Never paste your cookie into a chat. Not to Claude, not to a friend, not to anyone online offering to help. That cookie is your entire Skool account: your posts, your DMs, your billing, your members. Anyone holding it is logged in as you. Setup is built so the cookie never has to appear in a conversation, and Claude is instructed to refuse if you offer it.
.env is your password file. Treat it exactly like one. Don't open it in a screenshare, don't
screenshot it, don't paste it anywhere, don't drop it in Drive or Slack. The bundle is already set
up to keep it out of any code you upload, so you mostly just have to not go out of your way to
share it. If you ever think it leaked, log out of Skool everywhere and re-run setup.
The tools act as you. A post created by skool_create_post is your post. A DM is from you. It
looks identical to typing it yourself, because functionally it is. Have Claude read the draft back
to you before anything goes out.
Only use it on communities you actually belong to. These are your own credentials against your own memberships. Don't get cute.
Skool can break it. No official API means no stability promise. If Skool changes their site, tools can stop working overnight. When something breaks, run the doctor first:
cd ~/skool-mcp
uv run doctor.pyIt tells you exactly which piece is broken and how to fix it. It never prints your cookie.
Your session expires eventually. The Skool login token lasts about a year, so this is rare.
Re-run uv run connect_skool.py when the tools start failing with a login error.
A 403 is a different problem, and logging in again will not fix it. Skool's API sits behind a firewall (AWS WAF) that can refuse your computer before Skool ever sees the request. Your login is completely fine when this happens. There are two versions of it, and they need opposite fixes:
Your connection's fingerprint. The firewall inspects the technical signature of the connection itself, and plain Python does not look like a browser. The bundle handles this automatically now by borrowing Chrome's signature. Changing networks does nothing for it.
Your IP address. The firewall refuses the address you are coming from, usually a VPN, a proxy, or an address you share with a lot of other people. Only changing your network fixes it.
You do not have to work out which one you have. Run:
cd ~/skool-mcp
uv run net_check.pyIt needs no login, takes five seconds, and tells you which of the two it is and exactly what to do. Do not start by reconnecting your Skool login, that cannot fix either one.
Getting help
Run uv run doctor.py (or uv run net_check.py for anything that looks like a 403 or "blocked"),
then paste the output into Claude and ask it to fix what failed. The output is safe to share: it
prints check results, cookie lengths, and expiry dates, never the cookie itself.
Still stuck? Start a fresh Claude chat, paste the doctor output, and say what you were trying to do.
Never paste your .env.
License
MIT. See LICENSE.
Available Tools
13 toolsskool_comment_on_postA
Add a comment to a post. post_id is the real post id (the id field from
skool_list_posts/skool_get_post, not the slug). Writes publicly — confirm first.
Inputs: content (required), post_id (required).
skool_create_postA
Publish a NEW top-level post to your community feed. Writes publicly — confirm wording with the user first. Returns the new post id.
Inputs: title (required), content (required).
skool_get_conversationA
Read the messages in one DM conversation (read-only). Get the channel_id from skool_list_conversations. Returns sender, content, timestamp per message.
Inputs: channel_id (required), limit.
skool_get_lessonA
Read a classroom course (read-only). course_id from skool_list_courses
returns the course's modules/lessons (id + title). Pass a lesson_id (a child
id) to also pull that lesson's content/metadata (note: many lessons are video-
only, so the text content may be empty).
Inputs: course_id (required), lesson_id.
skool_get_postA
Read one full post and (by default) its comments. post_name is the slug
from skool_list_posts (the name field, e.g. 'big-change-...'), not the id.
Inputs: post_name (required), with_comments.
skool_list_conversationsA
Your DM inbox (read-only): conversations with channel_id, unread count, and last-message preview. Use a channel_id with skool_get_conversation to read it.
Inputs: limit.
skool_list_coursesA
List the classroom courses in your community (read-only): id, title, description. Use a course id with skool_get_lesson to read its lessons.
Inputs: no named parameters.
skool_list_membersA
List members of your community (read-only): id, name, email, short bio. Use member ids with skool_start_chat to open a DM.
Inputs: limit.
skool_list_postsA
List recent posts in your community feed (read-only). Returns each post's
id, name (slug), title, a content snippet, comment/upvote counts, author.
Use the name with skool_get_post to read a full post + its comments.
Inputs: limit.
skool_mark_readA
Mark a DM conversation as read. Get the channel_id from skool_list_conversations.
Inputs: channel_id (required).
skool_send_messageA
Send a DM into an existing conversation. Writes — confirm wording first. Get the channel_id from skool_list_conversations.
Inputs: content (required), channel_id (required).
skool_start_chatA
Open a new DM with a member (by their user_id from skool_list_members). Returns the new conversation so you can then skool_send_message into it.
Inputs: user_id (required).
skool_whoamiA
Confirm the Skool cookie works and list the communities you belong to. Call this first if other tools error — it isolates auth/cookie problems.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
Each tool addresses a distinct resource and action: posts, comments, members, courses, conversations, and messages. The read/write tools are clearly separated (list/get vs create/send), and the whoami diagnostic is unique. No two tools appear to overlap in purpose.
All tools follow a consistent skool_<verb>_<noun> pattern (e.g., skool_list_posts, skool_get_post, skool_send_message). Even the outlier skool_whoami is a common convention for auth checks. The naming is predictable and groups resources and actions logically.
13 tools is well within the ideal 3–15 range and matches the server's breadth: community posts, comments, member directory, course content, and DM messaging. Each tool serves a clear purpose with no redundancy. The count feels appropriately scoped for a community platform.
Core workflows are covered: reading/writing posts, commenting, listing/reading conversations, sending DMs, and browsing course lessons. Minor gaps exist—there is no tool to update or delete posts/comments, and no search across posts or courses—but these are not critical for typical usage and may reflect API limitations.
Maintenance
Related MCP Connectors
Export any public Threads profile's posts, followers & following into Claude, no login or API key
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Your own WhatsApp in Claude and ChatGPT: read chats, draft replies, send messages you approve.
Run social media from Claude: draft, schedule and approve posts, answer comments, read results.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude AI to interact with LinkedIn through browser automation, including profile reading, people and job search, company research, post publishing, and profile editing.MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude to perform actions on X, LinkedIn, and Reddit through a browser extension, allowing natural language commands for networking, posting, and engagement.MIT
- AlicenseAqualityDmaintenanceEnables Claude to manage your LinkedIn account and pages (post, schedule, read feed, comments) by driving a real local Chrome browser under your logged-in session.1271 npm1Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables Claude to read Canvas LMS deadlines, announcements, and grades using an existing browser session, with no admin token required.14 npm4MIT