Skip to content

x-name15/moodle-mcp-for-ai-agents

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Moodle MCP Server para IAs

Node.js Version TypeScript Moodle MCP Server Gemini CLI Claude Code GitHub Copilot

Servidor MCP (Model Context Protocol) para conectar diferentes IAs con instancias de Moodle y exponer contexto real de plugins, base de datos, logs, web services, RabbitMQ e infraestructura.

Documentación

Requisitos

  • Node.js 20+
  • Acceso a la base de datos MariaDB/MySQL de Moodle
  • Acceso al filesystem de Moodle (para análisis de plugins/config)
  • RabbitMQ Management API opcional (si usarás herramientas de RabbitMQ)

Instalación

npm install
npm run build

Configuración rápida (EXPERIMENTAL)

Puedes añadir una nueva instancia de Moodle interactivamente:

  • Windows: ./scripts/add-instance/add-instance.ps1
  • Linux/Mac: bash scripts/add-instance/add-instance.sh

Este script configurará automáticamente el archivo .env.<instancia>, creará el template de microservicios y registrará la instancia en:

  • Gemini CLI
  • Claude Code
  • VS Code / GitHub Copilot (actualiza .vscode/mcp.json)
  • Raíz del proyecto (mcp.json)

Configuración manual

  1. Crea un archivo .env.<instancia> en la raíz del proyecto (ejemplo: .env.moodle41).
  2. Define al menos estas variables:
MOODLE_NAME="Moodle 4.1"
MOODLE_VERSION="4.1"
MOODLE_ROOT_PATH="/ruta/a/moodle"
MOODLE_URL="http://localhost:8080"

DB_HOST="localhost"
DB_PORT="3306"
DB_NAME="moodle"
DB_USER="root"
DB_PASSWORD="password"

RABBITMQ_HOST="localhost"
RABBITMQ_MANAGEMENT_PORT="15672"
RABBITMQ_USER="guest"
RABBITMQ_PASSWORD="guest"

MICROSERVICES_CONFIG="./data/microservices.moodle41.json"
  1. En VS Code, configura .vscode/mcp.json y define MOODLE_INSTANCE con el mismo sufijo del .env.<instancia>.

Uso

  • Desarrollo interactivo:
npm run dev
  • Producción (MCP por stdio):
npm run build
node dist/server.js

Clientes soportados

GitHub Copilot for VS Code

  • Configura el servidor MCP en el workspace con mcp.json.
  • Puedes usar como base examples/mcp.json.example.
  • Define MOODLE_INSTANCE con la instancia que quieras usar (moodle41, moodle45, etc.).

Gemini CLI

  • Windows: ./scripts/gemini/setup-gemini.ps1
  • Linux/Mac: bash scripts/gemini/setup-gemini.sh
  • El script registra automáticamente cada .env.* encontrado.

Claude Code

  • Windows: ./scripts/claude/setup-claude.ps1
  • Linux/Mac: bash scripts/claude/setup-claude.sh
  • El script registra automáticamente cada .env.* encontrado.

JetBrains (PhpStorm / IntelliJ / WebStorm)

  • Soporte nativo a través de AI Assistant (2024.3+) o plugins como Continue.
  • Guía detallada: docs/jetbrains/JETBRAINS.md
  • Script de configuración:
    • Windows: ./scripts/jetbrains/setup-jetbrains.ps1
    • Linux/Mac: bash scripts/jetbrains/setup-jetbrains.sh

Mantenimiento de conexión MCP

Si agregas tools nuevas o cambias configuración por instancia:

  1. Reconstruye el servidor: npm run build
  2. Vuelve a ejecutar el setup del cliente que uses (Gemini/Claude)
  3. Reinicia la sesión del cliente MCP para recargar tools

Prompts MCP incluidos

  • moodle_capabilities
  • moodle_status
  • understand_plugin
  • debug_error
  • new_plugin
  • integrate_plugins

Seguridad

  • Las consultas SQL usan prepared statements.
  • get_moodle_config enmascara dbpass en la salida.

About

Personal MCP tool that I use to provide Moodle context to different AI clients (Experimental)

Topics

Resources

License

Stars

Watchers

Forks

Contributors