name: Tool Addition Request
description: Request a new MCP tool for Canvas LMS integration
title: "[Tool]: "
labels: ["enhancement", "new-tool"]
body:
  - type: markdown
    attributes:
      value: |
        Request a new MCP tool for Canvas LMS operations. This template helps ensure all necessary details are provided.

  - type: input
    id: tool-name
    attributes:
      label: Proposed Tool Name
      description: What should this tool be called? Follow naming pattern `{action}_{entity}[_{specifier}]`
      placeholder: "e.g., list_rubrics, get_grade_history, create_quiz"
    validations:
      required: true

  - type: textarea
    id: purpose
    attributes:
      label: Tool Purpose
      description: What does this tool do? Provide a clear, concise description
      placeholder: "This tool retrieves... / This tool allows users to..."
    validations:
      required: true

  - type: dropdown
    id: user-type
    attributes:
      label: Target User Type
      description: Who would use this tool?
      options:
        - Students
        - Educators/Instructors
        - Administrators
        - Developers
        - Shared (Students & Educators)
        - All Users
    validations:
      required: true

  - type: textarea
    id: canvas-api
    attributes:
      label: Canvas API Endpoint(s)
      description: Which Canvas API endpoint(s) would this tool use?
      placeholder: |
        GET /api/v1/courses/:course_id/rubrics
        Documentation: https://canvas.instructure.com/doc/api/rubrics.html
    validations:
      required: true

  - type: textarea
    id: parameters
    attributes:
      label: Tool Parameters
      description: What parameters should this tool accept?
      placeholder: |
        - course_id (required): Course identifier
        - rubric_id (optional): Specific rubric ID
        - include_archived (optional): Include archived rubrics
    validations:
      required: true

  - type: textarea
    id: return-value
    attributes:
      label: Expected Return Value
      description: What should this tool return?
      placeholder: |
        JSON object containing:
        - rubric_id
        - title
        - criteria (array)
        - points_possible
    validations:
      required: true

  - type: textarea
    id: use-cases
    attributes:
      label: Use Cases
      description: Provide specific examples of when/how this tool would be used
      placeholder: |
        1. "Show me the rubric for Assignment 3"
        2. "List all rubrics in BADM 350"
        3. "Get grading criteria for peer review assignment"
    validations:
      required: true

  - type: textarea
    id: example-prompt
    attributes:
      label: Example User Prompt
      description: How would a user invoke this tool in natural language?
      placeholder: '"Show me the rubric for the final project in CS 101"'
    validations:
      required: true

  - type: dropdown
    id: complexity
    attributes:
      label: Implementation Complexity
      description: How complex do you think this tool would be to implement?
      options:
        - Simple (single API call, basic parameters)
        - Moderate (multiple API calls, some data processing)
        - Complex (extensive logic, multiple endpoints, analytics)
        - Unknown
    validations:
      required: true

  - type: textarea
    id: related-tools
    attributes:
      label: Related Existing Tools
      description: Are there similar tools already in Canvas MCP?
      placeholder: |
        Similar to:
        - list_assignments (same pattern, different entity)
        - get_assignment_details (related workflow)

  - type: checkboxes
    id: requirements
    attributes:
      label: Additional Requirements
      description: Check all that apply
      options:
        - label: This tool requires pagination support
        - label: This tool modifies data (POST/PUT/DELETE)
        - label: This tool requires special permissions
        - label: This tool should support bulk operations
        - label: This tool handles sensitive student data (needs anonymization)

  - type: textarea
    id: permissions
    attributes:
      label: Canvas Permissions Required
      description: What Canvas permissions are needed to use this tool?
      placeholder: |
        - Read access to course rubrics
        - No special permissions (available to all enrolled users)
        - Requires instructor/TA role

  - type: textarea
    id: additional
    attributes:
      label: Additional Context
      description: Any other details, edge cases, or considerations
      placeholder: Screenshots, Canvas documentation links, etc.

  - type: checkboxes
    id: checklist
    attributes:
      label: Pre-submission Checklist
      options:
        - label: I have verified this Canvas API endpoint exists in Canvas documentation
          required: true
        - label: I have searched for existing tools with similar functionality
          required: true
        - label: This tool aligns with Canvas MCP's architecture and patterns
          required: false
