Use this guide if npx canvas-lms-mcp init doesn't support your client yet,
or if you prefer to edit config files by hand.
For the interactive setup wizard, see the Quick Start section.
- Log in to your Canvas instance.
- Go to Account > Settings.
- Scroll to Approved Integrations and click + New Access Token.
- Give it a name (e.g., "MCP Server") and click Generate Token.
- Copy the token immediately — you won't see it again.
Add to your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"canvas-lms": {
"command": "npx",
"args": ["-y", "canvas-lms-mcp"],
"env": {
"CANVAS_API_TOKEN": "your-token-here",
"CANVAS_BASE_URL": "https://your-institution.instructure.com"
}
}
}
}One-click install: Add to Cursor — opens Cursor with canvas-lms-mcp pre-configured (replace placeholder credentials after install).
Or add manually to .cursor/mcp.json in your project or ~/.cursor/mcp.json globally:
{
"mcpServers": {
"canvas-lms": {
"command": "npx",
"args": ["-y", "canvas-lms-mcp"],
"env": {
"CANVAS_API_TOKEN": "your-token-here",
"CANVAS_BASE_URL": "https://your-institution.instructure.com"
}
}
}
}One-click install: Install in VS Code · VS Code Insiders — opens VS Code with canvas-lms-mcp pre-configured (replace placeholder credentials after install).
Or add manually to your VS Code settings (settings.json or mcp.json):
{
"mcp": {
"servers": {
"canvas-lms": {
"command": "npx",
"args": ["-y", "canvas-lms-mcp"],
"env": {
"CANVAS_API_TOKEN": "your-token-here",
"CANVAS_BASE_URL": "https://your-institution.instructure.com"
}
}
}
}
}Or use the one-liner:
code --add-mcp '{"name":"canvas-lms","command":"npx","args":["-y","canvas-lms-mcp"],"env":{"CANVAS_API_TOKEN":"your-token","CANVAS_BASE_URL":"https://school.instructure.com"}}'Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"canvas-lms": {
"command": "npx",
"args": ["-y", "canvas-lms-mcp"],
"env": {
"CANVAS_API_TOKEN": "your-token-here",
"CANVAS_BASE_URL": "https://your-institution.instructure.com"
}
}
}
}Add to ~/.codex/config.toml:
[mcp_servers.canvas-lms]
command = "npx"
args = ["-y", "canvas-lms-mcp"]
[mcp_servers.canvas-lms.env]
CANVAS_API_TOKEN = "your-token-here"
CANVAS_BASE_URL = "https://your-institution.instructure.com"Or use the one-liner:
codex mcp add canvas-lms -- npx canvas-lms-mcpAdd to ~/.continue/config.json:
{
"mcpServers": {
"canvas-lms": {
"command": "npx",
"args": ["-y", "canvas-lms-mcp"],
"env": {
"CANVAS_API_TOKEN": "your-token-here",
"CANVAS_BASE_URL": "https://your-institution.instructure.com"
}
}
}
}claude mcp add canvas-lms --env CANVAS_API_TOKEN=your-token --env CANVAS_BASE_URL=https://school.instructure.com -- npx -y canvas-lms-mcpOr add to ~/.claude.json under mcpServers:
{
"mcpServers": {
"canvas-lms": {
"command": "npx",
"args": ["-y", "canvas-lms-mcp"],
"env": {
"CANVAS_API_TOKEN": "your-token-here",
"CANVAS_BASE_URL": "https://your-institution.instructure.com"
}
}
}
}gemini mcp add canvas-lms npx canvas-lms-mcpRun the server in HTTP mode, then point your client at the endpoint:
npx canvas-lms-mcp serve --port 3001 \
--token your-token-here \
--base-url https://your-institution.instructure.comThe MCP endpoint is http://localhost:3001/mcp. Per-request credentials can
be passed via X-Canvas-Token and X-Canvas-Base-URL headers.