@qikdev/mcp 6.7.5 → 6.7.8

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.
@@ -3,133 +3,102 @@ export const listContentTool = {
3
3
  name: "list_content",
4
4
  description: `Query and filter content in Qik's database.
5
5
 
6
- **DISCOVERY WORKFLOW:**
7
- 1. Use \`search_content_types\` first if you're unsure about the typeKey
8
- 2. Use \`get_content_type_details\` to understand available fields
9
- 3. Use \`get_filter_comparators\` to understand filter syntax
10
- 4. Use \`get_entity_relationships\` to understand how entities connect
6
+ **Endpoint:** POST /content/:typeKey/list
11
7
 
12
- **FILTER STRUCTURE:**
8
+ **Required:**
9
+ - typeKey: The content type key (e.g., 'article', 'profile', 'checkin')
10
+
11
+ **Request Body Structure:**
13
12
  \`\`\`json
14
13
  {
15
- "operator": "and" | "or" | "nor",
16
- "filters": [
17
- { "key": "fieldPath", "comparator": "comparatorName", "value": ... }
18
- ]
14
+ "search": "keywords",
15
+ "sort": { "key": "fieldPath", "direction": "asc|desc", "type": "string|number|date" },
16
+ "page": { "size": 20, "index": 1 },
17
+ "select": ["_id", "title", "meta.created"],
18
+ "filter": {
19
+ "operator": "and|or|nor",
20
+ "filters": [
21
+ { "key": "fieldPath", "comparator": "equal", "value": "someValue" }
22
+ ]
23
+ },
24
+ "date": { "startDate": "ISO", "endDate": "ISO", "timezone": "UTC" },
25
+ "rolodexPrimary": "A",
26
+ "rolodexSecondary": "B"
19
27
  }
20
28
  \`\`\`
21
29
 
22
- **COMMON PATTERNS:**
23
-
24
- *Finding people with criteria:*
25
- - typeKey: "profile"
26
- - Filter by gender: { "key": "gender", "comparator": "equal", "value": "Female" }
27
- - Filter by age: { "key": "_age", "comparator": "lesser", "value": 10 }
28
- - Has email: { "key": "emails", "comparator": "notempty" }
30
+ **Common Comparators:**
31
+ - Text: equal, notequal, contains, startswith, endswith
32
+ - Number: greater, lesser, between (uses value2)
33
+ - Date: datetoday, datebetween, datenext, datepast
34
+ - Anniversary: anniversarynext (for birthdays)
35
+ - Collection: empty, notempty, in (uses values array), notin
29
36
 
30
- *Finding attendance records:*
31
- - typeKey: "checkin"
32
- - Filter by event: { "key": "event", "comparator": "equal", "value": "EVENT_ID" }
33
- - Filter by date: { "key": "checkinDate", "comparator": "datebetween", "value": "START", "value2": "END" }
37
+ **Examples:**
34
38
 
35
- *Cross-entity queries (e.g., "people who attended event X"):*
36
- 1. List checkins filtered by event → get profile IDs from results
37
- 2. List profiles filtered by those IDs
39
+ *List profiles with email:*
40
+ \`\`\`json
41
+ {
42
+ "typeKey": "profile",
43
+ "filter": {
44
+ "operator": "and",
45
+ "filters": [{ "key": "emails", "comparator": "notempty" }]
46
+ }
47
+ }
48
+ \`\`\`
38
49
 
39
- **COMPARATOR CATEGORIES:**
40
- - Text: equal, contains, startswith, endswith
41
- - Number: greater, lesser, between
42
- - Date: datetoday, datebetween, datenext, datepast
43
- - Anniversary: anniversarynext (for birthdays)
44
- - Collection: empty, notempty, in, notin`,
50
+ *List checkins for an event:*
51
+ \`\`\`json
52
+ {
53
+ "typeKey": "checkin",
54
+ "filter": {
55
+ "operator": "and",
56
+ "filters": [{ "key": "event", "comparator": "equal", "value": "EVENT_ID" }]
57
+ }
58
+ }
59
+ \`\`\``,
45
60
  inputSchema: {
46
61
  type: "object",
47
62
  properties: {
48
63
  typeKey: {
49
64
  type: "string",
50
- description: "The content type key to list (e.g., 'article', 'profile') OR a natural language description (e.g., 'blog posts', 'people')"
65
+ description: "The content type key (e.g., 'article', 'profile', 'checkin')"
51
66
  },
52
67
  search: {
53
68
  type: "string",
54
- description: "Keywords to search for within the content"
69
+ description: "Keywords to search within content"
55
70
  },
56
71
  filter: {
57
72
  type: "object",
58
- description: "Complex filter criteria with nested AND/OR/NOR logic",
59
- properties: {
60
- operator: { type: "string", enum: ["and", "or", "nor"], description: "Logic operator for combining filters" },
61
- filters: {
62
- type: "array",
63
- description: "Array of filter conditions or nested filter groups",
64
- items: {
65
- oneOf: [
66
- {
67
- type: "object",
68
- properties: {
69
- key: { type: "string", description: "Field path to filter on (e.g., 'title', 'meta.created')" },
70
- comparator: { type: "string", description: "Filter operator (equal, contains, greater, dateafter, etc.)" },
71
- value: { description: "Primary filter value" },
72
- value2: { description: "Secondary filter value (for between, range operations)" },
73
- values: { type: "array", description: "Array of values (for in, notin operations)" }
74
- },
75
- required: ["key", "comparator"]
76
- },
77
- {
78
- type: "object",
79
- properties: {
80
- operator: { type: "string", enum: ["and", "or", "nor"] },
81
- filters: { type: "array" }
82
- },
83
- required: ["operator", "filters"]
84
- }
85
- ]
86
- }
87
- }
88
- },
89
- required: ["operator", "filters"]
73
+ description: "Filter criteria with nested AND/OR/NOR logic"
90
74
  },
91
75
  sort: {
92
76
  type: "object",
93
- description: "Sorting configuration",
94
- properties: {
95
- key: { type: "string", description: "Field to sort by" },
96
- direction: { type: "string", enum: ["asc", "desc"], description: "Sort direction" },
97
- type: { type: "string", description: "Data type for sorting (string, number, date)" }
98
- }
77
+ description: "Sorting: { key, direction, type }"
99
78
  },
100
79
  page: {
101
80
  type: "object",
102
- description: "Pagination settings",
103
- properties: {
104
- size: { type: "number", description: "Number of items per page (default: 20)" },
105
- index: { type: "number", description: "Page number (1-based, default: 1)" }
106
- }
81
+ description: "Pagination: { size, index }"
107
82
  },
108
83
  select: {
109
84
  type: "array",
110
- description: "Specific fields to return in results",
111
- items: { type: "string" }
85
+ items: { type: "string" },
86
+ description: "Fields to return"
112
87
  },
113
88
  date: {
114
89
  type: "object",
115
- description: "Date range filtering",
116
- properties: {
117
- startDate: { type: "string", description: "Start date (ISO string or natural language like 'last week')" },
118
- endDate: { type: "string", description: "End date (ISO string or natural language like 'today')" },
119
- timezone: { type: "string", description: "Timezone for date filtering (default: user's timezone)" }
120
- }
90
+ description: "Date range: { startDate, endDate, timezone }"
121
91
  },
122
92
  rolodexPrimary: {
123
93
  type: "string",
124
- description: "Letter for primary alphabetical filtering (e.g., 'A' for surnames starting with A)"
94
+ description: "Letter for primary alphabetical filtering"
125
95
  },
126
96
  rolodexSecondary: {
127
97
  type: "string",
128
98
  description: "Letter for secondary alphabetical filtering"
129
99
  }
130
100
  },
131
- required: ["typeKey"],
132
- additionalProperties: false
101
+ required: ["typeKey"]
133
102
  },
134
103
  };
