Back to Browse

Ictexam MCP Server

Developer ToolsLow Risk10.0MCP RegistryLocal
Free

Server data from the Official MCP Registry

Read exams, gradebooks and item analysis; parse papers with AI and publish exams.

About

Read exams, gradebooks and item analysis; parse papers with AI and publish exams.

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (2 strong, 3 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.

8 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Base URL of your ICTExam site, e.g. https://app.ictlms.net (no trailing /api).Optional

Environment variable: ICTEXAM_BASE_URL

A teacher or admin account email.Optional

Environment variable: ICTEXAM_EMAIL

Password for the account.Required

Environment variable: ICTEXAM_PASSWORD

Path the API is mounted under. Defaults to /api (behind the usual reverse proxy). Set empty to talk to the backend port directly.Optional

Environment variable: ICTEXAM_API_PREFIX

Unlocks the write tools: parse a paper with AI (spends server AI credit), publish and unpublish exams. When false these tools are not registered at all. Leave off unless you mean it.Optional

Environment variable: ICTEXAM_MCP_ALLOW_WRITE

Per request timeout in milliseconds. Defaults to 60000 (AI parsing can be slow).Optional

Environment variable: ICTEXAM_TIMEOUT_MS

Skip TLS certificate verification. Only for a self-signed test server.Optional

Environment variable: ICTEXAM_TLS_INSECURE

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-ictinnovations-ictexam-mcp": {
      "env": {
        "ICTEXAM_EMAIL": "your-ictexam-email-here",
        "ICTEXAM_BASE_URL": "your-ictexam-base-url-here",
        "ICTEXAM_PASSWORD": "your-ictexam-password-here",
        "ICTEXAM_API_PREFIX": "your-ictexam-api-prefix-here",
        "ICTEXAM_TIMEOUT_MS": "your-ictexam-timeout-ms-here",
        "ICTEXAM_TLS_INSECURE": "your-ictexam-tls-insecure-here",
        "ICTEXAM_MCP_ALLOW_WRITE": "your-ictexam-mcp-allow-write-here"
      },
      "args": [
        "-y",
        "ictexam-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

ictexam-mcp

A Model Context Protocol server for ICTExam, the AI exam authoring, delivery and auto-grading platform from ICT Innovations.

It lets an AI assistant read your exams, gradebooks and per-question item analysis, and — only when you turn writes on — parse a question paper into a structured exam with AI and publish exams to students.

Install

Run it straight from npm with npx, or install it globally:

npx -y ictexam-mcp      # no install
npm install -g ictexam-mcp

Requires Node.js 18 or newer.

Configure

Set these in your MCP client's server config (or a .env):

VariableRequiredDefault
ICTEXAM_BASE_URLyesYour site, e.g. https://app.ictlms.net (no trailing /api)
ICTEXAM_EMAILyesA teacher or admin account
ICTEXAM_PASSWORDyesPassword for that account
ICTEXAM_API_PREFIXno/apiAPI mount path; set empty to hit the backend port directly
ICTEXAM_MCP_ALLOW_WRITEnofalseUnlock the write tools (see Safety)
ICTEXAM_TIMEOUT_MSno60000Per-request timeout (AI parsing can be slow)
ICTEXAM_TLS_INSECUREnofalseSkip TLS verification — self-signed test servers only

Claude Desktop example

{
  "mcpServers": {
    "ictexam": {
      "command": "npx",
      "args": ["-y", "ictexam-mcp"],
      "env": {
        "ICTEXAM_BASE_URL": "https://app.ictlms.net",
        "ICTEXAM_EMAIL": "teacher@example.com",
        "ICTEXAM_PASSWORD": "your-password"
      }
    }
  }
}

Tools

Read tools are always available:

ToolWhat it does
ictexam_list_examsList exam papers (id, title, status, class, subject)
ictexam_get_examOne paper's settings, share links and questions
ictexam_list_classesClasses (course groups)
ictexam_list_subjectsSubjects, each tied to a class
ictexam_gradebookPer-exam totals and student marks
ictexam_item_analysisPer-question difficulty, p-value and average mark

Write tools appear only when ICTEXAM_MCP_ALLOW_WRITE=true:

ToolWhat it does
ictexam_parse_question_paperUpload a local PDF/DOCX and AI-extract the questions
ictexam_publish_examPublish a paper; returns student and teacher share URLs
ictexam_unpublish_examSet a paper back to draft

Safety

The server is read-only by default. The three write tools are not registered at all unless you set ICTEXAM_MCP_ALLOW_WRITE=true, so a default install cannot change anything on the platform. Parsing a paper spends AI credit on the server, and publishing makes an exam live for students — both sit behind that switch on purpose. The client authenticates with the account's own session cookie and echoes the CSRF token on writes, exactly as the web app does; it never stores or logs your password beyond the environment you give it.

How it connects

ICTExam runs a FastAPI backend. The server signs in once with your email and password, keeps the session cookie for the life of the process, and talks to the REST API under /api (configurable). No API key to provision.

About

Built by Tahir Almas at ICT Innovations — the team behind ICTExam, ICTContact, ICTDialer, ICTFax and ICTPBX. ICTExam ships with a native Moodle activity module (LTI 1.3, grade passback and roster sync); learn more at ictlms.net.

MIT licensed. Issues and PRs welcome at github.com/ictinnovations/ictexam-mcp.

Reviews

No reviews yet

Be the first to review this server!