School Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited School Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Servidor MCP local em Node.js + TypeScript para dar ao Codex ou a outro cliente MCP contexto sobre materiais universitários. Lê PDF, PPTX e DOCX, cria um índice JSON e pesquisa texto sem embeddings, base de dados ou serviços pagos.
Cadeiras/ -> extratores -> .mcp-index/index.json -> pesquisa full-text -> MCP stdioO Google Drive é opcional e read-only. Depois de criar o índice, o servidor MCP funciona totalmente offline.
Cadeiras/
Estatistica/
Capitulo 1/
slides.pdf
exercicios.docx
Capitulo 2/
regressao.pdf
Algoritmos/
Grafos/
bfs.pdf
dfs.pdfA primeira pasta representa a cadeira. As pastas seguintes formam o capítulo; níveis adicionais aparecem separados por / . Um ficheiro diretamente dentro da cadeira fica no capítulo Geral.
Formatos suportados:
Ficheiros .ppt antigos não são suportados; converta-os para .pptx.
Requer Node.js 20.16 ou superior.
npm installCopie .env.example para .env:
MATERIALS_ROOT=./Cadeiras
GOOGLE_DRIVE_ENABLED=false
GOOGLE_DRIVE_FOLDER_ID=Coloque os documentos dentro de MATERIALS_ROOT e construa o índice:
npm run indexO índice é escrito atomicamente em .mcp-index/index.json. Execute novamente npm run index sempre que adicionar, alterar ou remover materiais. O MCP deteta automaticamente uma nova versão do índice sem precisar de reiniciar.
Se a pasta local já for sincronizada pelo Google Drive para desktop, deixe GOOGLE_DRIVE_ENABLED=false: o indexador lê diretamente essa pasta e não precisa da API Google.
Para usar a sincronização integrada:
gcloud auth application-default login --scopes=https://www.googleapis.com/auth/drive.readonly,https://www.googleapis.com/auth/cloud-platform MATERIALS_ROOT=./Cadeiras
GOOGLE_DRIVE_ENABLED=true
GOOGLE_DRIVE_FOLDER_ID=ID_DA_PASTA npm run sync-drive
npm run indexsync-drive cria um espelho local da pasta remota. O Drive é sempre aberto com scope read-only, mas o conteúdo local de MATERIALS_ROOT é substituído pelo espelho. Não misture ficheiros exclusivamente locais nessa pasta quando usar este modo.
npm run index: reconstrói .mcp-index/index.json.npm run sync-drive: espelha opcionalmente o Google Drive para MATERIALS_ROOT.npm run dev:mcp: inicia o MCP diretamente a partir do TypeScript.npm run build: compila TypeScript para dist/.npm run start:mcp: inicia o build compilado.npm run typecheck: valida os tipos sem gerar ficheiros.list_courses()Lista cadeiras e totais de capítulos e materiais.
list_course_materials(course?: string)Lista caminhos, cadeiras, capítulos, tipos e contagens de páginas/slides.
search_materials(query: string, course?: string, chapter?: string)Faz pesquisa full-text local. O ranking combina cobertura dos termos, frequência e correspondência da frase. Devolve sempre ficheiro, cadeira, capítulo, página/slide, excerto e referência completa.
read_material(filePath: string, page?: number, slide?: number)Lê os excertos indexados de um caminho devolvido por list_course_materials. Aceita uma página ou um slide, nunca ambos.
get_relevant_context(query: string, course?: string)Devolve até seis excertos relevantes, prontos para serem usados como contexto pelo agente, cada um com referência completa.
O Codex suporta servidores MCP locais por stdio no CLI e na extensão IDE. A configuração pode ficar em ~/.codex/config.toml ou em .codex/config.toml dentro de um projeto confiável.
Primeiro compile o servidor:
npm run buildAdicione ao config.toml, usando caminhos absolutos:
[mcp_servers.university_content]
command = "node"
args = ["C:/caminho/school-mcp/dist/mcp/server.js"]
cwd = "C:/caminho/school-mcp"
startup_timeout_sec = 10
tool_timeout_sec = 60
[mcp_servers.university_content.env]
MATERIALS_ROOT = "C:/caminho/school-mcp/Cadeiras"
GOOGLE_DRIVE_ENABLED = "false"
GOOGLE_DRIVE_FOLDER_ID = ""Reinicie o Codex depois de alterar a configuração. No Codex CLI, use /mcp para confirmar que university_content está ativo. Esta configuração segue a documentação oficial de MCP no Codex.
Cadeiras/Estatistica/....npm run index./mcp no Codex.Resolve este exercício de Estatística usando os conteúdos da cadeira.
Para um exercício concreto, inclua o enunciado na mesma mensagem. O agente deverá chamar get_relevant_context ou search_materials, usar os excertos encontrados e citar referências como:
Estatistica > Capitulo 1 > slides.pdf > página 12Se a pesquisa não encontrar termos do enunciado, peça ao agente para chamar list_course_materials e depois read_material no ficheiro ou página relevante.
read_material só aceita caminhos relativos que já existam no índice; não permite leitura arbitrária do sistema de ficheiros.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.