使用说明内容(Markdown格式)
- 项目简介
- 该仓库实现了一个基于 Model Context Protocol (MCP) 的后端服务器,专门对接 Canvas LMS 的公开 API,向 LLM 客户端提供课程、作业、公告、成绩等相关上下文信息,并暴露多种工具(Tools)供 LLM 调用以获取或汇总数据。
- 主要功能点
- 提供工具接口:get_courses、get_dashboard_cards、get_assignments、get_upcoming_assignments、get_recent_announcements、get_recently_graded、get_today_summary、get_week_ahead、get_today_summary 等,覆盖课程、作业、公告、评分和计划项等数据。
- 通过 HTTP 传输协议与客户端通信,支持以 JSON-RPC 形式接收请求并返回响应。
- 与 Canvas API 的交互包含身份认证、数据规范化、时区处理、以及对部分字段的清洗与归一化,便于 LLM 使用。
- 会话与安全性:需要 Canvas 的个人访问令牌(CANVAS_ACCESS_TOKEN)进行只读访问,服务端处理会话与请求分发。
- 安装步骤
- 安装并进入虚拟环境
- 创建并激活虚拟环境(示例:python -m venv venv,source venv/bin/activate)
- 安装依赖
- pip install -r requirements.txt
- 配置授权信息
- 将 CANVAS_BASE_URL 设置为你的 Canvas 实例地址(如 https://your_school.instructure.com)
- 将 CANVAS_ACCESS_TOKEN 设置为你的 Canvas 个人访问令牌
- 复制并编辑 .env 文件以完成配置
- 启动 MCP 服务器
- 运行:python src/server.py
- 服务器默认监听本地端口 8000,传输协议为 HTTP。若需要在不同端口启动,可通过环境变量 PORT 指定,例如 PORT=8001。
- 测试与调试
- 在一个终端执行 MCP Inspector(测试工具): npx @modelcontextprotocol/inspector
- 按照指引连接到服务器,使用“Streamable HTTP”传输类型进行测试。
- 安装并进入虚拟环境
- 服务器配置(用于 MCP 客户端连接的配置片段,格式为 JSON,包含服务器名称、启动命令和参数) { "server_name": "poke-canvas-mcp", "command": ["python", "src/server.py"], "args": [], "notes": "入口脚本为 src/server.py;需要设置 CANVAS_BASE_URL 与 CANVAS_ACCESS_TOKEN 环境变量以访问 Canvas API。默认监听端口 8000(可通过 PORT 环境变量覆盖)。" }
- 基本使用方法
- 事前准备:在 Canvas 账户中获取并设置访问令牌(CANVAS_ACCESS_TOKEN),确保可访问相关课程、作业、公告等接口。
- 启动后,通过 MCP 客户端将该 MCP URL 配置为连接目标,使用 HTTP(Streamable HTTP)传输协议进行通信。
- 使用工具时可按需要调用所提供的工具,如获取最近的作业、最近的公告、未来一周的计划等,以便 LLM 能以结构化数据回答用户问题。
信息
分类
网页与API