mcpField
S
Skool by Cotlet

Skool by Cotlet

リモート
cotlet.devソーシャルメディア41 日前に更新
リポジトリ公式サイト

Skool by Cotlet について

Skool by Cotletは、Skoolコミュニティを管理する技術者向けのセルフホスト型Python APIおよびMCPサーバーです。ログイン済みのChromeセッションを利用し、RESTとPythonのインターフェースも提供します。

主な機能

  1. 01メンバー、投稿、コース、イベント、チャットの管理
  2. 0269種類のSkoolツール
  3. 03ChromeセッションCookieで接続
  4. 04MCP、REST API、Pythonに対応
  5. 05stdioまたはHTTPで実行

活用シーン

  1. 01参加申請の確認と承認
  2. 02メンバーまたは投稿データのエクスポート
  3. 03投稿の公開とダイレクトメッセージの送信
  4. 04コミュニティのメンバー数と収益の確認

MCP 対応

stdioまたはストリーミング可能なHTTPを通じて、Skoolコミュニティ操作用ツールをMCPクライアントに公開します。読み取り専用と書き込み操作のヒントがあり、クライアント側の実行確認に利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://cotlet.dev/mcp/v1/skool/connect
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://cotlet.dev/mcp/v1/skool/connect
Streamable HTTPhttps://cotlet.dev/mcp/v1/skool認証が必要
パッケージ
pypiskool-api-mcp1.0.3

ツール

詳細

Skool API と MCP サーバー(セルフホスト可能)

Python で自分のパソコン上で実行する Skool API と Skool MCP サーバーです。自分の Google Chrome のセッションを使用します。Cotlet の本番環境で運用している Skool ツール全 69 種を利用できます。メンバー、メンバーシップ申請、投稿、コメント、アンケート、Classroom、Calendar、グループ設定、Skool Chat、統計情報に対応しています。

Skool には公開 API も公式 MCP サーバーもありません。このリポジトリでは、次の両方を利用できます。

  • Claude Code、Claude Desktop、Cursor、Codex、その他すべての MCP クライアント向けの MCP サーバー。stdio または HTTP 経由で利用できます。セットアップ
  • http://127.0.0.1:8787/api/v1/skool で利用できる REST API。OpenAPI ドキュメントは /docs にあります。セットアップ
  • Python:call("list_members", group="yourgroup") と、すぐに使える 16 個のスクリプトを examples/ に用意しています。

自分で実行したい技術者向けであり、非商用利用に限ります(ライセンス)。サーバーで 24 時間 365 日稼働させたい場合、Skool のサイト変更後も動作する状態を保ちたい場合、チームやビジネスで利用したい場合は、cotlet.dev のホステッド版をご利用ください。

Skool MCP サーバー Python 3.11+ ライセンス:PolyForm Noncommercial 1.0.0

git clone https://github.com/cotletdev/skool-api-mcp-server.git && cd skool-api-mcp-server
python3 -m venv .venv && . .venv/bin/activate && pip install -e .
skool-mcp connect                                  # reads your Skool session from Chrome
skool-mcp call list_groups
claude mcp add skool -- "$PWD/.venv/bin/skool-mcp" mcp

目次

仕組み

AI agent (MCP) / script (REST, Python) ──▶ skool-mcp on your computer ──your Skool cookies──▶ skool.com
                                                  ▲
                         skool-mcp connect ───────┘ reads them once from your Chrome (DevTools Protocol)
  1. いつもどおり、自分の Chrome で Skool にサインインします。
  2. skool-mcp connect を実行すると、Chrome DevTools Protocol 経由で Chrome に接続し、skool.com の Cookie を読み取って ~/.config/skool-api-mcp/session.json に保存します。このファイルを読み取れるのは自分のユーザーだけです。パスワードを見ることも、保存することもありません。
  3. 各ツール呼び出しは、curl_cffi を使って Chrome の TLS フィンガープリントを再現しながら、Cookie とともに Skool 独自のウェブアプリのエンドポイント(api2.skool.com と www.skool.com のページデータ)にリクエストを送ります。ヘッドレスブラウザーは実行されません。

Skool のセッション Cookie は約 1 年間有効です。Skool からサインアウトされた場合、リモートデバッグを有効にした Chrome が開いていれば、サーバーは Chrome から Cookie を再度読み取ります。

