Ictexam MCP vs Canvas Lms MCP

A side-by-side look at the Ictexam MCP and Canvas Lms MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Ictexam MCP logoIctexam MCPEducation · Local subprocess (stdio)Read exams, gradebooks and item analysis; parse papers with AI and publish exams.60GoodAuth: not declaredCanvas Lms MCP logoCanvas Lms MCPEducation · Local subprocess (stdio)TypeScript MCP server for Canvas LMS — 115 read+write tools across 17 domains.67GreatAuth: api key required

Verdict: choose Ictexam MCP for education work as a local process; choose Canvas Lms MCP for education as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Ictexam MCP logoChoose Ictexam MCP when

  • You need dedicated capabilities in the Education domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: ICTEXAM_BASE_URL, ICTEXAM_EMAIL, ICTEXAM_PASSWORD, ICTEXAM_API_PREFIX, ICTEXAM_MCP_ALLOW_WRITE, ICTEXAM_TIMEOUT_MS, ICTEXAM_TLS_INSECURE.
  • You want tools like ictexam_list_exams, ictexam_get_exam, ictexam_list_classes.
Explore Ictexam MCP

Canvas Lms MCP logoChoose Canvas Lms MCP when

  • You need dedicated capabilities in the Education domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: API key required.
  • You have the keys it needs: CANVAS_API_TOKEN, CANVAS_BASE_URL, CANVAS_PSEUDONYMIZE_STUDENTS.
  • You want tools like health_check, list_courses, get_course.
Explore Canvas Lms MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecIctexam MCP logoIctexam MCPCanvas Lms MCP logoCanvas Lms MCP
CategoryEducationEducation
Quality signal60/100 · Good67/100 · Great
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredAPI key required
PricingNot declaredFree
Required env varsICTEXAM_BASE_URLICTEXAM_EMAILICTEXAM_PASSWORDICTEXAM_API_PREFIXICTEXAM_MCP_ALLOW_WRITEICTEXAM_TIMEOUT_MSICTEXAM_TLS_INSECURECANVAS_API_TOKENCANVAS_BASE_URLCANVAS_PSEUDONYMIZE_STUDENTS
Verified ownerCommunity listingCommunity listing
GitHub stars1710
Directory activity 1 views 0 installs 0 upvotes 2 views 0 installs 0 upvotes
Tools6174

Tools & capabilities

Ictexam MCP tools 6

  • ictexam_list_examsList exam papers (assessments) on ICTExam: id, title, status (draft/published), class and subject. Start here to find an exam's id. Optionally filter by class_id or subject_id.
  • ictexam_get_examGet a single exam paper by id: its settings, timing, share links and questions.
  • ictexam_list_classesList the classes (course groups) defined on ICTExam.
  • ictexam_list_subjectsList the subjects on ICTExam, each tied to a class.
  • ictexam_gradebookGet the teacher gradebook: per-exam totals and student marks. Optionally filter by class_id or subject_id.
  • ictexam_item_analysisPer-question item analysis for one exam: difficulty, p-value, average mark and how many responses were full vs zero credit.

Canvas Lms MCP tools 174

  • health_checkCheck if the Canvas API is reachable and the token is valid. Returns ok/error status.
  • list_coursesList courses for the authenticated user. Use fields="slim" when enumerating courses for selection; switch to "full" once you have identified the target. slim returns id, name, course_code, term name, and workflow_state only. "full" (default) includes all Canvas fields plus `include` extras (teachers, total_students, syllabus_body, etc.). `state[]` narrows by course workflow state; `enrollment_state` narrows by the caller's enrollment state.
  • get_courseGet details for a single course. Defaults to requesting `term` and `total_students`. Pass `include` to replace the default set with custom Canvas include[] fields (teachers, permissions, syllabus_body, sections, etc.).
  • get_syllabusGet the syllabus HTML body for a course.
  • create_courseCreate a new course in a Canvas account. Returns the created course object.
  • update_courseUpdate an existing course. Only provided fields are changed; omitted fields are left as-is.
  • list_assignmentsList all assignments in a course. Use fields="slim" when enumerating assignments for selection; switch to "full" once you've identified the target. slim returns id, name, due_at, points_possible, published, and course_id only. "full" (default) includes all Canvas fields plus `include` extras (submission, all_dates, overrides, score_statistics, etc.). Use `bucket` to filter by past/upcoming/overdue/etc. Other filters: `search_term`, `assignment_ids`, `order_by`.
  • get_assignmentGet details for a single assignment by ID. Use `include` to request submission, overrides, all_dates, score_statistics, and other optional fields.
  • list_assignment_groupsList assignment groups (categories like Homework, Exams) in a course. Use `include=assignments` to nest assignments under each group; other includes add submission, overrides, score_statistics, etc.
  • create_assignmentCreate a new assignment in a course.
  • update_assignmentUpdate an existing assignment in a course.
  • delete_assignmentDelete an assignment from a course. This action is permanent.
  • +162 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Ictexam MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "ictexam-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ictexam-mcp"
      ],
      "env": {
        "ICTEXAM_BASE_URL": "YOUR_ICTEXAM_BASE_URL_HERE",
        "ICTEXAM_EMAIL": "YOUR_ICTEXAM_EMAIL_HERE",
        "ICTEXAM_PASSWORD": "YOUR_ICTEXAM_PASSWORD_HERE",
        "ICTEXAM_API_PREFIX": "YOUR_ICTEXAM_API_PREFIX_HERE",
        "ICTEXAM_MCP_ALLOW_WRITE": "YOUR_ICTEXAM_MCP_ALLOW_WRITE_HERE",
        "ICTEXAM_TIMEOUT_MS": "YOUR_ICTEXAM_TIMEOUT_MS_HERE",
        "ICTEXAM_TLS_INSECURE": "YOUR_ICTEXAM_TLS_INSECURE_HERE"
      }
    }
  }
}

Canvas Lms MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "canvas-lms-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "canvas-lms-mcp"
      ],
      "env": {
        "CANVAS_API_TOKEN": "YOUR_CANVAS_API_TOKEN_HERE",
        "CANVAS_BASE_URL": "YOUR_CANVAS_BASE_URL_HERE",
        "CANVAS_PSEUDONYMIZE_STUDENTS": "YOUR_CANVAS_PSEUDONYMIZE_STUDENTS_HERE"
      }
    }
  }
}

Frequently asked questions

Ictexam MCP is categorized under Education and uses a local stdio subprocess. Canvas Lms MCP belongs to Education and uses a local stdio subprocess. Pick Ictexam MCP for education work and Canvas Lms MCP for education.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Ictexam MCP has no declared pricing — check the project's own site. Canvas Lms MCP is listed as free. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add ictexam-mcp and canvas-lms-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Ictexam MCP has a quality signal of 60/100 (Good) with 1 views, 0 installs and 17 GitHub stars. Canvas Lms MCP has 67/100 (Great) with 2 views, 0 installs and 10 GitHub stars.