Canvas LMS
Conecta ferramentas de IA aos painéis escolares do Canvas.
Documentação
Canvas API MCP Server
Conecte o Claude ao seu Canvas LMS. Faça perguntas naturais como "Quais tarefas tenho para entregar esta semana?" ou "Qual é a minha nota atual em Biologia?" e obtenha respostas reais diretamente da sua conta Canvas.
Funciona com Claude Desktop e Claude Code (a CLI).
Instalação Rápida
Requisitos: Node.js 18+, Git e um token de acesso pessoal do Canvas (como obter um)
git clone https://github.com/Kdude43ver/Canvas-API-MCP.git
cd Canvas-API-MCP
bash install.sh
O script de instalação irá:
- Instalar dependências e compilar o projeto
- Perguntar pela sua URL do Canvas e token da API
- Adicionar o servidor ao Claude Code e/ou Claude Desktop automaticamente
Configuração Manual
1. Obtenha seu token da API do Canvas
- Faça login na sua instância do Canvas (ex.:
https://yourschool.instructure.com) - Clique na sua foto de perfil → Account → Settings
- Role até Approved Integrations
- Clique em + New Access Token
- Dê um nome (ex.:
Claude MCP) e clique em Generate Token - Copie o token agora — o Canvas nunca o exibirá novamente
2. Clone e compile
git clone https://github.com/Kdude43ver/Canvas-API-MCP.git
cd Canvas-API-MCP
npm install
npm run build
3. Crie seu arquivo .env
cp .env.example .env
Edite .env:
CANVAS_TOKEN=your_token_here
CANVAS_BASE_URL=https://yourschool.instructure.com
4. Adicione ao Claude Code
claude mcp add canvas \
-e CANVAS_TOKEN=your_token_here \
-e CANVAS_BASE_URL=https://yourschool.instructure.com \
-- node /absolute/path/to/Canvas-API-MCP/dist/index.js
Substitua /absolute/path/to/Canvas-API-MCP pelo caminho real (execute pwd dentro do repositório para obtê-lo).
5. Adicione ao Claude Desktop
Edite ~/.config/claude/claude_desktop_config.json no Linux/Mac, ou %APPDATA%\Claude\claude_desktop_config.json no Windows. Crie o arquivo se ele não existir.
{
"mcpServers": {
"canvas": {
"command": "node",
"args": ["/absolute/path/to/Canvas-API-MCP/dist/index.js"],
"env": {
"CANVAS_TOKEN": "your_token_here",
"CANVAS_BASE_URL": "https://yourschool.instructure.com"
}
}
}
}
Reinicie o Claude Desktop após salvar. Você deve ver um ícone de martelo na interface de chat indicando que as ferramentas estão disponíveis.
Ferramentas Disponíveis
| Ferramenta | O que faz |
|---|---|
list_courses | Lista todos os seus cursos ativos |
get_course | Detalhes completos de um curso (incluindo ementa) |
list_assignments | Todas as tarefas de um curso com datas de entrega e valores de pontos |
get_assignment | Detalhes completos da tarefa, incluindo descrição |
list_upcoming_assignments | Tarefas com vencimento nos próximos N dias em todos os seus cursos |
get_grades | Sua nota atual e final de um curso |
list_submissions | Status de envio de cada tarefa em um curso |
list_announcements | Anúncios recentes de um curso |
list_discussions | Tópicos de discussão de um curso |
list_calendar_events | Próximos eventos e datas de vencimento em um intervalo de datas |
list_files | Arquivos disponíveis em um curso com links de download |
Exemplos de Prompts
Depois de instalado, tente perguntar ao Claude:
- "Quais tarefas tenho para entregar nos próximos 3 dias?"
- "Liste todos os meus cursos deste semestre."
- "Qual é a minha nota atual em cada disciplina?"
- "Há algum anúncio na minha turma de Ciência da Computação?"
- "Mostre os tópicos de discussão do curso 12345."
- "Quais arquivos estão disponíveis no meu curso de Biologia?"
- "O que há na minha agenda esta semana?"
Verificando se Funciona (MCP Inspector)
Antes de adicionar ao Claude, você pode testar o servidor diretamente:
npx @modelcontextprotocol/inspector node dist/index.js
Defina CANVAS_TOKEN e CANVAS_BASE_URL na seção Environment Variables do inspector e chame list_courses para confirmar que você recebe dados reais de volta.
Solução de Problemas
"Nenhum curso encontrado" ou resultados vazios
- Verifique novamente seu
CANVAS_BASE_URL— deve ser a URL do Canvas da sua escola, nãocanvas.instructure.com - Certifique-se de que seu token foi copiado corretamente (sem espaços extras)
- Tente gerar um novo token
O Claude Desktop não mostra as ferramentas do Canvas
- Confirme que o caminho em
claude_desktop_config.jsoné o caminho absoluto paradist/index.js - Certifique-se de que você executou
npm run builde quedist/index.jsexiste - Reinicie o Claude Desktop completamente (saia pela bandeja do sistema, não apenas feche a janela)
O Claude Code não consegue encontrar o servidor
- Execute
claude mcp listpara ver os servidores registrados - Execute
claude mcp remove canvase adicione novamente se algo parecer errado
Erros 403 do Canvas
- Seu token pode ter expirado — gere um novo nas Configurações do Canvas
- Algumas instâncias do Canvas restringem o acesso à API; entre em contato com o departamento de TI da sua escola
Segurança
- Seu token do Canvas é armazenado apenas no seu arquivo local
.env(que é ignorado pelo git) e/ou nos seus arquivos de configuração locais do Claude - O token dá acesso de leitura a tudo que sua conta Canvas pode ver — trate-o como uma senha
- Para revogar o acesso: vá em Canvas → Account → Settings → Approved Integrations → exclua o token
- Nunca compartilhe seu arquivo
.envnem o envie para o controle de versão
Desenvolvimento
# Install deps
npm install
# Build (uses esbuild, outputs to dist/)
npm run build
# Run directly (requires .env file)
node dist/index.js
# Dev mode with ts-node
npm run dev
O código-fonte está organizado como:
src/
├── index.ts # Entry point — loads env, starts server
├── server.ts # McpServer setup, registers all tools
├── canvas-client.ts # Axios wrapper: auth headers, pagination, rate-limit backoff
└── tools/
├── courses.ts # list_courses, get_course
├── assignments.ts # list_assignments, get_assignment, list_upcoming_assignments
├── grades.ts # get_grades, list_submissions
├── announcements.ts # list_announcements
├── discussions.ts # list_discussions
├── calendar.ts # list_calendar_events
└── files.ts # list_files