135
104
  export async function handleListContent(args) {
@@ -139,250 +108,37 @@ export async function handleListContent(args) {
139
108
  if (!config) {
140
109
  throw new Error('Qik MCP server not configured. Run setup first.');
141
110
  }
142
- // STEP 1: Translate natural language to content type
143
- const contentType = await findContentTypeFromNaturalLanguage(config, args.typeKey);
144
- if (!contentType) {
145
- return createErrorResponse(`I couldn't find a content type matching "${args.typeKey}". Please check available types using get_glossary.`);
111
+ const { typeKey, ...payload } = args;
112
+ if (!typeKey) {
113
+ throw new Error('typeKey is required');
146
114
  }
147
- // STEP 2: Build the list request payload
148
- const listRequest = await buildListRequest(args, contentType);
149
- // STEP 3: Execute the list request
150
- const results = await executeListRequest(config, contentType.key, listRequest);
151
- // STEP 4: Format and return results
152
- return createSuccessResponse(contentType, results, listRequest);
153
- }
154
- catch (error) {
155
- return createErrorResponse(`Failed to list content: ${error.message}`);
156
- }
157
- }
158
- // Find content type from natural language (reuse from create tool)
159
- async function findContentTypeFromNaturalLanguage(config, naturalLanguage) {
160
- // Get the glossary index
161
- const indexResponse = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/glossary/ai`, {
162
- headers: {
163
- 'Authorization': `Bearer ${config.accessToken}`,
164
- 'Content-Type': 'application/json',
165
- },
166
- });
167
- if (!indexResponse.ok) {
168
- throw new Error(`Failed to fetch glossary: HTTP ${indexResponse.status}`);
169
- }
170
- const glossary = await indexResponse.json();
171
- // Find matching content type
172
- const searchTerm = naturalLanguage.toLowerCase().trim();
173
- let matchedType = null;
174
- // Try exact key match first
175
- matchedType = glossary.find(ct => ct.key === searchTerm);
176
- // Try fuzzy matching on title, plural, and key
177
- if (!matchedType) {
178
- matchedType = glossary.find(ct => {
179
- const title = (ct.title || '').toLowerCase();
180
- const plural = (ct.plural || '').toLowerCase();
181
- const key = (ct.key || '').toLowerCase();
182
- return title.includes(searchTerm) ||
183
- plural.includes(searchTerm) ||
184
- key.includes(searchTerm) ||
185
- searchTerm.includes(title) ||
186
- searchTerm.includes(plural) ||
187
- searchTerm.includes(key);
115
+ const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/content/${typeKey}/list`, {
116
+ method: 'POST',
117
+ headers: {
118
+ 'Authorization': `Bearer ${config.accessToken}`,
119
+ 'Content-Type': 'application/json',
120
+ },
121
+ body: JSON.stringify(payload)
188
122
  });
189
- }
190
- if (!matchedType) {
191
- return null;
192
- }
193
- // Return basic content type info (we don't need full details for listing)
194
- return {
195
- key: matchedType.key,
196
- title: matchedType.title,
197
- plural: matchedType.plural,
198
- definesType: matchedType.definesType,
199
- urls: matchedType.urls
200
- };
201
- }
202
- // Build the complete list request payload
203
- async function buildListRequest(args, contentType) {
204
- const request = {};
205
- // Search keywords
206
- if (args.search) {
207
- request.search = args.search;
208
- }
209
- // Sorting
210
- if (args.sort) {
211
- request.sort = {
212
- key: args.sort.key,
213
- direction: args.sort.direction || 'desc',
214
- type: args.sort.type || 'string'
215
- };
216
- }
217
- else {
218
- // Default sorting by creation date, newest first
219
- request.sort = {
220
- key: 'meta.created',
221
- direction: 'desc',
222
- type: 'date'
223
- };
224
- }
225
- // Pagination
226
- request.page = {
227
- size: args.page?.size || 20,
228
- index: args.page?.index || 1
229
- };
230
- // Field selection
231
- if (args.select && Array.isArray(args.select)) {
232
- request.select = args.select;
233
- }
234
- else {
235
- // Default fields to return
236
- request.select = [
237
- '_id',
238
- 'title',
239
- 'meta.created',
240
- 'meta.updated',
241
- 'meta.status',
242
- 'meta.scopes'
243
- ];
244
- }
245
- // Complex filters
246
- if (args.filter) {
247
- request.filter = args.filter;
248
- }
249
- // Date range filtering
250
- if (args.date) {
251
- const dateFilter = await buildDateFilter(args.date);
252
- if (dateFilter) {
253
- request.date = dateFilter;
254
- }
255
- }
256
- // Rolodex filtering
257
- if (args.rolodexPrimary) {
258
- request.rolodexPrimary = args.rolodexPrimary.toUpperCase();
259
- }
260
- if (args.rolodexSecondary) {
261
- request.rolodexSecondary = args.rolodexSecondary.toUpperCase();
262
- }
263
- return request;
264
- }
265
- // Build date filter from natural language or ISO strings
266
- async function buildDateFilter(dateRange) {
267
- try {
268
- let startDate;
269
- let endDate;
270
- const timezone = dateRange.timezone || 'UTC';
271
- // Parse start date
272
- if (dateRange.startDate) {
273
- startDate = parseNaturalDate(dateRange.startDate);
274
- }
275
- else {
276
- // Default to 30 days ago
277
- startDate = new Date();
278
- startDate.setDate(startDate.getDate() - 30);
279
- }
280
- // Parse end date
281
- if (dateRange.endDate) {
282
- endDate = parseNaturalDate(dateRange.endDate);
283
- }
284
- else {
285
- // Default to now
286
- endDate = new Date();
123
+ if (!response.ok) {
124
+ const errorText = await response.text();
125
+ throw new Error(`HTTP ${response.status}: ${errorText}`);
287
126
  }
127
+ const data = await response.json();
288
128
  return {
289
- startDate: startDate.toISOString(),
290
- endDate: endDate.toISOString(),
291
- timezone
129
+ content: [{
130
+ type: "text",
131
+ text: JSON.stringify(data, null, 2)
132
+ }]
292
133
  };
293
134
  }
294
135
  catch (error) {
295
- console.error('Failed to parse date range:', error);
296
- return null;
297
- }
298
- }
299
- // Parse natural language dates
300
- function parseNaturalDate(dateInput) {
301
- const input = dateInput.toLowerCase().trim();
302
- const now = new Date();
303
- // Try ISO date first
304
- if (dateInput.includes('T') || dateInput.includes('-')) {
305
- const parsed = new Date(dateInput);
306
- if (!isNaN(parsed.getTime())) {
307
- return parsed;
308
- }
309
- }
310
- // Natural language parsing
311
- if (input === 'today' || input === 'now') {
312
- return now;
313
- }
314
- if (input === 'yesterday') {
315
- const date = new Date(now);
316
- date.setDate(date.getDate() - 1);
317
- return date;
318
- }
319
- if (input === 'tomorrow') {
320
- const date = new Date(now);
321
- date.setDate(date.getDate() + 1);
322
- return date;
323
- }
324
- // Week-based
325
- if (input.includes('week')) {
326
- const date = new Date(now);
327
- if (input.includes('last')) {
328
- date.setDate(date.getDate() - 7);
329
- }
330
- else if (input.includes('next')) {
331
- date.setDate(date.getDate() + 7);
332
- }
333
- return date;
334
- }
335
- // Month-based
336
- if (input.includes('month')) {
337
- const date = new Date(now);
338
- if (input.includes('last')) {
339
- date.setMonth(date.getMonth() - 1);
340
- }
341
- else if (input.includes('next')) {
342
- date.setMonth(date.getMonth() + 1);
343
- }
344
- return date;
345
- }
346
- // Default to parsing as-is
347
- const parsed = new Date(dateInput);
348
- if (!isNaN(parsed.getTime())) {
349
- return parsed;
350
- }
351
- // Fallback to now
352
- return now;
353
- }
354
- // Execute the list request against the API
355
- async function executeListRequest(config, contentTypeKey, request) {
356
- const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/content/${contentTypeKey}/list`, {
357
- method: 'POST',
358
- headers: {
359
- 'Authorization': `Bearer ${config.accessToken}`,
360
- 'Content-Type': 'application/json',
361
- },
362
- body: JSON.stringify(request)
363
- });
364
- if (!response.ok) {
365
- const errorText = await response.text();
366
- throw new Error(`HTTP ${response.status} - ${errorText}`);
136
+ return {
137
+ content: [{
138
+ type: "text",
139
+ text: JSON.stringify({ error: error.message }, null, 2)
140
+ }]
141
+ };
367
142
  }
368
- return await response.json();
369
- }
370
- // Helper functions for responses
371
- function createErrorResponse(message) {
372
- return {
373
- content: [{
374
- type: "text",
375
- text: `❌ ${message}`
376
- }]
377
- };
378
- }
379
- function createSuccessResponse(contentType, results, request) {
380
- // Return the raw API response as JSON - Claude can understand and parse it directly
381
- return {
382
- content: [{
383
- type: "text",
384
- text: JSON.stringify(results, null, 2)
385
- }]
386
- };
387
143
  }
388
144
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/tools/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/tools/list.ts"],"names":[],"mappings":"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"}
@@ -1 +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,IAiD/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":"update.d.ts","sourceRoot":"","sources":["../../../src/tools/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,iBAAiB,EAAE,IAyC/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,CAgDhH"}