sigaa-ufrpe
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Porta HTTP para o modo remoto. Padrão é 3000. | 3000 |
| SIGAA_MCP_DOWNLOAD_DIR | No | Diretório onde arquivos baixados são salvos. Padrão é ./downloads relativo ao diretório de início do processo. | ./downloads |
| SIGAA_MCP_REMOTE_TOKEN | No | Token de acesso para o modo remoto HTTP (`Authorization: Bearer <token>`). Obrigatório para iniciar o entrypoint remoto (`dist/remote.js`). Gere com `openssl rand -hex 32`. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sigaa_loginA | Autentica no SIGAA UFRPE com usuário e senha, lidando com o eventual interstitial 'Aviso de Logon'. A sessão (JSESSIONID/ViewState) fica guardada em memória neste servidor MCP e é reaproveitada automaticamente pelas demais tools — não é preciso repassar tokens manualmente. |
| sigaa_get_htmlA | Busca uma URL sob sigs.ufrpe.br usando a sessão SIGAA atual (se houver) e devolve o HTML bruto da resposta, sem nenhum parsing — inclusive páginas de erro/sessão expirada, para inspeção. Use 'sigaa_login' antes se a página exigir autenticação. |
| sigaa_raw_requestA | Monta e envia uma requisição HTTP arbitrária (method + url + campos de formulário) contra qualquer URL sob sigs.ufrpe.br, anexando automaticamente o cookie JSESSIONID da sessão atual. Use para reproduzir uma ação JSF descoberta ao inspecionar o HTML (ex.: um 'jscook_action' ou 'jsfcljs' visto num atributo onclick) quando não existe uma tool dedicada para essa ação. Devolve o HTML bruto da resposta e, se encontrado, o novo javax.faces.ViewState — atualize seu próximo formFields com esse valor quando a página exigir ViewState. |
| sigaa_download_fileA | Monta e dispara uma requisição (method + url + campos de formulário) contra sigs.ufrpe.br esperando um arquivo binário como resposta (PDF, anexo de cronograma, etc.) em vez de HTML. Detecta e rejeita páginas de erro/sessão expirada disfarçadas de arquivo (redirect ou Content-Type text/html). Salva o arquivo em disco e devolve o caminho — generaliza os fluxos de download hoje hardcoded na API Go (anexos de cronograma, histórico/vínculo em PDF) para qualquer ação de download do SIGAA. |
| sigaa_main_dataA | Ponto de entrada depois do login: nome, matrícula, turmas do semestre (resumidas, sem cronograma/notícia/faltas — use sigaa_get_turma para detalhar cada uma), índices acadêmicos e carga horária pendente. |
| sigaa_get_turmaA | Enriquece uma turma (obtida via sigaa_main_data) com cronograma, notícia e total de faltas. Envie o objeto 'turma' de volta sem alterar os campos 'nome'/'info' — eles são usados para navegar até a turma virtual correta, e a resposta é validada para nunca devolver dados de uma turma diferente da pedida. |
| sigaa_get_notasA | Notas do semestre atual e de semestres anteriores. Requer um ViewState válido — chame 'sigaa_main_data' antes se ainda não tiver um. |
| sigaa_get_curriculoA | Lista os componentes curriculares (obrigatórios, optativos, complementares) do curso do aluno, organizados por semestre. Use 'componentes[].id' + 'estruturaCurricular.codigo' para chamar 'sigaa_get_componente' em seguida. |
| sigaa_get_componenteA | Ementa, tipo, modalidade, carga horária, pré-requisitos e equivalências de um componente curricular específico. 'idComponente' e 'curriculo' vêm de 'sigaa_get_curriculo' (componentes[].id e estruturaCurricular.codigo, respectivamente). |
| sigaa_get_matriculaA | Período letivo, vínculo, curso e turmas matriculadas no semestre, extraídos do atestado de matrícula do SIGAA. Requer um ViewState válido — chame 'sigaa_main_data' antes se ainda não tiver um. |
| sigaa_get_historico_pdfA | Baixa o histórico escolar do aluno em PDF e salva em disco. Requer um ViewState válido — chame 'sigaa_main_data' antes se ainda não tiver um. |
| sigaa_get_vinculo_pdfA | Baixa a declaração de vínculo do aluno em PDF e salva em disco. Requer um ViewState válido — chame 'sigaa_main_data' antes se ainda não tiver um. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Most tools map to distinct resources and actions, with explicit cross-references like main_data -> get_turma and curriculo -> componente. The closest overlap is sigaa_get_html vs sigaa_raw_request, and sigaa_download_file vs the specific PDF tools, but the descriptions delineate their use cases well enough.
The dominant pattern is sigaa_get_<resource>, and all names consistently use snake_case with the sigaa_ prefix. However, sigaa_login, sigaa_main_data, and sigaa_raw_request deviate from the verb_noun pattern, so consistency is good but not perfect.
12 tools is squarely within the ideal 3-15 range for a student portal integration. Each tool covers a meaningful action or retrieval, and the generic fallbacks like sigaa_raw_request and sigaa_download_file do not feel like padding.
The set covers authentication, main dashboard data, grades, class details, curriculum, component details, enrollment, and PDF document downloads, which is solid for a read-only academic portal. A dedicated logout/session reset is absent, but the generic raw_request and download_file tools mitigate many potential gaps.