@qikdev/mcp 6.6.15 → 6.6.18

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.
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/tools/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAK1D,eAAO,MAAM,iBAAiB,EAAE,IAqB/B,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA4J5J"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/tools/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAK1D,eAAO,MAAM,iBAAiB,EAAE,IAqB/B,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAuH5J"}
@@ -30,18 +30,8 @@ export async function handleCreateContent(args) {
30
30
  throw new Error('Qik MCP server not configured. Run setup first.');
31
31
  }
32
32
  const { typeKey, scope, data } = args;
33
- if (!typeKey) {
34
- throw new Error('typeKey is required');
35
- }
36
- // Step 1: Get user session to check permissions
37
- let userSession;
38
- try {
39
- userSession = await getUserSessionData();
40
- }
41
- catch (error) {
42
- throw new Error(`Failed to get user session: ${error.message}`);
43
- }
44
- // Step 2: Get glossary to validate content type
33
+ // STEP 1: User asks to create something - we have the typeKey
34
+ // STEP 2: Load and check the glossary for the relevant entry
45
35
  const glossaryResponse = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/glossary/ai`, {
46
36
  headers: {
47
37
  'Authorization': `Bearer ${config.accessToken}`,
@@ -52,35 +42,35 @@ export async function handleCreateContent(args) {
52
42
  throw new Error(`Failed to fetch glossary: HTTP ${glossaryResponse.status}`);
53
43
  }
54
44
  const glossaryData = await glossaryResponse.json();
55
- // Try to find content type by exact key match first
45
+ // Find the content type
56
46
  let contentType = glossaryData.find(ct => ct.key === typeKey);
57
- // If not found by key, try to match by natural language (title/plural)
47
+ // If not found by key, try natural language matching
58
48
  if (!contentType) {
59
- contentType = findContentTypeByRequest(glossaryData, typeKey);
49
+ contentType = findContentTypeByDescription(glossaryData, typeKey);
60
50
  }
61
51
  if (!contentType) {
62
52
  const availableTypes = glossaryData.map(ct => `${ct.key} (${ct.title})`).join(', ');
63
53
  throw new Error(`Content type '${typeKey}' not found. Available types: ${availableTypes}`);
64
54
  }
65
- // Use the actual content type key for API calls
66
- const actualTypeKey = contentType.key;
67
- // Step 3: Check if user has create permission for this content type
68
- const requiredPermission = `create.${actualTypeKey}`;
55
+ // STEP 3: Understand how to create the JSON object from the glossary entry
56
+ const payload = buildPayloadFromGlossary(contentType, data, scope);
57
+ // Get user session for permissions and scope validation
58
+ const userSession = await getUserSessionData();
59
+ const requiredPermission = `create.${contentType.key}`;
69
60
  if (!hasPermission(userSession, requiredPermission)) {
70
61
  throw new Error(`You don't have permission to create ${contentType.title} content. Required permission: ${requiredPermission}`);
71
62
  }