必要条件

  • Python 3.11 以降。
  • Skool にサインイン済みの Google Chrome 144 以降。Chrome または Chromium であれば、デバッグポートを使って動作します。
  • macOS、Linux、または Windows。
  • ツールの利用に必要な Skool のロール:メンバーシップ申請には管理者またはモデレーター、統計情報とグループ設定には管理者が必要です。所属するグループのメンバー、投稿、コース、チャットの閲覧は、どのロールでも行えます。

インストール

git clone https://github.com/cotletdev/skool-api-mcp-server.git
cd skool-api-mcp-server
python3 -m venv .venv
. .venv/bin/activate              # Windows: .venv\Scripts\activate
pip install -e .
skool-mcp --version

uv を使う場合:uv venv && uv pip install -e . を実行し、その後 uv run skool-mcp ... を実行します。

AI エージェント(Claude Code、Codex、Cursor)でセットアップしますか?このフォルダーを開いて、リポジトリのセットアップを依頼してください。AGENTS.md に手順がすべて記載されており、Chrome 上で行う手順だけを案内します。

更新するには、git pull && pip install -e . を実行します。ホステッド版の Skool ツールへの変更はすべて、このリポジトリにも反映しています。

Chrome を接続する

オプション A:普段使いの Chrome(推奨)
  1. Chrome で chrome://inspect/#remote-debugging を開き、リモートデバッグをオンにします。Chrome はこのコンピューター上のプログラムからの DevTools 接続を受け入れ、接続ごとに確認を求めます。

  2. skool.com にサインインしていることを確認します。

  3. 次を実行します。

    skool-mcp connect
    
  4. Chrome から接続を許可するか尋ねられます。許可をクリックします。

Saved 15 skool.com cookies to /Users/you/.config/skool-api-mcp/session.json
Signed in to Skool as Ana Lopez (ana-lopez-4127)

その後、リモートデバッグを再びオフにできます。Skool からサインアウトした後、新しいセッションをサーバーが自動的に検出するようにしたい場合は、オンのままにしてください。

connect は、Chrome の既定のプロファイルフォルダーにある DevToolsActivePort ファイルを探します。Chrome Beta、Canary、またはカスタムのプロファイルフォルダーを使う場合は、--profile-dir "<folder>" を渡してください。

オプション B:デバッグポートを使う Chrome

Chrome は既定のプロファイルではデバッグポートを開かないため、別のプロファイルを起動し、そこで一度 Skool にサインインしてから接続します。

# macOS
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-skool"
# Linux
google-chrome --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-skool"
# Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%USERPROFILE%\.chrome-skool"

skool-mcp connect --cdp http://127.0.0.1:9222

--cdp には ws:// の DevTools URL も指定できます。たとえば、SSH トンネル経由で接続する別のマシン上の Chrome の URL を指定できます。

オプション C:Cookie を手動で貼り付ける

Chrome を使えないサーバーの場合:Chrome で skool.com の DevTools を開き、Application > Cookies > https://www.skool.com から auth_token の値をコピーして、次を実行します。

skool-mcp connect --token          # paste it, input is hidden
# or, without a session file:
export SKOOL_AUTH_TOKEN=...

貼り付けたトークンは自動更新されません。Skool からサインアウトしたら、新しいトークンを貼り付けてください。

セッションはいつでも次の方法で確認できます。

skool-mcp status

MCP サーバー

MCP サーバーには、すべてのツールが入力スキーマ、エージェント向けの説明、ヒントとともに一覧表示されます。読み取りツールには読み取り専用の印が付き、投稿、メッセージ送信、削除を行うツールには、実行前にクライアントが確認を求めるよう印が付きます。

Claude Code
claude mcp add skool -- /path/to/skool-api-mcp-server/.venv/bin/skool-mcp mcp
# read only:
claude mcp add skool -- /path/to/skool-api-mcp-server/.venv/bin/skool-mcp mcp --read-only
Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "skool": {
      "command": "/path/to/skool-api-mcp-server/.venv/bin/skool-mcp",
      "args": ["mcp"]
    }
  }
}
Cursor

~/.cursor/mcp.json。Claude Desktop と同じブロックです。すぐに使えるコピーは mcp.json にあります。

Codex

~/.codex/config.toml:

[mcp_servers.skool]
command = "/path/to/skool-api-mcp-server/.venv/bin/skool-mcp"
args = ["mcp"]
HTTP 経由

