Canvas MCP Server
by enkhbold470
A Model Context Protocol (MCP) server implementation for the Canvas LMS API. This server provides functionality to interact with Canvas LMS programmatically.
View on GitHub
Last updated: N/A
Canvas MCP Server
A Model Context Protocol (MCP) server implementation for the Canvas LMS API. This server provides functionality to interact with Canvas LMS programmatically.
Features
- List courses from Canvas LMS with optional enrollment type filtering
- Interactive help prompts for using the tools
Prerequisites
- Node.js 18 or later
- A Canvas LMS instance
- Canvas API access token
- Cursor (for client integration)
Setup
- Clone this repository
- Install dependencies:
npm install
- Set up environment variables:
export CANVAS_BASE_URL="https://your-canvas-instance.com" export CANVAS_ACCESS_TOKEN="your-api-token"
- Build the project:
npm run build
- Start the server:
npm start
Connecting with Cursor
To use this MCP server with Cursor:
- Open Cursor's settings
- Navigate to the MCP configuration section
- Add a new server configuration:
{ "mcpServers": { "canvas": { "command": "npm", "args": [ "start" ], "cwd": "/path/to/mcp-server-canvas" } } }
- Save the configuration and restart Cursor
- The Canvas tools will now be available in Cursor's MCP tools panel
Available Tools
list_courses
Lists all courses from Canvas LMS.
Parameters:
enrollment_type
(optional): Filter courses by enrollment type (teacher, student, ta)
Example response:
{
"content": [
{
"type": "text",
"text": [
{
"id": 1234,
"name": "Example Course",
"code": "EX101",
"state": "available",
"startDate": "2024-01-01T00:00:00Z",
"endDate": "2024-12-31T23:59:59Z"
}
]
}
]
}
list-courses-help
An interactive prompt that provides help with using the list_courses tool.
Development
The server is built using TypeScript and the MCP SDK. To add new features:
- Add new API methods to the
CanvasAPI
class - Register new tools using
server.tool()
- Register help prompts using
server.prompt()
- Build and test your changes
Troubleshooting
If you encounter issues:
- Check that environment variables are set correctly
- Verify your Canvas API token has the necessary permissions
- Check Cursor's MCP server logs for any error messages
- Ensure the server path in Cursor's configuration is correct
License
MIT