@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,246 @@
|
|
|
1
|
+
/* Tool definitions */
|
|
2
|
+
export const EDUBASE_API_TOOLS_INTEGRATIONS = [
|
|
3
|
+
// GET /integrations - List owned and managed integrations
|
|
4
|
+
{
|
|
5
|
+
name: 'edubase_get_integrations',
|
|
6
|
+
description: "List owned and managed integrations.",
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: 'object',
|
|
9
|
+
properties: {
|
|
10
|
+
search: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
description: 'search string to filter results',
|
|
13
|
+
},
|
|
14
|
+
limit: {
|
|
15
|
+
type: 'number',
|
|
16
|
+
description: 'limit number of results (default: 16)',
|
|
17
|
+
},
|
|
18
|
+
page: {
|
|
19
|
+
type: 'number',
|
|
20
|
+
description: 'page number (default: 1), not used in search mode!',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
required: [],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
// GET /integration - Get/check integration
|
|
27
|
+
{
|
|
28
|
+
name: 'edubase_get_integration',
|
|
29
|
+
description: "Get/check integration.",
|
|
30
|
+
inputSchema: {
|
|
31
|
+
type: 'object',
|
|
32
|
+
properties: {
|
|
33
|
+
integration: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'integration identification string',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
required: ['integration'],
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
// POST /integration - Create a new API or LMS integration
|
|
42
|
+
{
|
|
43
|
+
name: 'edubase_post_integration',
|
|
44
|
+
description: "Create a new API or LMS integration.",
|
|
45
|
+
inputSchema: {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
title: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
description: 'title of the integration',
|
|
51
|
+
},
|
|
52
|
+
description: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'optional short description',
|
|
55
|
+
},
|
|
56
|
+
type: {
|
|
57
|
+
type: 'string',
|
|
58
|
+
description: 'type of the integration (api / moodle / canvas / d2l / schoology / lms)',
|
|
59
|
+
},
|
|
60
|
+
lti: {
|
|
61
|
+
type: 'string',
|
|
62
|
+
description: 'LTI version (1.0/1.1 / 1.3), only necessary for LMS integrations!',
|
|
63
|
+
},
|
|
64
|
+
platform: {
|
|
65
|
+
type: 'string',
|
|
66
|
+
description: 'LMS platform URL, only necessary for LMS integrations!',
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
required: ['title'],
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
// PATCH /integration - Update integration
|
|
73
|
+
{
|
|
74
|
+
name: 'edubase_patch_integration',
|
|
75
|
+
description: "Update integration.",
|
|
76
|
+
inputSchema: {
|
|
77
|
+
type: 'object',
|
|
78
|
+
properties: {
|
|
79
|
+
integration: {
|
|
80
|
+
type: 'string',
|
|
81
|
+
description: 'integration identification string',
|
|
82
|
+
},
|
|
83
|
+
active: {
|
|
84
|
+
type: 'boolean',
|
|
85
|
+
description: 'enable or disable the integration',
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
required: ['integration'],
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
// DELETE /integration - Remove integration
|
|
92
|
+
{
|
|
93
|
+
name: 'edubase_delete_integration',
|
|
94
|
+
description: "Remove integration.",
|
|
95
|
+
inputSchema: {
|
|
96
|
+
type: 'object',
|
|
97
|
+
properties: {
|
|
98
|
+
integration: {
|
|
99
|
+
type: 'string',
|
|
100
|
+
description: 'integration identification string',
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
required: ['integration'],
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
// GET /integration:keys - Get integration keys/secrets
|
|
107
|
+
{
|
|
108
|
+
name: 'edubase_get_integration_keys',
|
|
109
|
+
description: "Get integration keys/secrets.",
|
|
110
|
+
inputSchema: {
|
|
111
|
+
type: 'object',
|
|
112
|
+
properties: {
|
|
113
|
+
integration: {
|
|
114
|
+
type: 'string',
|
|
115
|
+
description: 'integration identification string',
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
required: ['integration'],
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
// POST /integration:keys - Rotate integration keys/secrets
|
|
122
|
+
{
|
|
123
|
+
name: 'edubase_post_integration_keys',
|
|
124
|
+
description: "Rotate integration keys/secrets.",
|
|
125
|
+
inputSchema: {
|
|
126
|
+
type: 'object',
|
|
127
|
+
properties: {
|
|
128
|
+
integration: {
|
|
129
|
+
type: 'string',
|
|
130
|
+
description: 'integration identification string',
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
required: ['integration'],
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
];
|
|
137
|
+
/* Output schema definitions */
|
|
138
|
+
export const EDUBASE_API_TOOLS_INTEGRATIONS_OUTPUT_SCHEMA = {
|
|
139
|
+
// GET /integrations - List owned and managed integrations
|
|
140
|
+
edubase_get_integrations: {
|
|
141
|
+
type: 'array',
|
|
142
|
+
items: {
|
|
143
|
+
type: 'object',
|
|
144
|
+
properties: {
|
|
145
|
+
integration: {
|
|
146
|
+
type: 'string',
|
|
147
|
+
description: 'integration identification string',
|
|
148
|
+
},
|
|
149
|
+
id: {
|
|
150
|
+
type: 'string',
|
|
151
|
+
description: 'external unique integration identifier (if set for the integration)',
|
|
152
|
+
},
|
|
153
|
+
name: {
|
|
154
|
+
type: 'string',
|
|
155
|
+
description: 'title of the integration',
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
// GET /integrations - Get/check integration
|
|
161
|
+
edubase_get_integration: {
|
|
162
|
+
type: 'object',
|
|
163
|
+
properties: {
|
|
164
|
+
integration: {
|
|
165
|
+
type: 'string',
|
|
166
|
+
description: 'integration identification string',
|
|
167
|
+
},
|
|
168
|
+
id: {
|
|
169
|
+
type: 'string',
|
|
170
|
+
description: 'external unique integration identifier (if set for the integration)',
|
|
171
|
+
},
|
|
172
|
+
name: {
|
|
173
|
+
type: 'string',
|
|
174
|
+
description: 'title of the integration',
|
|
175
|
+
},
|
|
176
|
+
type: {
|
|
177
|
+
type: 'string',
|
|
178
|
+
description: 'type of the integration',
|
|
179
|
+
},
|
|
180
|
+
active: {
|
|
181
|
+
type: 'boolean',
|
|
182
|
+
description: 'integration is active',
|
|
183
|
+
},
|
|
184
|
+
lti: {
|
|
185
|
+
type: 'string',
|
|
186
|
+
description: 'LTI version, only present if the integration is an LMS',
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
// PATCH /integration - Update integration
|
|
191
|
+
edubase_patch_integration: {},
|
|
192
|
+
// DELETE /integration - Remove integration
|
|
193
|
+
edubase_delete_integration: {},
|
|
194
|
+
// GET /integration:keys - Get integration keys/secrets
|
|
195
|
+
edubase_get_integration_keys: {
|
|
196
|
+
type: 'object',
|
|
197
|
+
properties: {
|
|
198
|
+
app: {
|
|
199
|
+
type: 'string',
|
|
200
|
+
description: 'API application identification string, only present if the integration is an API integration',
|
|
201
|
+
},
|
|
202
|
+
consumer: {
|
|
203
|
+
type: 'string',
|
|
204
|
+
description: 'consumer key, only present if the integration is an LMS integration using LTI 1.0/1.1',
|
|
205
|
+
},
|
|
206
|
+
secret: {
|
|
207
|
+
type: 'string',
|
|
208
|
+
description: 'secret key, only present if the integration is an API integration or an LMS integration using LTI 1.0/1.1',
|
|
209
|
+
},
|
|
210
|
+
jwk: {
|
|
211
|
+
type: 'string',
|
|
212
|
+
description: 'URL for the JWK (JSON Web Key) set, only present if the integration is an LMS integration using LTI 1.3',
|
|
213
|
+
},
|
|
214
|
+
pem: {
|
|
215
|
+
type: 'string',
|
|
216
|
+
description: 'PEM formatted public key, only present if the integration is an LMS integration using LTI 1.3',
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
// POST /integration:keys - Rotate integration keys/secrets
|
|
221
|
+
edubase_post_integration_keys: {
|
|
222
|
+
type: 'object',
|
|
223
|
+
properties: {
|
|
224
|
+
app: {
|
|
225
|
+
type: 'string',
|
|
226
|
+
description: 'API application identification string, only present if the integration is an API integration',
|
|
227
|
+
},
|
|
228
|
+
consumer: {
|
|
229
|
+
type: 'string',
|
|
230
|
+
description: 'consumer key, only present if the integration is an LMS integration using LTI 1.0/1.1',
|
|
231
|
+
},
|
|
232
|
+
secret: {
|
|
233
|
+
type: 'string',
|
|
234
|
+
description: 'secret key, only present if the integration is an API integration or an LMS integration using LTI 1.0/1.1',
|
|
235
|
+
},
|
|
236
|
+
jwk: {
|
|
237
|
+
type: 'string',
|
|
238
|
+
description: 'URL for the JWK (JSON Web Key) set, only present if the integration is an LMS integration using LTI 1.3',
|
|
239
|
+
},
|
|
240
|
+
pem: {
|
|
241
|
+
type: 'string',
|
|
242
|
+
description: 'PEM formatted public key, only present if the integration is an LMS integration using LTI 1.3',
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* Tool definitions */
|
|
2
|
+
export const EDUBASE_API_TOOLS_METRICS = [
|
|
3
|
+
// POST /metrics:custom - Update a custom metric
|
|
4
|
+
{
|
|
5
|
+
name: 'edubase_post_custom_metric',
|
|
6
|
+
description: "Update a custom metric.",
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: 'object',
|
|
9
|
+
properties: {
|
|
10
|
+
metric: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
description: 'metric name',
|
|
13
|
+
},
|
|
14
|
+
value: {
|
|
15
|
+
type: 'number',
|
|
16
|
+
description: 'target value (also accepts increments with a + prefix)',
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
required: ['metric', 'value'],
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
/* Output schema definitions */
|
|
24
|
+
export const EDUBASE_API_TOOLS_METRICS_OUTPUT_SCHEMA = {
|
|
25
|
+
// POST /metrics:custom - Update a custom metric
|
|
26
|
+
edubase_post_custom_metric: {
|
|
27
|
+
type: 'object',
|
|
28
|
+
properties: {
|
|
29
|
+
metric: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
description: 'metric name',
|
|
32
|
+
},
|
|
33
|
+
value: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'saved value',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|