list_coursesLABSCO SUMMARY
One call, and the course list stops being a browser tab.
This is a narrow server and does not pretend otherwise: it lists courses, filtered by enrollment type, and nothing else. That is enough to be worth having if the thing you keep going back to Canvas for is which course a code refers to and when its term runs.
What it is
A single-purpose server over the Canvas LMS API. One tool answers one question — which courses this token reaches — and it takes an optional enrollment type so the answer can be narrowed to teacher, student or TA. Each course comes back with its id, name, code, state and start and end dates.
What you get
- Every course the access token can see, listed
- The same list narrowed to one enrollment type — teacher, student or TA
- Per course: id, name, course code, state, and start and end dates
Requirements
Node.js 18 or later, a Canvas LMS instance, and two values in the environment: the address of that instance, and an access token for the account whose courses you want.
Setup effort
Build from source — git clone https://github.com/enkhbold470/mcp-server-canvas
USE CASES
Seeing what you are teaching this term
Narrow the list to teacher enrollments and the answer is your own course load with its start and end dates, rather than everything the account has ever touched.
Getting a student's own course list into a plan
Filter to student enrollments so the assistant planning a study schedule is working from the courses actually enrolled in, with the term dates that bound them.
Turning a course code into an id
Canvas API work and gradebook exports address courses by id, not by the code humans use. One call gives you the mapping between them.
1 tool
Listed in project docs. Your client may show a different list.
BEFORE YOU INSTALL
What to know first
Tools you get
1 tool named in the project's documentation.
Requires
- npm on PATH
- Node.js 18 or later
- A Canvas LMS instance — its address goes in CANVAS_BASE_URL
- CANVAS_ACCESS_TOKEN in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/enkhbold470/mcp-server-canvas
cd mcp-server-canvas
npm install
npm run buildAdd the block below to Cursor (Settings → MCP → add a new server), with cwd set to your clone and your own Canvas address and access token, then restart Cursor
MCP Clients
Cursor
{
"mcpServers": {
"canvas": {
"command": "npm",
"args": [
"start"
],
"cwd": "<YOUR_PATH_TO_MCP_SERVER_CANVAS>",
"env": {
"CANVAS_BASE_URL": "<YOUR_CANVAS_BASE_URL>",
"CANVAS_ACCESS_TOKEN": "<YOUR_CANVAS_ACCESS_TOKEN>"
}
}
}
}<YOUR_PATH_TO_MCP_SERVER_CANVAS> is the full path to your clone, and <YOUR_CANVAS_BASE_URL> is your Canvas LMS address.