← WebMCP Directory

Tool tree

uwcourses.com

Health & EducationTools verified
Website
Search UW–Madison courses and compare historical grade distributions, prerequisites, class schedules, and professor ratings and reviews.
Explore capabilities

    page: Every page

    scan_images_c2paAnswer

    Scan every <img> on the current page for C2PA Content Credentials (content provenance metadata) and return a per-image summary: whether a manifest is present, the claim generator (the tool that produced or edited the image), the title, and the signer name. Use this to find which images on a page carry provenance data. Note: provenance is decoded but NOT cryptographically verified.

    View tool JSON
    {
      "name": "scan_images_c2pa",
      "kind": "answer",
      "impl": "imperative",
      "description": "Scan every <img> on the current page for C2PA Content Credentials (content provenance metadata) and return a per-image summary: whether a manifest is present, the claim generator (the tool that produced or edited the image), the title, and the signer name. Use this to find which images on a page carry provenance data. Note: provenance is decoded but NOT cryptographically verified.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 25,
            "description": "Maximum number of images to fetch and scan (default 25, max 100)."
          }
        },
        "required": []
      },
      "page": "/"
    }
    inspect_image_c2paAnswer

    Fetch a single image (by CSS selector or URL) and return its fully decoded C2PA manifest store: every manifest's claim, assertions (e.g. c2pa.actions edit history, schema.org authorship), and the COSE signature details (algorithm and signing-certificate identity). Provide exactly one of `selector` or `url`. Note: the signature is decoded but NOT cryptographically verified.

    View tool JSON
    {
      "name": "inspect_image_c2pa",
      "kind": "answer",
      "impl": "imperative",
      "description": "Fetch a single image (by CSS selector or URL) and return its fully decoded C2PA manifest store: every manifest's claim, assertions (e.g. c2pa.actions edit history, schema.org authorship), and the COSE signature details (algorithm and signing-certificate identity). Provide exactly one of `selector` or `url`. Note: the signature is decoded but NOT cryptographically verified.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "selector": {
            "type": "string",
            "maxLength": 8192,
            "description": "CSS selector for an <img> element on the page."
          },
          "url": {
            "type": "string",
            "maxLength": 8192,
            "description": "Same-origin image URL (absolute same-origin, or relative to the current page) to fetch and inspect. Cross-origin URLs are rejected."
          }
        },
        "required": []
      },
      "page": "/"
    }
    search_coursesAnswer

    Search UW–Madison courses. Returns up to 30 results per page, course_uid identifiers for grade history, and course_id codes for course details. Defaults to courses offered in the dataset's current term; use availability=all to include other courses.

    View tool JSON
    {
      "name": "search_courses",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search UW–Madison courses. Returns up to 30 results per page, course_uid identifiers for grade history, and course_id codes for course details. Defaults to courses offered in the dataset's current term; use availability=all to include other courses.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "q": {
            "description": "Course code or search text, e.g. CS 300 or programming.",
            "type": "string",
            "maxLength": 200
          },
          "subject": {
            "description": "Subject codes combined with OR, up to 12. Example: COMPSCI,MATH.",
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 32,
                "pattern": "^[A-Za-z0-9]+$",
                "description": "Subject code, e.g. COMPSCI."
              },
              {
                "minItems": 1,
                "maxItems": 12,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 32,
                  "pattern": "^[A-Za-z0-9]+$",
                  "description": "Subject code, e.g. COMPSCI."
                }
              }
            ]
          },
          "term": {
            "description": "UW term ID, e.g. 1272 for Fall 2026. Omit to use the endpoint default.",
            "type": "string",
            "pattern": "^1\\d{2}[246]$"
          },
          "availability": {
            "type": "string",
            "enum": [
              "offered",
              "all"
            ]
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          },
          "level": {
            "description": "Hundred-level bands combined with OR, from 0 through 900. Example: 300,700. Undergraduate is every band below 700. Graduate is 700, 800, and 900.",
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 900,
                "multipleOf": 100
              },
              {
                "minItems": 1,
                "maxItems": 12,
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 900,
                  "multipleOf": 100
                }
              }
            ]
          },
          "tags": {
            "description": "small-lectures, large-lectures, higher-grades, lower-grades, or rated-teacher, combined with AND. Lecture enrollment and assigned instructors use the selected term. Grades use the latest released term at or before it, compared with the selected department (one subject) or school; requires 30+ letter grades and 10+ peer courses. These are evidence-based highlights, not predicted difficulty.",
            "maxItems": 5,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "small-lectures",
                "higher-grades",
                "rated-teacher",
                "large-lectures",
                "lower-grades"
              ]
            }
          },
          "credits_min": {
            "description": "The course can be taken for at least this many credits (its credit maximum is at least this value). 0 through 20.",
            "type": "number",
            "minimum": 0,
            "maximum": 20
          },
          "credits_max": {
            "description": "The course can be taken for at most this many credits (its credit minimum is at most this value). 0 through 20.",
            "type": "number",
            "minimum": 0,
            "maximum": 20
          },
          "gpa_min": {
            "description": "Historical letter-grade average is at least this value, from 0 through 4. Courses with no letter grades in the five-year window do not match.",
            "type": "number",
            "minimum": 0,
            "maximum": 4
          },
          "gpa_max": {
            "description": "Historical letter-grade average is at most this value, from 0 through 4. Courses with no letter grades in the five-year window do not match.",
            "type": "number",
            "minimum": 0,
            "maximum": 4
          },
          "gpa_max_exclusive": {
            "description": "Set to true to exclude the upper GPA bound, as when selecting a histogram bin. Defaults to false; requires gpa_max to have an effect.",
            "type": "boolean"
          },
          "requisites": {
            "description": "none: parsed catalog text lists no course and no condition. listed: it lists at least one. Unparsed requisites match neither.",
            "type": "string",
            "enum": [
              "none",
              "listed"
            ]
          },
          "season": {
            "description": "fall, spring, or summer, combined with OR. Matches a typically-offered line that names that season, including every-other-term lines. Occasionally and Not Applicable match none.",
            "maxItems": 12,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "fall",
                "spring",
                "summer"
              ]
            }
          },
          "designation": {
            "description": "family:value tokens combined with OR, up to 12. Example: breadth:natural-science,quantitative-reasoning:b. A well-formed token that is not in the snapshot matches nothing. A malformed token is rejected.",
            "maxItems": 12,
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[a-z0-9-]+:[a-z0-9-]+$"
            }
          },
          "instructor": {
            "description": "Instructor uid. With recorded offerings, they must teach the course in the selected term. With the full catalog, any recorded teaching row matches.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "days": {
            "description": "Weekdays mon,tue,wed,thu,fri,sat,sun. Default days_match=within requires every class meeting that term to fall on a selected day. days_match=any requires one class meeting on a selected day. Exams are ignored.",
            "maxItems": 7,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "mon",
                "tue",
                "wed",
                "thu",
                "fri",
                "sat",
                "sun"
              ]
            }
          },
          "days_match": {
            "description": "within (default) or any. Ignored when days is empty.",
            "type": "string",
            "enum": [
              "within",
              "any"
            ]
          },
          "time": {
            "description": "morning, afternoon, or evening, combined with OR. Uses the class start in America/Chicago. Morning is before 12:00, afternoon is 12:00 until 17:00, evening is 17:00 or later.",
            "maxItems": 12,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "morning",
                "afternoon",
                "evening"
              ]
            }
          },
          "mode": {
            "description": "in_person, online, or mixed, combined with OR. Classroom Instruction, Online Only, and Online (some classroom). When days or time is also set, one section must satisfy the whole schedule.",
            "maxItems": 12,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "in_person",
                "online",
                "mixed"
              ]
            }
          },
          "sort": {
            "description": "Order by historical GPA; omit for default search ordering.",
            "type": "string",
            "enum": [
              "gpa"
            ]
          },
          "ranking": {
            "description": "Historical GPA ranking, requiring at least 100 grades; not a guarantee of difficulty.",
            "type": "string",
            "enum": [
              "easiest",
              "hardest"
            ]
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }
    get_courseAnswer

    Get a compact UW–Madison course summary: description, requirements, instructors, and the JSON document URL. Use the course_id returned by search_courses, not course_uid.

    View tool JSON
    {
      "name": "get_course",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get a compact UW–Madison course summary: description, requirements, instructors, and the JSON document URL. Use the course_id returned by search_courses, not course_uid.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "course": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[a-zA-Z0-9 _&/-]+$",
            "description": "Course code, e.g. COMPSCI 300 or COMPSCI_300."
          }
        },
        "required": [
          "course"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    get_course_gradesAnswer

    Get paginated historical grade records for a course. Use course_uid returned by search_courses. Historical grades do not predict an individual student's grade.

    View tool JSON
    {
      "name": "get_course_grades",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get paginated historical grade records for a course. Use course_uid returned by search_courses. Historical grades do not predict an individual student's grade.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "course_uid": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "description": "Dataset course_uid from search_courses, not a course code."
          },
          "term": {
            "description": "UW term ID, e.g. 1272 for Fall 2026. Omit to use the endpoint default.",
            "type": "string",
            "pattern": "^1\\d{2}[246]$"
          },
          "instructor": {
            "description": "Optional dataset instructor UID.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9_-]+$"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          }
        },
        "required": [
          "course_uid"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    search_instructorsAnswer

    Search UW–Madison instructors. Returns instructor_uid for reviews, courses, and history, and instructor_url slugs for instructor documents and open_instructor.

    View tool JSON
    {
      "name": "search_instructors",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search UW–Madison instructors. Returns instructor_uid for reviews, courses, and history, and instructor_url slugs for instructor documents and open_instructor.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "q": {
            "description": "Instructor name or search text.",
            "type": "string",
            "maxLength": 200
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }
    get_instructorAnswer

    Get a compact instructor summary: ratings, current courses, and review count. Use the instructor_url slug from search_instructors, not instructor_uid.

    View tool JSON
    {
      "name": "get_instructor",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get a compact instructor summary: ratings, current courses, and review count. Use the instructor_url slug from search_instructors, not instructor_uid.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "instructor": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^(?:\\/instructors\\/)?[a-zA-Z0-9_-]+$",
            "description": "Instructor URL slug from search_instructors, e.g. HOBBES_LEGAULT or /instructors/HOBBES_LEGAULT."
          }
        },
        "required": [
          "instructor"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    get_instructor_reviewsAnswer

    Get paginated student reviews for an instructor. Use instructor_uid from search_instructors. Reviews are student-written and may be incomplete or outdated.

    View tool JSON
    {
      "name": "get_instructor_reviews",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get paginated student reviews for an instructor. Use instructor_uid from search_instructors. Reviews are student-written and may be incomplete or outdated.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "instructor_uid": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "description": "Dataset instructor_uid from search_instructors, not the URL slug."
          },
          "course_uid": {
            "description": "Optional dataset course_uid to limit reviews.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9_-]+$"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          }
        },
        "required": [
          "instructor_uid"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    get_instructor_coursesAnswer

    Get courses an instructor is teaching in a term. Use instructor_uid from search_instructors.

    View tool JSON
    {
      "name": "get_instructor_courses",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get courses an instructor is teaching in a term. Use instructor_uid from search_instructors.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "instructor_uid": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "description": "Dataset instructor_uid from search_instructors, not the URL slug."
          },
          "term": {
            "description": "UW term ID, e.g. 1272 for Fall 2026. Omit to use the endpoint default.",
            "type": "string",
            "pattern": "^1\\d{2}[246]$"
          }
        },
        "required": [
          "instructor_uid"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    get_instructor_historyAnswer

    Get paginated teaching history for an instructor. Use instructor_uid from search_instructors.

    View tool JSON
    {
      "name": "get_instructor_history",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get paginated teaching history for an instructor. Use instructor_uid from search_instructors.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "instructor_uid": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "description": "Dataset instructor_uid from search_instructors, not the URL slug."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          }
        },
        "required": [
          "instructor_uid"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    list_departmentsAnswer

    List UW–Madison subject codes and course counts from the current dataset.

    View tool JSON
    {
      "name": "list_departments",
      "kind": "answer",
      "impl": "imperative",
      "description": "List UW–Madison subject codes and course counts from the current dataset.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/"
    }
    get_departmentAnswer

    Get a compact department summary and sample courses. Use a subject code from list_departments, e.g. COMPSCI.

    View tool JSON
    {
      "name": "get_department",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get a compact department summary and sample courses. Use a subject code from list_departments, e.g. COMPSCI.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "pattern": "^[A-Za-z0-9]+$",
            "description": "Subject code, e.g. COMPSCI."
          }
        },
        "required": [
          "subject"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    get_department_catalogAnswer

    Get compact catalog entries for a department. Use a subject code from list_departments. Results may be truncated; open_department for the full page.

    View tool JSON
    {
      "name": "get_department_catalog",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get compact catalog entries for a department. Use a subject code from list_departments. Results may be truncated; open_department for the full page.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "pattern": "^[A-Za-z0-9]+$",
            "description": "Subject code, e.g. COMPSCI."
          }
        },
        "required": [
          "subject"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    open_courseAction

    Open a course page in the current tab so the student can see the full catalog UI. Use a course_id from search_courses.

    View tool JSON
    {
      "name": "open_course",
      "kind": "act",
      "impl": "imperative",
      "description": "Open a course page in the current tab so the student can see the full catalog UI. Use a course_id from search_courses.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "course": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[a-zA-Z0-9 _&/-]+$",
            "description": "Course code, e.g. COMPSCI 300 or COMPSCI_300."
          }
        },
        "required": [
          "course"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    open_instructorAction

    Open an instructor page in the current tab. Use the instructor_url slug from search_instructors.

    View tool JSON
    {
      "name": "open_instructor",
      "kind": "act",
      "impl": "imperative",
      "description": "Open an instructor page in the current tab. Use the instructor_url slug from search_instructors.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "instructor": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^(?:\\/instructors\\/)?[a-zA-Z0-9_-]+$",
            "description": "Instructor URL slug from search_instructors, e.g. HOBBES_LEGAULT or /instructors/HOBBES_LEGAULT."
          }
        },
        "required": [
          "instructor"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    open_departmentAction

    Open a department page in the current tab. Use a subject code from list_departments.

    View tool JSON
    {
      "name": "open_department",
      "kind": "act",
      "impl": "imperative",
      "description": "Open a department page in the current tab. Use a subject code from list_departments.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "pattern": "^[A-Za-z0-9]+$",
            "description": "Subject code, e.g. COMPSCI."
          }
        },
        "required": [
          "subject"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    open_explorerAction

    Open the prerequisite explorer map. Omit subject for the directory; pass a subject code for that department's map.

    View tool JSON
    {
      "name": "open_explorer",
      "kind": "act",
      "impl": "imperative",
      "description": "Open the prerequisite explorer map. Omit subject for the directory; pass a subject code for that department's map.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "pattern": "^[A-Za-z0-9]+$",
            "description": "Subject code, e.g. COMPSCI."
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }
    open_searchAction

    Open the search page in the current tab with optional text and entity type.

    View tool JSON
    {
      "name": "open_search",
      "kind": "act",
      "impl": "imperative",
      "description": "Open the search page in the current tab with optional text and entity type.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "q": {
            "description": "Search text.",
            "type": "string",
            "maxLength": 200
          },
          "kind": {
            "type": "string",
            "enum": [
              "course",
              "instructor"
            ]
          },
          "subject": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "pattern": "^[A-Za-z0-9]+$",
            "description": "Subject code, e.g. COMPSCI."
          }
        },
        "additionalProperties": false
      },
      "page": "/"
    }