PluginBench
MCP Server
Active
MIT

io.github.ictinnovations/ictexam-mcp MCP Server

io.github.ictinnovations/ictexam-mcp

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

What is the io.github.ictinnovations/ictexam-mcp MCP server?

The ictexam-mcp server is a Model Context Protocol integration for ICTExam, an AI exam authoring and auto-grading platform. It lets AI assistants read exams, gradebooks, and per-question analysis, and optionally parse question papers and publish exams to students.

This server connects Claude or other AI assistants to ICTExam, enabling you to query exam data, view student grades and item analysis, and—when enabled—automatically extract questions from PDFs/DOCX files and publish exams. It's designed for teachers and admins who want AI-assisted exam management within their existing ICTExam workflow.

How to install io.github.ictinnovations/ictexam-mcp

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • ICTEXAM_BASE_URL
    required

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

  • ICTEXAM_EMAIL
    required

    A teacher or admin account email.

  • ICTEXAM_PASSWORD
    required
    secret

    Password for the account.

  • ICTEXAM_API_PREFIX

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

  • ICTEXAM_MCP_ALLOW_WRITE

    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.

  • ICTEXAM_TIMEOUT_MS

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

  • ICTEXAM_TLS_INSECURE

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

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "ictexam-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ictexam-mcp"
      ],
      "env": {
        "ICTEXAM_BASE_URL": "<YOUR_ICTEXAM_BASE_URL>",
        "ICTEXAM_EMAIL": "<YOUR_ICTEXAM_EMAIL>",
        "ICTEXAM_PASSWORD": "<YOUR_ICTEXAM_PASSWORD>",
        "ICTEXAM_API_PREFIX": "<YOUR_ICTEXAM_API_PREFIX>",
        "ICTEXAM_MCP_ALLOW_WRITE": "<YOUR_ICTEXAM_MCP_ALLOW_WRITE>",
        "ICTEXAM_TIMEOUT_MS": "<YOUR_ICTEXAM_TIMEOUT_MS>",
        "ICTEXAM_TLS_INSECURE": "<YOUR_ICTEXAM_TLS_INSECURE>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • ictexam_list_exams — List exam papers with id, title, status, class, and subject
  • ictexam_get_exam — Retrieve one paper's settings, share links and questions
  • ictexam_list_classes — List classes (course groups)
  • ictexam_list_subjects — List subjects, each tied to a class
  • ictexam_gradebook — View per-exam totals and student marks
  • ictexam_item_analysis — View per-question difficulty, p-value and average mark
  • ictexam_parse_question_paper — Upload a local PDF/DOCX and AI-extract the questions (write tool)
  • ictexam_publish_exam — Publish a paper and return student and teacher share URLs (write tool)
  • ictexam_unpublish_exam — Set a paper back to draft (write tool)

Use cases

  • Review exam performance and student grades through gradebook queries
  • Analyze question difficulty and effectiveness using per-question item analysis
  • Extract questions from scanned or digital question papers into structured exam format
  • Publish exams to students and manage exam lifecycle
  • Monitor exam metadata and class/subject organization

io.github.ictinnovations/ictexam-mcp MCP server FAQ

What is ictexam-mcp?

It's an MCP server that connects AI assistants to ICTExam, an AI-powered exam authoring and auto-grading platform. You can read exams, grades, and analysis, and optionally parse papers and publish exams.

Is it free?

The server itself is MIT licensed and free. You need an active ICTExam account (paid or trial) to use it.

How do I install it in Claude Desktop?

Add the server to your Claude Desktop config with `npx -y ictexam-mcp` as the command, and set ICTEXAM_BASE_URL, ICTEXAM_EMAIL, and ICTEXAM_PASSWORD in the env section.

What authentication is required?

You need a teacher or admin account on your ICTExam instance. Provide the email and password via ICTEXAM_EMAIL and ICTEXAM_PASSWORD environment variables.

Are write operations enabled by default?

No. Write tools (parse, publish, unpublish) are disabled by default. Set ICTEXAM_MCP_ALLOW_WRITE=true to enable them.

Can I use this with self-signed certificates?

Yes, set ICTEXAM_TLS_INSECURE=true for test servers with self-signed TLS certificates.

README (reference)

Source of truth, from the repository.

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.

Related MCP servers

List, track, and send faxes via ICTFax and ICTCore REST API.

18
TypeScript
MIT
View repository →

Read ICTPBX PBX state—extensions, DIDs, SIP trunks, tenants, and live statistics via MCP.

16
TypeScript
MIT
View repository →

Inspect and control Asterisk (AMI) and FreeSWITCH (ESL) PBX servers from your AI assistant.

3
TypeScript
MIT
View repository →

Monitor and control ICTBroadcast voice, SMS, and fax campaigns from Claude or Cursor.

16
TypeScript
MIT
View repository →
TBT-Bank MCP logo

T-Bank mobile banking API for Claude, Cursor, and other MCP agents—accounts, cards, transfers, tickets, travel, grocery.

32
Python
MIT
View repository →
ICIcyn Date logo

Icyn Date

Active

Date context for agents: Chinese lunar calendar, solar terms, holidays for 12 regions. Offline.

0
TypeScript
MIT
View repository →