Skip to main content
Glama

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:59

Exemplo 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.”

get_assignment → read_material (PDF/DOCX/PPTX com páginas) → você gera o arquivo

“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?”

changes_since com snapshots

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 serve

Reinicie 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; userprivateaccesskey removido; 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)

📚 Documentação

Ferramentas · Arquitetura · Tokens e VPN · Clientes · Hospedagem e auth · Frequência e notas · Matriz de recursos · Fluxos

Licença MIT.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to access a student's EPFL Moodle data—deadlines, course files, assignments, forums, and grades—through read-only tools.
    12
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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.
    27
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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.
    2
    Apache 2.0