@qikdev/mcp 6.6.41 → 6.6.43

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;AAa1D,eAAO,MAAM,iBAAiB,EAAE,IAkB/B,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAoFhH"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/tools/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAc1D,eAAO,MAAM,iBAAiB,EAAE,IAkB/B,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAsGhH"}
@@ -1,5 +1,6 @@
1
1
  import { ConfigManager } from "../config.js";
2
2
  import { getUserSessionData, getAvailableScopes, getScopeTitle } from "./user.js";
3
+ import { handleListContent } from "./list.js";
3
4
  export const createContentTool = {
4
5
  name: "create_content",
5
6
  description: "✨ Create new content items using Qik content types with guided field collection",
@@ -68,9 +69,19 @@ export async function handleCreateContent(args) {
68
69
  return createErrorResponse(`Invalid scope "${targetScopeId}". Available scopes: ${availableScopes.map(id => `${getScopeTitle(userSession, id)} (${id})`).join(', ')}`);
69
70
  }
70
71
  // STEP 6: Build the exact payload using the API example as template
71
- const { payload, missingFields } = buildExactPayloadFromExample(contentType.examples.create, contentType.fields || [], userFieldValues, targetScopeId);
72
+ const buildResult = await buildExactPayloadFromExample(contentType.examples.create, contentType.fields || [], userFieldValues, targetScopeId, contentType, naturalLanguage);
73
+ // Check if the result is a reference search response
74
+ if ('content' in buildResult) {
75
+ return buildResult;
76
+ }
77
+ const { payload, missingFields } = buildResult;
72
78
  // STEP 7: If fields are missing, ask user for them
73
79
  if (missingFields.length > 0) {
80
+ // Check if any missing fields are reference fields that need special handling
81
+ const referenceFieldsNeedingHelp = missingFields.filter(field => field.type === 'reference' && !userFieldValues[field.path] && !userFieldValues[field.path.split('.').pop()]);
82
+ if (referenceFieldsNeedingHelp.length > 0) {
83
+ return createReferenceFieldPrompt(contentType.title, referenceFieldsNeedingHelp, missingFields, targetScopeId, naturalLanguage);
84
+ }
74
85
  return createFieldCollectionPrompt(contentType.title, missingFields, contentType.examples.create, targetScopeId, naturalLanguage);
75
86
  }
76
87
  // STEP 8: Create the content using the exact payload
@@ -135,7 +146,7 @@ async function findContentTypeFromNaturalLanguage(config, naturalLanguage) {
135
146
  };
136
147
  }
137
148
  // STEP 5: Build exact payload using the API example as template
138
- function buildExactPayloadFromExample(examplePayload, fields, userValues, defaultScope) {
149
+ async function buildExactPayloadFromExample(examplePayload, fields, userValues, defaultScope, contentType, naturalLanguage) {
139
150
  // Start with the structure from the example payload but clear out example values
140
151
  const payload = JSON.parse(JSON.stringify(examplePayload));
141
152
  const missingFields = [];
@@ -159,13 +170,18 @@ function buildExactPayloadFromExample(examplePayload, fields, userValues, defaul
159
170
  setValueAtPath(payload, field.path, new Date().toISOString());
160
171
  }
161
172
  });
162
- // Apply user-provided values
173
+ // Apply user-provided values, handling reference fields specially
163
174
  for (const [key, value] of Object.entries(userValues)) {
164
175
  // Try to find the field definition for this key
165
176
  const field = fields.find(f => f.path === key ||
166
177
  f.title === key ||
167
178
  f.path.split('.').pop() === key);
168
179
  if (field && !field.readOnly) {
180
+ // Handle reference fields that might need search assistance
181
+ if (field.type === 'reference' && typeof value === 'string' && value.startsWith('search for:')) {
182
+ // This is a search request for a reference field - we'll handle this in the missing fields check
183
+ continue;
184
+ }
169
185
  setValueAtPath(payload, field.path, value);
170
186
  }
171
187
  else {
@@ -173,10 +189,24 @@ function buildExactPayloadFromExample(examplePayload, fields, userValues, defaul
173
189
  setValueAtPath(payload, key, value);
174
190
  }
175
191
  }
176
- // Check for required fields that still need values
177
- fields.forEach(field => {
192
+ // Check for required fields that still need values, and handle reference field searches
193
+ for (const field of fields) {
178
194
  if (!field.path || field.readOnly === true || field.type === 'group') {
179
- return;
195
+ continue;
196
+ }
197
+ // Check if this is a reference field with a search request
198
+ if (field.type === 'reference') {
199
+ const userValue = getUserValueForField(userValues, field);
200
+ if (typeof userValue === 'string' && userValue.startsWith('search for:')) {
201
+ const searchTerm = userValue.replace('search for:', '').trim();
202
+ if (searchTerm) {
203
+ // Perform the reference search
204
+ const referenceResult = await handleReferenceFieldSearch(field, searchTerm, contentType.title, defaultScope, naturalLanguage);
205
+ if (referenceResult) {
206
+ return referenceResult;
207
+ }
208
+ }
209
+ }
180
210
  }
181
211
  if (field.required === true) {
182
212
  const currentValue = getValueAtPath(payload, field.path);
@@ -185,7 +215,7 @@ function buildExactPayloadFromExample(examplePayload, fields, userValues, defaul
185
215
  missingFields.push(field);
186
216
  }
187
217
  }
188
- });
218
+ }
189
219
  return { payload, missingFields };
190
220
  }
191
221
  // Helper function to clear example values while preserving structure