skool-mcp serve は、URL を指定するクライアント向けに、ストリーミング可能な HTTP 経由でも http://127.0.0.1:8787/mcp で MCP を提供します。

skool-mcp serve
claude mcp add --transport http skool http://127.0.0.1:8787/mcp

次のようなことをエージェントに依頼できます。

保留中のメンバーシップ申請を表示して、回答にビジネスについて言及しているものを承認してください。

過去 7 日間の投稿のうち、まだコメントがないものはどれですか?それぞれに返信文を作成してください。

木曜日の午後 6 時(CET)に Zoom リンク付きのカレンダーイベントを作成し、そのイベントについてのお知らせをピン留めしてください。

過去 30 日間の新規メンバー数、解約数、MRR を教えてください。

REST API

skool-mcp serve                    # http://127.0.0.1:8787, MCP at /mcp, docs at /docs

各ツールには /api/v1/skool 以下に個別のルートがあり、cotlet.dev のホステッド API と同じパスを使用するため、一方を対象に書かれたコードはもう一方でも動作します。パスの各部分とクエリ文字列が引数になり、JSON ボディで残りの引数を指定します。

curl 'http://127.0.0.1:8787/api/v1/skool/groups'
curl 'http://127.0.0.1:8787/api/v1/skool/groups/yourgroup/members?limit=30&role=admin'
curl -X POST http://127.0.0.1:8787/api/v1/skool/groups/yourgroup/posts \
  -H 'Content-Type: application/json' \
  -d '{"title": "Live call tonight", "body": "8pm CET, link in the Calendar.", "category": "Announcements"}'

名前でツールを指定し、ボディを引数として渡す方法:

curl -X POST http://127.0.0.1:8787/api/v1/skool/tools/list_members -d '{"group": "yourgroup"}'
  • GET /api/v1/skool/tools:ルート、入力スキーマ、回答例を含むすべてのツールを表示します。
  • GET /docs:対話型の OpenAPI ドキュメントです。GET /openapi.json は、n8n、Postman、または生成クライアント向けのスキーマです。
  • 回答は JSON です。リストには next_cursor が含まれます。次のページを取得するには、それを cursor として渡してください。

サーバーは 127.0.0.1 のみでリッスンします。別のデバイスからアクセスするにはトークンを設定します。その場合、すべてのリクエストに Authorization: Bearer <token> が必要です。

SKOOL_MCP_TOKEN=$(openssl rand -hex 24) skool-mcp serve --host 0.0.0.0

Python とサンプルスクリプト

Python から直接実行でき、サーバーは不要です。

from skool_api_mcp import call
from skool_api_mcp.scripting import paginate, write_rows

groups = call("list_groups")["groups"]
members = list(paginate("list_members", {"group": "yourgroup", "joined_since": "2026-10-01"}, "members"))
write_rows(members, "members.csv")
call("create_post", group="yourgroup", category="Announcements", title="Week 12", body="Ship one landing page.")

シェルからは、単一のツールを実行できます:skool-mcp call list_posts group=yourgroup limit=10。JSON オブジェクトを指定することもできます。

すぐに使えるスクリプトは examples/ にあります。各スクリプトは JSON を出力し、用途に応じて --out file.csv または --out file.json を指定できます。また、--help に対応しています。

スクリプト内容
list_groups.py自分のグループと、自分の役割、メンバー数、料金を表示します。
export_members.pyメンバーを CSV または JSON に出力します。名前、役割、レベル、ポイント、参加日、プロフィール URL が含まれます。--role、--since を指定できます。
list_membership_requests.py申請者の回答とともに、保留中の申請を表示します。
approve_membership_requests.py保留中の申請すべて、または回答に --match のキーワードが含まれる申請を承認します。まず --dry-run で確認してください。
decline_membership_request.py1 件の申請を拒否します。
welcome_new_members.py過去 N 日間に参加した全員に、「スタートはこちら」コースへのリンクを添えたウェルカム DM を送信します。
export_posts.pyフィードの投稿を出力します。タイトル、投稿者、カテゴリー、いいね数、コメント数、日付が含まれます。--category、--since を指定できます。
get_post.py投稿 1 件の本文とコメントツリー全体を取得します。
unanswered_posts.py過去 N 日間に投稿され、まだコメントがない投稿を表示します。
create_post.py--body または Markdown ファイルから投稿を公開します。--pin を指定するとピン留めします。
comment_on_post.py投稿にコメントするか、コメントへの返信を投稿します。
pin_post.pyフィードまたは Classroom ページの投稿をピン留め、またはピン留め解除します。
list_courses.pyClassroom のコースと、モジュール、ロック解除ルール、URL を表示します。
unread_messages.pySkool Chat の未読会話をスレッド全体とともに表示します。
send_message.pyメンバー 1 人に DM を送信します。
group_stats.py過去 7 日、30 日、または 90 日間の総メンバー数、新規参加者数、離脱者数、MRR を表示します。
python examples/export_members.py --group yourgroup --out members.csv
python examples/approve_membership_requests.py --group yourgroup --match business --dry-run

