MySkoolDocs
Esc

Agents & tools

MCP server

A remote MCP server for Claude, ChatGPT, Cursor, Codex and friends. Paste one URL, then sign in or paste a key.

Overview#

A remote MCP server (Streamable HTTP) lives at https://api.myskool.xyz/v1/mcp. Two ways to authenticate, same tools either way:

  • Sign in with MySkool — OAuth 2.1 + PKCE, dynamic client registration. What claude.ai and ChatGPT speak.
  • An API key in the Authorization header, for clients that let you set headers.

Sign in with MySkool (OAuth)#

No key to copy. The client discovers the authorization server from the 401, registers itself, and sends you to the MySkool login. On the consent screen, reads are granted and publishing/deleting is an opt-in checkbox. Each connection shows up under API Keys as a Connector key — revoke it there.

Claude.ai · Claude Desktop · Claude mobile · Cowork#

  1. Customize → Connectors → Add custom connector (Team/Enterprise owners: Organization settings → Connectors → Add → Custom first).
  2. Name: MySkool · MCP server URL: https://api.myskool.xyz/v1/mcp. Leave Authentication on what Claude detects (“Sign in now”) and the OAuth client on “Register automatically”.
  3. Add → Connect. A MySkool tab opens: sign in (magic link or Google) and approve the access request.
  4. In a chat, open the “+” menu → Connectors and toggle MySkool on. Free plans get one custom connector.

ChatGPT#

  1. Settings → Security and login → turn on Developer mode (Plus, Pro, Business, Enterprise, Edu).
  2. Settings → Apps & connectors → Create. Name: MySkool · URL: https://api.myskool.xyz/v1/mcp · Authentication: OAuth.
  3. Create, then Connect: sign in to MySkool and approve. Enable it from the “+” menu in a chat (Developer mode).

Claude Code#

shell
claude mcp add --transport http -s user myskool https://api.myskool.xyz/v1/mcp
# then, inside Claude Code: /mcp → myskool → Authenticate

Codex#

shell
codex mcp add myskool --url https://api.myskool.xyz/v1/mcp
codex mcp login myskool

OpenClaw#

shell
openclaw mcp set myskool '{"url":"https://api.myskool.xyz/v1/mcp","transport":"streamable-http","auth":"oauth"}'
openclaw mcp login myskool

Or install the native OpenClaw plugin from ClawHub instead: same tools, plus a skill with the Skool rules.

Hermes Agent#

yaml
# ~/.hermes/config.yaml — the browser opens on first connect
mcp_servers:
  myskool:
    url: "https://api.myskool.xyz/v1/mcp"
    auth: oauth
claude.ai orgs with the Request headers beta can instead choose No sign-in and add Authorization = Bearer sk_live_… as a request header (one shared key for the org).

API key header#

Mint a key under API Keys (writes are opt-in) and paste one of these. Without a key the snippets read MYSKOOL_API_KEY from the environment. Add X-Skool-Connection to pin a Skool account.

Claude Code#

shell
# one command, user scope — then /mcp inside Claude Code
claude mcp add --transport http -s user myskool https://api.myskool.xyz/v1/mcp \
  --header "Authorization: Bearer sk_live_xxxxxxxxxxxx"

Cursor#

json
// ~/.cursor/mcp.json (or .cursor/mcp.json in a project)
{
  "mcpServers": {
    "myskool": {
      "url": "https://api.myskool.xyz/v1/mcp",
      "headers": {
        "Authorization": "Bearer sk_live_xxxxxxxxxxxx"
      }
    }
  }
}

Codex#

toml
# ~/.codex/config.toml
[mcp_servers.myskool]
url = "https://api.myskool.xyz/v1/mcp"
http_headers = { Authorization = "Bearer sk_live_xxxxxxxxxxxx" }

Gemini CLI#

json
// ~/.gemini/settings.json (or .gemini/settings.json in a project)
{
  "mcpServers": {
    "myskool": {
      "httpUrl": "https://api.myskool.xyz/v1/mcp",
      "headers": {
        "Authorization": "Bearer sk_live_xxxxxxxxxxxx"
      }
    }
  }
}

OpenClaw#

shell
# or Control UI → Settings → MCP → Add server (Streamable HTTP)
openclaw mcp set myskool '{"url":"https://api.myskool.xyz/v1/mcp","transport":"streamable-http","headers":{"Authorization":"Bearer sk_live_xxxxxxxxxxxx"}}'

Prefer native tools? See the OpenClaw plugin.

Hermes Agent#

yaml
# ~/.hermes/config.yaml — then /reload-mcp
mcp_servers:
  myskool:
    url: "https://api.myskool.xyz/v1/mcp"
    headers:
      Authorization: "Bearer sk_live_xxxxxxxxxxxx"

Tools#

ToolScopeMaps to
list_groupsgroups:readGET /v1/groups
get_groupgroups:readGET /v1/groups/:gid
whoamigroups:readGET /v1/whoami
list_postsposts:readGET /v1/groups/:gid/posts · pages, sort, since
get_postposts:readGET /v1/posts/:id
list_commentscomments:readGET /v1/posts/:id/comments
create_postposts:writePOST /v1/groups/:gid/posts
create_commentcomments:writePOST /v1/posts/:id/comments
delete_postposts:writeDELETE /v1/posts/:id
delete_commentcomments:writeDELETE /v1/comments/:id
list_dmsdms:readGET /v1/dms
get_dmdms:readGET /v1/dms/:id
send_dmdms:writePOST /v1/dms

Behavior#

  • Scoped.The tool list is filtered by the key's scopes (or the scopes you approved on the consent screen): a read-only connection never sees create_* / delete_*.
  • Same limits. initialize and tools/list are free; each tool call counts as one API request under the same rate limit and monthly quota, and is logged in your usage — OAuth connections included.
  • Same errors. A failed call returns the API envelope as the tool result (isError) so the agent can branch on error.code; list_posts drives a headless browser, a few seconds per feed page (pages 1–30, sort by newest, activity, unread or top).
  • OAuth details. Discovery at /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server, PKCE S256 required, dynamic client registration open, access tokens last 1 h and refresh with offline_access. The consent screen always offers “Permitir publicar y borrar” (off by default): tick it to get the create_* / delete_* tools. A connection already approved read-only stays read-only until you remove and re-add the connector in the client and approve again. Removing the connector in the client plus revoking the Connector key ends the session.
  • CLI shortcut. myskool mcp install --client claude wires it up with your saved key; myskool mcp config --client cursor --env prints a snippet that reads MYSKOOL_API_KEY from the environment instead.

MySkool is not affiliated with Skool. Skool™ is a trademark of Skool, Inc.