moodle-academic-mcp
Provides tools for interacting with a Moodle instance (initially UFSC's Moodle Presencial) via its REST API: listing courses, assignments, deadlines and calendar events, retrieving assignment descriptions and course materials (PDF/DOCX/PPTX), reading quizzes, forums and grades, computing attendance and grade simulations, managing groups (including group choice vacancies), and write operations such as submitting assignments (upload, draft, submit) and posting to forums.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Projeto comunitário e independente, sem vínculo oficial com a UFSC, o Moodle, a Anthropic ou a OpenAI. Primeiro alvo: Moodle Presencial da UFSC; a arquitetura aceita outras instituições.
✨ Em ação
você ▸ Quais trabalhos tenho para entregar nos próximos 7 dias? Separe os já enviados.
claude ▸ (list_deadlines · janela: 2026-11-04 15:30 → 2026-11-11 15:30, America/Sao_Paulo)
✅ enviado Lista 2 ........ Banco de Dados II ... 04/11 23:59
⏳ pendente Trabalho T ..... Banco de Dados II ... 04/11 23:59 (corte 06/11)
⏳ pendente Entrega parcial Modelagem de Proc. .. 08/11 23:59Exemplo ilustrativo com dados sintéticos.
Você diz | O servidor faz |
“Quais prazos na próxima semana?” | cruza tarefas + questionários + calendário; devolve a janela exata (semana civil ≠ 7 dias) |
“Leia o enunciado, use os slides e faça o trabalho.” |
|
“Envie minha atividade.” | upload → rascunho → envio → lê de volta e mostra a evidência |
“Posso faltar na terça? Quantas aulas ainda posso perder?” | conta exata por horas-aula, chamadas pendentes, encontros críticos |
“Quanto preciso tirar na P2 para passar?” | simulação determinística; nota não lançada ≠ zero |
“Entre no grupo 3, se tiver vaga.” | Group choice com checagem de vagas e leitura de volta |
“Avisos novos desde ontem?” |
|
Related MCP server: moodle-mcp
🚀 Comece em 3 minutos
# 1) token: https://presencial.moodle.ufsc.br/user/managetoken.php (serviço "Moodle mobile web service")
uvx --from git+https://github.com/matheussilvano/moodle-mcp moodle-academic-mcp configure --profile ufsc --service mobile
# 2) teste a conexão
uvx --from git+https://github.com/matheussilvano/moodle-mcp moodle-academic-mcp doctor
# 3) conecte ao seu cliente (vale em qualquer pasta)
claude mcp add --scope user --transport stdio moodle -- uvx --from git+https://github.com/matheussilvano/moodle-mcp moodle-academic-mcp serve
codex mcp add moodle -- uvx --from git+https://github.com/matheussilvano/moodle-mcp moodle-academic-mcp serveReinicie o cliente e pergunte: “liste meus cursos atuais”. Requer Python 3.11+ e uv. Ainda não está no PyPI. ChatGPT e GPTs personalizados precisam do modo hospedado. Guia por cliente: docs/clients.md.
🧭 Como funciona
flowchart LR
subgraph Clientes
A[Claude Code / Codex<br/>stdio]
B[ChatGPT / Claude<br/>Streamable HTTP + OAuth]
C[GPT Actions<br/>OpenAPI]
end
A --> R
B --> R
C --> R
R{{"registro único de operações<br/>(55 tools = 55 rotas REST)"}} --> D[domínio acadêmico<br/>tarefas · prazos · quiz · notas<br/>grupos · frequência · materiais]
D --> M[(cliente Moodle<br/>REST + upload + pluginfile)]
D --> S[(SQLite / PostgreSQL<br/>credenciais cifradas · diário de escritas)]
D --> K[[cálculo exato<br/>Fraction / Decimal]]
M --> U((Moodle da sua instituição))Duas regras de ouro: cada pessoa usa o próprio token (nada de token compartilhado ou singleton) e o texto de PDFs, fóruns e páginas é dado não confiável — nunca autoriza ações.
✅ Estado da validação (sem maquiagem)
Área | Testes automáticos (mock) | Moodle real (UFSC 4.1.5+) |
Cursos, tarefas, estado, calendário, lista de fóruns | ✅ | ✅ leitura |
Entrega (upload → rascunho → envio), quiz, grupos, fórum (escrita) | ✅ | ⛔ não testado |
Frequência (cálculo) / notas (simulação) | ✅ 100% puro | n/a |
Attendance, VPL, Group choice (adaptadores) | ✅ | ⛔ não validado |
Modo hospedado (HTTP, onboarding, PostgreSQL 16) | ✅ | n/a |
OIDC com IdP real · ChatGPT · Codex | ⛔ | ⛔ |
Quer ajudar a mover um ⛔ para ✅? Veja o sandbox — é a contribuição mais valiosa.
🔒 Segurança e privacidade
Tokens fora de logs, URLs, resultados e do modelo;
userprivateaccesskeyremovido; cifrados no modo hospedado.Downloads só para o host Moodle do perfil; SSRF bloqueado; arquivos locais confinados a pastas permitidas.
Escritas são ferramentas separadas e anotadas; você (ou o cliente) decide a política de confirmação — exemplos.
Nada de “Entrar com UFSC” nem senha institucional. Detalhes: SECURITY.md · privacy.
🤝 Contribua (é fácil)
git clone https://github.com/matheussilvano/moodle-mcp && cd moodle-mcp
make setup # uv sync + hooks
make check # lint + tipos + testes (≈10 s, sem credenciais, sem internet)🌱 Issues para começar · 🗺️ Roadmap · 🏫 Adicionar sua universidade
Testes usam um Moodle falso (
tests/fake_moodle.py) — nenhum dado real. Nunca marque algo como validado sem rodar num Moodle de verdade.Comece por CONTRIBUTING.md; dúvidas em Discussions.
📚 Documentação
Ferramentas · Arquitetura · Tokens e VPN · Clientes · Hospedagem e auth · Frequência e notas · Matriz de recursos · Fluxos
Licença MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect AI assistants to Edusign attendance, courses, learners, documents, and API docs via OAuth.
Carbon Voice MCP serves as a bridge that connects AI assistants like ChatGPT, Claude, and Cursor to a user's Carbon Voice account, turning voice messages and conversations into a private, on-demand knowledge base. It provides 28 specialized tools for comprehensive voice messaging management, including creating and sending messages, accessing conversation history with instant transcription, running AI actions (summarization, TLDR generation, meeting notes), and managing workspace collaboration through folders, contacts, and team communications.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Run the Geduk LMS from an AI assistant: courses, sessions, enrolments, users and catalogue.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to access a student's EPFL Moodle data—deadlines, course files, assignments, forums, and grades—through read-only tools.12MIT
- AlicenseBqualityCmaintenanceConnects Claude to your Moodle account through the same web-service API the mobile app uses. Enables asking about upcoming and overdue deadlines, reading course files and announcements, checking grades, searching course content, and saving assignment submissions from chat.172MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to sign into a real Moodle LMS and handle the student workflow end to end: browsing courses, schedules, forums and grades, converting assignments and attachments into markdown, and uploading and submitting work as drafts or finalized submissions. Ships as a single static binary with write actions confirmed by the user and quiz-taking deliberately excluded.27MIT
- AlicenseNot gradedqualityAmaintenanceEnables an AI agent to access a Moodle Campus Virtual account with the user's own credentials, reading course content, files, forums, notices, calendar, grades and quiz attempts for every enrolled course. Teachers, managers and course creators also get access to other participants' data and to planned, verified write operations such as forums, grading, attendance, quizzes, groups, content and H5P activities.2Apache 2.0