cds
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
cds-tools
Projeto pessoal enão oficial, sem vínculo com a Unipê, a Cruzeiro do Sul Educacional ou a Blackboard. Somente leitura: nunca abre avaliações nem envia nada. Use com moderação e segundo as regras da sua conta. Veja Privacidade e segurança.
CLI e servidor MCP para o Blackboard Ultra da Cruzeiro do Sul / Unipê
(bb.cruzeirodosulvirtual.com.br). Seu agente de IA (Claude Code, Claude Desktop, Cursor,
Codex...) passa a consultar avisos, prazos, notas e material das suas disciplinas, baixar o
material para uma pasta de estudos e escrever resumos.
Nenhuma senha é armazenada: o login é feito no navegador, pela conta Microsoft da instituição.
Instalação
1. Instale o uv (uma vez só):
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh2. Instale o cds-tools:
uv tool install git+https://github.com/Eduardozsw/cds-tools3. Rode o assistente:
cds-tools initEle abre o navegador para o login, sincroniza suas disciplinas, baixa o material para
~/faculdade e registra o MCP no Claude Code (se ele estiver instalado). Também mostra o
bloco de configuração para outros agentes.
Para atualizar: uv tool upgrade cds-tools.
O login usa o Edge instalado. Sem Edge (comum no Linux), rode cds-tools install-browser e
defina BB_BROWSER_CHANNEL="".
Related MCP server: blackboard-mcp
Outros agentes
Qualquer cliente MCP com servidores locais (stdio) funciona. A configuração não depende de pasta nenhuma:
{
"mcpServers": {
"cds": { "command": "cds-tools" }
}
}Claude Code: claude mcp add --scope user cds -- cds-tools.
Agentes só na web (ChatGPT, claude.ai) não conseguem rodar servidores locais.
Tools
Tool | O que faz |
| Abre o navegador para (re)login |
| Usuário logado |
| Disciplinas, das mais recentes para as mais antigas |
| Conteúdo da disciplina ou de uma pasta |
| Texto, anexos e filhos de um item |
| Baixa um anexo para |
| Calendário dos próximos N dias |
| Notas da disciplina |
| Avisos da disciplina |
| Extrai IDs de uma URL do Ultra |
| Atualiza o banco local |
| O que mudou desde a última consulta |
| Prazos como calendário |
| Baixa o material para a pasta de estudos |
| Materiais e resumos da pasta de estudos |
| Texto de um material (PDF, .md, .txt) |
| Grava um resumo em |
Pasta de estudos: ~/faculdade/<período>/<matéria>/{materiais,resumos}.
CLI
cds-tools init # login + sync + estado inicial + material + MCP
cds-tools login # refazer o login
cds-tools sync [--materials] # atualiza o banco local
cds-tools deadlines [--course ED] # prazos futuros (offline)
cds-tools grades [--course ED] # notas (offline)
cds-tools news --unread --mark-seen
cds-tools ics --out prazos.ics # prazos para Google Agenda / Outlook / celular
cds-tools watch --once --notify # o que mudou desde a última vez
cds-tools watch --once --jsonl --fail-on-error # para scriptsSem comando (ou com serve), sobe o servidor MCP.
watch emite eventos news, deadline, grade, material (status new/changed) e error.
Cada item é lembrado por id + impressão digital dos campos relevantes, então nada se repete.
Disciplinas que respondem 403 para alunos aparecem em restricted e não contam como falha.
No modo contínuo, o intervalo padrão é 2 h e o mínimo é 30 min.
Agendar no Windows (a cada 2 h, com notificação):
schtasks /Create /SC HOURLY /MO 2 /TN "CDS Tools watch" /TR "cds-tools watch --once --notify"macOS/Linux (cron): 0 */2 * * * $HOME/.local/bin/cds-tools watch --once --jsonl --fail-on-error
Como funciona
loginabre o navegador com um perfil dedicado (~/.cds-tools/profile) direto na entrada SAML do Blackboard (/auth-saml/saml/login), que autentica pela conta Microsoft institucional.Quando
/learn/api/public/v1/users/meresponde 200 (consultado de dentro da aba, com URL absoluta, porque o Ultra usa<base>apontando pro CDN), os cookies são exportados para~/.cds-tools/state.json. A navegação do login fica em~/.cds-tools/login-trace.log(sem valores de cookie nem query strings).As tools usam esses cookies via
httpxnas APIs REST que o próprio Ultra consome, e só nos caminhos deALLOWED_PATHS(src/cds_tools/client.py).Se a sessão expirar, o cliente tenta renová-la em modo headless (o SSO costuma lembrar do login). Se não conseguir, pede um novo
login.
Variáveis de ambiente
BB_BASE_URL, BB_DATA_DIR, BB_DB, BB_DOWNLOAD_DIR, BB_STUDY_DIR, BB_BROWSER_CHANNEL,
BB_LOGIN_TIMEOUT.
Desenvolvimento
git clone https://github.com/Eduardozsw/cds-tools
cd cds-tools
uv sync
uv run pytest # offline, com respostas da API em tests/fixtures
uv run ruff check .Fixtures novas devem ser respostas reais anonimizadas: sem nomes, e-mails, matrículas ou IDs de usuário. Se a API mudar de formato, o cliente deve dar erro, nunca devolver lista vazia.
Inspirado no sigaa-tools.
Licença
MIT. Veja LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Public read-only MCP access to digital learning concepts, semantic relationships, and citations.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Search university course materials, your flashcards, quizzes, streak and quota. All tools read-only.
AI-powered reading triage MCP. 26 tools with a 24h burn timer. Read less, absorb more.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI assistants to read a student's own Blackboard (Ultra) data—courses, assignments, grades, announcements, and attachments—through their existing logged-in browser session, read-only and locally.1036 npm8MIT
- AlicenseAqualityBmaintenanceGives Claude, Codex, Cursor and any other MCP client read access to your courses, content, files, grades, deadlines, announcements and discussions, using your own browser session.3136 npm2MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to read Moodle course information, list courses, outlines, resources, assignments, and deadlines, and download or extract text from course files locally via an MCP-compatible client.MIT
- AlicenseAqualityBmaintenanceEnables AI tools to read course materials, links, and deadlines from a student's university learning platform, and to download lecture slides into course folders for SlideMate and other MCP clients.82MIT