@wplaunchify/ml-mcp-server 2.6.2 → 2.6.3

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.
@@ -35,7 +35,9 @@ const toolCategories = {
35
35
  ...pluginRepositoryTools,
36
36
  ...commentTools,
37
37
  ...mlCanvasTools,
38
- ...mlSimpleSiteTools
38
+ ...mlSimpleSiteTools,
39
+ ...mlImageEditorTools, // AI image generation via ML Image Editor
40
+ ...mlMediaHubTools // Image search & icon import via ML Media Hub P2P
39
41
  ],
40
42
  // Full FluentCommunity (91 tools) - legacy support
41
43
  fluentcommunity: [
@@ -79,7 +81,7 @@ const toolCategories = {
79
81
  ]
80
82
  };
81
83
  const handlerCategories = {
82
- // WP (ENABLED_TOOLS=wordpress) - 45 tools
84
+ // WP (ENABLED_TOOLS=wordpress) - 45+ tools (includes ML Image Editor & Media Hub)
83
85
  wordpress: {
84
86
  ...unifiedContentHandlers,
85
87
  ...unifiedTaxonomyHandlers,
@@ -88,8 +90,10 @@ const handlerCategories = {
88
90
  ...userHandlers,
89
91
  ...pluginRepositoryHandlers,
90
92
  ...commentHandlers,
91
- ...mlCanvasHandlers, // ML Canvas is part of WordPress category
92
- ...mlSimpleSiteHandlers // ML Simple Site tools
93
+ ...mlCanvasHandlers, // ML Canvas Block tools
94
+ ...mlSimpleSiteHandlers, // ML Simple Site tools
95
+ ...mlImageEditorHandlers, // AI image generation
96
+ ...mlMediaHubHandlers // Image search & icon import
93
97
  },
94
98
  fluentcommunity: {
95
99
  ...fluentCommunityHandlers,
@@ -120,29 +120,29 @@ export async function makeWordPressRequest(method, endpoint, data, options) {
120
120
  else {
121
121
  requestConfig.data = data;
122
122
  }
123
- const requestLog = `
124
- REQUEST:
125
- URL: ${fullUrl}
126
- Method: ${method}
127
- Headers: ${JSON.stringify({ ...wpClient.defaults.headers, ...requestConfig.headers }, null, 2)}
128
- Data: ${options?.isFormData ? '(FormData not shown)' : JSON.stringify(data, null, 2)}
123
+ const requestLog = `
124
+ REQUEST:
125
+ URL: ${fullUrl}
126
+ Method: ${method}
127
+ Headers: ${JSON.stringify({ ...wpClient.defaults.headers, ...requestConfig.headers }, null, 2)}
128
+ Data: ${options?.isFormData ? '(FormData not shown)' : JSON.stringify(data, null, 2)}
129
129
  `;
130
130
  logToFile(requestLog);
131
131
  const response = await wpClient.request(requestConfig);
132
- const responseLog = `
133
- RESPONSE:
134
- Status: ${response.status}
135
- Data: ${JSON.stringify(response.data, null, 2)}
132
+ const responseLog = `
133
+ RESPONSE:
134
+ Status: ${response.status}
135
+ Data: ${JSON.stringify(response.data, null, 2)}
136
136
  `;
137
137
  logToFile(responseLog);
138
138
  return options?.rawResponse ? response : response.data;
139
139
  }
140
140
  catch (error) {
141
- const errorLog = `
142
- ERROR:
143
- Message: ${error.message}
144
- Status: ${error.response?.status || 'N/A'}
145
- Data: ${JSON.stringify(error.response?.data || {}, null, 2)}
141
+ const errorLog = `
142
+ ERROR:
143
+ Message: ${error.message}
144
+ Status: ${error.response?.status || 'N/A'}
145
+ Data: ${JSON.stringify(error.response?.data || {}, null, 2)}
146
146
  `;
147
147
  console.error(errorLog);
148
148
  logToFile(errorLog);
@@ -182,11 +182,11 @@ export async function searchWordPressPluginRepository(searchQuery, page = 1, per
182
182
  }
183
183
  }
184
184
  };
185
- const requestLog = `
186
- WORDPRESS.ORG PLUGIN API REQUEST:
187
- URL: ${apiUrl}
188
- Method: GET
189
- Params: ${JSON.stringify(requestData, null, 2)}
185
+ const requestLog = `
186
+ WORDPRESS.ORG PLUGIN API REQUEST:
187
+ URL: ${apiUrl}
188
+ Method: GET
189
+ Params: ${JSON.stringify(requestData, null, 2)}
190
190
  `;
191
191
  logToFile(requestLog);
192
192
  // WordPress.org Plugin API requires GET requests with serialized query parameters
@@ -212,21 +212,21 @@ Params: ${JSON.stringify(requestData, null, 2)}
212
212
  return flatParams.toString();
213
213
  }
214
214
  });
215
- const responseLog = `
216
- WORDPRESS.ORG PLUGIN API RESPONSE:
217
- Status: ${response.status}
218
- Info: ${JSON.stringify(response.data.info, null, 2)}
219
- Plugins Count: ${response.data.plugins?.length || 0}
215
+ const responseLog = `
216
+ WORDPRESS.ORG PLUGIN API RESPONSE:
217
+ Status: ${response.status}
218
+ Info: ${JSON.stringify(response.data.info, null, 2)}
219
+ Plugins Count: ${response.data.plugins?.length || 0}
220
220
  `;
221
221
  logToFile(responseLog);
222
222
  return response.data;
223
223
  }
224
224
  catch (error) {
225
- const errorLog = `
226
- WORDPRESS.ORG PLUGIN API ERROR:
227
- Message: ${error.message}
228
- Status: ${error.response?.status || 'N/A'}
229
- Data: ${JSON.stringify(error.response?.data || {}, null, 2)}
225
+ const errorLog = `
226
+ WORDPRESS.ORG PLUGIN API ERROR:
227
+ Message: ${error.message}
228
+ Status: ${error.response?.status || 'N/A'}
229
+ Data: ${JSON.stringify(error.response?.data || {}, null, 2)}
230
230
  `;
231
231
  console.error(errorLog);
232
232
  logToFile(errorLog);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wplaunchify/ml-mcp-server",
3
- "version": "2.6.2",
3
+ "version": "2.6.3",
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",