@qikdev/mcp 6.6.14 → 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,
|
|
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
|
-
|
|
34
|
-
|
|
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
|
-
//
|
|
45
|
+
// Find the content type
|
|
56
46
|
let contentType = glossaryData.find(ct => ct.key === typeKey);
|
|
57
|
-
// If not found by key, try
|
|
47
|
+
// If not found by key, try natural language matching
|
|
58
48
|
if (!contentType) {
|
|
59
|
-
contentType =
|
|
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
|
-
//
|
|
66
|
-
const
|
|
67
|
-
//
|
|
68
|
-
const
|
|
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
|
-
//
|
|
73
|
-
|
|
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
|
-
|
|
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,62 +79,37 @@ export async function handleCreateContent(args) {
|
|
|
89
79
|
};
|
|
90
80
|
}
|
|
91
81
|
}
|
|
92
|
-
//
|
|
93
|
-
const
|
|
94
|
-
if (
|
|
95
|
-
|
|
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
|
+
};
|
|
96
94
|
}
|
|
97
|
-
//
|
|
98
|
-
|
|
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: Validate the provided data
|
|
118
|
-
const validationResult = validateContentData(contentData, contentType);
|
|
119
|
-
if (!validationResult.valid) {
|
|
120
|
-
throw new Error(`Invalid content data: ${validationResult.errors.join(', ')}`);
|
|
121
|
-
}
|
|
122
|
-
// Step 7: Add meta.scopes to the payload
|
|
123
|
-
const payload = {
|
|
124
|
-
...contentData,
|
|
125
|
-
meta: {
|
|
126
|
-
...contentData.meta,
|
|
127
|
-
scopes: [selectedScope]
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
// Step 8: Create the content
|
|
131
|
-
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`, {
|
|
132
97
|
method: 'POST',
|
|
133
98
|
headers: {
|
|
134
99
|
'Authorization': `Bearer ${config.accessToken}`,
|
|
135
100
|
'Content-Type': 'application/json',
|
|
136
101
|
},
|
|
137
|
-
body: JSON.stringify(payload)
|
|
102
|
+
body: JSON.stringify(payload)
|
|
138
103
|
});
|
|
139
104
|
if (!createResponse.ok) {
|
|
140
105
|
const errorText = await createResponse.text();
|
|
141
|
-
throw new Error(`HTTP ${createResponse.status}
|
|
106
|
+
throw new Error(`Failed to create content: HTTP ${createResponse.status} - ${errorText}`);
|
|
142
107
|
}
|
|
143
108
|
const createdContent = await createResponse.json();
|
|
144
109
|
return {
|
|
145
110
|
content: [{
|
|
146
111
|
type: "text",
|
|
147
|
-
text: `✅ Successfully created ${contentType.title}
|
|
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)}`
|
|
148
113
|
}]
|
|
149
114
|
};
|
|
150
115
|
}
|
|
@@ -157,64 +122,138 @@ export async function handleCreateContent(args) {
|
|
|
157
122
|
};
|
|
158
123
|
}
|
|
159
124
|
}
|
|
160
|
-
function
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
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];
|
|
164
147
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
+
}
|
|
180
163
|
}
|
|
181
|
-
|
|
182
|
-
|
|
164
|
+
// Set the value in the payload
|
|
165
|
+
if (value !== undefined) {
|
|
166
|
+
setNestedValue(payload, field.path, value);
|
|
183
167
|
}
|
|
184
|
-
|
|
185
|
-
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return payload;
|
|
171
|
+
}
|
|
172
|
+
function getUserDataValue(userData, field) {
|
|
173
|
+
if (!userData || typeof userData !== 'object')
|
|
174
|
+
return undefined;
|
|
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];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
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;
|
|
194
|
+
}
|
|
195
|
+
function setNestedValue(obj, path, value) {
|
|
196
|
+
const parts = path.split('.');
|
|
197
|
+
let current = obj;
|
|
198
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
199
|
+
const part = parts[i];
|
|
200
|
+
if (part.includes('[]')) {
|
|
201
|
+
const arrayName = part.replace('[]', '');
|
|
202
|
+
if (!current[arrayName]) {
|
|
203
|
+
current[arrayName] = [];
|
|
186
204
|
}
|
|
187
|
-
|
|
188
|
-
|
|
205
|
+
current = current[arrayName];
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
if (!current[part]) {
|
|
209
|
+
current[part] = {};
|
|
189
210
|
}
|
|
211
|
+
current = current[part];
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
const finalPart = parts[parts.length - 1];
|
|
215
|
+
if (finalPart.includes('[]')) {
|
|
216
|
+
const arrayName = finalPart.replace('[]', '');
|
|
217
|
+
if (!current[arrayName]) {
|
|
218
|
+
current[arrayName] = [];
|
|
219
|
+
}
|
|
220
|
+
if (Array.isArray(value)) {
|
|
221
|
+
current[arrayName] = value;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
current[arrayName].push(value);
|
|
190
225
|
}
|
|
191
226
|
}
|
|
192
|
-
|
|
227
|
+
else {
|
|
228
|
+
current[finalPart] = value;
|
|
229
|
+
}
|
|
193
230
|
}
|
|
194
|
-
function
|
|
231
|
+
function getMissingRequiredFields(contentType, payload) {
|
|
195
232
|
if (!contentType.fields || !Array.isArray(contentType.fields)) {
|
|
196
233
|
return [];
|
|
197
234
|
}
|
|
198
|
-
|
|
235
|
+
const requiredFields = contentType.fields.filter(field => field.required === true);
|
|
236
|
+
const missingFields = [];
|
|
237
|
+
for (const field of requiredFields) {
|
|
238
|
+
if (!field.path)
|
|
239
|
+
continue;
|
|
240
|
+
const value = getNestedValue(payload, field.path);
|
|
241
|
+
if (value === undefined || value === null || value === '') {
|
|
242
|
+
missingFields.push(field);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return missingFields;
|
|
199
246
|
}
|
|
200
|
-
|
|
201
|
-
function getValueByPath(obj, path) {
|
|
202
|
-
if (!path)
|
|
203
|
-
return undefined;
|
|
204
|
-
// Handle array notation like "fields[].title"
|
|
247
|
+
function getNestedValue(obj, path) {
|
|
205
248
|
const parts = path.split('.');
|
|
206
249
|
let current = obj;
|
|
207
250
|
for (const part of parts) {
|
|
208
251
|
if (part.includes('[]')) {
|
|
209
|
-
// This is an array path, we can't validate individual array items without knowing the index
|
|
210
|
-
// For now, just check if the array exists
|
|
211
252
|
const arrayName = part.replace('[]', '');
|
|
212
253
|
if (!current[arrayName] || !Array.isArray(current[arrayName])) {
|
|
213
254
|
return undefined;
|
|
214
255
|
}
|
|
215
|
-
|
|
216
|
-
// This is a simplified approach - in practice you'd want more sophisticated validation
|
|
217
|
-
return current[arrayName];
|
|
256
|
+
current = current[arrayName];
|
|
218
257
|
}
|
|
219
258
|
else {
|
|
220
259
|
if (current === null || current === undefined || !(part in current)) {
|
|
@@ -225,32 +264,4 @@ function getValueByPath(obj, path) {
|
|
|
225
264
|
}
|
|
226
265
|
return current;
|
|
227
266
|
}
|
|
228
|
-
// Helper function to create a simple field path for user prompts
|
|
229
|
-
function getSimpleFieldPath(path) {
|
|
230
|
-
if (!path)
|
|
231
|
-
return 'unknown';
|
|
232
|
-
// Convert "fields[].title" to "fields (array of objects with title)"
|
|
233
|
-
if (path.includes('[]')) {
|
|
234
|
-
const parts = path.split('[]');
|
|
235
|
-
const arrayName = parts[0];
|
|
236
|
-
const subField = parts[1] ? parts[1].substring(1) : ''; // Remove leading dot
|
|
237
|
-
return subField ? `${arrayName} (array of objects with ${subField})` : `${arrayName} (array)`;
|
|
238
|
-
}
|
|
239
|
-
return path;
|
|
240
|
-
}
|
|
241
|
-
// Helper function to find content type by user request (natural language matching)
|
|
242
|
-
function findContentTypeByRequest(glossaryData, userRequest) {
|
|
243
|
-
const request = userRequest.toLowerCase();
|
|
244
|
-
return glossaryData.find(contentType => {
|
|
245
|
-
const title = (contentType.title || '').toLowerCase();
|
|
246
|
-
const plural = (contentType.plural || '').toLowerCase();
|
|
247
|
-
const key = (contentType.key || '').toLowerCase();
|
|
248
|
-
// Check if user request matches title, plural, or key
|
|
249
|
-
return request.includes(title) ||
|
|
250
|
-
request.includes(plural) ||
|
|
251
|
-
request.includes(key) ||
|
|
252
|
-
title.includes(request) ||
|
|
253
|
-
plural.includes(request);
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
267
|
//# sourceMappingURL=create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/tools/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAe,MAAM,WAAW,CAAC;AAE/F,MAAM,CAAC,MAAM,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,iFAAiF;IAC9F,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oJAAoJ;aAClK;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6EAA6E;aAC3F;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+EAA+E;aAC7F;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAqD;IAC7F,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtC,
|
|
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.
|
|
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",
|