72
- // Step 4: Handle scope selection
73
- let selectedScope = scope;
74
- if (!selectedScope) {
63
+ // Handle scope selection if not provided
64
+ if (!payload.meta?.scopes) {
75
65
  const availableScopes = getAvailableScopes(userSession, requiredPermission);
76
66
  if (availableScopes.length === 0) {
77
67
  throw new Error(`No scopes available for creating ${contentType.title} content`);
78
68
  }
79
69
  if (availableScopes.length === 1) {
80
- selectedScope = availableScopes[0];
70
+ payload.meta = payload.meta || {};
71
+ payload.meta.scopes = [availableScopes[0]];
81
72
  }
82
73
  else {
83
- // Multiple scopes available - need to prompt user
84
74
  return {
85
75
  content: [{
86
76
  type: "text",
@@ -89,58 +79,37 @@ export async function handleCreateContent(args) {
89
79
  };
90
80
  }
91
81
  }
92
- // Validate the selected scope is available to the user
93
- const availableScopes = getAvailableScopes(userSession, requiredPermission);
94
- if (!availableScopes.includes(selectedScope)) {
95
- throw new Error(`Scope '${selectedScope}' is not available for creating ${contentType.title}. Available scopes: ${availableScopes.join(', ')}`);
96
- }
97
- // Step 5: Handle data collection
98
- let contentData = data || {};
99
- // If no data provided, we need to guide the user through field collection
100
- if (!data) {
101
- const requiredFields = getRequiredFields(contentType);
102
- if (requiredFields.length > 0) {
103
- const fieldPrompts = requiredFields.map(field => {
104
- const fieldType = field.type ? ` (${field.type})` : '';
105
- const fieldDesc = field.description ? ` - ${field.description}` : '';
106
- const fieldPath = getSimpleFieldPath(field.path);
107
- return `• ${field.title || fieldPath}${fieldType}${fieldDesc}\n Path: ${field.path}`;
108
- }).join('\n\n');
109
- return {
110
- content: [{
111
- type: "text",
112
- text: `📝 To create ${contentType.title} in scope '${selectedScope}', please provide the following required fields:\n\n${fieldPrompts}\n\nCall create_content again with a 'data' object containing these fields using the specified paths.`
113
- }]
114
- };
115
- }
116
- }
117
- // Step 6: Construct the proper payload structure based on glossary field paths
118
- const payload = constructPayloadFromGlossary(contentData, contentType);
119
- // Ensure meta.scopes is set to the selected scope (this overrides any user-provided scopes)
120
- setValueByPath(payload, 'meta.scopes', [selectedScope]);
121
- // Step 7: Validate the constructed payload
122
- const validationResult = validateContentData(payload, contentType);
123
- if (!validationResult.valid) {
124
- throw new Error(`Invalid content data: ${validationResult.errors.join(', ')}`);
82
+ // Check if we have all required data
83
+ const missingFields = getMissingRequiredFields(contentType, payload);
84
+ if (missingFields.length > 0) {
85
+ const fieldPrompts = missingFields.map(field => {
86
+ return `• ${field.title || field.path}: ${field.description || 'No description'}`;
87
+ }).join('\n');
88
+ return {
89
+ content: [{
90
+ type: "text",
91
+ text: `📝 Missing required fields for ${contentType.title}:\n\n${fieldPrompts}\n\nPlease call create_content again with a 'data' object containing these fields.`
92
+ }]
93
+ };
125
94
  }
126
- // Step 8: Create the content
127
- const createResponse = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/content/${actualTypeKey}/create`, {
95
+ // Create the content
96
+ const createResponse = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/content`, {
128
97
  method: 'POST',
129
98
  headers: {
130
99
  'Authorization': `Bearer ${config.accessToken}`,
131
100
  'Content-Type': 'application/json',
132
101
  },
133
- body: JSON.stringify(payload),
102
+ body: JSON.stringify(payload)
134
103
  });
135
104
  if (!createResponse.ok) {
136
105
  const errorText = await createResponse.text();
137
- throw new Error(`HTTP ${createResponse.status}: ${errorText}`);
106
+ throw new Error(`Failed to create content: HTTP ${createResponse.status} - ${errorText}`);
138
107
  }
139
108
  const createdContent = await createResponse.json();
140
109
  return {
141
110
  content: [{
142
111
  type: "text",
143
- text: `✅ Successfully created ${contentType.title} in scope '${selectedScope}':\n\n${JSON.stringify(createdContent, null, 2)}`
112
+ text: `✅ Successfully created ${contentType.title}!\n\nContent ID: ${createdContent.id || 'Unknown'}\nScope: ${payload.meta?.scopes?.[0] || 'Unknown'}\n\nCreated content:\n${JSON.stringify(createdContent, null, 2)}`
144
113
  }]
145
114
  };
146
115
  }
@@ -153,90 +122,86 @@ export async function handleCreateContent(args) {
153
122
  };
154
123
  }
155
124
  }
156
- function validateContentData(data, contentType) {
157
- const errors = [];
158
- if (!data || typeof data !== 'object') {
159
- return { valid: false, errors: ['Data must be an object'] };
125
+ function findContentTypeByDescription(glossaryData, description) {
126
+ const desc = description.toLowerCase();
127
+ return glossaryData.find(contentType => {
128
+ const title = (contentType.title || '').toLowerCase();
129
+ const plural = (contentType.plural || '').toLowerCase();
130
+ const key = (contentType.key || '').toLowerCase();
131
+ return desc.includes(title) ||
132
+ desc.includes(plural) ||
133
+ desc.includes(key) ||
134
+ title.includes(desc) ||
135
+ plural.includes(desc);
136
+ });
137
+ }
138
+ function buildPayloadFromGlossary(contentType, userData = {}, scope) {
139
+ const payload = {};
140
+ // Set the content type
141
+ payload.type = contentType.key;
142
+ // Initialize meta object
143
+ payload.meta = {};
144
+ // Set scope if provided
145
+ if (scope) {
146
+ payload.meta.scopes = [scope];
160
147
  }
161
- const requiredFields = getRequiredFields(contentType);
162
- for (const field of requiredFields) {
163
- if (!field.path) {
164
- continue;
165
- }
166
- const fieldValue = getValueByPath(data, field.path);
167
- if (fieldValue === undefined || fieldValue === null) {
168
- errors.push(`Required field '${field.path}' is missing`);
169
- continue;
170
- }
171
- // Basic type checking if field type is specified
172
- if (field.type) {
173
- const expectedType = field.type.toLowerCase();
174
- if (expectedType === 'string' && typeof fieldValue !== 'string') {
175
- errors.push(`Field '${field.path}' should be a string`);
176
- }
177
- else if (expectedType === 'number' && typeof fieldValue !== 'number') {
178
- errors.push(`Field '${field.path}' should be a number`);
179
- }
180
- else if (expectedType === 'boolean' && typeof fieldValue !== 'boolean') {
181
- errors.push(`Field '${field.path}' should be a boolean`);
148
+ // Process fields from glossary definition
149
+ if (contentType.fields && Array.isArray(contentType.fields)) {
150
+ contentType.fields.forEach(field => {
151
+ if (!field.path)
152
+ return;
153
+ let value = getUserDataValue(userData, field);
154
+ // Use default value if no user value and default exists
155
+ if (value === undefined && field.defaultValues && field.defaultValues.length > 0) {
156
+ const defaultValue = field.defaultValues[0];
157
+ if (defaultValue === 'now' && field.type === 'date') {
158
+ value = new Date().toISOString();
159
+ }
160
+ else {
161
+ value = defaultValue;
162
+ }
182
163
  }
183
- else if (expectedType === 'array' && !Array.isArray(fieldValue)) {
184
- errors.push(`Field '${field.path}' should be an array`);
164
+ // Set the value in the payload
165
+ if (value !== undefined) {
166
+ setNestedValue(payload, field.path, value);
185
167
  }
186
- }
187
- }
188
- return { valid: errors.length === 0, errors };
189
- }
190
- function getRequiredFields(contentType) {
191
- if (!contentType.fields || !Array.isArray(contentType.fields)) {
192
- return [];
168
+ });
193
169
  }
194
- return contentType.fields.filter(field => field.required === true);
170
+ return payload;
195
171
  }
196
- // Helper function to get value from nested object using path notation
197
- function getValueByPath(obj, path) {
198
- if (!path)
172
+ function getUserDataValue(userData, field) {
173
+ if (!userData || typeof userData !== 'object')
199
174
  return undefined;
200
- // Handle array notation like "fields[].title"
201
- const parts = path.split('.');
202
- let current = obj;
203
- for (const part of parts) {
204
- if (part.includes('[]')) {
205
- // This is an array path, we can't validate individual array items without knowing the index
206
- // For now, just check if the array exists
207
- const arrayName = part.replace('[]', '');
208
- if (!current[arrayName] || !Array.isArray(current[arrayName])) {
209
- return undefined;
210
- }
211
- // For array validation, we'll need to check each item separately
212
- // This is a simplified approach - in practice you'd want more sophisticated validation
213
- return current[arrayName];
214
- }
215
- else {
216
- if (current === null || current === undefined || !(part in current)) {
217
- return undefined;
218
- }
219
- current = current[part];
175
+ // Try exact path match first
176
+ if (userData[field.path] !== undefined) {
177
+ return userData[field.path];
178
+ }
179
+ // Try field title match
180
+ if (field.title) {
181
+ const titleKey = Object.keys(userData).find(key => key.toLowerCase() === field.title.toLowerCase());
182
+ if (titleKey && userData[titleKey] !== undefined) {
183
+ return userData[titleKey];
220
184
  }
221
185
  }
222
- return current;
186
+ // Try last part of path (e.g., "title" for "content.title")
187
+ const pathParts = field.path.split('.');
188
+ const lastPart = pathParts[pathParts.length - 1].replace('[]', '');
189
+ const lastPartKey = Object.keys(userData).find(key => key.toLowerCase() === lastPart.toLowerCase());
190
+ if (lastPartKey && userData[lastPartKey] !== undefined) {
191
+ return userData[lastPartKey];
192
+ }
193
+ return undefined;
223
194
  }
224
- // Helper function to set a value at a specific path in an object
225
- function setValueByPath(obj, path, value) {
226
- if (!path)
227
- return;
195
+ function setNestedValue(obj, path, value) {
228
196
  const parts = path.split('.');
229
197
  let current = obj;
230
198
  for (let i = 0; i < parts.length - 1; i++) {
231
199
  const part = parts[i];
232
200
  if (part.includes('[]')) {
233
- // Handle array notation like "entries[]"
234
201
  const arrayName = part.replace('[]', '');
235
202
  if (!current[arrayName]) {
236
203
  current[arrayName] = [];
237
204
  }
238
- // For arrays, we'll need to handle this differently based on the value structure
239
- // This is a simplified approach - in practice you might need more sophisticated array handling
240
205
  current = current[arrayName];
241
206
  }
242
207
  else {
@@ -252,7 +217,6 @@ function setValueByPath(obj, path, value) {
252
217
  if (!current[arrayName]) {
253
218
  current[arrayName] = [];
254
219
  }
255
- // If value is an array, set it directly, otherwise push single value
256
220
  if (Array.isArray(value)) {
257
221
  current[arrayName] = value;
258
222
  }
@@ -264,93 +228,40 @@ function setValueByPath(obj, path, value) {
264
228
  current[finalPart] = value;
265
229
  }
266
230
  }
267
- // Helper function to construct payload from user data using glossary field definitions
268
- function constructPayloadFromGlossary(userData, contentType) {
269
- const payload = {};
231
+ function getMissingRequiredFields(contentType, payload) {
270
232
  if (!contentType.fields || !Array.isArray(contentType.fields)) {
271
- return userData; // Fallback to original data if no field definitions
233
+ return [];
272
234
  }
273
- // Process each field from the glossary definition
274
- contentType.fields.forEach(field => {
235
+ const requiredFields = contentType.fields.filter(field => field.required === true);
236
+ const missingFields = [];
237
+ for (const field of requiredFields) {
275
238
  if (!field.path)
276
- return;
277
- let valueToSet = undefined;
278
- // 1. Check if user provided a value by exact path match
279
- if (userData[field.path] !== undefined) {
280
- valueToSet = userData[field.path];
281
- }
282
- // 2. Check if user provided a value by field title (case insensitive)
283
- else if (field.title) {
284
- const userKey = Object.keys(userData).find(key => key.toLowerCase() === field.title.toLowerCase());
285
- if (userKey && userData[userKey] !== undefined) {
286
- valueToSet = userData[userKey];
287
- }
288
- }
289
- // 3. Check if user provided a value by the last part of the path (e.g., "status" for "meta.status")
290
- if (valueToSet === undefined) {
291
- const pathParts = field.path.split('.');
292
- const lastPart = pathParts[pathParts.length - 1].replace('[]', '');
293
- const userKey = Object.keys(userData).find(key => key.toLowerCase() === lastPart.toLowerCase());
294
- if (userKey && userData[userKey] !== undefined) {
295
- valueToSet = userData[userKey];
296
- }
239
+ continue;
240
+ const value = getNestedValue(payload, field.path);
241
+ if (value === undefined || value === null || value === '') {
242
+ missingFields.push(field);
297
243
  }
298
- // 4. If no user value found, use default value if available
299
- if (valueToSet === undefined && field.defaultValues && field.defaultValues.length > 0) {
300
- const defaultValue = field.defaultValues[0];
301
- if (defaultValue === 'now' && field.type === 'date') {
302
- valueToSet = new Date().toISOString();
303
- }
304
- else {
305
- valueToSet = defaultValue;
244
+ }
245
+ return missingFields;
246
+ }
247
+ function getNestedValue(obj, path) {
248
+ const parts = path.split('.');
249
+ let current = obj;
250
+ for (const part of parts) {
251
+ if (part.includes('[]')) {
252
+ const arrayName = part.replace('[]', '');
253
+ if (!current[arrayName] || !Array.isArray(current[arrayName])) {
254
+ return undefined;
306
255
  }
256
+ current = current[arrayName];
307
257
  }
308
- // 5. Handle required fields without values
309
- if (valueToSet === undefined && field.required) {
310
- if (field.type === 'group') {
311
- valueToSet = {}; // Empty object for group fields
312
- }
313
- else if (field.type === 'string') {
314
- valueToSet = ''; // Empty string for required string fields
315
- }
316
- else if (field.type === 'reference' && field.referenceType === 'scope') {
317
- // meta.scopes will be set later, skip for now
318
- return;
258
+ else {
259
+ if (current === null || current === undefined || !(part in current)) {
260
+ return undefined;
319
261
  }
262
+ current = current[part];
320
263
  }
321
- // 6. Set the value at the correct path in the payload
322
- if (valueToSet !== undefined) {
323
- setValueByPath(payload, field.path, valueToSet);
324
- }
325
- });
326
- return payload;
327
- }
328
- // Helper function to create a simple field path for user prompts
329
- function getSimpleFieldPath(path) {
330
- if (!path)
331
- return 'unknown';
332
- // Convert "fields[].title" to "fields (array of objects with title)"
333
- if (path.includes('[]')) {
334
- const parts = path.split('[]');
335
- const arrayName = parts[0];
336
- const subField = parts[1] ? parts[1].substring(1) : ''; // Remove leading dot
337
- return subField ? `${arrayName} (array of objects with ${subField})` : `${arrayName} (array)`;
338
264
  }
339
- return path;
340
- }
341
- // Helper function to find content type by user request (natural language matching)
342
- function findContentTypeByRequest(glossaryData, userRequest) {
343
- const request = userRequest.toLowerCase();
344
- return glossaryData.find(contentType => {
345
- const title = (contentType.title || '').toLowerCase();
346
- const plural = (contentType.plural || '').toLowerCase();
347
- const key = (contentType.key || '').toLowerCase();
348
- // Check if user request matches title, plural, or key
349
- return request.includes(title) ||
350
- request.includes(plural) ||
351
- request.includes(key) ||
352
- title.includes(request) ||
353
- plural.includes(request);
354
- });
265
+ return current;
355
266
  }
356
267
  //# sourceMappingURL=create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/tools/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/tools/create.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qikdev/mcp",
3
- "version": "6.6.15",
3
+ "version": "6.6.18",
4
4
  "description": "A plug-and-play Model Context Protocol server for the Qik platform - enabling AI assistants to interact with Qik's content management system, user management, forms, files, and more.",
5
5
  "keywords": [
6
6
  "mcp",