@edubase/mcp 1.0.23

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.
@@ -0,0 +1,253 @@
1
+ /*
2
+ # Quiz Sets (Middle Level in EduBase Hierarchy)
3
+
4
+ Quiz sets are collections of questions and/or question groups in EduBase.
5
+ They sit between Questions (lowest level) and Exams (highest level) in the hierarchy.
6
+
7
+ Key characteristics:
8
+ - Quiz sets contain a set of questions or question groups
9
+ - They can be used for practice or to power Exams
10
+ - Questions in a Quiz set can be random or fixed
11
+ - One Quiz set can be used to create multiple Exams
12
+ */
13
+ /* Tool definitions */
14
+ export const EDUBASE_API_TOOLS_QUIZES = [
15
+ // GET /quizes - List owned and managed Quiz sets
16
+ {
17
+ name: 'edubase_get_quizes',
18
+ description: "List owned and managed Quiz sets. Quiz sets are named collections of questions that sit at the middle level of the EduBase Quiz hierarchy.",
19
+ inputSchema: {
20
+ type: 'object',
21
+ properties: {
22
+ search: {
23
+ type: 'string',
24
+ description: 'search string to filter results',
25
+ },
26
+ limit: {
27
+ type: 'number',
28
+ description: 'limit number of results (default: 16)',
29
+ },
30
+ page: {
31
+ type: 'number',
32
+ description: 'page number (default: 1), not used in search mode!',
33
+ },
34
+ },
35
+ required: [],
36
+ },
37
+ },
38
+ // GET /quiz - Get/check Quiz set
39
+ {
40
+ name: 'edubase_get_quiz',
41
+ description: "Get/check Quiz set. Containing questions and powering Exams.",
42
+ inputSchema: {
43
+ type: 'object',
44
+ properties: {
45
+ quiz: {
46
+ type: 'string',
47
+ description: 'Quiz identification string',
48
+ },
49
+ },
50
+ required: ['quiz'],
51
+ },
52
+ },
53
+ // POST /quiz - Create a new Quiz set
54
+ {
55
+ name: 'edubase_post_quiz',
56
+ description: "Create a new Quiz set. Quiz sets are collections of questions that can be used for practice or to power multiple Exams.",
57
+ inputSchema: {
58
+ type: 'object',
59
+ properties: {
60
+ language: {
61
+ type: 'string',
62
+ description: 'desired Quiz set language',
63
+ },
64
+ title: {
65
+ type: 'string',
66
+ description: 'title of the Quiz set',
67
+ },
68
+ id: {
69
+ type: 'string',
70
+ description: "External unique Quiz identifier.\n" +
71
+ "Should be maximum 64 characters long!"
72
+ },
73
+ description: {
74
+ type: 'string',
75
+ description: 'short description',
76
+ },
77
+ mode: {
78
+ type: 'string',
79
+ description: "Sets how questions are displayed during the Quiz. (default: TEST)\n" +
80
+ "- TEST: all questions are displayed at once, user can answer them in any order and switch between them\n" +
81
+ "- TURNS: questions are displayed one by one, only one question is visible at a time and the user must answer it before moving to the next question\n"
82
+ },
83
+ type: {
84
+ type: 'string',
85
+ description: "Type of the Quiz set. (default: set)\n" +
86
+ "- set: for practice purposes\n" +
87
+ "- exam: for exam purposes\n" +
88
+ "- private: for private purposes (e.g testing)\n"
89
+ },
90
+ },
91
+ required: ['title'],
92
+ },
93
+ },
94
+ // DELETE /quiz - Remove/archive Quiz set
95
+ {
96
+ name: 'edubase_delete_quiz',
97
+ description: "Remove/archive Quiz set.",
98
+ inputSchema: {
99
+ type: 'object',
100
+ properties: {
101
+ quiz: {
102
+ type: 'string',
103
+ description: 'Quiz identification string',
104
+ },
105
+ },
106
+ required: ['quiz'],
107
+ },
108
+ },
109
+ // GET /quiz:questions - List all questions and question groups in a Quiz set
110
+ {
111
+ name: 'edubase_get_quiz_questions',
112
+ description: "List all questions and question groups in a Quiz set. Quiz sets contain questions (lowest level) and can be used by exams (highest level).",
113
+ inputSchema: {
114
+ type: 'object',
115
+ properties: {
116
+ quiz: {
117
+ type: 'string',
118
+ description: 'Quiz identification string',
119
+ },
120
+ },
121
+ required: ['quiz'],
122
+ },
123
+ },
124
+ // POST /quiz:questions - Assign question(s) to a Quiz set, or one of its question group
125
+ {
126
+ name: 'edubase_post_quiz_questions',
127
+ description: "Assign question(s) to a Quiz set, or one of its question group. Questions can exist independently from Quiz sets.",
128
+ inputSchema: {
129
+ type: 'object',
130
+ properties: {
131
+ quiz: {
132
+ type: 'string',
133
+ description: 'Quiz identification string',
134
+ },
135
+ group: {
136
+ type: 'string',
137
+ description: 'question group title',
138
+ },
139
+ questions: {
140
+ type: 'string',
141
+ description: 'comma-separated list of question identification strings',
142
+ },
143
+ },
144
+ required: ['quiz', 'questions'],
145
+ },
146
+ },
147
+ // DELETE /quiz:questions - Remove question(s) from a Quiz set, or one of its question group
148
+ {
149
+ name: 'edubase_delete_quiz_questions',
150
+ description: "Remove question(s) from a Quiz set, or one of its question group.",
151
+ inputSchema: {
152
+ type: 'object',
153
+ properties: {
154
+ quiz: {
155
+ type: 'string',
156
+ description: 'Quiz identification string',
157
+ },
158
+ group: {
159
+ type: 'string',
160
+ description: 'question group title',
161
+ },
162
+ questions: {
163
+ type: 'string',
164
+ description: 'comma-separated list of question identification strings',
165
+ },
166
+ },
167
+ required: ['quiz', 'questions'],
168
+ },
169
+ },
170
+ ];
171
+ /* Output schema definitions */
172
+ export const EDUBASE_API_TOOLS_QUIZES_OUTPUT_SCHEMA = {
173
+ // GET /quizes - List owned and managed Quiz sets
174
+ edubase_get_quizes: {
175
+ type: 'array',
176
+ items: {
177
+ type: 'object',
178
+ properties: {
179
+ quiz: {
180
+ type: 'string',
181
+ description: 'Quiz identification string',
182
+ },
183
+ id: {
184
+ type: 'string',
185
+ description: 'external unique Quiz identifier (if set for the Quiz)',
186
+ },
187
+ name: {
188
+ type: 'string',
189
+ description: 'title of the Quiz set',
190
+ },
191
+ },
192
+ },
193
+ },
194
+ // GET /quiz - Get/check Quiz set
195
+ edubase_get_quiz: {
196
+ type: 'object',
197
+ properties: {
198
+ quiz: {
199
+ type: 'string',
200
+ description: 'Quiz identification string',
201
+ },
202
+ id: {
203
+ type: 'string',
204
+ description: 'external unique Quiz identifier (if set for the Quiz)',
205
+ },
206
+ name: {
207
+ type: 'string',
208
+ description: 'title of the Quiz set',
209
+ },
210
+ },
211
+ },
212
+ // GET /quiz - Create a new Quiz set
213
+ edubase_post_quiz: {
214
+ type: 'object',
215
+ properties: {
216
+ quiz: {
217
+ type: 'string',
218
+ description: 'Quiz identification string',
219
+ },
220
+ },
221
+ },
222
+ // DELETE /quiz - Remove/archive Quiz set
223
+ edubase_delete_quiz: {},
224
+ // GET /quiz:questions - List all questions and question groups in a Quiz set
225
+ edubase_get_quiz_questions: {
226
+ type: 'array',
227
+ items: {
228
+ type: 'object',
229
+ properties: {
230
+ id: {
231
+ type: 'string',
232
+ description: 'external unique question identifier (if present)',
233
+ },
234
+ question: {
235
+ type: 'string',
236
+ description: 'question identification string (if question)',
237
+ },
238
+ group: {
239
+ type: 'string',
240
+ description: 'question group title (if group)',
241
+ },
242
+ active: {
243
+ type: 'boolean',
244
+ description: 'active item',
245
+ },
246
+ },
247
+ },
248
+ },
249
+ // POST /quiz:questions - Assign question(s) to a Quiz set, or one of its question group
250
+ edubase_post_quiz_questions: {},
251
+ // DELETE /quiz:questions - Remove question(s) from a Quiz set, or one of its question group
252
+ edubase_delete_quiz_questions: {},
253
+ };