Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A Model Context Protocol (MCP) server for managing Canvas courses, assignments, enrollments, and grades via the Canvas API.
A Model Context Protocol (MCP) server for interacting with the Canvas API. This server allows you to manage courses, assignments, enrollments, and grades within Canvas.
canvas.instructure.com
Clone the Repository
git clone https://github.com/yourusername/canvas-mcp-server.git cd canvas-mcp-server
2. **Install Dependencies**
```shell
npm install
Configure Environment Variables
Copy the example environment file:
cp .env.example .env
Edit `.env` and replace the placeholder values with your actual Canvas API token and domain.
Build the Project
```shell
npm run build
Run the Server
npm start
The server will start and listen for MCP requests via stdio.
### Connecting to Claude Desktop
1. **Update Claude Configuration**
Add the MCP server configuration to your `claude_desktop_config.json`:
```json
"canvas-mcp-server": {
"command": "npx",
"args": ["-y", "canvas-mcp-server"]
},
Restart Claude Desktop
Quit Claude Desktop completely. Start Claude Desktop again. Navigate to the 🔌 menu to find and connect your Canvas MCP server.
canvas_create_course
: Create a new course in Canvas.canvas_update_course
: Update an existing course in Canvas.canvas_create_assignment
: Create a new assignment in a Canvas course.canvas_update_assignment
: Update an existing assignment.canvas_submit_grade
: Submit a grade for a student's assignment.canvas_enroll_user
: Enroll a user in a course.Tools return error messages with isError: true
to indicate issues.
Ensure all required environment variables are set to avoid runtime errors.
Build Errors:
Check TypeScript version: npx tsc --version
Clean and rebuild: rm -rf build/ && npm run build
Runtime Errors:
Check logs for detailed error messages. Ensure environment variables are correctly set.
Type Errors:
Validate types using TypeScript's type checking: npx tsc --noEmit
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is licensed under the MIT License.
types.ts
file ensures that all interactions with the Canvas API are type-safe, reducing runtime errors and improving code maintainability.isError
flag, allowing the client (e.g., Claude Desktop) to understand and react appropriately.types.ts
, client.ts
, index.ts
) makes the codebase easier to navigate and maintain.Feel free to adjust the file paths and configurations according to your project's specific needs. Let me know if you need further assistance!