@qikdev/mcp 6.6.19 → 6.6.22
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/build/src/tools/create.d.ts.map +1 -1
- package/build/src/tools/create.js +195 -156
- package/build/src/tools/create.js.map +1 -1
- package/build/src/tools/user.d.ts +22 -14
- package/build/src/tools/user.d.ts.map +1 -1
- package/build/src/tools/user.js +49 -23
- package/build/src/tools/user.js.map +1 -1
- package/package.json +1 -1
|
@@ -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,CA4D5J"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConfigManager } from "../config.js";
|
|
2
|
-
import { getUserSessionData,
|
|
2
|
+
import { getUserSessionData, getAvailableScopes, getScopeTitle } from "./user.js";
|
|
3
3
|
export const createContentTool = {
|
|
4
4
|
name: "create_content",
|
|
5
5
|
description: "✨ Create new content items using Qik content types with guided field collection",
|
|
@@ -12,7 +12,7 @@ export const createContentTool = {
|
|
|
12
12
|
},
|
|
13
13
|
scope: {
|
|
14
14
|
type: "string",
|
|
15
|
-
description: "The scope to create the content in (optional - will prompt if not provided)"
|
|
15
|
+
description: "The scope to create the content in (optional - will prompt if not provided and multiple scopes available)"
|
|
16
16
|
},
|
|
17
17
|
data: {
|
|
18
18
|
type: "object",
|
|
@@ -29,161 +29,126 @@ export async function handleCreateContent(args) {
|
|
|
29
29
|
if (!config) {
|
|
30
30
|
throw new Error('Qik MCP server not configured. Run setup first.');
|
|
31
31
|
}
|
|
32
|
-
const { typeKey, scope, data } = args;
|
|
33
|
-
// STEP 1:
|
|
34
|
-
|
|
35
|
-
const glossaryResponse = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/glossary/ai`, {
|
|
36
|
-
headers: {
|
|
37
|
-
'Authorization': `Bearer ${config.accessToken}`,
|
|
38
|
-
'Content-Type': 'application/json',
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
if (!glossaryResponse.ok) {
|
|
42
|
-
throw new Error(`Failed to fetch glossary: HTTP ${glossaryResponse.status}`);
|
|
43
|
-
}
|
|
44
|
-
const glossaryData = await glossaryResponse.json();
|
|
45
|
-
// Find the content type
|
|
46
|
-
let contentType = glossaryData.find(ct => ct.key === typeKey);
|
|
47
|
-
// If not found by key, try natural language matching
|
|
48
|
-
if (!contentType) {
|
|
49
|
-
contentType = findContentTypeByDescription(glossaryData, typeKey);
|
|
50
|
-
}
|
|
32
|
+
const { typeKey, scope, data = {} } = args;
|
|
33
|
+
// STEP 1: Load glossary and find the most appropriate content type
|
|
34
|
+
const contentType = await findContentType(config, typeKey);
|
|
51
35
|
if (!contentType) {
|
|
52
|
-
|
|
53
|
-
throw new Error(`Content type '${typeKey}' not found. Available types: ${availableTypes}`);
|
|
36
|
+
return createErrorResponse(`Content type '${typeKey}' not found. Please check available types using get_glossary.`);
|
|
54
37
|
}
|
|
55
|
-
// STEP
|
|
56
|
-
const payload = buildPayloadFromGlossary(contentType, data, scope);
|
|
57
|
-
// Get user session for permissions and scope validation
|
|
38
|
+
// STEP 2: Get user session and determine available scopes for this content type
|
|
58
39
|
const userSession = await getUserSessionData();
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
40
|
+
const createPermission = `create.${contentType.key}`;
|
|
41
|
+
const availableScopes = getAvailableScopesForPermission(userSession, createPermission);
|
|
42
|
+
if (availableScopes.length === 0) {
|
|
43
|
+
return createErrorResponse(`You don't have permission to create ${contentType.title} content. Required permission: ${createPermission}`);
|
|
62
44
|
}
|
|
63
|
-
// Handle scope selection
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (availableScopes.length === 0) {
|
|
67
|
-
throw new Error(`No scopes available for creating ${contentType.title} content`);
|
|
68
|
-
}
|
|
45
|
+
// STEP 3: Handle scope selection
|
|
46
|
+
let selectedScope = scope;
|
|
47
|
+
if (!selectedScope) {
|
|
69
48
|
if (availableScopes.length === 1) {
|
|
70
|
-
|
|
71
|
-
payload.meta.scopes = [availableScopes[0]];
|
|
49
|
+
selectedScope = availableScopes[0];
|
|
72
50
|
}
|
|
73
51
|
else {
|
|
74
|
-
return
|
|
75
|
-
content: [{
|
|
76
|
-
type: "text",
|
|
77
|
-
text: `🎯 Multiple scopes available for creating ${contentType.title}:\n\n${availableScopes.map((s, i) => `${i + 1}. ${s}`).join('\n')}\n\nPlease call create_content again with the scope parameter set to one of: ${availableScopes.join(', ')}`
|
|
78
|
-
}]
|
|
79
|
-
};
|
|
52
|
+
return createScopeSelectionPrompt(contentType.title, availableScopes, userSession);
|
|
80
53
|
}
|
|
81
54
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
};
|
|
55
|
+
else {
|
|
56
|
+
// Validate the provided scope is available
|
|
57
|
+
if (!availableScopes.includes(selectedScope)) {
|
|
58
|
+
return createErrorResponse(`Scope '${selectedScope}' is not available. Available scopes: ${availableScopes.join(', ')}`);
|
|
59
|
+
}
|
|
94
60
|
}
|
|
95
|
-
//
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
'Content-Type': 'application/json',
|
|
101
|
-
},
|
|
102
|
-
body: JSON.stringify(payload)
|
|
103
|
-
});
|
|
104
|
-
if (!createResponse.ok) {
|
|
105
|
-
const errorText = await createResponse.text();
|
|
106
|
-
throw new Error(`Failed to create content: HTTP ${createResponse.status} - ${errorText}`);
|
|
61
|
+
// STEP 4: Analyze fields and check for missing required data
|
|
62
|
+
const requiredFields = getRequiredNonReadOnlyFields(contentType);
|
|
63
|
+
const missingFields = findMissingRequiredFields(requiredFields, data);
|
|
64
|
+
if (missingFields.length > 0) {
|
|
65
|
+
return createFieldPrompt(contentType.title, missingFields);
|
|
107
66
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}]
|
|
114
|
-
};
|
|
67
|
+
// STEP 5: Build the payload from the glossary fields and user data
|
|
68
|
+
const payload = buildPayloadFromFields(contentType, data, selectedScope);
|
|
69
|
+
// STEP 6: Create the content via API
|
|
70
|
+
const createdContent = await createContentViaAPI(config, payload);
|
|
71
|
+
return createSuccessResponse(contentType.title, createdContent, selectedScope);
|
|
115
72
|
}
|
|
116
73
|
catch (error) {
|
|
117
|
-
return {
|
|
118
|
-
content: [{
|
|
119
|
-
type: "text",
|
|
120
|
-
text: `❌ Failed to create content: ${error.message}`
|
|
121
|
-
}]
|
|
122
|
-
};
|
|
74
|
+
return createErrorResponse(`Failed to create content: ${error.message}`);
|
|
123
75
|
}
|
|
124
76
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
desc.includes(plural) ||
|
|
133
|
-
desc.includes(key) ||
|
|
134
|
-
title.includes(desc) ||
|
|
135
|
-
plural.includes(desc);
|
|
77
|
+
// STEP 1: Find content type in glossary
|
|
78
|
+
async function findContentType(config, typeKey) {
|
|
79
|
+
const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/glossary/ai`, {
|
|
80
|
+
headers: {
|
|
81
|
+
'Authorization': `Bearer ${config.accessToken}`,
|
|
82
|
+
'Content-Type': 'application/json',
|
|
83
|
+
},
|
|
136
84
|
});
|
|
137
|
-
|
|
138
|
-
|
|
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];
|
|
85
|
+
if (!response.ok) {
|
|
86
|
+
throw new Error(`Failed to fetch glossary: HTTP ${response.status}`);
|
|
147
87
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
// Set the value in the payload
|
|
165
|
-
if (value !== undefined) {
|
|
166
|
-
setNestedValue(payload, field.path, value);
|
|
167
|
-
}
|
|
88
|
+
const glossaryData = await response.json();
|
|
89
|
+
// Try exact key match first
|
|
90
|
+
let contentType = glossaryData.find(ct => ct.key === typeKey);
|
|
91
|
+
// If not found, try fuzzy matching on title, plural, and key
|
|
92
|
+
if (!contentType) {
|
|
93
|
+
const searchTerm = typeKey.toLowerCase();
|
|
94
|
+
contentType = glossaryData.find(ct => {
|
|
95
|
+
const title = (ct.title || '').toLowerCase();
|
|
96
|
+
const plural = (ct.plural || '').toLowerCase();
|
|
97
|
+
const key = (ct.key || '').toLowerCase();
|
|
98
|
+
return title.includes(searchTerm) ||
|
|
99
|
+
plural.includes(searchTerm) ||
|
|
100
|
+
key.includes(searchTerm) ||
|
|
101
|
+
searchTerm.includes(title) ||
|
|
102
|
+
searchTerm.includes(plural) ||
|
|
103
|
+
searchTerm.includes(key);
|
|
168
104
|
});
|
|
169
105
|
}
|
|
170
|
-
return
|
|
106
|
+
return contentType || null;
|
|
107
|
+
}
|
|
108
|
+
// STEP 2: Get available scopes for a permission from user session
|
|
109
|
+
function getAvailableScopesForPermission(userSession, permission) {
|
|
110
|
+
// Use the updated getAvailableScopes function from user.ts
|
|
111
|
+
return getAvailableScopes(userSession, permission);
|
|
171
112
|
}
|
|
172
|
-
|
|
113
|
+
// STEP 3: Get required fields that are not readOnly and not reference types (for now)
|
|
114
|
+
function getRequiredNonReadOnlyFields(contentType) {
|
|
115
|
+
if (!contentType.fields || !Array.isArray(contentType.fields)) {
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
return contentType.fields.filter(field => field.required === true &&
|
|
119
|
+
field.readOnly !== true &&
|
|
120
|
+
field.type !== 'reference' // Skip reference types for now as per conversation
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
// STEP 4: Find missing required fields from user data
|
|
124
|
+
function findMissingRequiredFields(requiredFields, userData) {
|
|
125
|
+
const missingFields = [];
|
|
126
|
+
for (const field of requiredFields) {
|
|
127
|
+
if (!field.path)
|
|
128
|
+
continue;
|
|
129
|
+
const value = getValueFromUserData(userData, field);
|
|
130
|
+
if (value === undefined || value === null || value === '') {
|
|
131
|
+
missingFields.push(field);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return missingFields;
|
|
135
|
+
}
|
|
136
|
+
// Get value from user data for a specific field
|
|
137
|
+
function getValueFromUserData(userData, field) {
|
|
173
138
|
if (!userData || typeof userData !== 'object')
|
|
174
139
|
return undefined;
|
|
175
140
|
// Try exact path match first
|
|
176
141
|
if (userData[field.path] !== undefined) {
|
|
177
142
|
return userData[field.path];
|
|
178
143
|
}
|
|
179
|
-
// Try field title match
|
|
144
|
+
// Try field title match (case insensitive)
|
|
180
145
|
if (field.title) {
|
|
181
146
|
const titleKey = Object.keys(userData).find(key => key.toLowerCase() === field.title.toLowerCase());
|
|
182
147
|
if (titleKey && userData[titleKey] !== undefined) {
|
|
183
148
|
return userData[titleKey];
|
|
184
149
|
}
|
|
185
150
|
}
|
|
186
|
-
// Try last part of path (e.g., "title" for "
|
|
151
|
+
// Try last part of path (e.g., "title" for "meta.title")
|
|
187
152
|
const pathParts = field.path.split('.');
|
|
188
153
|
const lastPart = pathParts[pathParts.length - 1].replace('[]', '');
|
|
189
154
|
const lastPartKey = Object.keys(userData).find(key => key.toLowerCase() === lastPart.toLowerCase());
|
|
@@ -192,12 +157,52 @@ function getUserDataValue(userData, field) {
|
|
|
192
157
|
}
|
|
193
158
|
return undefined;
|
|
194
159
|
}
|
|
160
|
+
// STEP 5: Build payload from glossary fields and user data
|
|
161
|
+
function buildPayloadFromFields(contentType, userData, selectedScope) {
|
|
162
|
+
const payload = {};
|
|
163
|
+
if (!contentType.fields || !Array.isArray(contentType.fields)) {
|
|
164
|
+
return payload;
|
|
165
|
+
}
|
|
166
|
+
// Process each field in the glossary definition
|
|
167
|
+
contentType.fields.forEach(field => {
|
|
168
|
+
if (!field.path)
|
|
169
|
+
return;
|
|
170
|
+
let value = undefined;
|
|
171
|
+
// Skip readOnly fields - they shouldn't be set by user
|
|
172
|
+
if (field.readOnly === true) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
// Get value from user data
|
|
176
|
+
value = getValueFromUserData(userData, field);
|
|
177
|
+
// If no user value, try default values
|
|
178
|
+
if (value === undefined && field.defaultValues && field.defaultValues.length > 0) {
|
|
179
|
+
const defaultValue = field.defaultValues[0];
|
|
180
|
+
if (defaultValue === 'now' && field.type === 'date') {
|
|
181
|
+
value = new Date().toISOString();
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
value = defaultValue;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Special handling for meta.scopes - always set to selected scope
|
|
188
|
+
if (field.path === 'meta.scopes') {
|
|
189
|
+
value = [selectedScope];
|
|
190
|
+
}
|
|
191
|
+
// Set the value in the payload using the field's path
|
|
192
|
+
if (value !== undefined) {
|
|
193
|
+
setNestedValue(payload, field.path, value);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
return payload;
|
|
197
|
+
}
|
|
198
|
+
// Set nested value in object using dot notation path
|
|
195
199
|
function setNestedValue(obj, path, value) {
|
|
196
200
|
const parts = path.split('.');
|
|
197
201
|
let current = obj;
|
|
198
202
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
199
203
|
const part = parts[i];
|
|
200
204
|
if (part.includes('[]')) {
|
|
205
|
+
// Handle array notation like "some.nested[]"
|
|
201
206
|
const arrayName = part.replace('[]', '');
|
|
202
207
|
if (!current[arrayName]) {
|
|
203
208
|
current[arrayName] = [];
|
|
@@ -205,6 +210,7 @@ function setNestedValue(obj, path, value) {
|
|
|
205
210
|
current = current[arrayName];
|
|
206
211
|
}
|
|
207
212
|
else {
|
|
213
|
+
// Handle regular object notation
|
|
208
214
|
if (!current[part]) {
|
|
209
215
|
current[part] = {};
|
|
210
216
|
}
|
|
@@ -213,6 +219,7 @@ function setNestedValue(obj, path, value) {
|
|
|
213
219
|
}
|
|
214
220
|
const finalPart = parts[parts.length - 1];
|
|
215
221
|
if (finalPart.includes('[]')) {
|
|
222
|
+
// Handle final array part like "title[]"
|
|
216
223
|
const arrayName = finalPart.replace('[]', '');
|
|
217
224
|
if (!current[arrayName]) {
|
|
218
225
|
current[arrayName] = [];
|
|
@@ -225,43 +232,75 @@ function setNestedValue(obj, path, value) {
|
|
|
225
232
|
}
|
|
226
233
|
}
|
|
227
234
|
else {
|
|
235
|
+
// Handle regular final part
|
|
228
236
|
current[finalPart] = value;
|
|
229
237
|
}
|
|
230
238
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}
|
|
239
|
+
// STEP 6: Create content via API
|
|
240
|
+
async function createContentViaAPI(config, payload) {
|
|
241
|
+
const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/content`, {
|
|
242
|
+
method: 'POST',
|
|
243
|
+
headers: {
|
|
244
|
+
'Authorization': `Bearer ${config.accessToken}`,
|
|
245
|
+
'Content-Type': 'application/json',
|
|
246
|
+
},
|
|
247
|
+
body: JSON.stringify(payload)
|
|
248
|
+
});
|
|
249
|
+
if (!response.ok) {
|
|
250
|
+
const errorText = await response.text();
|
|
251
|
+
throw new Error(`HTTP ${response.status} - ${errorText}`);
|
|
244
252
|
}
|
|
245
|
-
return
|
|
253
|
+
return await response.json();
|
|
246
254
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
255
|
+
// Helper functions for creating responses
|
|
256
|
+
function createErrorResponse(message) {
|
|
257
|
+
return {
|
|
258
|
+
content: [{
|
|
259
|
+
type: "text",
|
|
260
|
+
text: `❌ ${message}`
|
|
261
|
+
}]
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
function createScopeSelectionPrompt(contentTitle, availableScopes, userSession) {
|
|
265
|
+
const scopeList = availableScopes.map((scope, i) => {
|
|
266
|
+
const title = userSession ? getScopeTitle(userSession, scope) : scope;
|
|
267
|
+
return `${i + 1}. ${title} (${scope})`;
|
|
268
|
+
}).join('\n');
|
|
269
|
+
return {
|
|
270
|
+
content: [{
|
|
271
|
+
type: "text",
|
|
272
|
+
text: `🎯 Multiple scopes available for creating ${contentTitle}:\n\n${scopeList}\n\nPlease call create_content again with the 'scope' parameter set to one of: ${availableScopes.join(', ')}`
|
|
273
|
+
}]
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
function createFieldPrompt(contentTitle, missingFields) {
|
|
277
|
+
const fieldPrompts = missingFields.map(field => {
|
|
278
|
+
let prompt = `• **${field.title || field.path}**`;
|
|
279
|
+
if (field.description) {
|
|
280
|
+
prompt += `: ${field.description}`;
|
|
257
281
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
return undefined;
|
|
261
|
-
}
|
|
262
|
-
current = current[part];
|
|
282
|
+
if (field.type) {
|
|
283
|
+
prompt += ` (${field.type})`;
|
|
263
284
|
}
|
|
264
|
-
|
|
265
|
-
|
|
285
|
+
if (field.options && Array.isArray(field.options)) {
|
|
286
|
+
const optionsList = field.options.map((opt) => opt.value || opt.title).join(', ');
|
|
287
|
+
prompt += ` - Options: ${optionsList}`;
|
|
288
|
+
}
|
|
289
|
+
return prompt;
|
|
290
|
+
}).join('\n');
|
|
291
|
+
return {
|
|
292
|
+
content: [{
|
|
293
|
+
type: "text",
|
|
294
|
+
text: `📝 Missing required fields for ${contentTitle}:\n\n${fieldPrompts}\n\nPlease call create_content again with a 'data' object containing these fields.`
|
|
295
|
+
}]
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
function createSuccessResponse(contentTitle, createdContent, scope) {
|
|
299
|
+
return {
|
|
300
|
+
content: [{
|
|
301
|
+
type: "text",
|
|
302
|
+
text: `✅ Successfully created ${contentTitle}!\n\nContent ID: ${createdContent._id || createdContent.id || 'Unknown'}\nScope: ${scope}\n\nCreated content:\n${JSON.stringify(createdContent, null, 2)}`
|
|
303
|
+
}]
|
|
304
|
+
};
|
|
266
305
|
}
|
|
267
306
|
//# 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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"}
|
|
@@ -1,23 +1,29 @@
|
|
|
1
1
|
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
-
export interface
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export interface Permission {
|
|
8
|
-
permission: string;
|
|
9
|
-
scopes: string[];
|
|
2
|
+
export interface ScopePermissions {
|
|
3
|
+
title: string;
|
|
4
|
+
_id: string;
|
|
5
|
+
children: string[];
|
|
6
|
+
permissions: string[];
|
|
10
7
|
}
|
|
11
8
|
export interface UserSession {
|
|
12
|
-
|
|
13
|
-
firstName?: string;
|
|
14
|
-
lastName?: string;
|
|
15
|
-
email?: string;
|
|
9
|
+
_id: string;
|
|
16
10
|
organisation?: {
|
|
17
|
-
|
|
11
|
+
_id: string;
|
|
18
12
|
title: string;
|
|
13
|
+
status: string;
|
|
14
|
+
};
|
|
15
|
+
title?: string;
|
|
16
|
+
meta?: {
|
|
17
|
+
type: string;
|
|
18
|
+
slug: string;
|
|
19
|
+
};
|
|
20
|
+
permissions: {
|
|
21
|
+
[scopeId: string]: ScopePermissions;
|
|
19
22
|
};
|
|
20
|
-
|
|
23
|
+
userPermissionSets?: any[];
|
|
24
|
+
accessToken?: string;
|
|
25
|
+
loggedIn?: string;
|
|
26
|
+
cacheKey?: string;
|
|
21
27
|
[key: string]: any;
|
|
22
28
|
}
|
|
23
29
|
export declare const getUserSessionTool: Tool;
|
|
@@ -29,5 +35,7 @@ export declare function handleGetUserSession(): Promise<{
|
|
|
29
35
|
}>;
|
|
30
36
|
export declare function hasPermission(userSession: UserSession, permission: string): boolean;
|
|
31
37
|
export declare function getAvailableScopes(userSession: UserSession, permission: string): string[];
|
|
38
|
+
export declare function hasPermissionInScope(userSession: UserSession, permission: string, scopeId: string): boolean;
|
|
39
|
+
export declare function getScopeTitle(userSession: UserSession, scopeId: string): string;
|
|
32
40
|
export declare function getUserSessionData(): Promise<UserSession>;
|
|
33
41
|
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/tools/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/tools/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,WAAW,EAAE;QACX,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAAC;KACrC,CAAC;IACF,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,kBAAkB,EAAE,IAOhC,CAAC;AAEF,wBAAsB,oBAAoB,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAqCxG;AAGD,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAiBnF;AAGD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAyBzF;AAGD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAW3G;AAGD,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO/E;AAGD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,CAoB/D"}
|
package/build/src/tools/user.js
CHANGED
|
@@ -40,38 +40,64 @@ export async function handleGetUserSession() {
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
// Helper function to check if user has a specific permission
|
|
43
|
+
// Helper function to check if user has a specific permission in any scope
|
|
44
44
|
export function hasPermission(userSession, permission) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
console.warn('Permission sets not found in user session, allowing access for testing');
|
|
49
|
-
return true;
|
|
45
|
+
if (!userSession.permissions || typeof userSession.permissions !== 'object') {
|
|
46
|
+
console.warn('Permissions not found in user session');
|
|
47
|
+
return false;
|
|
50
48
|
}
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
// Check all scopes for the permission
|
|
50
|
+
for (const scopeId in userSession.permissions) {
|
|
51
|
+
const scope = userSession.permissions[scopeId];
|
|
52
|
+
if (scope.permissions && Array.isArray(scope.permissions)) {
|
|
53
|
+
if (scope.permissions.includes(permission)) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
53
59
|
}
|
|
54
60
|
// Helper function to get available scopes for a specific permission
|
|
55
61
|
export function getAvailableScopes(userSession, permission) {
|
|
56
62
|
const scopes = [];
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
console.warn('Permission sets not found in user session, returning default scope for testing');
|
|
61
|
-
return ['default'];
|
|
63
|
+
if (!userSession.permissions || typeof userSession.permissions !== 'object') {
|
|
64
|
+
console.warn('Permissions not found in user session');
|
|
65
|
+
return [];
|
|
62
66
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
// Check each scope for the permission
|
|
68
|
+
for (const scopeId in userSession.permissions) {
|
|
69
|
+
const scope = userSession.permissions[scopeId];
|
|
70
|
+
if (scope.permissions && Array.isArray(scope.permissions)) {
|
|
71
|
+
if (scope.permissions.includes(permission)) {
|
|
72
|
+
scopes.push(scopeId);
|
|
73
|
+
// Also include child scopes if they exist
|
|
74
|
+
if (scope.children && Array.isArray(scope.children)) {
|
|
75
|
+
scopes.push(...scope.children);
|
|
68
76
|
}
|
|
69
|
-
}
|
|
77
|
+
}
|
|
70
78
|
}
|
|
71
|
-
}
|
|
72
|
-
// Remove duplicates
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
}
|
|
80
|
+
// Remove duplicates
|
|
81
|
+
return [...new Set(scopes)];
|
|
82
|
+
}
|
|
83
|
+
// Helper function to check if user has permission in a specific scope
|
|
84
|
+
export function hasPermissionInScope(userSession, permission, scopeId) {
|
|
85
|
+
if (!userSession.permissions || typeof userSession.permissions !== 'object') {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
const scope = userSession.permissions[scopeId];
|
|
89
|
+
if (!scope || !scope.permissions || !Array.isArray(scope.permissions)) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
return scope.permissions.includes(permission);
|
|
93
|
+
}
|
|
94
|
+
// Helper function to get scope title by ID
|
|
95
|
+
export function getScopeTitle(userSession, scopeId) {
|
|
96
|
+
if (!userSession.permissions || typeof userSession.permissions !== 'object') {
|
|
97
|
+
return scopeId;
|
|
98
|
+
}
|
|
99
|
+
const scope = userSession.permissions[scopeId];
|
|
100
|
+
return scope?.title || scopeId;
|
|
75
101
|
}
|
|
76
102
|
// Helper function to get user session data
|
|
77
103
|
export async function getUserSessionData() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/tools/user.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/tools/user.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.22",
|
|
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",
|