{
  "markdown": "# ictexam-mcp\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server for\n**[ICTExam](https://www.ictlms.net)**, the AI exam authoring, delivery and\nauto-grading platform from [ICT Innovations](https://ictinnovations.com).\n\nIt lets an AI assistant read your exams, gradebooks and per-question item\nanalysis, and — only when you turn writes on — parse a question paper into a\nstructured exam with AI and publish exams to students.\n\n## Install\n\nRun it straight from npm with `npx`, or install it globally:\n\n```bash\nnpx -y ictexam-mcp      # no install\nnpm install -g ictexam-mcp\n```\n\nRequires Node.js 18 or newer.\n\n## Configure\n\nSet these in your MCP client's server config (or a `.env`):\n\n| Variable | Required | Default | |\n|----------|----------|---------|--|\n| `ICTEXAM_BASE_URL` | yes | | Your site, e.g. `https://app.ictlms.net` (no trailing `/api`) |\n| `ICTEXAM_EMAIL` | yes | | A teacher or admin account |\n| `ICTEXAM_PASSWORD` | yes | | Password for that account |\n| `ICTEXAM_API_PREFIX` | no | `/api` | API mount path; set empty to hit the backend port directly |\n| `ICTEXAM_MCP_ALLOW_WRITE` | no | `false` | Unlock the write tools (see Safety) |\n| `ICTEXAM_TIMEOUT_MS` | no | `60000` | Per-request timeout (AI parsing can be slow) |\n| `ICTEXAM_TLS_INSECURE` | no | `false` | Skip TLS verification — self-signed test servers only |\n\n### Claude Desktop example\n\n```json\n{\n  \"mcpServers\": {\n    \"ictexam\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ictexam-mcp\"],\n      \"env\": {\n        \"ICTEXAM_BASE_URL\": \"https://app.ictlms.net\",\n        \"ICTEXAM_EMAIL\": \"teacher@example.com\",\n        \"ICTEXAM_PASSWORD\": \"your-password\"\n      }\n    }\n  }\n}\n```\n\n## Tools\n\nRead tools are always available:\n\n| Tool | What it does |\n|------|--------------|\n| `ictexam_list_exams` | List exam papers (id, title, status, class, subject) |\n| `ictexam_get_exam` | One paper's settings, share links and questions |\n| `ictexam_list_classes` | Classes (course groups) |\n| `ictexam_list_subjects` | Subjects, each tied to a class |\n| `ictexam_gradebook` | Per-exam totals and student marks |\n| `ictexam_item_analysis` | Per-question difficulty, p-value and average mark |\n\nWrite tools appear only when `ICTEXAM_MCP_ALLOW_WRITE=true`:\n\n| Tool | What it does |\n|------|--------------|\n| `ictexam_parse_question_paper` | Upload a local PDF/DOCX and AI-extract the questions |\n| `ictexam_publish_exam` | Publish a paper; returns student and teacher share URLs |\n| `ictexam_unpublish_exam` | Set a paper back to draft |\n\n## Safety\n\nThe server is **read-only by default**. The three write tools are not registered\nat all unless you set `ICTEXAM_MCP_ALLOW_WRITE=true`, so a default install cannot\nchange anything on the platform. Parsing a paper spends AI credit on the server,\nand publishing makes an exam live for students — both sit behind that switch on\npurpose. The client authenticates with the account's own session cookie and\nechoes the CSRF token on writes, exactly as the web app does; it never stores or\nlogs your password beyond the environment you give it.\n\n## How it connects\n\nICTExam runs a FastAPI backend. The server signs in once with your email and\npassword, keeps the session cookie for the life of the process, and talks to the\nREST API under `/api` (configurable). No API key to provision.\n\n## About\n\nBuilt by Tahir Almas at [ICT Innovations](https://ictinnovations.com) — the team\nbehind ICTExam, ICTContact, ICTDialer, ICTFax and ICTPBX. ICTExam ships with a\nnative Moodle activity module (LTI 1.3, grade passback and roster sync); learn\nmore at [ictlms.net](https://www.ictlms.net).\n\nMIT licensed. Issues and PRs welcome at\n[github.com/ictinnovations/ictexam-mcp](https://github.com/ictinnovations/ictexam-mcp).\n",
  "bytes": 3730,
  "sha": "da9620a64204d4742a55dac4cb593e6c21e672f75f2419085941fbc5cbe0c4b5",
  "repo_slug": "ictinnovations/ictexam-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ictinnovations_ictexam_mcp_ebce0a87/readme"
}