quiz-mcp 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +85 -0
  2. package/bin/quiz +16 -0
  3. package/bin/quiz-runner +18 -0
  4. package/bin/quiz-runner-mcp +18 -0
  5. package/dist/cli.js +805 -0
  6. package/dist/client/_app/immutable/assets/0.BdUfdP7M.css +1 -0
  7. package/dist/client/_app/immutable/assets/0.BdUfdP7M.css.br +0 -0
  8. package/dist/client/_app/immutable/assets/0.BdUfdP7M.css.gz +0 -0
  9. package/dist/client/_app/immutable/chunks/BBbVH-DX.js +2 -0
  10. package/dist/client/_app/immutable/chunks/BBbVH-DX.js.br +0 -0
  11. package/dist/client/_app/immutable/chunks/BBbVH-DX.js.gz +0 -0
  12. package/dist/client/_app/immutable/chunks/BYAtt_Gu.js +1 -0
  13. package/dist/client/_app/immutable/chunks/BYAtt_Gu.js.br +0 -0
  14. package/dist/client/_app/immutable/chunks/BYAtt_Gu.js.gz +0 -0
  15. package/dist/client/_app/immutable/chunks/C9b1VZtB.js +1 -0
  16. package/dist/client/_app/immutable/chunks/C9b1VZtB.js.br +0 -0
  17. package/dist/client/_app/immutable/chunks/C9b1VZtB.js.gz +0 -0
  18. package/dist/client/_app/immutable/chunks/DnSqigra.js +1 -0
  19. package/dist/client/_app/immutable/chunks/DnSqigra.js.br +0 -0
  20. package/dist/client/_app/immutable/chunks/DnSqigra.js.gz +0 -0
  21. package/dist/client/_app/immutable/chunks/DqHG5Xll.js +3 -0
  22. package/dist/client/_app/immutable/chunks/DqHG5Xll.js.br +0 -0
  23. package/dist/client/_app/immutable/chunks/DqHG5Xll.js.gz +0 -0
  24. package/dist/client/_app/immutable/chunks/fMaWj-vy.js +1 -0
  25. package/dist/client/_app/immutable/chunks/fMaWj-vy.js.br +0 -0
  26. package/dist/client/_app/immutable/chunks/fMaWj-vy.js.gz +0 -0
  27. package/dist/client/_app/immutable/chunks/hqRb622q.js +1 -0
  28. package/dist/client/_app/immutable/chunks/hqRb622q.js.br +0 -0
  29. package/dist/client/_app/immutable/chunks/hqRb622q.js.gz +0 -0
  30. package/dist/client/_app/immutable/chunks/qgn7L4n5.js +1 -0
  31. package/dist/client/_app/immutable/chunks/qgn7L4n5.js.br +0 -0
  32. package/dist/client/_app/immutable/chunks/qgn7L4n5.js.gz +0 -0
  33. package/dist/client/_app/immutable/entry/app.BsKq4Thd.js +2 -0
  34. package/dist/client/_app/immutable/entry/app.BsKq4Thd.js.br +0 -0
  35. package/dist/client/_app/immutable/entry/app.BsKq4Thd.js.gz +0 -0
  36. package/dist/client/_app/immutable/entry/start.CKTlgCvu.js +1 -0
  37. package/dist/client/_app/immutable/entry/start.CKTlgCvu.js.br +2 -0
  38. package/dist/client/_app/immutable/entry/start.CKTlgCvu.js.gz +0 -0
  39. package/dist/client/_app/immutable/nodes/0.R6s8931r.js +9 -0
  40. package/dist/client/_app/immutable/nodes/0.R6s8931r.js.br +0 -0
  41. package/dist/client/_app/immutable/nodes/0.R6s8931r.js.gz +0 -0
  42. package/dist/client/_app/immutable/nodes/1.CBs3iFLr.js +1 -0
  43. package/dist/client/_app/immutable/nodes/1.CBs3iFLr.js.br +0 -0
  44. package/dist/client/_app/immutable/nodes/1.CBs3iFLr.js.gz +0 -0
  45. package/dist/client/_app/immutable/nodes/2.B9MLTE_H.js +2 -0
  46. package/dist/client/_app/immutable/nodes/2.B9MLTE_H.js.br +0 -0
  47. package/dist/client/_app/immutable/nodes/2.B9MLTE_H.js.gz +0 -0
  48. package/dist/client/_app/immutable/nodes/3.w4AbulQF.js +1 -0
  49. package/dist/client/_app/immutable/nodes/3.w4AbulQF.js.br +0 -0
  50. package/dist/client/_app/immutable/nodes/3.w4AbulQF.js.gz +0 -0
  51. package/dist/client/_app/immutable/nodes/4.BAhm-aFq.js +4 -0
  52. package/dist/client/_app/immutable/nodes/4.BAhm-aFq.js.br +0 -0
  53. package/dist/client/_app/immutable/nodes/4.BAhm-aFq.js.gz +0 -0
  54. package/dist/client/_app/version.json +1 -0
  55. package/dist/client/_app/version.json.br +0 -0
  56. package/dist/client/_app/version.json.gz +0 -0
  57. package/dist/client/robots.txt +3 -0
  58. package/dist/env.js +94 -0
  59. package/dist/handler.js +1435 -0
  60. package/dist/index.js +345 -0
  61. package/dist/server/chunks/0-bFxjafp8.js +44 -0
  62. package/dist/server/chunks/0-bFxjafp8.js.map +1 -0
  63. package/dist/server/chunks/1-D1qe0uHb.js +9 -0
  64. package/dist/server/chunks/1-D1qe0uHb.js.map +1 -0
  65. package/dist/server/chunks/2-NzZFDUaQ.js +60 -0
  66. package/dist/server/chunks/2-NzZFDUaQ.js.map +1 -0
  67. package/dist/server/chunks/3-DJAG62O1.js +37 -0
  68. package/dist/server/chunks/3-DJAG62O1.js.map +1 -0
  69. package/dist/server/chunks/4-zigWBLLG.js +37 -0
  70. package/dist/server/chunks/4-zigWBLLG.js.map +1 -0
  71. package/dist/server/chunks/_error.svelte-BHNrphys.js +80 -0
  72. package/dist/server/chunks/_error.svelte-BHNrphys.js.map +1 -0
  73. package/dist/server/chunks/_layout.svelte-BUJDEr5D.js +104 -0
  74. package/dist/server/chunks/_layout.svelte-BUJDEr5D.js.map +1 -0
  75. package/dist/server/chunks/_page.svelte-CRU5jaGZ.js +653 -0
  76. package/dist/server/chunks/_page.svelte-CRU5jaGZ.js.map +1 -0
  77. package/dist/server/chunks/_page.svelte-Cm8ocLsi.js +572 -0
  78. package/dist/server/chunks/_page.svelte-Cm8ocLsi.js.map +1 -0
  79. package/dist/server/chunks/_page.svelte-Dvh1k6R9.js +71 -0
  80. package/dist/server/chunks/_page.svelte-Dvh1k6R9.js.map +1 -0
  81. package/dist/server/chunks/_server.ts-BZp77VsF.js +101 -0
  82. package/dist/server/chunks/_server.ts-BZp77VsF.js.map +1 -0
  83. package/dist/server/chunks/_server.ts-C2NKc-VD.js +219 -0
  84. package/dist/server/chunks/_server.ts-C2NKc-VD.js.map +1 -0
  85. package/dist/server/chunks/_server.ts-CHyNcOmK.js +39 -0
  86. package/dist/server/chunks/_server.ts-CHyNcOmK.js.map +1 -0
  87. package/dist/server/chunks/_server.ts-CakPvrry.js +51 -0
  88. package/dist/server/chunks/_server.ts-CakPvrry.js.map +1 -0
  89. package/dist/server/chunks/_server.ts-uSNr19lE.js +35 -0
  90. package/dist/server/chunks/_server.ts-uSNr19lE.js.map +1 -0
  91. package/dist/server/chunks/client-Dw0t4rDL.js +25 -0
  92. package/dist/server/chunks/client-Dw0t4rDL.js.map +1 -0
  93. package/dist/server/chunks/exports-BNC8dbq3.js +326 -0
  94. package/dist/server/chunks/exports-BNC8dbq3.js.map +1 -0
  95. package/dist/server/chunks/hooks.server-B6FrjICA.js +66 -0
  96. package/dist/server/chunks/hooks.server-B6FrjICA.js.map +1 -0
  97. package/dist/server/chunks/hooks.universal-B3lncnqn.js +6 -0
  98. package/dist/server/chunks/hooks.universal-B3lncnqn.js.map +1 -0
  99. package/dist/server/chunks/html-FW6Ia4bL.js +8 -0
  100. package/dist/server/chunks/html-FW6Ia4bL.js.map +1 -0
  101. package/dist/server/chunks/index-Ch5Bqlgz.js +1411 -0
  102. package/dist/server/chunks/index-Ch5Bqlgz.js.map +1 -0
  103. package/dist/server/chunks/index-wpIsICWW.js +219 -0
  104. package/dist/server/chunks/index-wpIsICWW.js.map +1 -0
  105. package/dist/server/chunks/runtime-Bf5HkYyl.js +318 -0
  106. package/dist/server/chunks/runtime-Bf5HkYyl.js.map +1 -0
  107. package/dist/server/chunks/sessions-CEbRx2vt.js +169 -0
  108. package/dist/server/chunks/sessions-CEbRx2vt.js.map +1 -0
  109. package/dist/server/index.js +7609 -0
  110. package/dist/server/index.js.map +1 -0
  111. package/dist/server/manifest.js +97 -0
  112. package/dist/server/manifest.js.map +1 -0
  113. package/dist/shims.js +32 -0
  114. package/package.json +122 -0