スケジュール実行には、コンピューターの電源が入っている間であれば、ローカルコンピューターの cron を使用できます:0 8 * * * cd ~/skool-api-mcp-server && .venv/bin/python examples/group_stats.py --group yourgroup。

69 個のツールすべて

group はコミュニティの URL 名です。skool.com/yourgroup の場合は yourgroup です。skool-mcp tools を実行するとこの一覧が表示され、skool-mcp tools --json を実行すると入力スキーマも表示されます。

グループと検索
ツールアクセスREST ルート内容
list_groupsreadGET /groupsアカウントの Skool グループと、自分の役割(または申請中)、メンバー数、料金を表示します。
get_groupreadGET /groups/{group}グループ名、概要、プライバシー設定、料金、人数、オーナー、メンバーシップに関する質問を表示します。
get_group_statsreadGET /groups/{group}/stats指定期間の総メンバー数、新規参加者数、離脱者数、月間経常収益を表示します。管理者のみ利用できます。
discover_groupsreadGET /groups/discoverSkool の公開コミュニティディレクトリを検索し、メンバー数、料金、評価を表示します。
search_groupreadGET /groups/{group}/searchグループの投稿、メンバー、またはコースを、検索ボックスと同じように検索します。
投稿
ツールアクセスREST ルート内容
list_posts読み取りGET /groups/{group}/postsグループのフィード内の投稿を、固定表示されたもの、新しいものの順に一覧表示します。投稿者、カテゴリ、「いいね!」の数、コメント数も表示します。
get_post読み取りGET /groups/{group}/posts/{post_id}1件の投稿を全文とコメント付きで取得します。返信はそれぞれのコメントの下にネストして表示されます。
create_post書き込みPOST /groups/{group}/posts自分の名前で、コミュニティフィードのカテゴリを指定して投稿します。
update_post書き込みPATCH /groups/{group}/posts/{post_id}自分が作成した投稿のタイトル、本文、カテゴリを変更します。管理者は任意の投稿を変更できます。
delete_post書き込みDELETE /groups/{group}/posts/{post_id}自分の投稿やコメントを完全に削除します。管理者は他の人の投稿やコメントも削除できます。
コメント、「いいね!」、アンケート、モデレーション
ツールアクセスREST ルート内容
comment_on_post書き込みPOST /groups/{group}/posts/{post_id}/comments自分の名前で投稿にコメントしたり、コメントに返信したりします。
like_post書き込みPUT /groups/{group}/posts/{post_id}/like投稿やコメントに「いいね!」したり、取り消したりします。
list_post_likes読み取りGET /groups/{group}/posts/{post_id}/likes投稿やコメントに「いいね!」した人を一覧表示します。
follow_post書き込みPUT /groups/{group}/posts/{post_id}/follow投稿への新しいコメントの通知を受け取ったり、通知を停止したりします。
pin_post書き込みPUT /groups/{group}/posts/{post_id}/pin投稿をフィードの先頭(最大3件)またはClassroomページ(最大12件)に固定表示します。管理者のみ。
pin_comment書き込みPUT /groups/{group}/posts/{post_id}/comments/{comment_id}/pinコメントを投稿のコメント欄の先頭に固定表示したり、固定表示を解除したりします。
set_post_comments書き込みPUT /groups/{group}/posts/{post_id}/commenting投稿へのコメントを無効または再度有効にします。
vote_on_poll書き込みPUT /groups/{group}/posts/{post_id}/poll/vote投稿のアンケートに投票したり、投票先を変更したり、投票を取り消したりします。
get_poll_results読み取りGET /groups/{group}/posts/{post_id}/poll投稿のアンケートの回答と投票数を取得します。誰がどの回答に投票したかを含めることもできます。
list_reported_posts読み取りGET /groups/{group}/posts/reportedメンバーが管理者に報告し、確認待ちとなっている投稿を一覧表示します。管理者とモデレーターのみ。
メンバー
ツールアクセスREST ルート内容
list_members読み取りGET /groups/{group}/membersグループのメンバーを、役割、レベル、ポイント、参加日とともに新しい順で一覧表示します。禁止されたメンバーや離脱したメンバーも含まれます。
search_members読み取りGET /groups/{group}/members/search@メンション欄と同様に、名前でグループのメンバーを検索します。
get_member読み取りGET /groups/{group}/members/{member_id}グループ内の1人のメンバーのプロフィールを取得します。名前、自己紹介、役割、レベル、ポイント、最終オンライン日時を表示します。
get_leaderboard読み取りGET /groups/{group}/leaderboard過去7日間、30日間、または全期間のポイントに基づく、グループの上位10人のメンバーと自分の順位を取得します。
invite_members書き込みPOST /groups/{group}/invitationsグループに直接参加できる招待メールを送信します。管理者のみ。
remove_member書き込みDELETE /groups/{group}/memberships/{membership_id}グループからメンバーを削除したり、禁止を解除したりします。管理者のみ。
ban_member書き込みPOST /groups/{group}/memberships/{membership_id}/banメンバーをグループから禁止します。最近の投稿を削除することもできます。管理者のみ。
set_member_role書き込みPUT /groups/{group}/memberships/{membership_id}/roleメンバーを管理者またはモデレーターにしたり、メンバーに戻したりします。管理者のみ。
メンバーシップ申請
ツールアクセスREST ルート説明
list_membership_requests読み取りGET /groups/{group}/membership-requests参加申請のうち保留中のものと、各申請者がメンバーシップに関する質問に回答した内容を一覧表示します。管理者とモデレーターのみ利用できます。
approve_membership_request書き込みPOST /groups/{group}/membership-requests/{request_id}/approve申請者をグループに参加させます。AutoDM が設定されている場合は、通常どおり送信されます。
decline_membership_request書き込みPOST /groups/{group}/membership-requests/{request_id}/decline申請者の参加申請を却下します。
Classroom
ツールアクセスREST ルート説明
list_courses読み取りGET /groups/{group}/coursesグループの Classroom にあるコースを一覧表示します。自分が利用できるものとロックされているものの両方が含まれ、利用可能なコースについてはモジュールも表示されます。
get_course読み取りGET /groups/{group}/courses/{course_id}Classroom の順序に沿って、レッスンとフォルダーを含む単一のコースを取得します。レッスンの取得には get_lesson を使用します。
create_course書き込みPOST /groups/{group}/coursesグループの Classroom にコースを下書きまたは公開済みとして追加します。管理者のみ利用できます。
set_course_published書き込みPUT /groups/{group}/courses/{course_id}/published下書きのコースをメンバーに公開するか、下書きに戻します。管理者のみ利用できます。
get_lesson読み取りGET /groups/{group}/courses/{course_id}/lessons/{lesson_id}単一のレッスンのテキストと動画リンクを取得します。
create_lesson書き込みPOST /groups/{group}/courses/{course_id}/lessonsコースの最後に、テキストと動画リンクを含むレッスンを追加します。管理者のみ利用できます。
update_lesson書き込みPATCH /groups/{group}/lessons/{lesson_id}レッスンのタイトル、テキスト、動画リンクを変更します。管理者のみ利用できます。
mark_lesson_complete書き込みPUT /groups/{group}/lessons/{lesson_id}/completion自分のコースの進捗でレッスンを完了としてマークするか、完了マークを取り消します。
カレンダー
ツールアクセスREST ルート説明
list_events読み取りGET /groups/{group}/eventsグループのカレンダーにある1か月分のイベントを、タイトル、日時、場所、参加できる人とともに一覧表示します。
get_event読み取りGET /groups/{group}/events/{event_id}カレンダーの単一イベントについて、詳細な説明、場所、アクセス情報を取得します。
create_event書き込みPOST /groups/{group}/eventsグループのカレンダーにイベントを追加します。管理者のみ利用できます。
update_event書き込みPATCH /groups/{group}/events/{event_id}カレンダーイベントのタイトル、日時、場所、アクセス情報を変更します。管理者のみ利用できます。
delete_event書き込みDELETE /groups/{group}/events/{event_id}カレンダーイベントを削除します。管理者のみ利用できます。
グループ設定(管理者)
ツールアクセスREST ルート説明
list_categories読み取りGET /groups/{group}/categoriesグループのフィードカテゴリです。名前、投稿できるユーザー、並び順、投稿数が含まれます。
create_category書き込みPOST /groups/{group}/categoriesグループのフィードにカテゴリを追加します。管理者のみ。
update_category書き込みPATCH /groups/{group}/categories/{category_id}カテゴリ名、投稿できるユーザー、または並び順を変更します。管理者のみ。
delete_category書き込みDELETE /groups/{group}/categories/{category_id}フィードカテゴリを削除し、その投稿を別のカテゴリに移動します。管理者のみ。
list_group_rules読み取りGET /groups/{group}/rulesグループに表示される順番で番号が付いた、グループのルールです。
add_group_rule書き込みPOST /groups/{group}/rulesグループのルールの末尾にルールを追加します。管理者のみ。
update_group_rule書き込みPATCH /groups/{group}/rules/{number}グループルールのタイトルまたは本文を変更します。管理者のみ。
delete_group_rule書き込みDELETE /groups/{group}/rules/{number}グループルールを削除します。管理者のみ。
list_group_links読み取りGET /groups/{group}/linksグループに表示される順番で番号が付いた、グループのサイドバーのリンクです。
add_group_link書き込みPOST /groups/{group}/linksグループのサイドバーにリンクを追加します。管理者のみ。
update_group_link書き込みPATCH /groups/{group}/links/{number}サイドバーのリンクのテキストまたはアドレスを変更します。管理者のみ。
delete_group_link書き込みDELETE /groups/{group}/links/{number}グループのサイドバーからリンクを削除します。管理者のみ。
add_membership_question書き込みPOST /groups/{group}/membership-questionsグループへの参加を申請する際に回答する質問を追加します。管理者のみ。
update_membership_question書き込みPATCH /groups/{group}/membership-questions/{number}メンバーシップに関する質問を変更します。管理者のみ。
delete_membership_question書き込みDELETE /groups/{group}/membership-questions/{number}メンバーシップに関する質問を削除します。管理者のみ。
list_levels読み取りGET /groups/{group}/levelsグループの9つのレベルと、それぞれに設定されたカスタムタイトル、および各レベルに到達したメンバー数です。
rename_level書き込みPATCH /groups/{group}/levels/{level}グループの9つのレベルのいずれかに、独自のタイトルを付けます。管理者のみ。
update_group_about書き込みPUT /groups/{group}/aboutグループの「概要」ページのテキストを置き換えます。管理者のみ。
get_auto_dm読み取りGET /groups/{group}/auto-dmSkoolが新しいメンバー全員に送信するウェルカムメッセージと、その有効・無効の状態です。管理者のみ。
set_auto_dm書き込みPATCH /groups/{group}/auto-dm新しいメンバーに送るウェルカムメッセージを変更するか、有効または無効にします。管理者のみ。
チャットと通知
ツールアクセスREST ルート説明
list_conversations読み取りGET /conversationsSkool Chatの受信トレイです。相手、未読数、最新メッセージのプレビューが表示されます。
get_conversation読み取りGET /conversations/{conversation_id}Skool Chatの1つの会話の最新メッセージを、古い順に取得します。
send_message書き込みPOST /members/{member_id}/messagesSkool Chatでメンバーにダイレクトメッセージを送信します。必要に応じて会話を開始します。
list_notifications読み取りGET /notificationsあなたのSkool通知です。新しい投稿、コメント、メンション、いいね、承認が新しい順に表示されます。
mark_notifications_read書き込みPOST /notifications/readすべての通知を、全体または1つのグループで既読にします。

