Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPorta HTTP para o modo remoto. Padrão é 3000.3000
SIGAA_MCP_DOWNLOAD_DIRNoDiretório onde arquivos baixados são salvos. Padrão é ./downloads relativo ao diretório de início do processo../downloads
SIGAA_MCP_REMOTE_TOKENNoToken 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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 12 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues