MCP Server para o SIGA do Centro Paula Souza / Fatec.
Expõe dados acadêmicos (faltas, notas, aulas) como tools para agentes de IA.
Clean Architecture em 4 camadas:
domain/ → Entidades e interfaces (zero deps externas)
application/ → Use cases
adapters/ → MCP tools, parsers, repositórios, gateways
infrastructure/ → Entrypoint, configuração
npm installnpm run devAdicione ao claude_desktop_config.json:
{
"mcpServers": {
"siga": {
"command": "node",
"args": ["/caminho/para/siga-mcp/src/infrastructure/server.js"]
}
}
}Localização do arquivo de config:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Adicione ao .cursor/mcp.json do projeto:
{
"mcpServers": {
"siga": {
"command": "node",
"args": ["./src/infrastructure/server.js"]
}
}
}| Tool | Descrição |
|---|---|
authenticate |
Abre o browser para login SSO. Sempre chame primeiro. |
check_session |
Verifica se a sessão está ativa e quanto tempo resta. |
get_faltas |
Retorna faltas por disciplina com status de risco. |
get_aulas |
Retorna conteúdo das aulas (filtro por disciplina opcional). |
get_notas |
Retorna notas e médias por disciplina. |
Você: "Quais disciplinas estou em risco de reprovação por falta?"
Agente:
1. check_session → sessão expirada
2. Pede para o usuário autenticar: "Preciso que você faça login. Chamo authenticate."
3. authenticate → browser abre, usuário loga
4. get_faltas → retorna dados
5. Responde com análise das disciplinas em risco
npm test
npm run test:coverageOs parsers em src/adapters/parsers/ usam seletores CSS para extrair dados do HTML do SIGA.
Como o GeneXus pode variar o HTML entre versões, pode ser necessário ajustar os seletores.
Para inspecionar o HTML real, use o DevTools do browser durante o authenticate() e
observe as respostas das requisições POST para app.aspx.