意図的に実装していない機能:Skoolへのサインイン、メールアドレス、パスワード、名前、プロフィール設定、および金銭が関わるすべての機能(プラン、支払い、払い出し、請求)。すべてのリクエストはガードを通過し、これらのSkoolパスへのアクセスは拒否されます。

設定

変数デフォルト説明
SKOOL_MCP_HOME~/.config/skool-api-mcpsession.json の保存先フォルダーです。
SKOOL_AUTH_TOKENskool-mcp connect の代わりに使用する、Skool の auth_token Cookie です。
SKOOL_PROXYSkool へのすべてのリクエストに使用するプロキシです。例:http://user:pass@host:port
SKOOL_MCP_READ_ONLY1 にすると、Skool を変更するすべてのツールが非表示になり、実行できなくなります(--read-only と同じです)。
SKOOL_MCP_TOKENserve に必要なベアラートークンです。127.0.0.1 以外で待ち受ける場合に必要です。
SKOOL_MCP_HOST, SKOOL_MCP_PORT127.0.0.1, 8787serve のアドレスです。

セキュリティと Skool アカウント

  • パスワードがこのコードに渡されることはありません。 読み取られるのは Cookie のみで、skool.com の Cookie に限られます。
  • セッションファイルはユーザー自身のものです。 session.json はモード 0600 で作成されます。このファイルを持つ人は Skool でユーザーになりすまして操作できるため、git や共有フォルダーに保存しないでください。
  • デフォルトではローカルで動作します。 serve は 127.0.0.1 にバインドされ、SKOOL_MCP_TOKEN が設定されていない場合は別のアドレスを拒否します。
  • skool.com のみを対象とします。 skool.com 外へのリクエストとリダイレクトは拒否されます。
  • 読み取り専用モード。 --read-only または SKOOL_MCP_READ_ONLY=1 を設定すると、28 個の読み取りツールのみが公開されます。
  • 操作は実際の人々に影響します。 投稿、コメント、DM、招待、承認はユーザーの名前で送信されます。MCP クライアントは実行前に確認しますが、スクリプトは確認しないため、まずテストグループで試してください。
  • スパムを送信しないでください。 大量の DM や招待は Skool のルール違反となり、アカウントが制限される可能性があります。アカウント上で実行する操作については、ユーザー自身が責任を負います。

