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.
ICTEXAM_BASE_URLrequiredBase URL of your ICTExam site, e.g. https://app.ictlms.net (no trailing /api).
ICTEXAM_EMAILrequiredA teacher or admin account email.
ICTEXAM_PASSWORDrequiredsecretPassword for the account.
ICTEXAM_API_PREFIXPath 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_WRITEUnlocks 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_MSPer request timeout in milliseconds. Defaults to 60000 (AI parsing can be slow).
ICTEXAM_TLS_INSECURESkip TLS certificate verification. Only for a self-signed test server.
Tools & capabilities
Tools this server exposes to the agent.
ictexam_list_exams— List exam papers with id, title, status, class, and subjectictexam_get_exam— Retrieve one paper's settings, share links and questionsictexam_list_classes— List classes (course groups)ictexam_list_subjects— List subjects, each tied to a classictexam_gradebook— View per-exam totals and student marksictexam_item_analysis— View per-question difficulty, p-value and average markictexam_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
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.
The server itself is MIT licensed and free. You need an active ICTExam account (paid or trial) to use it.
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.
You need a teacher or admin account on your ICTExam instance. Provide the email and password via ICTEXAM_EMAIL and ICTEXAM_PASSWORD environment variables.
No. Write tools (parse, publish, unpublish) are disabled by default. Set ICTEXAM_MCP_ALLOW_WRITE=true to enable them.
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):
| Variable | Required | Default | |
|---|---|---|---|
ICTEXAM_BASE_URL | yes | Your site, e.g. https://app.ictlms.net (no trailing /api) | |
ICTEXAM_EMAIL | yes | A teacher or admin account | |
ICTEXAM_PASSWORD | yes | Password for that account | |
ICTEXAM_API_PREFIX | no | /api | API mount path; set empty to hit the backend port directly |
ICTEXAM_MCP_ALLOW_WRITE | no | false | Unlock the write tools (see Safety) |
ICTEXAM_TIMEOUT_MS | no | 60000 | Per-request timeout (AI parsing can be slow) |
ICTEXAM_TLS_INSECURE | no | false | Skip 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:
| Tool | What it does |
|---|---|
ictexam_list_exams | List exam papers (id, title, status, class, subject) |
ictexam_get_exam | One paper's settings, share links and questions |
ictexam_list_classes | Classes (course groups) |
ictexam_list_subjects | Subjects, each tied to a class |
ictexam_gradebook | Per-exam totals and student marks |
ictexam_item_analysis | Per-question difficulty, p-value and average mark |
Write tools appear only when ICTEXAM_MCP_ALLOW_WRITE=true:
| Tool | What it does |
|---|---|
ictexam_parse_question_paper | Upload a local PDF/DOCX and AI-extract the questions |
ictexam_publish_exam | Publish a paper; returns student and teacher share URLs |
ictexam_unpublish_exam | Set 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
Read ICTPBX PBX state—extensions, DIDs, SIP trunks, tenants, and live statistics via MCP.

Inspect and control Asterisk (AMI) and FreeSWITCH (ESL) PBX servers from your AI assistant.
Monitor and control ICTBroadcast voice, SMS, and fax campaigns from Claude or Cursor.

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

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