@wplaunchify/ml-mcp-server 2.6.3 → 2.6.5

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,14 +1,16 @@
1
1
  /**
2
2
  * ML Media Hub P2P Tools
3
3
  *
4
- * Provides 10 tools for image search, icon import, and media management:
4
+ * Provides 10 core tools for image search, icon import, and media management:
5
5
  * - Google Images search via SERP API
6
6
  * - Noun Project icon search and import
7
7
  * - Media library management with custom categories
8
8
  * - Hotlink support for fast imports
9
9
  *
10
10
  * API Namespace: /mediahub/v1/
11
- * Plugin Version: 3.8.0+
11
+ * Plugin Version: 3.9.0+
12
+ *
13
+ * NOTE: Requires ML Media Hub P2P plugin installed and activated
12
14
  */
13
15
  import { z } from 'zod';
14
16
  export declare const mlMediaHubTools: ({
@@ -109,129 +111,6 @@ export declare const mlMediaHubTools: ({
109
111
  type: "object";
110
112
  properties: {};
111
113
  };
112
- } | {
113
- name: string;
114
- description: string;
115
- inputSchema: {
116
- type: "object";
117
- properties: {
118
- serpapi_key: z.ZodOptional<z.ZodString>;
119
- noun_api_key: z.ZodOptional<z.ZodString>;
120
- noun_api_secret: z.ZodOptional<z.ZodString>;
121
- };
122
- };
123
- } | {
124
- name: string;
125
- description: string;
126
- inputSchema: {
127
- type: "object";
128
- properties: {
129
- query: z.ZodString;
130
- num: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
131
- filters: z.ZodOptional<z.ZodObject<{
132
- size: z.ZodOptional<z.ZodEnum<["large", "medium", "icon", "exact"]>>;
133
- exact_width: z.ZodOptional<z.ZodNumber>;
134
- exact_height: z.ZodOptional<z.ZodNumber>;
135
- color_type: z.ZodOptional<z.ZodEnum<["color", "grayscale", "transparent"]>>;
136
- dominant_color: z.ZodOptional<z.ZodEnum<["red", "orange", "yellow", "green", "blue", "purple", "pink", "white", "gray", "black", "brown"]>>;
137
- type: z.ZodOptional<z.ZodEnum<["photo", "clipart", "lineart", "animated", "face", "news"]>>;
138
- license: z.ZodOptional<z.ZodEnum<["creative_commons", "public_domain", "commercial", "modify"]>>;
139
- date_range: z.ZodOptional<z.ZodEnum<["day", "week", "month", "year"]>>;
140
- site: z.ZodOptional<z.ZodString>;
141
- exclude_sites: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
142
- file_type: z.ZodOptional<z.ZodEnum<["jpg", "png", "gif", "svg", "bmp", "webp"]>>;
143
- aspect_ratio: z.ZodOptional<z.ZodEnum<["tall", "square", "wide", "panoramic"]>>;
144
- safe_search: z.ZodOptional<z.ZodEnum<["strict", "moderate", "off"]>>;
145
- }, "strip", z.ZodTypeAny, {
146
- type?: "photo" | "clipart" | "lineart" | "animated" | "face" | "news" | undefined;
147
- size?: "exact" | "icon" | "large" | "medium" | undefined;
148
- license?: "creative_commons" | "public_domain" | "commercial" | "modify" | undefined;
149
- exact_width?: number | undefined;
150
- exact_height?: number | undefined;
151
- color_type?: "color" | "grayscale" | "transparent" | undefined;
152
- dominant_color?: "red" | "orange" | "yellow" | "green" | "blue" | "purple" | "pink" | "white" | "gray" | "black" | "brown" | undefined;
153
- date_range?: "day" | "week" | "month" | "year" | undefined;
154
- site?: string | undefined;
155
- exclude_sites?: string[] | undefined;
156
- file_type?: "jpg" | "png" | "gif" | "svg" | "bmp" | "webp" | undefined;
157
- aspect_ratio?: "tall" | "square" | "wide" | "panoramic" | undefined;
158
- safe_search?: "strict" | "moderate" | "off" | undefined;
159
- }, {
160
- type?: "photo" | "clipart" | "lineart" | "animated" | "face" | "news" | undefined;
161
- size?: "exact" | "icon" | "large" | "medium" | undefined;
162
- license?: "creative_commons" | "public_domain" | "commercial" | "modify" | undefined;
163
- exact_width?: number | undefined;
164
- exact_height?: number | undefined;
165
- color_type?: "color" | "grayscale" | "transparent" | undefined;
166
- dominant_color?: "red" | "orange" | "yellow" | "green" | "blue" | "purple" | "pink" | "white" | "gray" | "black" | "brown" | undefined;
167
- date_range?: "day" | "week" | "month" | "year" | undefined;
168
- site?: string | undefined;
169
- exclude_sites?: string[] | undefined;
170
- file_type?: "jpg" | "png" | "gif" | "svg" | "bmp" | "webp" | undefined;
171
- aspect_ratio?: "tall" | "square" | "wide" | "panoramic" | undefined;
172
- safe_search?: "strict" | "moderate" | "off" | undefined;
173
- }>>;
174
- };
175
- };
176
- } | {
177
- name: string;
178
- description: string;
179
- inputSchema: {
180
- type: "object";
181
- properties: {
182
- query: z.ZodString;
183
- limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
184
- filters: z.ZodOptional<z.ZodObject<{
185
- style: z.ZodOptional<z.ZodEnum<["outline", "filled", "glyph", "hand-drawn", "flat", "3d"]>>;
186
- license: z.ZodOptional<z.ZodEnum<["public_domain", "creative_commons", "royalty_free"]>>;
187
- format: z.ZodOptional<z.ZodEnum<["svg", "png"]>>;
188
- color: z.ZodOptional<z.ZodString>;
189
- background: z.ZodOptional<z.ZodString>;
190
- size: z.ZodOptional<z.ZodNumber>;
191
- collection_id: z.ZodOptional<z.ZodNumber>;
192
- creator: z.ZodOptional<z.ZodString>;
193
- tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
194
- exclude_tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
195
- sort_by: z.ZodOptional<z.ZodEnum<["relevance", "popularity", "recent"]>>;
196
- min_downloads: z.ZodOptional<z.ZodNumber>;
197
- }, "strip", z.ZodTypeAny, {
198
- tags?: string[] | undefined;
199
- format?: "png" | "svg" | undefined;
200
- size?: number | undefined;
201
- license?: "creative_commons" | "public_domain" | "royalty_free" | undefined;
202
- color?: string | undefined;
203
- style?: "flat" | "outline" | "filled" | "glyph" | "hand-drawn" | "3d" | undefined;
204
- background?: string | undefined;
205
- collection_id?: number | undefined;
206
- creator?: string | undefined;
207
- exclude_tags?: string[] | undefined;
208
- sort_by?: "relevance" | "popularity" | "recent" | undefined;
209
- min_downloads?: number | undefined;
210
- }, {
211
- tags?: string[] | undefined;
212
- format?: "png" | "svg" | undefined;
213
- size?: number | undefined;
214
- license?: "creative_commons" | "public_domain" | "royalty_free" | undefined;
215
- color?: string | undefined;
216
- style?: "flat" | "outline" | "filled" | "glyph" | "hand-drawn" | "3d" | undefined;
217
- background?: string | undefined;
218
- collection_id?: number | undefined;
219
- creator?: string | undefined;
220
- exclude_tags?: string[] | undefined;
221
- sort_by?: "relevance" | "popularity" | "recent" | undefined;
222
- min_downloads?: number | undefined;
223
- }>>;
224
- };
225
- };
226
- } | {
227
- name: string;
228
- description: string;
229
- inputSchema: {
230
- type: "object";
231
- properties: {
232
- type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["images", "icons", "all"]>>>;
233
- };
234
- };
235
114
  } | {
236
115
  name: string;
237
116
  description: string;
@@ -239,6 +118,8 @@ export declare const mlMediaHubTools: ({
239
118
  type: "object";
240
119
  properties: {
241
120
  name: z.ZodString;
121
+ slug: z.ZodOptional<z.ZodString>;
122
+ description: z.ZodOptional<z.ZodString>;
242
123
  };
243
124
  };
244
125
  } | {
@@ -247,21 +128,9 @@ export declare const mlMediaHubTools: ({
247
128
  inputSchema: {
248
129
  type: "object";
249
130
  properties: {
250
- page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
251
- per_page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
252
- search: z.ZodOptional<z.ZodString>;
253
- sort: z.ZodOptional<z.ZodEnum<["popular", "recent", "name"]>>;
254
- };
255
- };
256
- } | {
257
- name: string;
258
- description: string;
259
- inputSchema: {
260
- type: "object";
261
- properties: {
262
- collection_id: z.ZodNumber;
263
- limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
264
- format: z.ZodOptional<z.ZodEnum<["svg", "png"]>>;
131
+ serpapi_key: z.ZodOptional<z.ZodString>;
132
+ noun_api_key: z.ZodOptional<z.ZodString>;
133
+ noun_api_secret: z.ZodOptional<z.ZodString>;
265
134
  };
266
135
  };
267
136
  })[];
@@ -436,140 +305,4 @@ export declare const mlMediaHubHandlers: {
436
305
  }[];
437
306
  };
438
307
  }>;
439
- mlmh_advanced_image_search: (args: any) => Promise<{
440
- toolResult: {
441
- content: {
442
- type: string;
443
- text: string;
444
- }[];
445
- isError?: undefined;
446
- };
447
- } | {
448
- toolResult: {
449
- isError: boolean;
450
- content: {
451
- type: string;
452
- text: string;
453
- }[];
454
- };
455
- }>;
456
- mlmh_advanced_icon_search: (args: any) => Promise<{
457
- toolResult: {
458
- content: {
459
- type: string;
460
- text: string;
461
- }[];
462
- isError?: undefined;
463
- };
464
- } | {
465
- toolResult: {
466
- isError: boolean;
467
- content: {
468
- type: string;
469
- text: string;
470
- }[];
471
- };
472
- }>;
473
- mlmh_save_search_preset: (args: any) => Promise<{
474
- toolResult: {
475
- content: {
476
- type: string;
477
- text: string;
478
- }[];
479
- isError?: undefined;
480
- };
481
- } | {
482
- toolResult: {
483
- isError: boolean;
484
- content: {
485
- type: string;
486
- text: string;
487
- }[];
488
- };
489
- }>;
490
- mlmh_load_search_preset: (args: any) => Promise<{
491
- toolResult: {
492
- content: {
493
- type: string;
494
- text: string;
495
- }[];
496
- isError?: undefined;
497
- };
498
- } | {
499
- toolResult: {
500
- isError: boolean;
501
- content: {
502
- type: string;
503
- text: string;
504
- }[];
505
- };
506
- }>;
507
- mlmh_list_search_presets: (args: any) => Promise<{
508
- toolResult: {
509
- content: {
510
- type: string;
511
- text: string;
512
- }[];
513
- isError?: undefined;
514
- };
515
- } | {
516
- toolResult: {
517
- isError: boolean;
518
- content: {
519
- type: string;
520
- text: string;
521
- }[];
522
- };
523
- }>;
524
- mlmh_delete_search_preset: (args: any) => Promise<{
525
- toolResult: {
526
- content: {
527
- type: string;
528
- text: string;
529
- }[];
530
- isError?: undefined;
531
- };
532
- } | {
533
- toolResult: {
534
- isError: boolean;
535
- content: {
536
- type: string;
537
- text: string;
538
- }[];
539
- };
540
- }>;
541
- mlmh_browse_icon_collections: (args: any) => Promise<{
542
- toolResult: {
543
- content: {
544
- type: string;
545
- text: string;
546
- }[];
547
- isError?: undefined;
548
- };
549
- } | {
550
- toolResult: {
551
- isError: boolean;
552
- content: {
553
- type: string;
554
- text: string;
555
- }[];
556
- };
557
- }>;
558
- mlmh_get_collection_icons: (args: any) => Promise<{
559
- toolResult: {
560
- content: {
561
- type: string;
562
- text: string;
563
- }[];
564
- isError?: undefined;
565
- };
566
- } | {
567
- toolResult: {
568
- isError: boolean;
569
- content: {
570
- type: string;
571
- text: string;
572
- }[];
573
- };
574
- }>;
575
308
  };
@@ -1,14 +1,16 @@
1
1
  /**
2
2
  * ML Media Hub P2P Tools
3
3
  *
4
- * Provides 10 tools for image search, icon import, and media management:
4
+ * Provides 10 core tools for image search, icon import, and media management:
5
5
  * - Google Images search via SERP API
6
6
  * - Noun Project icon search and import
7
7
  * - Media library management with custom categories
8
8
  * - Hotlink support for fast imports
9
9
  *
10
10
  * API Namespace: /mediahub/v1/
11
- * Plugin Version: 3.8.0+
11
+ * Plugin Version: 3.9.0+
12
+ *
13
+ * NOTE: Requires ML Media Hub P2P plugin installed and activated
12
14
  */
13
15
  import { z } from 'zod';
14
16
  import { makeWordPressRequest } from '../wordpress.js';
@@ -109,123 +111,9 @@ export const mlMediaHubTools = [
109
111
  name: 'mlmh_get_info',
110
112
  description: 'Get complete API documentation for ML Media Hub including all endpoints, authentication methods, parameters, and usage examples. Self-documenting endpoint. Public, no authentication required.',
111
113
  inputSchema: { type: 'object', properties: {} }
112
- },
113
- // ============================================================================
114
- // ADVANCED SEARCH & FILTER TOOLS (8 new tools)
115
- // ============================================================================
116
- {
117
- name: 'mlmh_advanced_image_search',
118
- description: 'Advanced Google Images search with comprehensive filters for size, color, type, license, aspect ratio, file format, and source domains. Provides fine-grained control over image search results.',
119
- inputSchema: { type: 'object', properties: z.object({
120
- query: z.string().describe('Search query for images'),
121
- num: z.number().optional().default(10).describe('Number of results (1-50)'),
122
- filters: z.object({
123
- // Size filters
124
- size: z.enum(['large', 'medium', 'icon', 'exact']).optional().describe('Image size preset'),
125
- exact_width: z.number().optional().describe('Exact width in pixels (requires size=exact)'),
126
- exact_height: z.number().optional().describe('Exact height in pixels (requires size=exact)'),
127
- // Color filters
128
- color_type: z.enum(['color', 'grayscale', 'transparent']).optional().describe('Color type filter'),
129
- dominant_color: z.enum(['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'pink', 'white', 'gray', 'black', 'brown']).optional().describe('Dominant color filter'),
130
- // Type filters
131
- type: z.enum(['photo', 'clipart', 'lineart', 'animated', 'face', 'news']).optional().describe('Image type'),
132
- // License filters
133
- license: z.enum(['creative_commons', 'public_domain', 'commercial', 'modify']).optional().describe('Usage rights filter'),
134
- // Time filters
135
- date_range: z.enum(['day', 'week', 'month', 'year']).optional().describe('Time range filter'),
136
- // Source filters
137
- site: z.string().optional().describe('Limit to specific domain (e.g., "unsplash.com")'),
138
- exclude_sites: z.array(z.string()).optional().describe('Exclude specific domains'),
139
- // Format filters
140
- file_type: z.enum(['jpg', 'png', 'gif', 'svg', 'bmp', 'webp']).optional().describe('File format filter'),
141
- // Aspect ratio
142
- aspect_ratio: z.enum(['tall', 'square', 'wide', 'panoramic']).optional().describe('Aspect ratio filter'),
143
- // Safe search
144
- safe_search: z.enum(['strict', 'moderate', 'off']).optional().describe('Safe search level')
145
- }).optional().describe('Advanced filter options')
146
- }).shape }
147
- },
148
- {
149
- name: 'mlmh_advanced_icon_search',
150
- description: 'Advanced Noun Project icon search with filters for style, license, format, popularity, collections, and creator. Perfect for finding icons that match your design system.',
151
- inputSchema: { type: 'object', properties: z.object({
152
- query: z.string().describe('Search term for icons'),
153
- limit: z.number().optional().default(20).describe('Number of results'),
154
- filters: z.object({
155
- // Style filters
156
- style: z.enum(['outline', 'filled', 'glyph', 'hand-drawn', 'flat', '3d']).optional().describe('Icon style'),
157
- // License filters
158
- license: z.enum(['public_domain', 'creative_commons', 'royalty_free']).optional().describe('License type'),
159
- // Format preferences
160
- format: z.enum(['svg', 'png']).optional().describe('File format'),
161
- // Color options (for PNG)
162
- color: z.string().optional().describe('Icon color in hex format (e.g., "#FF0000")'),
163
- background: z.string().optional().describe('Background color in hex or "transparent"'),
164
- // Size options (for PNG)
165
- size: z.number().optional().describe('Icon size in pixels (32, 64, 128, 256, 512, or 1024)'),
166
- // Collection filters
167
- collection_id: z.number().optional().describe('Search within specific collection ID'),
168
- creator: z.string().optional().describe('Filter by icon creator username'),
169
- // Tag filters
170
- tags: z.array(z.string()).optional().describe('Must have these tags'),
171
- exclude_tags: z.array(z.string()).optional().describe('Must NOT have these tags'),
172
- // Popularity
173
- sort_by: z.enum(['relevance', 'popularity', 'recent']).optional().describe('Sort order'),
174
- min_downloads: z.number().optional().describe('Minimum download count filter')
175
- }).optional().describe('Advanced filter options')
176
- }).shape }
177
- },
178
- {
179
- name: 'mlmh_save_search_preset',
180
- description: 'Save a search configuration preset for reuse. Store commonly used filter combinations with a memorable name for quick access later.',
181
- inputSchema: { type: 'object', properties: z.object({
182
- name: z.string().describe('Preset name (e.g., "Brand Photos", "Outline Icons", "Hero Images")'),
183
- type: z.enum(['images', 'icons']).describe('Preset type'),
184
- filters: z.record(z.any()).describe('Filter configuration object (same structure as advanced search filters)'),
185
- description: z.string().optional().describe('Optional description of what this preset is for')
186
- }).shape }
187
- },
188
- {
189
- name: 'mlmh_load_search_preset',
190
- description: 'Load a saved search preset by name. Returns the filter configuration that can be used with advanced search tools.',
191
- inputSchema: { type: 'object', properties: z.object({
192
- name: z.string().describe('Preset name to load'),
193
- type: z.enum(['images', 'icons']).optional().describe('Filter by preset type')
194
- }).shape }
195
- },
196
- {
197
- name: 'mlmh_list_search_presets',
198
- description: 'List all saved search presets with their names, types, and descriptions. Useful for discovering available presets.',
199
- inputSchema: { type: 'object', properties: z.object({
200
- type: z.enum(['images', 'icons', 'all']).optional().default('all').describe('Filter by preset type')
201
- }).shape }
202
- },
203
- {
204
- name: 'mlmh_delete_search_preset',
205
- description: 'Delete a saved search preset by name.',
206
- inputSchema: { type: 'object', properties: z.object({
207
- name: z.string().describe('Preset name to delete')
208
- }).shape }
209
- },
210
- {
211
- name: 'mlmh_browse_icon_collections',
212
- description: 'Browse curated Noun Project icon collections. Collections are professionally curated sets of icons with consistent style and theme.',
213
- inputSchema: { type: 'object', properties: z.object({
214
- page: z.number().optional().default(1).describe('Page number for pagination'),
215
- per_page: z.number().optional().default(20).describe('Collections per page'),
216
- search: z.string().optional().describe('Search term for collection names'),
217
- sort: z.enum(['popular', 'recent', 'name']).optional().describe('Sort order')
218
- }).shape }
219
- },
220
- {
221
- name: 'mlmh_get_collection_icons',
222
- description: 'Get all icons from a specific Noun Project collection. Perfect for importing entire icon sets with consistent styling.',
223
- inputSchema: { type: 'object', properties: z.object({
224
- collection_id: z.number().describe('Collection ID from mlmh_browse_icon_collections'),
225
- limit: z.number().optional().default(50).describe('Number of icons to return'),
226
- format: z.enum(['svg', 'png']).optional().describe('Icon format preference')
227
- }).shape }
228
114
  }
115
+ // NOTE: Advanced search/preset/collection tools removed - require plugin endpoints not yet implemented
116
+ // To add: /search-images-advanced, /noun-search-advanced, /presets, /noun-collections, /noun-collection-icons
229
117
  ];
230
118
  // ============================================================================
231
119
  // TOOL HANDLERS
@@ -363,7 +251,7 @@ export const mlMediaHubHandlers = {
363
251
  },
364
252
  mlmh_list_categories: async (args) => {
365
253
  try {
366
- const response = await makeWordPressRequest('GET', 'mediahub/v1/categories');
254
+ const response = await makeWordPressRequest('GET', 'mediahub/v1/media-categories');
367
255
  return {
368
256
  toolResult: {
369
257
  content: [{
@@ -387,7 +275,7 @@ export const mlMediaHubHandlers = {
387
275
  },
388
276
  mlmh_create_category: async (args) => {
389
277
  try {
390
- const response = await makeWordPressRequest('POST', 'mediahub/v1/categories', args);
278
+ const response = await makeWordPressRequest('POST', 'mediahub/v1/media-categories', args);
391
279
  return {
392
280
  toolResult: {
393
281
  content: [{
@@ -480,235 +368,6 @@ export const mlMediaHubHandlers = {
480
368
  }
481
369
  };
482
370
  }
483
- },
484
- // ============================================================================
485
- // ADVANCED SEARCH & FILTER HANDLERS (8 new handlers)
486
- // ============================================================================
487
- mlmh_advanced_image_search: async (args) => {
488
- try {
489
- // Merge query and filters into a single request body
490
- const requestBody = {
491
- query: args.query,
492
- num: args.num || 10,
493
- ...args.filters
494
- };
495
- const response = await makeWordPressRequest('POST', 'mediahub/v1/search-images-advanced', requestBody);
496
- return {
497
- toolResult: {
498
- content: [{
499
- type: 'text',
500
- text: JSON.stringify(response, null, 2)
501
- }]
502
- }
503
- };
504
- }
505
- catch (error) {
506
- return {
507
- toolResult: {
508
- isError: true,
509
- content: [{
510
- type: 'text',
511
- text: `Error in advanced image search: ${error.message}`
512
- }]
513
- }
514
- };
515
- }
516
- },
517
- mlmh_advanced_icon_search: async (args) => {
518
- try {
519
- const requestBody = {
520
- query: args.query,
521
- limit: args.limit || 20,
522
- ...args.filters
523
- };
524
- const response = await makeWordPressRequest('POST', 'mediahub/v1/noun-search-advanced', requestBody);
525
- return {
526
- toolResult: {
527
- content: [{
528
- type: 'text',
529
- text: JSON.stringify(response, null, 2)
530
- }]
531
- }
532
- };
533
- }
534
- catch (error) {
535
- return {
536
- toolResult: {
537
- isError: true,
538
- content: [{
539
- type: 'text',
540
- text: `Error in advanced icon search: ${error.message}`
541
- }]
542
- }
543
- };
544
- }
545
- },
546
- mlmh_save_search_preset: async (args) => {
547
- try {
548
- const response = await makeWordPressRequest('POST', 'mediahub/v1/presets', args);
549
- return {
550
- toolResult: {
551
- content: [{
552
- type: 'text',
553
- text: JSON.stringify(response, null, 2)
554
- }]
555
- }
556
- };
557
- }
558
- catch (error) {
559
- return {
560
- toolResult: {
561
- isError: true,
562
- content: [{
563
- type: 'text',
564
- text: `Error saving search preset: ${error.message}`
565
- }]
566
- }
567
- };
568
- }
569
- },
570
- mlmh_load_search_preset: async (args) => {
571
- try {
572
- const params = new URLSearchParams();
573
- params.append('name', args.name);
574
- if (args.type)
575
- params.append('type', args.type);
576
- const response = await makeWordPressRequest('GET', `mediahub/v1/presets?${params.toString()}`);
577
- return {
578
- toolResult: {
579
- content: [{
580
- type: 'text',
581
- text: JSON.stringify(response, null, 2)
582
- }]
583
- }
584
- };
585
- }
586
- catch (error) {
587
- return {
588
- toolResult: {
589
- isError: true,
590
- content: [{
591
- type: 'text',
592
- text: `Error loading search preset: ${error.message}`
593
- }]
594
- }
595
- };
596
- }
597
- },
598
- mlmh_list_search_presets: async (args) => {
599
- try {
600
- const params = new URLSearchParams();
601
- if (args.type && args.type !== 'all')
602
- params.append('type', args.type);
603
- const query = params.toString();
604
- const response = await makeWordPressRequest('GET', `mediahub/v1/presets${query ? '?' + query : ''}`);
605
- return {
606
- toolResult: {
607
- content: [{
608
- type: 'text',
609
- text: JSON.stringify(response, null, 2)
610
- }]
611
- }
612
- };
613
- }
614
- catch (error) {
615
- return {
616
- toolResult: {
617
- isError: true,
618
- content: [{
619
- type: 'text',
620
- text: `Error listing search presets: ${error.message}`
621
- }]
622
- }
623
- };
624
- }
625
- },
626
- mlmh_delete_search_preset: async (args) => {
627
- try {
628
- const response = await makeWordPressRequest('DELETE', `mediahub/v1/presets/${encodeURIComponent(args.name)}`);
629
- return {
630
- toolResult: {
631
- content: [{
632
- type: 'text',
633
- text: JSON.stringify(response, null, 2)
634
- }]
635
- }
636
- };
637
- }
638
- catch (error) {
639
- return {
640
- toolResult: {
641
- isError: true,
642
- content: [{
643
- type: 'text',
644
- text: `Error deleting search preset: ${error.message}`
645
- }]
646
- }
647
- };
648
- }
649
- },
650
- mlmh_browse_icon_collections: async (args) => {
651
- try {
652
- const params = new URLSearchParams();
653
- if (args.page)
654
- params.append('page', args.page.toString());
655
- if (args.per_page)
656
- params.append('per_page', args.per_page.toString());
657
- if (args.search)
658
- params.append('search', args.search);
659
- if (args.sort)
660
- params.append('sort', args.sort);
661
- const query = params.toString();
662
- const response = await makeWordPressRequest('GET', `mediahub/v1/noun-collections${query ? '?' + query : ''}`);
663
- return {
664
- toolResult: {
665
- content: [{
666
- type: 'text',
667
- text: JSON.stringify(response, null, 2)
668
- }]
669
- }
670
- };
671
- }
672
- catch (error) {
673
- return {
674
- toolResult: {
675
- isError: true,
676
- content: [{
677
- type: 'text',
678
- text: `Error browsing icon collections: ${error.message}`
679
- }]
680
- }
681
- };
682
- }
683
- },
684
- mlmh_get_collection_icons: async (args) => {
685
- try {
686
- const params = new URLSearchParams();
687
- params.append('collection_id', args.collection_id.toString());
688
- if (args.limit)
689
- params.append('limit', args.limit.toString());
690
- if (args.format)
691
- params.append('format', args.format);
692
- const response = await makeWordPressRequest('GET', `mediahub/v1/noun-collection-icons?${params.toString()}`);
693
- return {
694
- toolResult: {
695
- content: [{
696
- type: 'text',
697
- text: JSON.stringify(response, null, 2)
698
- }]
699
- }
700
- };
701
- }
702
- catch (error) {
703
- return {
704
- toolResult: {
705
- isError: true,
706
- content: [{
707
- type: 'text',
708
- text: `Error getting collection icons: ${error.message}`
709
- }]
710
- }
711
- };
712
- }
713
371
  }
372
+ // NOTE: Advanced handlers removed - require plugin endpoints not yet implemented
714
373
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wplaunchify/ml-mcp-server",
3
- "version": "2.6.3",
3
+ "version": "2.6.5",
4
4
  "description": "Universal MCP Server for WordPress + Fluent Suite (Community, CRM, Cart) + FluentMCP Pro. Comprehensive tools for AI-powered WordPress management via Claude, Cursor, and other MCP clients.",
5
5
  "type": "module",
6
6
  "main": "./build/server.js",