@@ -320,6 +350,9 @@ function createFieldCollectionPrompt(contentTitle, missingFields, examplePayload
320
350
  if (field.type) {
321
351
  prompt += ` [${field.type}]`;
322
352
  }
353
+ if (field.type === 'reference' && field.referenceType) {
354
+ prompt += ` - References: ${field.referenceType}`;
355
+ }
323
356
  if (field.options && Array.isArray(field.options)) {
324
357
  const optionsList = field.options.map((opt) => opt.value || opt.title).join(', ');
325
358
  prompt += ` - Options: ${optionsList}`;
@@ -344,14 +377,56 @@ function createFieldCollectionPrompt(contentTitle, missingFields, examplePayload
344
377
  return {
345
378
  content: [{
346
379
  type: "text",
347
- text: `šŸ“ To create ${contentTitle}, I need the following information:\n\n${fieldPrompts}\n\nPlease call create_content again with these fields. For example:\n\`\`\`json\n${exampleJson}\n\`\`\``
380
+ text: `šŸ“ To create ${contentTitle}, I need the following information:\n\n${fieldPrompts}\n\n**For reference fields**, you can either:\n1. Provide the exact ID if you know it\n2. Provide a search term and I'll help you find the right reference\n\nPlease call create_content again with these fields. For example:\n\`\`\`json\n${exampleJson}\n\`\`\``
381
+ }]
382
+ };
383
+ }
384
+ function createReferenceFieldPrompt(contentTitle, referenceFields, allMissingFields, scopeId, naturalLanguage) {
385
+ const referencePrompts = referenceFields.map(field => {
386
+ let prompt = `**${field.path}**`;
387
+ if (field.title && field.title !== field.path) {
388
+ prompt += ` (${field.title})`;
389
+ }
390
+ if (field.description) {
391
+ prompt += `: ${field.description}`;
392
+ }
393
+ if (field.referenceType) {
394
+ prompt += ` - References: ${field.referenceType}`;
395
+ }
396
+ return `• ${prompt}`;
397
+ }).join('\n');
398
+ const nonReferenceFields = allMissingFields.filter(field => field.type !== 'reference');
399
+ let otherFieldsText = '';
400
+ if (nonReferenceFields.length > 0) {
401
+ const otherPrompts = nonReferenceFields.map(field => {
402
+ let prompt = `**${field.path}**`;
403
+ if (field.title && field.title !== field.path) {
404
+ prompt += ` (${field.title})`;
405
+ }
406
+ if (field.description) {
407
+ prompt += `: ${field.description}`;
408
+ }
409
+ if (field.type) {
410
+ prompt += ` [${field.type}]`;
411
+ }
412
+ return `• ${prompt}`;
413
+ }).join('\n');
414
+ otherFieldsText = `\n\n**Other Required Fields:**\n${otherPrompts}`;
415
+ }
416
+ return {
417
+ content: [{
418
+ type: "text",
419
+ text: `šŸ”— To create ${contentTitle}, I need to help you find references for these fields:\n\n${referencePrompts}${otherFieldsText}\n\n**For reference fields**, please tell me what you're looking for and I'll search for matching items. For example:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage || contentTitle.toLowerCase()}",\n "${referenceFields[0].path}": "search for: name or description of what you want to reference"\n}\n\`\`\`\n\nI'll then search for matching ${referenceFields[0].referenceType || 'items'} and help you select the right one.`
348
420
  }]
349
421
  };
350
422
  }
351
423
  function getExampleFieldValues(fields) {
352
424
  const example = {};
353
425
  fields.forEach(field => {
354
- if (field.type === 'string') {
426
+ if (field.type === 'reference') {
427
+ example[field.path] = `search for: ${field.referenceType || 'item'} name or description`;
428
+ }
429
+ else if (field.type === 'string') {
355
430
  example[field.path] = `Your ${field.title || field.path} here`;
356
431
  }
357
432
  else if (field.type === 'number') {
@@ -366,6 +441,51 @@ function getExampleFieldValues(fields) {
366
441
  });
367
442
  return example;
368
443
  }
444
+ // Handle reference field search and selection
445
+ async function handleReferenceFieldSearch(field, searchTerm, contentTitle, scopeId, naturalLanguage) {
446
+ try {
447
+ if (!field.referenceType) {
448
+ return {
449
+ content: [{
450
+ type: "text",
451
+ text: `āŒ Cannot search for ${field.path} references - no reference type specified in field definition.`
452
+ }]
453
+ };
454
+ }
455
+ // Use the list function to search for references
456
+ const listArgs = {
457
+ typeKey: field.referenceType,
458
+ search: searchTerm,
459
+ page: { size: 10, index: 1 }
460
+ };
461
+ const searchResults = await handleListContent(listArgs);
462
+ const resultsText = searchResults.content[0]?.text || '';
463
+ // Check if no results found
464
+ if (resultsText.includes('No ') && resultsText.includes('found matching')) {
465
+ return {
466
+ content: [{
467
+ type: "text",
468
+ text: `šŸ” No ${field.referenceType} found matching "${searchTerm}" for field ${field.path}.\n\nPlease try a different search term or provide the exact ID if you know it:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "${field.path}": "exact_id_here"\n}\n\`\`\`\n\nOr search with different terms:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "${field.path}": "search for: different search terms"\n}\n\`\`\``
469
+ }]
470
+ };
471
+ }
472
+ // Return the search results with instructions on how to select
473
+ return {
474
+ content: [{
475
+ type: "text",
476
+ text: `šŸ” **Reference Search Results for ${field.path}** (${field.title || field.path}):\n\n${resultsText}\n\nšŸ“ **To select a reference**, copy the ID from above and call create_content again:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "${field.path}": "selected_id_from_above",\n "scope": "${scopeId}"\n}\n\`\`\`\n\nšŸ” **To search with different terms**:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "${field.path}": "search for: different search terms"\n}\n\`\`\``
477
+ }]
478
+ };
479
+ }
480
+ catch (error) {
481
+ return {
482
+ content: [{
483
+ type: "text",
484
+ text: `āŒ Failed to search for ${field.path} references: ${error.message}`
485
+ }]
486
+ };
487
+ }
488
+ }
369
489
  function createSuccessResponse(contentTitle, createdContent, scopeTitle) {
370
490
  const scopeInfo = scopeTitle ? ` in scope "${scopeTitle}"` : '';
371
491
  let contentJson = '';
@@ -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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAM1D,eAAO,MAAM,KAAK,EAAE,IAAI,EAKvB,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAKjD,CAAC;AAGF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEjE;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAQ1D,eAAO,MAAM,KAAK,EAAE,IAAI,EAOvB,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAOjD,CAAC;AAGF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEjE;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -1,11 +1,15 @@
1
1
  import { glossaryTool, glossaryDetailTool, handleGetGlossary, handleGetContentTypeDetails } from "./glossary.js";
2
2
  import { createContentTool, handleCreateContent } from "./create.js";
3
+ import { listContentTool, handleListContent } from "./list.js";
4
+ import { updateContentTool, handleUpdateContent } from "./update.js";
3
5
  import { getUserSessionTool, handleGetUserSession } from "./user.js";
4
6
  // Registry of all available tools
5
7
  export const tools = [
6
8
  glossaryTool,
7
9
  glossaryDetailTool,
8
10
  createContentTool,
11
+ listContentTool,
12
+ updateContentTool,
9
13
  getUserSessionTool,
10
14
  ];
11
15
  // Registry of all tool handlers
@@ -13,6 +17,8 @@ export const toolHandlers = {
13
17
  "get_glossary": handleGetGlossary,
14
18
  "get_content_type_details": (args) => handleGetContentTypeDetails(args.contentTypeKey),
15
19
  "create_content": handleCreateContent,
20
+ "list_content": handleListContent,
21
+ "update_content": handleUpdateContent,
16
22
  "get_user_session": handleGetUserSession,
17
23
  };
18
24
  // Helper function to get a tool handler by name
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAErE,kCAAkC;AAClC,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;CACnB,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAA6B;IACpD,cAAc,EAAE,iBAAiB;IACjC,0BAA0B,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,cAAc,CAAC;IAC3F,gBAAgB,EAAE,mBAAmB;IACrC,kBAAkB,EAAE,oBAAoB;CACzC,CAAC;AAEF,gDAAgD;AAChD,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,IAAI,YAAY,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAErE,kCAAkC;AAClC,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,kBAAkB;CACnB,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAA6B;IACpD,cAAc,EAAE,iBAAiB;IACjC,0BAA0B,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,cAAc,CAAC;IAC3F,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,iBAAiB;IACjC,gBAAgB,EAAE,mBAAmB;IACrC,kBAAkB,EAAE,oBAAoB;CACzC,CAAC;AAEF,gDAAgD;AAChD,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,IAAI,YAAY,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const listContentTool: Tool;
3
+ export declare function handleListContent(args: any): Promise<{
4
+ content: Array<{
5
+ type: string;
6
+ text: string;
7
+ }>;
8
+ }>;
9
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/tools/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAiD1D,eAAO,MAAM,eAAe,EAAE,IA4F7B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA2B9G"}
@@ -0,0 +1,399 @@
1
+ import { ConfigManager } from "../config.js";
2
+ export const listContentTool = {
3
+ name: "list_content",
4
+ description: "šŸ” List and search content items with comprehensive filtering, sorting, and pagination",
5
+ inputSchema: {
6
+ type: "object",
7
+ properties: {
8
+ typeKey: {
9
+ type: "string",
10
+ description: "The content type key to list (e.g., 'article', 'profile') OR a natural language description (e.g., 'blog posts', 'people')"
11
+ },
12
+ search: {
13
+ type: "string",
14
+ description: "Keywords to search for within the content"
15
+ },
16
+ filter: {
17
+ type: "object",
18
+ description: "Complex filter criteria with nested AND/OR/NOR logic",
19
+ properties: {
20
+ operator: { type: "string", enum: ["and", "or", "nor"], description: "Logic operator for combining filters" },
21
+ filters: {
22
+ type: "array",
23
+ description: "Array of filter conditions or nested filter groups",
24
+ items: {
25
+ oneOf: [
26
+ {
27
+ type: "object",
28
+ properties: {
29
+ key: { type: "string", description: "Field path to filter on (e.g., 'title', 'meta.created')" },
30
+ comparator: { type: "string", description: "Filter operator (equal, contains, greater, dateafter, etc.)" },
31
+ value: { description: "Primary filter value" },
32
+ value2: { description: "Secondary filter value (for between, range operations)" },
33
+ values: { type: "array", description: "Array of values (for in, notin operations)" }
34
+ },
35
+ required: ["key", "comparator"]
36
+ },
37
+ {
38
+ type: "object",
39
+ properties: {
40
+ operator: { type: "string", enum: ["and", "or", "nor"] },
41
+ filters: { type: "array" }
42
+ },
43
+ required: ["operator", "filters"]
44
+ }
45
+ ]
46
+ }
47
+ }
48
+ },
49
+ required: ["operator", "filters"]
50
+ },
51
+ sort: {
52
+ type: "object",
53
+ description: "Sorting configuration",
54
+ properties: {
55
+ key: { type: "string", description: "Field to sort by" },
56
+ direction: { type: "string", enum: ["asc", "desc"], description: "Sort direction" },
57
+ type: { type: "string", description: "Data type for sorting (string, number, date)" }
58
+ }
59
+ },
60
+ page: {
61
+ type: "object",
62
+ description: "Pagination settings",
63
+ properties: {
64
+ size: { type: "number", description: "Number of items per page (default: 20)" },
65
+ index: { type: "number", description: "Page number (1-based, default: 1)" }
66
+ }
67
+ },
68
+ select: {
69
+ type: "array",
70
+ description: "Specific fields to return in results",
71
+ items: { type: "string" }
72
+ },
73
+ date: {
74
+ type: "object",
75
+ description: "Date range filtering",
76
+ properties: {
77
+ startDate: { type: "string", description: "Start date (ISO string or natural language like 'last week')" },
78
+ endDate: { type: "string", description: "End date (ISO string or natural language like 'today')" },
79
+ timezone: { type: "string", description: "Timezone for date filtering (default: user's timezone)" }
80
+ }
81
+ },
82
+ rolodexPrimary: {
83
+ type: "string",
84
+ description: "Letter for primary alphabetical filtering (e.g., 'A' for surnames starting with A)"
85
+ },
86
+ rolodexSecondary: {
87
+ type: "string",
88
+ description: "Letter for secondary alphabetical filtering"
89
+ }
90
+ },
91
+ required: ["typeKey"],
92
+ additionalProperties: false
93
+ },
94
+ };
95
+ export async function handleListContent(args) {
96
+ try {
97
+ const configManager = new ConfigManager();
98
+ const config = await configManager.loadConfig();
99
+ if (!config) {
100
+ throw new Error('Qik MCP server not configured. Run setup first.');
101
+ }
102
+ // STEP 1: Translate natural language to content type
103
+ const contentType = await findContentTypeFromNaturalLanguage(config, args.typeKey);
104
+ if (!contentType) {
105
+ return createErrorResponse(`I couldn't find a content type matching "${args.typeKey}". Please check available types using get_glossary.`);
106
+ }
107
+ // STEP 2: Build the list request payload
108
+ const listRequest = await buildListRequest(args, contentType);
109
+ // STEP 3: Execute the list request
110
+ const results = await executeListRequest(config, contentType.key, listRequest);
111
+ // STEP 4: Format and return results
112
+ return createSuccessResponse(contentType, results, listRequest);
113
+ }
114
+ catch (error) {
115
+ return createErrorResponse(`Failed to list content: ${error.message}`);
116
+ }
117
+ }
118
+ // Find content type from natural language (reuse from create tool)
119
+ async function findContentTypeFromNaturalLanguage(config, naturalLanguage) {
120
+ // Get the glossary index
121
+ const indexResponse = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/glossary/ai`, {
122
+ headers: {
123
+ 'Authorization': `Bearer ${config.accessToken}`,
124
+ 'Content-Type': 'application/json',
125
+ },
126
+ });
127
+ if (!indexResponse.ok) {
128
+ throw new Error(`Failed to fetch glossary: HTTP ${indexResponse.status}`);
129
+ }
130
+ const glossary = await indexResponse.json();
131
+ // Find matching content type
132
+ const searchTerm = naturalLanguage.toLowerCase().trim();
133
+ let matchedType = null;
134
+ // Try exact key match first
135
+ matchedType = glossary.find(ct => ct.key === searchTerm);
136
+ // Try fuzzy matching on title, plural, and key
137
+ if (!matchedType) {
138
+ matchedType = glossary.find(ct => {
139
+ const title = (ct.title || '').toLowerCase();
140
+ const plural = (ct.plural || '').toLowerCase();
141
+ const key = (ct.key || '').toLowerCase();
142
+ return title.includes(searchTerm) ||
143
+ plural.includes(searchTerm) ||
144
+ key.includes(searchTerm) ||
145
+ searchTerm.includes(title) ||
146
+ searchTerm.includes(plural) ||
147
+ searchTerm.includes(key);
148
+ });
149
+ }
150
+ if (!matchedType) {
151
+ return null;
152
+ }
153
+ // Return basic content type info (we don't need full details for listing)
154
+ return {
155
+ key: matchedType.key,
156
+ title: matchedType.title,
157
+ plural: matchedType.plural,
158
+ definesType: matchedType.definesType,
159
+ urls: matchedType.urls
160
+ };
161
+ }
162
+ // Build the complete list request payload
163
+ async function buildListRequest(args, contentType) {
164
+ const request = {};
165
+ // Search keywords
166
+ if (args.search) {
167
+ request.search = args.search;
168
+ }
169
+ // Sorting
170
+ if (args.sort) {
171
+ request.sort = {
172
+ key: args.sort.key,
173
+ direction: args.sort.direction || 'desc',
174
+ type: args.sort.type || 'string'
175
+ };
176
+ }
177
+ else {
178
+ // Default sorting by creation date, newest first
179
+ request.sort = {
180
+ key: 'meta.created',
181
+ direction: 'desc',
182
+ type: 'date'
183
+ };
184
+ }
185
+ // Pagination
186
+ request.page = {
187
+ size: args.page?.size || 20,
188
+ index: args.page?.index || 1
189
+ };
190
+ // Field selection
191
+ if (args.select && Array.isArray(args.select)) {
192
+ request.select = args.select;
193
+ }
194
+ else {
195
+ // Default fields to return
196
+ request.select = [
197
+ '_id',
198
+ 'title',
199
+ 'meta.created',
200
+ 'meta.updated',
201
+ 'meta.status',
202
+ 'meta.scopes'
203
+ ];
204
+ }
205
+ // Complex filters
206
+ if (args.filter) {
207
+ request.filter = args.filter;
208
+ }
209
+ // Date range filtering
210
+ if (args.date) {
211
+ const dateFilter = await buildDateFilter(args.date);
212
+ if (dateFilter) {
213
+ request.date = dateFilter;
214
+ }
215
+ }
216
+ // Rolodex filtering
217
+ if (args.rolodexPrimary) {
218
+ request.rolodexPrimary = args.rolodexPrimary.toUpperCase();
219
+ }
220
+ if (args.rolodexSecondary) {
221
+ request.rolodexSecondary = args.rolodexSecondary.toUpperCase();
222
+ }
223
+ return request;
224
+ }
225
+ // Build date filter from natural language or ISO strings
226
+ async function buildDateFilter(dateRange) {
227
+ try {
228
+ let startDate;
229
+ let endDate;
230
+ const timezone = dateRange.timezone || 'UTC';
231
+ // Parse start date
232
+ if (dateRange.startDate) {
233
+ startDate = parseNaturalDate(dateRange.startDate);
234
+ }
235
+ else {
236
+ // Default to 30 days ago
237
+ startDate = new Date();
238
+ startDate.setDate(startDate.getDate() - 30);
239
+ }
240
+ // Parse end date
241
+ if (dateRange.endDate) {
242
+ endDate = parseNaturalDate(dateRange.endDate);
243
+ }
244
+ else {
245
+ // Default to now
246
+ endDate = new Date();
247
+ }
248
+ return {
249
+ startDate: startDate.toISOString(),
250
+ endDate: endDate.toISOString(),
251
+ timezone
252
+ };
253
+ }
254
+ catch (error) {
255
+ console.error('Failed to parse date range:', error);
256
+ return null;
257
+ }
258
+ }
259
+ // Parse natural language dates
260
+ function parseNaturalDate(dateInput) {
261
+ const input = dateInput.toLowerCase().trim();
262
+ const now = new Date();
263
+ // Try ISO date first
264
+ if (dateInput.includes('T') || dateInput.includes('-')) {
265
+ const parsed = new Date(dateInput);
266
+ if (!isNaN(parsed.getTime())) {
267
+ return parsed;
268
+ }
269
+ }
270
+ // Natural language parsing
271
+ if (input === 'today' || input === 'now') {
272
+ return now;
273
+ }
274
+ if (input === 'yesterday') {
275
+ const date = new Date(now);
276
+ date.setDate(date.getDate() - 1);
277
+ return date;
278
+ }
279
+ if (input === 'tomorrow') {
280
+ const date = new Date(now);
281
+ date.setDate(date.getDate() + 1);
282
+ return date;
283
+ }
284
+ // Week-based
285
+ if (input.includes('week')) {
286
+ const date = new Date(now);
287
+ if (input.includes('last')) {
288
+ date.setDate(date.getDate() - 7);
289
+ }
290
+ else if (input.includes('next')) {
291
+ date.setDate(date.getDate() + 7);
292
+ }
293
+ return date;
294
+ }
295
+ // Month-based
296
+ if (input.includes('month')) {
297
+ const date = new Date(now);
298
+ if (input.includes('last')) {
299
+ date.setMonth(date.getMonth() - 1);
300
+ }
301
+ else if (input.includes('next')) {
302
+ date.setMonth(date.getMonth() + 1);
303
+ }
304
+ return date;
305
+ }
306
+ // Default to parsing as-is
307
+ const parsed = new Date(dateInput);
308
+ if (!isNaN(parsed.getTime())) {
309
+ return parsed;
310
+ }
311
+ // Fallback to now
312
+ return now;
313
+ }
314
+ // Execute the list request against the API
315
+ async function executeListRequest(config, contentTypeKey, request) {
316
+ const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/content/${contentTypeKey}/list`, {
317
+ method: 'POST',
318
+ headers: {
319
+ 'Authorization': `Bearer ${config.accessToken}`,
320
+ 'Content-Type': 'application/json',
321
+ },
322
+ body: JSON.stringify(request)
323
+ });
324
+ if (!response.ok) {
325
+ const errorText = await response.text();
326
+ throw new Error(`HTTP ${response.status} - ${errorText}`);
327
+ }
328
+ return await response.json();
329
+ }
330
+ // Helper functions for responses
331
+ function createErrorResponse(message) {
332
+ return {
333
+ content: [{
334
+ type: "text",
335
+ text: `āŒ ${message}`
336
+ }]
337
+ };
338
+ }
339
+ function createSuccessResponse(contentType, results, request) {
340
+ const items = results.items || [];
341
+ const total = results.total || items.length;
342
+ const currentPage = request.page?.index || 1;
343
+ const pageSize = request.page?.size || 20;
344
+ if (items.length === 0) {
345
+ return {
346
+ content: [{
347
+ type: "text",
348
+ text: `šŸ” No ${contentType.plural || contentType.title} found matching your criteria.`
349
+ }]
350
+ };
351
+ }
352
+ // Format results
353
+ let resultText = `šŸ” Found ${total} ${contentType.plural || contentType.title}`;
354
+ if (total > pageSize) {
355
+ const totalPages = Math.ceil(total / pageSize);
356
+ resultText += ` (Page ${currentPage} of ${totalPages})`;
357
+ }
358
+ resultText += ':\n\n';
359
+ // Display each item
360
+ items.forEach((item, index) => {
361
+ const itemNumber = ((currentPage - 1) * pageSize) + index + 1;
362
+ resultText += `**${itemNumber}. ${item.title || item._id}**\n`;
363
+ if (item._id) {
364
+ resultText += ` ID: ${item._id}\n`;
365
+ }
366
+ if (item.meta?.created) {
367
+ const createdDate = new Date(item.meta.created).toLocaleDateString();
368
+ resultText += ` Created: ${createdDate}\n`;
369
+ }
370
+ if (item.meta?.status) {
371
+ resultText += ` Status: ${item.meta.status}\n`;
372
+ }
373
+ // Show additional fields that were selected
374
+ const additionalFields = Object.keys(item).filter(key => !['_id', 'title', 'meta'].includes(key) &&
375
+ item[key] !== null &&
376
+ item[key] !== undefined &&
377
+ item[key] !== '');
378
+ additionalFields.forEach(field => {
379
+ if (typeof item[field] === 'string' || typeof item[field] === 'number') {
380
+ resultText += ` ${field}: ${item[field]}\n`;
381
+ }
382
+ });
383
+ resultText += '\n';
384
+ });
385
+ // Add pagination info if needed
386
+ if (total > pageSize) {
387
+ const totalPages = Math.ceil(total / pageSize);
388
+ if (currentPage < totalPages) {
389
+ resultText += `\nšŸ“„ To see more results, use: \`page: { index: ${currentPage + 1} }\``;
390
+ }
391
+ }
392
+ return {
393
+ content: [{
394
+ type: "text",
395
+ text: resultText
396
+ }]
397
+ };
398
+ }
399
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/tools/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const updateContentTool: Tool;
3
+ export declare function handleUpdateContent(args: any): Promise<{
4
+ content: Array<{
5
+ type: string;
6
+ text: string;
7
+ }>;
8
+ }>;
9
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/tools/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAc1D,eAAO,MAAM,iBAAiB,EAAE,IAmC/B,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAoFhH"}
@@ -0,0 +1,411 @@
1
+ import { ConfigManager } from "../config.js";
2
+ import { handleListContent } from "./list.js";
3
+ export const updateContentTool = {
4
+ name: "update_content",
5
+ description: "āœļø Update existing content items with guided field collection and confirmation",
6
+ inputSchema: {
7
+ type: "object",
8
+ properties: {
9
+ typeKey: {
10
+ type: "string",
11
+ description: "The content type key to update (e.g., 'article', 'profile') OR a natural language description (e.g., 'blog posts', 'people')"
12
+ },
13
+ contentId: {
14
+ type: "string",
15
+ description: "The specific ID of the content item to update. If not provided, will search for content to update."
16
+ },
17
+ searchCriteria: {
18
+ type: "object",
19
+ description: "Search criteria to find the content to update (used when contentId is not provided)",
20
+ properties: {
21
+ search: { type: "string", description: "Keywords to search for" },
22
+ filters: { type: "array", description: "Filter conditions to apply" }
23
+ }
24
+ },
25
+ updateMethod: {
26
+ type: "string",
27
+ enum: ["patch", "put"],
28
+ description: "Update method: 'patch' for partial updates (default), 'put' for full replacement"
29
+ },
30
+ confirmUpdate: {
31
+ type: "boolean",
32
+ description: "Set to true to confirm and proceed with the update after reviewing the content"
33
+ }
34
+ },
35
+ required: ["typeKey"],
36
+ additionalProperties: true // Allow any additional properties for field values
37
+ },
38
+ };
39
+ export async function handleUpdateContent(args) {
40
+ try {
41
+ const configManager = new ConfigManager();
42
+ const config = await configManager.loadConfig();
43
+ if (!config) {
44
+ throw new Error('Qik MCP server not configured. Run setup first.');
45
+ }
46
+ // Extract the natural language description
47
+ const naturalLanguage = args.typeKey;
48
+ if (!naturalLanguage || typeof naturalLanguage !== 'string') {
49
+ return createErrorResponse('Please provide a description of what you want to update (e.g., "article", "profile")');
50
+ }
51
+ // STEP 1: Translate natural language to content type and get detailed info
52
+ const contentType = await findContentTypeFromNaturalLanguage(config, naturalLanguage);
53
+ if (!contentType) {
54
+ return createErrorResponse(`I couldn't find a content type matching "${naturalLanguage}". Please check available types using get_glossary.`);
55
+ }
56
+ // STEP 2: Find the content to update
57
+ let targetContent = null;
58
+ if (args.contentId) {
59
+ // Direct ID lookup
60
+ targetContent = await getContentById(config, contentType.key, args.contentId);
61
+ if (!targetContent) {
62
+ return createErrorResponse(`Content with ID "${args.contentId}" not found.`);
63
+ }
64
+ }
65
+ else {
66
+ // Search for content to update
67
+ const searchResults = await findContentToUpdate(args, contentType, naturalLanguage);
68
+ if (searchResults.error) {
69
+ return searchResults;
70
+ }
71
+ if (searchResults.needsSelection) {
72
+ return searchResults;
73
+ }
74
+ targetContent = searchResults.content;
75
+ }
76
+ // STEP 3: If we haven't confirmed the update yet, show the content and ask for confirmation
77
+ if (!args.confirmUpdate) {
78
+ return createUpdateConfirmationPrompt(contentType, targetContent, args);
79
+ }
80
+ // STEP 4: Extract field values from user input (everything except control fields)
81
+ const { typeKey, contentId, searchCriteria, updateMethod, confirmUpdate, ...userFieldValues } = args;
82
+ // STEP 4.5: Handle reference field searches before building payload
83
+ const referenceSearchResult = await handleReferenceFieldSearches(contentType, userFieldValues, naturalLanguage);
84
+ if (referenceSearchResult) {
85
+ return referenceSearchResult;
86
+ }
87
+ // STEP 5: Build the update payload
88
+ const updatePayload = await buildUpdatePayload(contentType, targetContent, userFieldValues, args.updateMethod || 'patch');
89
+ // STEP 6: Execute the update
90
+ const updatedContent = await executeUpdate(config, targetContent._id, updatePayload, args.updateMethod || 'patch');
91
+ return createUpdateSuccessResponse(contentType, updatedContent, args.updateMethod || 'patch');
92
+ }
93
+ catch (error) {
94
+ return createErrorResponse(`Failed to update content: ${error.message}`);
95
+ }
96
+ }
97
+ // Find content type from natural language and get detailed info
98
+ async function findContentTypeFromNaturalLanguage(config, naturalLanguage) {
99
+ // Get the glossary index
100
+ const indexResponse = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/glossary/ai`, {
101
+ headers: {
102
+ 'Authorization': `Bearer ${config.accessToken}`,
103
+ 'Content-Type': 'application/json',
104
+ },
105
+ });
106
+ if (!indexResponse.ok) {
107
+ throw new Error(`Failed to fetch glossary: HTTP ${indexResponse.status}`);
108
+ }
109
+ const glossary = await indexResponse.json();
110
+ // Find matching content type
111
+ const searchTerm = naturalLanguage.toLowerCase().trim();
112
+ let matchedType = null;
113
+ // Try exact key match first
114
+ matchedType = glossary.find(ct => ct.key === searchTerm);
115
+ // Try fuzzy matching on title, plural, and key
116
+ if (!matchedType) {
117
+ matchedType = glossary.find(ct => {
118
+ const title = (ct.title || '').toLowerCase();
119
+ const plural = (ct.plural || '').toLowerCase();
120
+ const key = (ct.key || '').toLowerCase();
121
+ return title.includes(searchTerm) ||
122
+ plural.includes(searchTerm) ||
123
+ key.includes(searchTerm) ||
124
+ searchTerm.includes(title) ||
125
+ searchTerm.includes(plural) ||
126
+ searchTerm.includes(key);
127
+ });
128
+ }
129
+ if (!matchedType) {
130
+ return null;
131
+ }
132
+ // Fetch detailed documentation with examples
133
+ const detailResponse = await fetch(matchedType.urls.documentation.url, {
134
+ headers: {
135
+ 'Authorization': `Bearer ${config.accessToken}`,
136
+ 'Content-Type': 'application/json',
137
+ },
138
+ });
139
+ if (!detailResponse.ok) {
140
+ throw new Error(`Failed to fetch content type details: HTTP ${detailResponse.status}`);
141
+ }
142
+ const detailData = await detailResponse.json();
143
+ return {
144
+ ...detailData,
145
+ title: matchedType.title,
146
+ plural: matchedType.plural,
147
+ urls: matchedType.urls
148
+ };
149
+ }
150
+ // Get content by ID
151
+ async function getContentById(config, contentTypeKey, contentId) {
152
+ const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/content/${contentId}`, {
153
+ headers: {
154
+ 'Authorization': `Bearer ${config.accessToken}`,
155
+ 'Content-Type': 'application/json',
156
+ },
157
+ });
158
+ if (!response.ok) {
159
+ if (response.status === 404) {
160
+ return null;
161
+ }
162
+ throw new Error(`HTTP ${response.status} - ${await response.text()}`);
163
+ }
164
+ return await response.json();
165
+ }
166
+ // Find content to update using search criteria
167
+ async function findContentToUpdate(args, contentType, naturalLanguage) {
168
+ // Build search arguments for the list function
169
+ const listArgs = {
170
+ typeKey: naturalLanguage,
171
+ page: { size: 10, index: 1 } // Limit results for selection
172
+ };
173
+ // Add search criteria if provided
174
+ if (args.searchCriteria) {
175
+ if (args.searchCriteria.search) {
176
+ listArgs.search = args.searchCriteria.search;
177
+ }
178
+ if (args.searchCriteria.filters) {
179
+ listArgs.filters = args.searchCriteria.filters;
180
+ }
181
+ }
182
+ // If no specific search criteria, try to infer from the request
183
+ if (!args.searchCriteria && !listArgs.search) {
184
+ // Look for any field values that might help identify the content
185
+ const { typeKey, contentId, searchCriteria, updateMethod, confirmUpdate, ...fieldValues } = args;
186
+ // If there's a title field, use it for search
187
+ if (fieldValues.title) {
188
+ listArgs.search = fieldValues.title;
189
+ }
190
+ else {
191
+ // Ask user to provide search criteria
192
+ return createSearchCriteriaPrompt(contentType, naturalLanguage);
193
+ }
194
+ }
195
+ // Execute the search using the list function
196
+ const searchResponse = await handleListContent(listArgs);
197
+ // Parse the response to extract content items
198
+ const responseText = searchResponse.content[0]?.text || '';
199
+ if (responseText.includes('No ') && responseText.includes('found matching')) {
200
+ return createErrorResponse(`No ${contentType.plural || contentType.title} found matching your search criteria. Please refine your search or provide a specific content ID.`);
201
+ }
202
+ // For now, we'll ask the user to provide the specific ID
203
+ // In a more advanced implementation, we could parse the list response and extract IDs
204
+ return createContentSelectionPrompt(contentType, responseText, naturalLanguage);
205
+ }
206
+ // Build update payload based on method (PATCH vs PUT)
207
+ async function buildUpdatePayload(contentType, existingContent, userFieldValues, method) {
208
+ if (method === 'put') {
209
+ // For PUT, we need to provide the complete content
210
+ // Start with existing content and apply user changes
211
+ const payload = JSON.parse(JSON.stringify(existingContent));
212
+ // Apply user field values
213
+ for (const [key, value] of Object.entries(userFieldValues)) {
214
+ setValueAtPath(payload, key, value);
215
+ }
216
+ // Update the modified timestamp
217
+ if (payload.meta) {
218
+ payload.meta.updated = new Date().toISOString();
219
+ }
220
+ return payload;
221
+ }
222
+ else {
223
+ // For PATCH, we only send the fields that are changing
224
+ // Use the same structure as create requests - no nested data object
225
+ const payload = {};
226
+ // Apply user field values directly to the payload (same as create)
227
+ for (const [key, value] of Object.entries(userFieldValues)) {
228
+ setValueAtPath(payload, key, value);
229
+ }
230
+ return payload;
231
+ }
232
+ }
233
+ // Execute the update via API
234
+ async function executeUpdate(config, contentId, payload, method) {
235
+ const httpMethod = method.toUpperCase();
236
+ const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/content/${contentId}`, {
237
+ method: httpMethod,
238
+ headers: {
239
+ 'Authorization': `Bearer ${config.accessToken}`,
240
+ 'Content-Type': 'application/json',
241
+ },
242
+ body: JSON.stringify(payload)
243
+ });
244
+ if (!response.ok) {
245
+ const errorText = await response.text();
246
+ throw new Error(`HTTP ${response.status} - ${errorText}`);
247
+ }
248
+ return await response.json();
249
+ }
250
+ // Helper function to set value at a specific path
251
+ function setValueAtPath(obj, path, value) {
252
+ const parts = path.split('.');
253
+ let current = obj;
254
+ for (let i = 0; i < parts.length - 1; i++) {
255
+ const part = parts[i];
256
+ if (!current[part]) {
257
+ current[part] = {};
258
+ }
259
+ current = current[part];
260
+ }
261
+ const finalPart = parts[parts.length - 1];
262
+ current[finalPart] = value;
263
+ }
264
+ // Helper functions for responses
265
+ function createErrorResponse(message) {
266
+ return {
267
+ content: [{
268
+ type: "text",
269
+ text: `āŒ ${message}`
270
+ }]
271
+ };
272
+ }
273
+ function createSearchCriteriaPrompt(contentType, naturalLanguage) {
274
+ return {
275
+ content: [{
276
+ type: "text",
277
+ text: `šŸ” To update ${contentType.title}, I need to find the specific item first. Please provide search criteria:\n\n**Option 1: Provide the exact content ID**\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "contentId": "your_content_id_here"\n}\n\`\`\`\n\n**Option 2: Provide search criteria**\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "searchCriteria": {\n "search": "keywords to search for",\n "filters": [{\n "key": "field_name",\n "comparator": "equal",\n "value": "field_value"\n }]\n }\n}\n\`\`\`\n\n**Option 3: Use list_content first**\nUse the \`list_content\` tool to find the content you want to update, then use the ID from those results.`
278
+ }]
279
+ };
280
+ }
281
+ function createContentSelectionPrompt(contentType, searchResults, naturalLanguage) {
282
+ return {
283
+ content: [{
284
+ type: "text",
285
+ text: `šŸ” Found multiple ${contentType.plural || contentType.title}:\n\n${searchResults}\n\nšŸ“ **To update a specific item**, please call update_content again with the exact content ID:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "contentId": "the_id_from_above_results",\n "field_to_update": "new_value"\n}\n\`\`\``
286
+ }]
287
+ };
288
+ }
289
+ function createUpdateConfirmationPrompt(contentType, targetContent, args) {
290
+ const { typeKey, contentId, searchCriteria, updateMethod, confirmUpdate, ...fieldUpdates } = args;
291
+ let currentValues = `**Current Content:**\n`;
292
+ currentValues += `- **ID**: ${targetContent._id}\n`;
293
+ currentValues += `- **Title**: ${targetContent.title || 'No title'}\n`;
294
+ if (targetContent.meta?.created) {
295
+ currentValues += `- **Created**: ${new Date(targetContent.meta.created).toLocaleDateString()}\n`;
296
+ }
297
+ if (targetContent.meta?.updated) {
298
+ currentValues += `- **Last Updated**: ${new Date(targetContent.meta.updated).toLocaleDateString()}\n`;
299
+ }
300
+ if (targetContent.meta?.status) {
301
+ currentValues += `- **Status**: ${targetContent.meta.status}\n`;
302
+ }
303
+ // Show current data values
304
+ if (targetContent.data && Object.keys(targetContent.data).length > 0) {
305
+ currentValues += `\n**Current Data:**\n`;
306
+ for (const [key, value] of Object.entries(targetContent.data)) {
307
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
308
+ currentValues += `- **${key}**: ${value}\n`;
309
+ }
310
+ }
311
+ }
312
+ let proposedChanges = '';
313
+ if (Object.keys(fieldUpdates).length > 0) {
314
+ proposedChanges = `\n**Proposed Changes:**\n`;
315
+ for (const [key, value] of Object.entries(fieldUpdates)) {
316
+ proposedChanges += `- **${key}**: ${value}\n`;
317
+ }
318
+ }
319
+ else {
320
+ proposedChanges = `\nā“ **No field updates specified.** Please add the fields you want to update to your request.`;
321
+ }
322
+ const method = args.updateMethod || 'patch';
323
+ const methodDescription = method === 'patch' ? 'partial update (only specified fields will be changed)' : 'full replacement (entire content will be replaced)';
324
+ return {
325
+ content: [{
326
+ type: "text",
327
+ text: `šŸ“‹ **Update Confirmation for ${contentType.title}**\n\n${currentValues}${proposedChanges}\n\n**Update Method**: ${method.toUpperCase()} (${methodDescription})\n\nāœ… **To proceed with the update**, call update_content again with \`"confirmUpdate": true\`:\n\n\`\`\`json\n${JSON.stringify({ ...args, confirmUpdate: true }, null, 2)}\n\`\`\``
328
+ }]
329
+ };
330
+ }
331
+ function createUpdateSuccessResponse(contentType, updatedContent, method) {
332
+ const methodText = method === 'patch' ? 'partially updated' : 'fully replaced';
333
+ let contentJson = '';
334
+ try {
335
+ contentJson = JSON.stringify(updatedContent, null, 2);
336
+ }
337
+ catch (error) {
338
+ contentJson = 'Unable to display content details due to JSON serialization error';
339
+ }
340
+ return {
341
+ content: [{
342
+ type: "text",
343
+ text: `āœ… Successfully ${methodText} ${contentType.title}!\n\n**Content ID**: ${updatedContent._id || updatedContent.id || 'Unknown'}\n**Updated**: ${updatedContent.meta?.updated ? new Date(updatedContent.meta.updated).toLocaleString() : 'Now'}\n\n**Updated Content:**\n\`\`\`json\n${contentJson}\n\`\`\``
344
+ }]
345
+ };
346
+ }
347
+ // Handle reference field searches in update context
348
+ async function handleReferenceFieldSearches(contentType, userFieldValues, naturalLanguage) {
349
+ // Check if any field values are reference search requests
350
+ for (const [key, value] of Object.entries(userFieldValues)) {
351
+ if (typeof value === 'string' && value.startsWith('search for:')) {
352
+ // Find the field definition for this key
353
+ const field = contentType.fields?.find(f => f.path === key ||
354
+ f.title === key ||
355
+ f.path.split('.').pop() === key);
356
+ if (field && field.type === 'reference') {
357
+ const searchTerm = value.replace('search for:', '').trim();
358
+ if (searchTerm) {
359
+ return await handleUpdateReferenceFieldSearch(field, searchTerm, naturalLanguage, key);
360
+ }
361
+ }
362
+ }
363
+ }
364
+ return null;
365
+ }
366
+ // Handle reference field search for update operations
367
+ async function handleUpdateReferenceFieldSearch(field, searchTerm, naturalLanguage, fieldKey) {
368
+ try {
369
+ if (!field.referenceType) {
370
+ return {
371
+ content: [{
372
+ type: "text",
373
+ text: `āŒ Cannot search for ${field.path} references - no reference type specified in field definition.`
374
+ }]
375
+ };
376
+ }
377
+ // Use the list function to search for references
378
+ const listArgs = {
379
+ typeKey: field.referenceType,
380
+ search: searchTerm,
381
+ page: { size: 10, index: 1 }
382
+ };
383
+ const searchResults = await handleListContent(listArgs);
384
+ const resultsText = searchResults.content[0]?.text || '';
385
+ // Check if no results found
386
+ if (resultsText.includes('No ') && resultsText.includes('found matching')) {
387
+ return {
388
+ content: [{
389
+ type: "text",
390
+ text: `šŸ” No ${field.referenceType} found matching "${searchTerm}" for field ${field.path}.\n\nPlease try a different search term or provide the exact ID if you know it:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "${fieldKey}": "exact_id_here",\n "confirmUpdate": true\n}\n\`\`\`\n\nOr search with different terms:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "${fieldKey}": "search for: different search terms"\n}\n\`\`\``
391
+ }]
392
+ };
393
+ }
394
+ // Return the search results with instructions on how to select
395
+ return {
396
+ content: [{
397
+ type: "text",
398
+ text: `šŸ” **Reference Search Results for ${field.path}** (${field.title || field.path}):\n\n${resultsText}\n\nšŸ“ **To select a reference**, copy the ID from above and call update_content again:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "${fieldKey}": "selected_id_from_above",\n "confirmUpdate": true\n}\n\`\`\`\n\nšŸ” **To search with different terms**:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "${fieldKey}": "search for: different search terms"\n}\n\`\`\``
399
+ }]
400
+ };
401
+ }
402
+ catch (error) {
403
+ return {
404
+ content: [{
405
+ type: "text",
406
+ text: `āŒ Failed to search for ${field.path} references: ${error.message}`
407
+ }]
408
+ };
409
+ }
410
+ }
411
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/tools/update.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.41",
3
+ "version": "6.6.43",
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",