FCPC-lms-mcp-server
Servidor MCP de FCPC LMS
Un servidor MCP que permite a un asistente de IA responder preguntas sobre la cuenta de Moodle de un estudiante: tareas pendientes, mensajes no leídos, cuestionarios pendientes y cursos matriculados.
Los estudiantes se conectan desde Claude en la web, en un teléfono o en un escritorio registrando una URL. No hay software que instalar, ni tokens que copiar manualmente.
Creado para First City Providential College, pero funciona con cualquier sitio Moodle que tenga los servicios web habilitados.
Qué puede responder
Cuándo vencen tus tareas
Mensajes no leídos de profesores y compañeros
Cuestionarios que no has completado
En qué cursos estás matriculado
"Do I have any new messages?"
"What is due this week?"Related MCP server: Moodle MCP Server
Dos formas de ejecutarlo
Servidor remoto | Servidor local | |
Para quién es | Una clase o toda una institución | Una persona, en su propia máquina |
Cliente | Claude (web, iOS, Android, escritorio) | Cualquier cliente MCP en esa máquina |
Configuración del estudiante | Una URL | Nada, pero necesita el repositorio instalado |
Inicio de sesión | OAuth, gestionado por Claude | Un token en |
Punto de entrada |
|
|
La mayoría de los despliegues quieren el servidor remoto.
Servidor remoto (recomendado)
Requisitos
Python 3.11 o más reciente
cloudflared (
brew install cloudflared) o cualquier otra forma de exponer una dirección HTTPSUna cuenta de Moodle en el sitio, usada una vez durante la configuración para registrar la dirección del sitio
Para el administrador
Ejecuta
setup.command(macOS) osetup.bat(Windows) una vez e inicia sesión. Esto escribe la dirección de tu sitio Moodle en.env.Ejecuta
start-server.command. Imprime la URL para distribuir:
https://xxxx.trycloudflare.com/mcpCerrar esa ventana detiene el servidor, así que déjala abierta mientras el servicio esté en uso. Las direcciones gratuitas de trycloudflare.com cambian en cada reinicio; usa un
túnel con nombre
para una dirección fija.
Para los estudiantes
Abre claude.ai en cualquier navegador, incluido un teléfono.
Ve a Configuración → Conectores → Añadir conector personalizado.
Dale cualquier nombre y pega la URL que te dieron.
Claude abre la página de inicio de sesión de Moodle. Inicia sesión con tu nombre de usuario y contraseña habituales de Moodle.
Eso es toda la configuración. Después funciona también en las aplicaciones móviles de Claude.
Los conectores solo se pueden añadir desde el sitio web de Claude, pero un navegador de teléfono funciona bien. Una vez añadidos, se sincronizan con las aplicaciones.
Cómo funciona el inicio de sesión
Student's Claude ──HTTPS──▶ MCP server ──▶ Moodle
(OAuth)Cada usuario se identifica mediante un inicio de sesión OAuth. Cuando un estudiante inicia sesión, su token de Moodle se cifra dentro del propio token de acceso y se devuelve a Claude.
El servidor no almacena tokens de Moodle ni contraseñas
Una contraseña se usa una vez para obtener un token y luego se descarta
Un usuario nunca puede ver los datos de otro usuario
.oauth_key (la clave de cifrado) y .oauth_clients.json son secretos. Ambos
están excluidos de git. Eliminar .oauth_key cierra la sesión de todos.
Servidor local
Para ejecutar el servidor MCP en tu propia máquina, a través de stdio.
Ejecuta
setup.command/setup.bat, o:
python -m venv venv
source venv/bin/activate # macOS/Linux
.\venv\Scripts\activate # Windows PowerShell
pip install -r requirements.txt
python setup_gui.pyApunta tu cliente MCP a
server.py. Por ejemplo, en elclaude_desktop_config.jsonde Claude Desktop:
{
"mcpServers": {
"moodle": {
"command": "/path/to/venv/bin/python",
"args": ["/path/to/server.py"]
}
}
}Para ver exactamente lo que recibe la IA:
python list_tools.pyTambién hay dos clientes de chat independientes, client.py (OpenAI) y
client_localLLM.py (ollama). Ambos toman el script del servidor como argumento:
python client.py server.pyPruebas
selftest.py comprueba todo lo que se puede comprobar sin un navegador: la
conexión con Moodle, ambos servidores, el flujo OAuth hasta una llamada real a una herramienta,
y que los usuarios no puedan ver los datos de los demás.
python selftest.py # all checks
python selftest.py --offline # skip anything needing the networkSale con 0 cuando todo pasa e imprime los pasos manuales restantes: registrar el conector en Claude, iniciar sesión, hacer una pregunta y repetirlo en un teléfono.
Ejecútalo después de instalar, después de cambiar el código y en la máquina que alojará el servidor.
Notas sobre Moodle
Algunos sitios Moodle están detrás de Cloudflare y rechazan a los clientes HTTPS normales con
HTTP 403. Por lo tanto, las solicitudes pasan por curl_cffi con una huella TLS de navegador.
Esta es la razón por la que el servidor no se puede reimplementar en, por ejemplo, Apps
Script, y por la que debería ejecutarse en algún lugar con una ruta de red de aspecto normal.
Los usuarios que inician sesión en Moodle a través de SSO (Google y similares) no pueden usar
login/token.php. decode_token.py cubre ese caso.
Archivos
Archivo | Propósito |
| Servidor MCP remoto con OAuth, para conectores de Claude |
| Servidor de autorización OAuth; no almacena tokens |
| La página de inicio de sesión de Moodle que abre Claude |
| Servidor MCP local sobre stdio |
| Cliente de la API de Moodle, un token por instancia |
| Obtención de tokens y manejo de |
| Asistente de configuración |
| Configuración con doble clic (macOS / Windows) |
| Publica el servidor remoto (macOS) |
| Comprueba la instalación de principio a fin |
| Imprime las herramientas que ve la IA |
| Obtiene un token desde la línea de comandos |
| Extracción de tokens para usuarios de SSO |
| Clientes de chat independientes |
Créditos
El propio servidor MCP (server.py, client.py, client_localLLM.py) fue
escrito por Jiseong JEONG (@jeongjisung690).
Repositorio original: https://github.com/jeongjisung690/Moodle---MCP-server
Este repositorio añade:
Soporte para sitios Moodle detrás de Cloudflare
Obtención automática de tokens a partir de un nombre de usuario y contraseña
Extracción de tokens para usuarios de SSO
Un asistente de configuración para usuarios no técnicos
Un servidor MCP remoto con OAuth, para que los estudiantes se conecten con una sola URL
Licencia
No se ha establecido ninguna licencia. Por favor, contacta con los autores antes de usar o redistribuir este código.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Moodle learning management systems through the Moodle REST API. Supports course management, user enrollment, assignments, forums, quizzes, and file operations through natural language.14MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Moodle learning management systems through the REST API. Supports course management, user enrollment, assignment handling, and forum operations through natural language.14MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with Moodle via web services, allowing tasks like listing courses, assignments, events, and downloading files.104MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to read your Moodle courses, list materials, quizzes, and search content to plan exam preparation through natural language.1
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Connect AI assistants to ITM Platform projects, tasks, budgets, risks, and team workload.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ogaaawa/FCPC-lms-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server