エラー

REST API は {"error": "<code>", "message": "..."} を返します。MCP サーバーは同じコードとメッセージをツールエラーとして返します。

ステータスコード対処方法
401auth_required, auth_expiredセッションがないか、Skool からサインアウトされています。Chrome で Skool にサインインし、skool-mcp connect を実行してください。
403app_permission_deniedSkool でのユーザーのロールではこの操作を実行できません。例:メンバーとして統計情報を表示する場合。
403scope_deniedサーバーが読み取り専用で動作しています。
403target_blockedSkool がリクエストを拒否したか、ボット確認画面が表示されました。Chrome で skool.com を一度開いてから、再試行してください。
409captcha_requiredSkool で CAPTCHA が求められています。Chrome で解決してください。
422invalid_input引数が不足しているか、正しくありません。メッセージに該当する引数が示されます。
429rate_limitedSkool によってアカウントが制限されています。数分待ってください。
502target_errorSkool がエラーを返したか、サイトが変更されました。最新のツールを取得するには git pull を実行するか、issue を作成してください。

セルフホストまたはホステッド

このリポジトリCotlet、ホステッド
ツール同じ 69 個同じ 69 個
実行場所コンピューターの電源が入っている間、ユーザーのコンピューター上クラウド上、24 時間 365 日
Skool セッションユーザーの Chrome、Cookie はローカルファイルに保存EU 内のユーザー専用 Cloud Browser、プロファイルは AES-256-GCM で暗号化
Skool のサイトが変更された場合修正後に git pull を一度実行ユーザーに代わって修正、すべてのツールを毎日テスト
承認MCP クライアントが呼び出しごとに確認投稿、DM、承認はユーザーの OK があるまで保留。ツールごとに切り替え可能
対応環境ユーザーのマシン上の MCP クライアント、ローカルスクリプトClaude.ai と ChatGPT のコネクター、n8n、Make、Zapier、任意の HTTP クライアント
利用対象ユーザー本人、非営利目的での利用チーム、企業、代理店
料金無料2,000 クレジット付きの 7 日間無料トライアル、カード不要。その後は 5,000 クレジットで $29 からの買い切りパック

