使用说明内容(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)进行只读访问,服务端处理会话与请求分发。
  • 安装步骤
    1. 安装并进入虚拟环境
      • 创建并激活虚拟环境(示例:python -m venv venv,source venv/bin/activate)
    2. 安装依赖
      • pip install -r requirements.txt
    3. 配置授权信息
      • 将 CANVAS_BASE_URL 设置为你的 Canvas 实例地址(如 https://your_school.instructure.com)
      • 将 CANVAS_ACCESS_TOKEN 设置为你的 Canvas 个人访问令牌
      • 复制并编辑 .env 文件以完成配置
    4. 启动 MCP 服务器
      • 运行:python src/server.py
      • 服务器默认监听本地端口 8000,传输协议为 HTTP。若需要在不同端口启动,可通过环境变量 PORT 指定,例如 PORT=8001。
    5. 测试与调试
      • 在一个终端执行 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