NestDaddy

LearnWorlds

io.github.ohneben/learnworlds-mcp · v1.1.2

All 94 LearnWorlds LMS API endpoints as safety-categorized MCP tools (read/write/destructive).

Connect Runs on your machine

Terminal
claude mcp add learnworlds-mcp -e MCP_TRANSPORT=<MCP_TRANSPORT> -e LEARNWORLDS_BASE_URL=<LEARNWORLDS_BASE_URL> -e LEARNWORLDS_API_TOKEN=<LEARNWORLDS_API_TOKEN> -e LEARNWORLDS_CLIENT_ID=<LEARNWORLDS_CLIENT_ID> -e MCP_AUTH_TOKEN=<MCP_AUTH_TOKEN> -- docker run -i --rm ghcr.io/ohneben/learnworlds-mcp:1.1.2
claude_desktop_config.json
{
  "mcpServers": {
    "learnworlds-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/ohneben/learnworlds-mcp:1.1.2"
      ],
      "env": {
        "MCP_TRANSPORT": "<MCP_TRANSPORT>",
        "LEARNWORLDS_BASE_URL": "<LEARNWORLDS_BASE_URL>",
        "LEARNWORLDS_API_TOKEN": "<LEARNWORLDS_API_TOKEN>",
        "LEARNWORLDS_CLIENT_ID": "<LEARNWORLDS_CLIENT_ID>",
        "MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "learnworlds-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/ohneben/learnworlds-mcp:1.1.2"
      ],
      "env": {
        "MCP_TRANSPORT": "<MCP_TRANSPORT>",
        "LEARNWORLDS_BASE_URL": "<LEARNWORLDS_BASE_URL>",
        "LEARNWORLDS_API_TOKEN": "<LEARNWORLDS_API_TOKEN>",
        "LEARNWORLDS_CLIENT_ID": "<LEARNWORLDS_CLIENT_ID>",
        "MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "learnworlds-mcp": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/ohneben/learnworlds-mcp:1.1.2"
      ],
      "env": {
        "MCP_TRANSPORT": "<MCP_TRANSPORT>",
        "LEARNWORLDS_BASE_URL": "<LEARNWORLDS_BASE_URL>",
        "LEARNWORLDS_API_TOKEN": "<LEARNWORLDS_API_TOKEN>",
        "LEARNWORLDS_CLIENT_ID": "<LEARNWORLDS_CLIENT_ID>",
        "MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
MCP_TRANSPORT
Required
Server transport. Set to 'stdio' for local MCP clients; the image otherwise starts the Streamable HTTP transport.
LEARNWORLDS_BASE_URL
Required
Base URL of your LearnWorlds school's API, e.g. https://<your-school>.learnworlds.com/admin/api
LEARNWORLDS_API_TOKEN
Required, secret
Bearer access token (LearnWorlds admin -> Settings -> Integrations -> Developers).
LEARNWORLDS_CLIENT_ID
Required, secret
Your school's Client ID, sent as the Lw-Client header.
MCP_AUTH_TOKEN
Optional, secret
Only for MCP_TRANSPORT=http: bearer token required on /mcp. Without it a non-loopback bind refuses to start.

Details

Packageghcr.io/ohneben/learnworlds-mcp:1.1.2 (OCI, stdio)
First published15 Sep 2026
Last updated15 Sep 2026
Registry nameio.github.ohneben/learnworlds-mcp

More other servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.