ホステッド版では、成功した呼び出しに 20〜30 クレジット(ほとんどのツールでは 25 クレジット)が使用され、失敗した呼び出しは無料です。また、Cloud Browser でエージェント向けのアプリが有効になっている間は、1 日あたり 50 クレジットが使用されます。料金の詳細。

よくある質問

Skool に公式 API はありますか? いいえ。Skool には公開 API も開発者向けドキュメントもありません。唯一の公式な連携機能は Pro プランの Zapier プラグインで、新規有料メンバーと Membership Questions の回答を外部に送信し、メンバーを招待してコースのロックを解除できます。全メンバーの一覧表示、申請の承認、投稿、コメント、DM の送信、統計情報の読み取りはできません。詳細はこちらをご覧ください:cotlet.dev/integrations/skool-api-mcp-server。

Claude、ChatGPT、Cursor 向けの Skool MCP サーバーはありますか? はい。このサーバーはお使いのマシン上で動作します。Claude Code、Claude Desktop、Cursor、Codex では skool-mcp mcp を使用します。ChatGPT と Claude.ai のコネクターには公開 HTTPS URL が必要です。ホスト型 Skool MCP サーバーを使うと、その URL を利用できます。

これは Skool のスクレイパーですか? スクレイパーに求められる機能(メンバー、投稿、コースを CSV にエクスポートする機能)は備えていますが、ヘッドレスブラウザーで HTML を解析するものではありません。Skool のウェブアプリが呼び出すものと同じ JSON エンドポイントを、お客様のアカウントで呼び出します。

