A side-by-side look at the Canvas API MCP and Canvas Parent MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Canvas API MCP for education work as a local process; choose Canvas Parent MCP for education as a local process. You can also run both side by side in one mcpServers block.
CANVAS_BASE_URL, CANVAS_TOKEN.whoami, get_calendar_feed_url, my_courses.CANVAS_BASE_URL, CANVAS_TOKEN, CANVAS_CLIENT_ID, CANVAS_CLIENT_SECRET, CANVAS_REFRESH_TOKEN, CANVAS_USERNAME, CANVAS_PASSWORD, CANVAS_DISABLE_FETCHPROXY.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Education | Education |
| Quality signal | 49/100 · Fair | 40/100 · Fair |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | CANVAS_BASE_URLCANVAS_TOKEN | CANVAS_BASE_URLCANVAS_TOKENCANVAS_CLIENT_IDCANVAS_CLIENT_SECRETCANVAS_REFRESH_TOKENCANVAS_USERNAMECANVAS_PASSWORDCANVAS_DISABLE_FETCHPROXY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 3 | 0 |
| Directory activity | 0 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 16 | Not listed |
| Full listing | View Canvas API MCP | View Canvas Parent MCP |
whoamiIdentity and your role in each courseget_calendar_feed_urlYour private calendar `.ics` link (only when you ask for it)my_coursesActive courses with code, term, rolewhats_dueEverything due, soonest firstmy_gradesCurrent score per courselist_assignmentsA course's assignments and submission stateget_assignmentOne assignment in full, with rubricmy_submissionYour submission, score, and feedbackcourse_announcementsRecent announcementscourse_contentModules and their contentslist_filesFiles in a courseread_fileExtract text from PDF/DOCX/PPTX/textNo tool names declared yet. Check the project README from the listing page.
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"canvas-api-mcp": {
"command": "uvx",
"args": [
"canvas-api-mcp"
],
"env": {
"CANVAS_BASE_URL": "YOUR_CANVAS_BASE_URL_HERE",
"CANVAS_TOKEN": "YOUR_CANVAS_TOKEN_HERE"
}
}
}
}
{
"mcpServers": {
"canvas-parent-mcp": {
"command": "npx",
"args": [
"-y",
"canvas-parent-mcp-qr-login"
],
"env": {
"CANVAS_BASE_URL": "YOUR_CANVAS_BASE_URL_HERE",
"CANVAS_TOKEN": "YOUR_CANVAS_TOKEN_HERE",
"CANVAS_CLIENT_ID": "YOUR_CANVAS_CLIENT_ID_HERE",
"CANVAS_CLIENT_SECRET": "YOUR_CANVAS_CLIENT_SECRET_HERE",
"CANVAS_REFRESH_TOKEN": "YOUR_CANVAS_REFRESH_TOKEN_HERE",
"CANVAS_USERNAME": "YOUR_CANVAS_USERNAME_HERE",
"CANVAS_PASSWORD": "YOUR_CANVAS_PASSWORD_HERE",
"CANVAS_DISABLE_FETCHPROXY": "YOUR_CANVAS_DISABLE_FETCHPROXY_HERE"
}
}
}
}