Canvas MCP Server
A Model Context Protocol server that enables interaction with the Canvas Learning Management System API, allowing users to manage courses, assignments, enrollments, and grades within Canvas.
DMontgomery40
README
Canvas MCP Server
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.
Prerequisites
- Node.js: Version 18 or higher
- Canvas API Token: Obtain from your Canvas account
- Canvas Domain: Typically
canvas.instructure.com
Setup
-
Clone the Repository
git clone https://github.com/yourusername/canvas-mcp-server.git cd canvas-mcp-server
-
Install Dependencies
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
npm run build
-
Run the Server
npm start
The server will start and listen for MCP requests via stdio.
Connecting to Claude Desktop
-
Update Claude Configuration
Add the MCP server configuration to your claude_desktop_config.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.
Available Tools (more student focused stuff coming soon)
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.
Error Handling
Tools return error messages with isError: true to indicate issues. Ensure all required environment variables are set to avoid runtime errors.
Troubleshooting
- 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
Contributing
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
License
This project is licensed under the MIT License.
Additional Notes
-
Type Safety: The
types.ts
file ensures that all interactions with the Canvas API are type-safe, reducing runtime errors and improving code maintainability. -
Error Handling: The server gracefully handles errors by returning meaningful messages with the
isError
flag, allowing the client (e.g., Claude Desktop) to understand and react appropriately. -
Environment Variables: Sensitive information like API tokens are managed through environment variables, enhancing security and flexibility across different environments.
-
Modularity: Separating concerns into different files (
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!
Recommended Servers
PeakMojo Server
A Python server implementation that enables integration with the PeakMojo API, providing access to various resources like users, personas, scenarios, and tools for managing PeakMojo functionality.

MCP-AnkiConnect
An MCP server that integrates Claude with Anki flashcards, allowing users to review due cards and create new flashcards directly through conversation.
Mathematica Documentation MCP server
A server that provides access to Mathematica documentation through FastMCP, enabling users to retrieve function documentation and list package symbols from Wolfram Mathematica.
Anki MCP Server
A Model Context Protocol server that enables LLMs to interact with Anki flashcard software through AnkiConnect, allowing for creation and management of flashcards, decks, and note types.

Canvas MCP Server
A local server that enables interaction with Canvas Learning Management System API through Claude Desktop, allowing users to manage courses, access assignments, view announcements, and retrieve course materials.
Anki MCP Server
A TypeScript-based server that integrates with Anki via the AnkiConnect plugin, allowing you to manage flashcard decks, note models, and create Anki notes using natural language.
Clanki
An MCP server that enables AI assistants like Claude to interact with Anki flashcard decks, allowing users to create, manage, and update flashcards through natural language conversations.
Anki MCP Server
A server implementation that connects to a locally running Anki, enabling card review and creation through the Model Context Protocol.
Coding Standards MCP Server
Provides tools for accessing coding style guidelines and best practices for various technologies including Java, Python, and React.
Gauntlet-Incept MCP
Enables Claude Desktop to interact with the Gauntlet Incept system for generating, tagging, and grading educational content for K-8 students directly through natural language.