package/README.md ADDED
@@ -0,0 +1,85 @@
1
+ # Quiz MCP
2
+
3
+ A Model Context Protocol (MCP) server for running interactive quizzes. This tool bridges the gap between AI generation and user interaction by allowing agents to generate quizzes and immediately present them to users in a polished web interface.
4
+
5
+ ## Features
6
+
7
+ - **Interactive Web UI**: Built with SvelteKit for a responsive and smooth experience.
8
+ - **MCP Support**: Fully compatible with Model Context Protocol for AI agent integration.
9
+ - **Multiple Question Types**:
10
+ - Single Choice
11
+ - Multiple Choice
12
+ - Open Text
13
+ - **Flexible Configuration**: customizable themes, timers, and shuffling.
14
+ - **CLI Tool**: easy-to-use command line interface for local testing and usage.
15
+
16
+ ## Local-first & Privacy by Design
17
+
18
+ Quiz MCP runs entirely on your machine.
19
+
20
+ - **No external APIs**
21
+ - **No cloud services**
22
+ - **No telemetry**
23
+ - **No user data leaves your system**
24
+
25
+ AI agents communicate with the quiz UI through a local MCP server. All interactions stay within your local environment (unless you explicitly configure a webhook).
26
+
27
+ ## Installation
28
+
29
+ ```bash
30
+ pnpm install
31
+ pnpm build
32
+ ```
33
+
34
+ ## Usage
35
+
36
+ ### Standalone Mode (CLI)
37
+
38
+ Run a quiz directly from a local JSON file:
39
+
40
+ ```bash
41
+ # Run a JavaScript quiz
42
+ pnpm quiz:js
43
+
44
+ # Run a Web Development quiz
45
+ pnpm quiz:web
46
+ ```
47
+
48
+ Or run any custom file:
49
+
50
+ ```bash
51
+ pnpm quiz --file ./my-quiz.json --open
52
+ ```
53
+
54
+ ### MCP Mode (AI Agent)
55
+
56
+ Start the MCP server to allow AI agents to connect:
57
+
58
+ ```bash
59
+ pnpm quiz:mcp
60
+ ```
61
+
62
+ The server runs on port 3000 (default) or the port specified in your configuration.
63
+
64
+ ## Development
65
+
66
+ 1. Start the development server:
67
+ ```bash
68
+ pnpm dev
69
+ ```
70
+
71
+ 2. Run the CLI in dev mode:
72
+ ```bash
73
+ pnpm quiz:js
74
+ ```
75
+
76
+ ## Architecture
77
+
78
+ The project consists of three main parts:
79
+ 1. **`src/lib`**: Shared logic and types.
80
+ 2. **`src/routes`**: SvelteKit web application.
81
+ 3. **`src/cli`**: Node.js CLI entry points for both the standalone runner and the MCP server.
82
+
83
+ ## License
84
+
85
+ MIT
package/bin/quiz ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Quiz MCP - Unified CLI
4
+ */
5
+
6
+ import { dirname, join } from 'node:path';
7
+ import { fileURLToPath } from 'node:url';
8
+
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const cliPath = join(__dirname, '..', 'dist', 'cli.js');
11
+
12
+ const { main } = await import(cliPath);
13
+ main(process.argv).catch((err) => {
14
+ console.error('Unhandled error:', err);
15
+ process.exit(1);
16
+ });
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Quiz MCP - Runner CLI (Legacy Alias)
4
+ */
5
+
6
+ import { dirname, join } from 'node:path';
7
+ import { fileURLToPath } from 'node:url';
8
+
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const cliPath = join(__dirname, '..', 'dist', 'cli.js');
11
+
12
+ const { main } = await import(cliPath);
13
+
14
+ const newArgv = [process.argv[0], 'run', ...process.argv.slice(1)];
15
+ main(newArgv).catch((err) => {
16
+ console.error('Unhandled error:', err);
17
+ process.exit(1);
18
+ });
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Quiz MCP - MCP Server CLI (Legacy Alias)
4
+ */
5
+
6
+ import { dirname, join } from 'node:path';
7
+ import { fileURLToPath } from 'node:url';
8
+
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const cliPath = join(__dirname, '..', 'dist', 'cli.js');
11
+
12
+ const { main } = await import(cliPath);
13
+
14
+ const newArgv = [process.argv[0], 'mcp', ...process.argv.slice(1)];
15
+ main(newArgv).catch((err) => {
16
+ console.error('Unhandled error:', err);
17
+ process.exit(1);
18
+ });