@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.
- package/LICENSE +21 -0
- package/README.md +169 -0
- package/dist/helpers.js +4 -0
- package/dist/index.js +430 -0
- package/dist/prompts.js +4 -0
- package/dist/tools/classes.js +348 -0
- package/dist/tools/exams.js +309 -0
- package/dist/tools/integrations.js +246 -0
- package/dist/tools/metrics.js +39 -0
- package/dist/tools/organizations.js +625 -0
- package/dist/tools/permissions.js +2216 -0
- package/dist/tools/plays.js +406 -0
- package/dist/tools/questions.js +1142 -0
- package/dist/tools/quizes.js +253 -0
- package/dist/tools/tags.js +1504 -0
- package/dist/tools/users.js +611 -0
- package/dist/tools.js +68 -0
- package/package.json +30 -0
|
@@ -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
|
+
};
|