A Model Context Protocol (MCP) server implementation that provides capabilities to interact with Moodle LMS
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add moodle --env MOODLE_URL='<MOODLE_URL>' --env MOODLE_TOKEN='<MOODLE_TOKEN>' -- uvx moodle-mcp~/.codex/config.toml
[mcp_servers.moodle]
command = "uvx"
args = ["moodle-mcp"]
env = { MOODLE_URL = "<MOODLE_URL>", MOODLE_TOKEN = "<MOODLE_TOKEN>" }
# codex mcp add moodle --env MOODLE_URL='<MOODLE_URL>' --env MOODLE_TOKEN='<MOODLE_TOKEN>' -- uvx moodle-mcp~/.cursor/mcp.json
{
"mcpServers": {
"moodle": {
"command": "uvx",
"args": [
"moodle-mcp"
],
"env": {
"MOODLE_URL": "<MOODLE_URL>",
"MOODLE_TOKEN": "<MOODLE_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"moodle": {
"type": "stdio",
"command": "uvx",
"args": [
"moodle-mcp"
],
"env": {
"MOODLE_URL": "<MOODLE_URL>",
"MOODLE_TOKEN": "<MOODLE_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"moodle": {
"command": "uvx",
"args": [
"moodle-mcp"
],
"env": {
"MOODLE_URL": "<MOODLE_URL>",
"MOODLE_TOKEN": "<MOODLE_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"moodle": {
"command": "uvx",
"args": [
"moodle-mcp"
],
"env": {
"MOODLE_URL": "<MOODLE_URL>",
"MOODLE_TOKEN": "<MOODLE_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"moodle": {
"command": "uvx",
"args": [
"moodle-mcp"
],
"env": {
"MOODLE_URL": "<MOODLE_URL>",
"MOODLE_TOKEN": "<MOODLE_TOKEN>"
}
}
}
}Environment variables
MOODLE_URLMOODLE_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.