get_my_todo_items
Retrieve pending Canvas assignments, quizzes, and discussions requiring attention from your TODO list.
Instructions
Get your Canvas TODO list.
Returns all items in your Canvas TODO list including assignments, quizzes, and discussions that need your attention.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The handler function decorated with @mcp.tool() that implements the get_my_todo_items tool. It retrieves the user's TODO items from the Canvas API (/users/self/todo), processes them using helper functions like get_course_code and format_date, and returns a formatted list.@mcp.tool() async def get_my_todo_items() -> str: """Get your Canvas TODO list. Returns all items in your Canvas TODO list including assignments, quizzes, and discussions that need your attention. """ todos = await fetch_all_paginated_results( "/users/self/todo", params={"per_page": 100} ) if isinstance(todos, dict) and "error" in todos: return f"Error fetching TODO items: {todos['error']}" if not todos: return "Your TODO list is empty! 🎉" output_lines = ["Your TODO List:\n"] for item in todos: item_type = item.get("type", "item") assignment = item.get("assignment", {}) name = assignment.get("name") or item.get("title", "Unnamed item") due_at = format_date(assignment.get("due_at")) if assignment.get("due_at") else "No due date" course_id = item.get("course_id") course_display = await get_course_code(course_id) if course_id else "Unknown Course" output_lines.append( f"• {name}\n" f" Type: {item_type.title()}\n" f" Course: {course_display}\n" f" Due: {due_at}\n" ) return "\n".join(output_lines)
- src/canvas_mcp/server.py:55-55 (registration)Calls register_student_tools(mcp) within register_all_tools, which defines and registers the student tools including get_my_todo_items via @mcp.tool() decorators.register_student_tools(mcp)