Canvas MCP Server logo

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

What is Canvas MCP Server?

This is a Model Context Protocol (MCP) server designed to interact with the Canvas LMS API. It allows users to programmatically access and manage Canvas LMS data through MCP tools.

How to use Canvas MCP Server?

To use this server, you need to clone the repository, install dependencies, set up environment variables with your Canvas LMS URL and API token, build the project, and start the server. Then, configure your MCP client (like Cursor) to connect to the server.

Key features of Canvas MCP Server

  • Lists courses from Canvas LMS

  • Filters courses by enrollment type

  • Provides interactive help prompts

  • Built with TypeScript and the MCP SDK

Use cases of Canvas MCP Server

  • Automating Canvas LMS tasks

  • Integrating Canvas LMS data with other applications

  • Creating custom tools for Canvas LMS users

  • Programmatically managing course information

FAQ from Canvas MCP Server

What are the prerequisites for running this server?

You need Node.js 18 or later, a Canvas LMS instance, a Canvas API access token, and Cursor (for client integration).

How do I set up the environment variables?

You need to set the CANVAS_BASE_URL and CANVAS_ACCESS_TOKEN environment variables with your Canvas LMS URL and API token respectively.

How do I connect this server to Cursor?

You need to configure Cursor's MCP settings with the server's command, arguments, and working directory.

What if I 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, and ensure the server path in Cursor's configuration is correct.

How do I add new features?

Add new API methods to the CanvasAPI class, register new tools using server.tool(), register help prompts using server.prompt(), and then build and test your changes.