@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,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
+ };