Canvas MCP Server

Canvas MCP Server

一个模型上下文协议服务器,可以与 Canvas 学习管理系统 API 交互,允许用户在 Canvas 中管理课程、作业、注册和成绩。

教育和学习工具
访问服务器

README

Canvas MCP 服务器

一个用于与 Canvas API 交互的模型上下文协议 (MCP) 服务器。 此服务器允许您管理 Canvas 中的课程、作业、注册和成绩。

前提条件

  • Node.js: 18 或更高版本
  • Canvas API 令牌: 从您的 Canvas 帐户获取
  • Canvas 域名: 通常为 canvas.instructure.com

设置

  1. 克隆存储库

    git clone https://github.com/yourusername/canvas-mcp-server.git
    cd canvas-mcp-server
    
    
  2. 安装依赖

    npm install
    
  3. 配置环境变量

复制示例环境变量文件:

cp .env.example .env

编辑 .env 并将占位符值替换为您的实际 Canvas API 令牌和域名。

构建项目

npm run build
  1. 运行服务器

    npm start
    

    服务器将启动并通过 stdio 监听 MCP 请求。

连接到 Claude Desktop

  1. 更新 Claude 配置

    将 MCP 服务器配置添加到您的 claude_desktop_config.json:

  "canvas-mcp-server": {
      "command": "npx",
      "args": ["-y", "canvas-mcp-server"]
    },

重启 Claude Desktop

完全退出 Claude Desktop。 再次启动 Claude Desktop。 导航到 🔌 菜单以查找并连接您的 Canvas MCP 服务器。

可用工具(更多以学生为中心的功能即将推出)

  • canvas_create_course: 在 Canvas 中创建一个新课程。
  • canvas_update_course: 更新 Canvas 中现有的课程。
  • canvas_create_assignment: 在 Canvas 课程中创建一个新作业。
  • canvas_update_assignment: 更新现有作业。
  • canvas_submit_grade: 提交学生作业的成绩。
  • canvas_enroll_user: 将用户注册到课程中。

错误处理

工具返回带有 isError: true 的错误消息,以指示问题。 确保设置所有必需的环境变量,以避免运行时错误。

故障排除

  • 构建错误:

检查 TypeScript 版本:npx tsc --version 清理并重新构建:rm -rf build/ && npm run build

  • 运行时错误:

    检查日志以获取详细的错误消息。 确保正确设置了环境变量。

  • 类型错误:

    使用 TypeScript 的类型检查验证类型:npx tsc --noEmit

贡献

欢迎贡献! 请打开一个 issue 或提交一个 pull request 以进行任何改进或错误修复。

许可证

本项目根据 MIT 许可证获得许可。


补充说明

  • 类型安全: types.ts 文件确保与 Canvas API 的所有交互都是类型安全的,从而减少运行时错误并提高代码可维护性。

  • 错误处理: 服务器通过返回带有 isError 标志的有意义的消息来优雅地处理错误,从而允许客户端(例如,Claude Desktop)理解并做出适当的反应。

  • 环境变量: 敏感信息(如 API 令牌)通过环境变量进行管理,从而增强了跨不同环境的安全性和灵活性。

  • 模块化: 将关注点分离到不同的文件(types.tsclient.tsindex.ts)使代码库更易于导航和维护。

请根据您项目的具体需求调整文件路径和配置。 如果您需要进一步的帮助,请告诉我!

推荐服务器

PeakMojo Server

PeakMojo Server

一个 Python 服务器实现,用于集成 PeakMojo API,提供对各种资源(如用户、角色、场景和工具)的访问,以便管理 PeakMojo 功能。

官方
Python
MCP-AnkiConnect

MCP-AnkiConnect

一个 MCP 服务器,集成了 Claude 和 Anki 抽认卡,允许用户直接通过对话复习到期卡片并创建新的抽认卡。 (Alternatively, a slightly more formal translation:) 一个 MCP 服务器,整合了 Claude 与 Anki 闪卡功能,使用户能够通过对话直接复习待复习的卡片并创建新的闪卡。 **Explanation of Choices:** * **MCP Server:** I kept this as "MCP 服务器" as it's likely a specific technical term that's best left untranslated unless more context is provided. * **Claude:** Left as "Claude" as it's a proper noun (the name of the AI). * **Anki flashcards:** Translated as "Anki 抽认卡" (chōu rèn kǎ) or "Anki 闪卡" (shǎn kǎ). Both are common translations for "flashcards" in the context of Anki. "抽认卡" is slightly more formal. * **Review due cards:** Translated as "复习到期卡片" (fùxí dàoqí kǎpiàn) or "复习待复习的卡片" (fùxí dài fùxí de kǎpiàn). Both convey the meaning of reviewing cards that are due for review. The second option is slightly more explicit. * **Create new flashcards:** Translated as "创建新的抽认卡" (chuàngjiàn xīnde chōu rèn kǎ) or "创建新的闪卡" (chuàngjiàn xīnde shǎn kǎ). * **Directly through conversation:** Translated as "直接通过对话" (zhíjiē tōngguò duìhuà). The choice between the two options depends on the desired level of formality and explicitness.

本地
Python
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
Canvas MCP Server

Canvas MCP Server

一个本地服务器,可以通过 Claude Desktop 与 Canvas 学习管理系统 API 交互,允许用户管理课程、访问作业、查看公告以及检索课程资料。

本地
Python
Anki MCP Server

Anki MCP Server

一个服务器实现,连接到本地运行的 Anki,从而可以通过模型上下文协议进行卡片复习和创建。

本地
JavaScript
Coding Standards MCP Server

Coding Standards MCP Server

提供访问各种技术(包括 Java、Python 和 React)的编码风格指南和最佳实践的工具。

Python
BioMCP

BioMCP

一个模型上下文协议服务器,通过整合蛋白质结构分析能力来增强语言模型,从而能够通过已建立的蛋白质数据库进行详细的活性位点分析和疾病相关蛋白质搜索。

TypeScript
systemprompt-mcp-interview

systemprompt-mcp-interview

一个专门的模型上下文协议(MCP)服务器,它支持人工智能驱动的面试角色扮演场景,以便进行练习并获得真实的对话反馈。

TypeScript