Skool のメンバーを CSV にエクスポートできますか? はい。python examples/export_members.py --group yourgroup --out members.csv を実行してください。全ページにわたり、ロール、レベル、ポイント、参加日、プロフィール URL とともにすべてのメンバーを取得できます。

自分が所有していないコミュニティのメンバーもエクスポートできますか? お客様のアカウントが参加しているグループに限り、また Skool がお客様のロールに表示する情報に限り、エクスポートできます。

Skool の Pro プランや Zapier は必要ですか? いいえ。一部のメンバーロールなど、Skool の機能には Pro 限定のものがあります。Skool に拒否された場合は、ツールがその旨を通知します。

なぜ Chrome が必要なのですか? パスワードを使わずに Skool のセッションを読み取るためです。Chrome はサインインごとに一度だけ使用し、呼び出しのたびには使用しません。

Skool からサインアウトされた場合はどうなりますか? 呼び出しは auth_expired で失敗します。Chrome のリモートデバッグが有効な場合、次の呼び出し時にサーバーが新しい Cookie を読み取ります(Chrome から確認を求められたら「許可」をクリックしてください)。それ以外の場合は、再度 skool-mcp connect を実行してください。

VPS や Docker で実行できますか? 技術的には、SKOOL_AUTH_TOKEN を使用すれば可能です。その場合、Skool にはデータセンターの IP アドレスからセッションにアクセスしているように見えるため、お客様本人の操作には見えにくくなります。常時稼働させる場合は、ホスト型バージョンを使うと、固定 IP のお客様専用 Cloud Browser にセッションを保持できます。

Skool アカウントが停止されることはありますか? リクエストには Chrome のフィンガープリントが付与され、ユーザーがクリックするのと同じように一件ずつ送信されます。プラットフォームが決して措置を取らないと保証できる人はいません。通常の利用範囲を守り、一括 DM の送信は避けてください。

職場やクライアント向けに利用できますか? いいえ。ライセンスで許可されているのは非商用利用のみです。チーム、企業、クライアントの業務で利用する場合は、Cotletをご利用いただくか、[email protected]までご連絡ください。

オープンソースですか? ソースコードは公開されていますが、ライセンスはオープンソースライセンスではありません。非商用利用のみで、ビジネスでの利用は禁止されています。

ツールが動かなくなった場合や、別のツールが必要な場合はどうすればよいですか? ツール名とエラーメッセージを添えて、issue を作成してください。

ライセンス

PolyForm Noncommercial License 1.0.0。要約:

  • 許可されること: 非商用利用。ご自身の Skool アカウントを使った個人的な目的での利用、または慈善団体、学校、公的研究機関、政府機関による利用。コードの変更と、同じライセンスでの共有。
  • 許可されないこと: ご自身のビジネスを含むあらゆる商用利用、クライアント業務、販売もしくは提供、または本ソフトウェアを基にしたサービスの提供。

このリポジトリの 1.x までのバージョン(ホスト型 API 用のスクリプト)は、引き続き MIT ライセンスです。


Cotlet

Cotlet(@cotletdev)が保守しています。Skool はその所有者の商標です。このプロジェクトは非公式であり、Skool との提携、承認、後援を受けていません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。