Rust Canvas MCP 可以翻译为“Rust画布MCP”或“Rust画布多客户端程序”(具体翻译可能根据上下文有所调整,MCP在这里可能代表“Multi-Client Program”或类似含义,但具体含义需结合原文上下文确定)。如果MCP在特定领域有固定含义,则应按照该领域的标准翻译
一个高性能的基于Rust的MCP(模型上下文协议)服务器,用于Canvas LMS API集成。
概述
这个项目实现了一个干净、高效的MCP服务器,该服务器与Canvas LMS实现了无缝集成。它解决了Python实现中存在的标准错误(stderr)污染问题,同时提供了全部71种工具,以全面支持Canvas的功能。
关键特性
- 零标准错误输出污染 - 通过stdio进行干净的MCP协议通信
- 71 画布API工具 - 全面覆盖Canvas功能
- 类型安全 - 利用Rust的类型系统进行稳健的参数处理
- 高性能 - 快速启动,高效处理请求
- 灵活的身份处理 - 接受字符串和整数标识符
- 全面的错误处理 - 正确的 JSON-RPC 错误响应
安装
先决条件
- Rust 1.70+(稳定版)
- 画布API访问令牌
从源代码构建
git clone https://github.com/GarthDB/rust-canvas-mcp.git
cd rust-canvas-mcp
cargo build --release编译后的二进制文件将可在此处获取 target/release/rust-canvas-mcp。
配置
- 复制示例环境文件:
cp env.example .env- 编辑
.env并配置您的Canvas凭据:
CANVAS_API_TOKEN=your_token_here
CANVAS_API_URL=https://your-institution.instructure.com/api/v1使用方法
使用 Cursor 集成开发环境(IDE)
添加到您的 .cursor/mcp.json:
{
"mcpServers": {
"canvas-mcp": {
"command": "/path/to/rust-canvas-mcp",
"env": {
"CANVAS_API_TOKEN": "your_token",
"CANVAS_API_URL": "https://your-institution.instructure.com/api/v1"
}
}
}
}独立测试
测试您的Canvas API连接:
cargo run -- --test可用工具
该服务器提供了跨越8个类别的71种工具:
- 课程工具 (8) - 列出并管理课程
- 讨论工具 (12) - 主题、条目和回复
- 分配工具 (10) - 作业、提交、分析
- 公告工具 (4) - 创建和管理公告
- 页面工具 (6) - 课程页面和内容
- 用户工具 (5) - 用户、注册、群组
- 评分标准工具 (10) - 对评分标准进行完整的增删改查(CRUD)操作
- 同行评审工具 (8) - 评论与分析
- 消息工具 (5) - 画布对话
- 分析工具 (4) - 学生表现追踪
发展
运行测试
cargo test代码覆盖率
cargo install cargo-llvm-cov
cargo llvm-cov --html代码检查(或代码格式化、代码规范检查)
cargo clippy --all-targets --all-features
cargo fmt --check成功标准
- ✅ 正常运行时无标准错误输出
- ✅ 所有71个工具均功能正常
- ✅ 强大的参数处理(字符串/整数ID)
- ✅ 快速启动(\80%
- ✅ 完整的文档
做出贡献
- 克隆仓库
- 创建一个特性分支
- 进行你的更改
- 提交拉取请求
所有更改都必须经过拉取请求(PR)审查后才能合并到受保护的主分支。
许可证
MIT 许可证 - 详情请参见 LICENSE 文件。
致谢
- 受Python启发 canvas-mcp(该词可能是一个特定项目、技术或系统的名称,直接翻译为中文可能无具体含义,但可保留原样或根据上下文具体解释) 实施;执行
- 使用官方Rust MCP SDK构建(rmcp)
