mcp-wordpress 1.2.2 → 1.3.0

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.
Files changed (251) hide show
  1. package/README.md +210 -182
  2. package/dist/cache/CacheInvalidation.d.ts +3 -3
  3. package/dist/cache/CacheInvalidation.d.ts.map +1 -1
  4. package/dist/cache/CacheInvalidation.js +119 -119
  5. package/dist/cache/CacheInvalidation.js.map +1 -1
  6. package/dist/cache/CacheManager.d.ts +5 -0
  7. package/dist/cache/CacheManager.d.ts.map +1 -1
  8. package/dist/cache/CacheManager.js +26 -16
  9. package/dist/cache/CacheManager.js.map +1 -1
  10. package/dist/cache/HttpCacheWrapper.d.ts +1 -1
  11. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
  12. package/dist/cache/HttpCacheWrapper.js +29 -29
  13. package/dist/cache/HttpCacheWrapper.js.map +1 -1
  14. package/dist/cache/__tests__/CacheInvalidation.test.js +96 -94
  15. package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -1
  16. package/dist/cache/__tests__/CacheManager.test.js +113 -113
  17. package/dist/cache/__tests__/CacheManager.test.js.map +1 -1
  18. package/dist/cache/__tests__/CachedWordPressClient.test.js +102 -99
  19. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -1
  20. package/dist/cache/__tests__/HttpCacheWrapper.test.js +98 -95
  21. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -1
  22. package/dist/cache/index.d.ts +7 -7
  23. package/dist/cache/index.d.ts.map +1 -1
  24. package/dist/cache/index.js +4 -4
  25. package/dist/cache/index.js.map +1 -1
  26. package/dist/client/CachedWordPressClient.d.ts +4 -4
  27. package/dist/client/CachedWordPressClient.d.ts.map +1 -1
  28. package/dist/client/CachedWordPressClient.js +55 -51
  29. package/dist/client/CachedWordPressClient.js.map +1 -1
  30. package/dist/client/api.d.ts +10 -10
  31. package/dist/client/api.js +158 -158
  32. package/dist/client/api.js.map +1 -1
  33. package/dist/client/auth.d.ts +2 -2
  34. package/dist/client/auth.js +72 -72
  35. package/dist/client/managers/AuthenticationManager.d.ts +2 -2
  36. package/dist/client/managers/AuthenticationManager.js +46 -46
  37. package/dist/client/managers/BaseManager.d.ts +1 -1
  38. package/dist/client/managers/BaseManager.js +9 -9
  39. package/dist/client/managers/RequestManager.d.ts +5 -3
  40. package/dist/client/managers/RequestManager.d.ts.map +1 -1
  41. package/dist/client/managers/RequestManager.js +39 -19
  42. package/dist/client/managers/RequestManager.js.map +1 -1
  43. package/dist/client/managers/index.d.ts +3 -3
  44. package/dist/client/managers/index.js +3 -3
  45. package/dist/config/ConfigurationSchema.d.ts +2 -2
  46. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  47. package/dist/config/ConfigurationSchema.js +40 -40
  48. package/dist/config/ConfigurationSchema.js.map +1 -1
  49. package/dist/config/ServerConfiguration.d.ts +2 -2
  50. package/dist/config/ServerConfiguration.js +35 -35
  51. package/dist/config/ServerConfiguration.js.map +1 -1
  52. package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
  53. package/dist/docs/DocumentationGenerator.js +296 -255
  54. package/dist/docs/DocumentationGenerator.js.map +1 -1
  55. package/dist/docs/MarkdownFormatter.d.ts +1 -1
  56. package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
  57. package/dist/docs/MarkdownFormatter.js +60 -51
  58. package/dist/docs/MarkdownFormatter.js.map +1 -1
  59. package/dist/docs/index.d.ts +3 -3
  60. package/dist/docs/index.d.ts.map +1 -1
  61. package/dist/docs/index.js +2 -2
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +16 -16
  64. package/dist/index.js.map +1 -1
  65. package/dist/mcp-wordpress-1.3.0.tgz +0 -0
  66. package/dist/performance/MetricsCollector.d.ts +3 -3
  67. package/dist/performance/MetricsCollector.d.ts.map +1 -1
  68. package/dist/performance/MetricsCollector.js +33 -27
  69. package/dist/performance/MetricsCollector.js.map +1 -1
  70. package/dist/performance/PerformanceAnalytics.d.ts +12 -12
  71. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
  72. package/dist/performance/PerformanceAnalytics.js +200 -154
  73. package/dist/performance/PerformanceAnalytics.js.map +1 -1
  74. package/dist/performance/PerformanceMonitor.d.ts +5 -5
  75. package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
  76. package/dist/performance/PerformanceMonitor.js +53 -52
  77. package/dist/performance/PerformanceMonitor.js.map +1 -1
  78. package/dist/performance/index.d.ts +6 -6
  79. package/dist/performance/index.d.ts.map +1 -1
  80. package/dist/performance/index.js +3 -3
  81. package/dist/security/InputValidator.d.ts +1 -1
  82. package/dist/security/InputValidator.d.ts.map +1 -1
  83. package/dist/security/InputValidator.js +111 -88
  84. package/dist/security/InputValidator.js.map +1 -1
  85. package/dist/security/SecurityConfig.d.ts +5 -5
  86. package/dist/security/SecurityConfig.js +92 -92
  87. package/dist/security/SecurityConfig.js.map +1 -1
  88. package/dist/server/ConnectionTester.d.ts +1 -1
  89. package/dist/server/ConnectionTester.d.ts.map +1 -1
  90. package/dist/server/ConnectionTester.js +4 -4
  91. package/dist/server/ConnectionTester.js.map +1 -1
  92. package/dist/server/ToolRegistry.d.ts +2 -2
  93. package/dist/server/ToolRegistry.d.ts.map +1 -1
  94. package/dist/server/ToolRegistry.js +35 -32
  95. package/dist/server/ToolRegistry.js.map +1 -1
  96. package/dist/server.d.ts +2 -2
  97. package/dist/server.js +2 -2
  98. package/dist/tools/BaseToolManager.js +5 -5
  99. package/dist/tools/auth.d.ts +2 -2
  100. package/dist/tools/auth.d.ts.map +1 -1
  101. package/dist/tools/auth.js +32 -31
  102. package/dist/tools/auth.js.map +1 -1
  103. package/dist/tools/cache.d.ts +1 -1
  104. package/dist/tools/cache.d.ts.map +1 -1
  105. package/dist/tools/cache.js +71 -71
  106. package/dist/tools/cache.js.map +1 -1
  107. package/dist/tools/comments.d.ts +2 -2
  108. package/dist/tools/comments.d.ts.map +1 -1
  109. package/dist/tools/comments.js +79 -79
  110. package/dist/tools/comments.js.map +1 -1
  111. package/dist/tools/index.d.ts +10 -10
  112. package/dist/tools/index.js +10 -10
  113. package/dist/tools/media.d.ts +2 -2
  114. package/dist/tools/media.js +80 -80
  115. package/dist/tools/pages.d.ts +2 -2
  116. package/dist/tools/pages.d.ts.map +1 -1
  117. package/dist/tools/pages.js +75 -75
  118. package/dist/tools/pages.js.map +1 -1
  119. package/dist/tools/performance.d.ts +1 -1
  120. package/dist/tools/performance.d.ts.map +1 -1
  121. package/dist/tools/performance.js +311 -287
  122. package/dist/tools/performance.js.map +1 -1
  123. package/dist/tools/posts.d.ts +2 -2
  124. package/dist/tools/posts.d.ts.map +1 -1
  125. package/dist/tools/posts.js +94 -94
  126. package/dist/tools/posts.js.map +1 -1
  127. package/dist/tools/site.d.ts +2 -2
  128. package/dist/tools/site.d.ts.map +1 -1
  129. package/dist/tools/site.js +60 -60
  130. package/dist/tools/site.js.map +1 -1
  131. package/dist/tools/taxonomies.d.ts +2 -2
  132. package/dist/tools/taxonomies.js +89 -89
  133. package/dist/tools/users.d.ts +2 -2
  134. package/dist/tools/users.js +68 -68
  135. package/dist/tools/users.js.map +1 -1
  136. package/dist/types/client.d.ts +13 -13
  137. package/dist/types/client.d.ts.map +1 -1
  138. package/dist/types/client.js +12 -12
  139. package/dist/types/client.js.map +1 -1
  140. package/dist/types/index.d.ts +19 -19
  141. package/dist/types/index.d.ts.map +1 -1
  142. package/dist/types/index.js +3 -3
  143. package/dist/types/mcp.d.ts +7 -7
  144. package/dist/types/wordpress.d.ts +21 -21
  145. package/dist/types/wordpress.d.ts.map +1 -1
  146. package/dist/utils/debug.d.ts +2 -2
  147. package/dist/utils/debug.js +28 -28
  148. package/dist/utils/error.d.ts.map +1 -1
  149. package/dist/utils/error.js +13 -13
  150. package/dist/utils/error.js.map +1 -1
  151. package/dist/utils/toolWrapper.d.ts.map +1 -1
  152. package/dist/utils/toolWrapper.js +5 -5
  153. package/dist/utils/toolWrapper.js.map +1 -1
  154. package/dist/utils/validation.d.ts.map +1 -1
  155. package/dist/utils/validation.js +41 -31
  156. package/dist/utils/validation.js.map +1 -1
  157. package/docs/CACHING.md +36 -2
  158. package/docs/DOCKER.md +24 -18
  159. package/docs/PERFORMANCE_MONITORING.md +49 -1
  160. package/docs/SECURITY_TESTING.md +30 -1
  161. package/docs/api/README.md +9 -1
  162. package/docs/api/summary.json +1 -1
  163. package/docs/contract-testing.md +24 -3
  164. package/docs/developer/GITHUB_ACTIONS_SETUP.md +8 -2
  165. package/docs/developer/MAINTENANCE.md +29 -3
  166. package/docs/developer/MIGRATION_GUIDE.md +13 -1
  167. package/docs/developer/NPM_AUTH_SETUP.md +13 -2
  168. package/docs/developer/REFACTORING.md +31 -1
  169. package/docs/releases/COMMUNITY_ANNOUNCEMENT_v1.1.2.md +18 -7
  170. package/docs/releases/RELEASE_NOTES_v1.1.2.md +31 -5
  171. package/docs/user-guides/DOCKER_SETUP.md +264 -0
  172. package/docs/user-guides/DTX_SETUP.md +327 -0
  173. package/docs/user-guides/NPM_SETUP.md +109 -0
  174. package/docs/user-guides/NPX_SETUP.md +281 -0
  175. package/docs/wordpress-rest-api-authentication-troubleshooting.md +13 -2
  176. package/package.json +27 -8
  177. package/src/cache/CacheInvalidation.ts +140 -132
  178. package/src/cache/CacheManager.ts +40 -29
  179. package/src/cache/HttpCacheWrapper.ts +105 -68
  180. package/src/cache/__tests__/CacheInvalidation.test.ts +123 -118
  181. package/src/cache/__tests__/CacheManager.test.ts +156 -152
  182. package/src/cache/__tests__/CachedWordPressClient.test.ts +131 -116
  183. package/src/cache/__tests__/HttpCacheWrapper.test.ts +118 -115
  184. package/src/cache/index.ts +13 -13
  185. package/src/client/CachedWordPressClient.ts +90 -80
  186. package/src/client/api.ts +205 -205
  187. package/src/client/auth.ts +80 -80
  188. package/src/client/managers/AuthenticationManager.ts +61 -61
  189. package/src/client/managers/BaseManager.ts +11 -11
  190. package/src/client/managers/RequestManager.ts +79 -47
  191. package/src/client/managers/index.ts +3 -3
  192. package/src/config/ConfigurationSchema.ts +44 -44
  193. package/src/config/ServerConfiguration.ts +39 -39
  194. package/src/docs/DocumentationGenerator.ts +402 -295
  195. package/src/docs/MarkdownFormatter.ts +94 -69
  196. package/src/docs/index.ts +4 -4
  197. package/src/index.ts +24 -21
  198. package/src/performance/MetricsCollector.ts +90 -58
  199. package/src/performance/PerformanceAnalytics.ts +386 -262
  200. package/src/performance/PerformanceMonitor.ts +152 -118
  201. package/src/performance/index.ts +9 -9
  202. package/src/security/InputValidator.ts +148 -91
  203. package/src/security/SecurityConfig.ts +94 -94
  204. package/src/server/ConnectionTester.ts +21 -15
  205. package/src/server/ToolRegistry.ts +64 -51
  206. package/src/server.ts +2 -2
  207. package/src/tools/BaseToolManager.ts +6 -6
  208. package/src/tools/auth.ts +42 -37
  209. package/src/tools/cache.ts +85 -81
  210. package/src/tools/comments.ts +93 -91
  211. package/src/tools/index.ts +10 -10
  212. package/src/tools/media.ts +89 -89
  213. package/src/tools/pages.ts +89 -87
  214. package/src/tools/performance.ts +443 -352
  215. package/src/tools/posts.ts +109 -107
  216. package/src/tools/site.ts +86 -77
  217. package/src/tools/taxonomies.ts +102 -102
  218. package/src/tools/users.ts +77 -77
  219. package/src/types/client.ts +157 -60
  220. package/src/types/index.ts +49 -27
  221. package/src/types/mcp.ts +15 -15
  222. package/src/types/wordpress.ts +57 -29
  223. package/src/utils/debug.ts +37 -37
  224. package/src/utils/error.ts +47 -25
  225. package/src/utils/toolWrapper.ts +12 -8
  226. package/src/utils/validation.ts +116 -65
  227. package/dist/client/WordPressClient.d.ts +0 -81
  228. package/dist/client/WordPressClient.d.ts.map +0 -1
  229. package/dist/client/WordPressClient.js +0 -354
  230. package/dist/client/WordPressClient.js.map +0 -1
  231. package/dist/performance/AnomalyDetector.d.ts +0 -63
  232. package/dist/performance/AnomalyDetector.d.ts.map +0 -1
  233. package/dist/performance/AnomalyDetector.js +0 -222
  234. package/dist/performance/AnomalyDetector.js.map +0 -1
  235. package/dist/performance/BenchmarkAnalyzer.d.ts +0 -67
  236. package/dist/performance/BenchmarkAnalyzer.d.ts.map +0 -1
  237. package/dist/performance/BenchmarkAnalyzer.js +0 -301
  238. package/dist/performance/BenchmarkAnalyzer.js.map +0 -1
  239. package/dist/performance/TrendAnalyzer.d.ts +0 -69
  240. package/dist/performance/TrendAnalyzer.d.ts.map +0 -1
  241. package/dist/performance/TrendAnalyzer.js +0 -203
  242. package/dist/performance/TrendAnalyzer.js.map +0 -1
  243. package/dist/tools/BaseToolClass.d.ts +0 -76
  244. package/dist/tools/BaseToolClass.d.ts.map +0 -1
  245. package/dist/tools/BaseToolClass.js +0 -104
  246. package/dist/tools/BaseToolClass.js.map +0 -1
  247. package/dist/tools/base.d.ts +0 -37
  248. package/dist/tools/base.d.ts.map +0 -1
  249. package/dist/tools/base.js +0 -60
  250. package/dist/tools/base.js.map +0 -1
  251. package/docs/user-guides/CLAUDE_DESKTOP_SETUP.md +0 -187
@@ -3,23 +3,22 @@
3
3
  * Converts documentation objects to well-formatted markdown files
4
4
  */
5
5
 
6
- import type {
7
- ToolDocumentation,
8
- CategoryDocumentation,
9
- TypeDocumentation,
6
+ import type {
7
+ ToolDocumentation,
8
+ CategoryDocumentation,
9
+ TypeDocumentation,
10
10
  DocumentationOutput,
11
11
  ExampleUsage,
12
- ParameterDocumentation
13
- } from './DocumentationGenerator.js';
12
+ ParameterDocumentation,
13
+ } from "./DocumentationGenerator.js";
14
14
 
15
15
  export class MarkdownFormatter {
16
-
17
16
  /**
18
17
  * Generate main API overview documentation
19
18
  */
20
19
  generateApiOverview(output: DocumentationOutput): string {
21
20
  const { tools, categories, summary } = output;
22
-
21
+
23
22
  return `# WordPress MCP Server - API Documentation
24
23
 
25
24
  ${this.generateBadges()}
@@ -165,9 +164,9 @@ ${this.generateParametersTable(tool.parameters)}
165
164
 
166
165
  ${this.generateExamples(tool.examples)}
167
166
 
168
- ${tool.wordpressEndpoint ? this.generateWordPressMapping(tool.wordpressEndpoint) : ''}
167
+ ${tool.wordpressEndpoint ? this.generateWordPressMapping(tool.wordpressEndpoint) : ""}
169
168
 
170
- ${tool.requiredPermissions ? this.generatePermissions(tool.requiredPermissions) : ''}
169
+ ${tool.requiredPermissions ? this.generatePermissions(tool.requiredPermissions) : ""}
171
170
 
172
171
  ## Response Format
173
172
 
@@ -179,7 +178,7 @@ ${this.generateResponseExample(tool)}
179
178
 
180
179
  ${this.generateErrorDocumentation(tool.errorCodes)}
181
180
 
182
- ${tool.relatedTools.length > 0 ? this.generateRelatedTools(tool.relatedTools) : ''}
181
+ ${tool.relatedTools.length > 0 ? this.generateRelatedTools(tool.relatedTools) : ""}
183
182
 
184
183
  ---
185
184
 
@@ -199,11 +198,11 @@ ${category.description}
199
198
 
200
199
  ## Available Tools
201
200
 
202
- ${category.tools.map(tool => `- [\`${tool}\`](./tools/${tool}.md)`).join('\n')}
201
+ ${category.tools.map((tool) => `- [\`${tool}\`](./tools/${tool}.md)`).join("\n")}
203
202
 
204
203
  ## Common Usage Patterns
205
204
 
206
- ${category.usagePatterns.map(pattern => `- ${pattern}`).join('\n')}
205
+ ${category.usagePatterns.map((pattern) => `- ${pattern}`).join("\n")}
207
206
 
208
207
  ## Examples
209
208
 
@@ -238,7 +237,7 @@ wp_list_${category.name.toLowerCase()} --site=staging --limit=50
238
237
 
239
238
  ${type.description}
240
239
 
241
- ${type.wordpressSource ? `**WordPress Source:** \`${type.wordpressSource}\`` : ''}
240
+ ${type.wordpressSource ? `**WordPress Source:** \`${type.wordpressSource}\`` : ""}
242
241
 
243
242
  ## Properties
244
243
 
@@ -250,30 +249,38 @@ ${this.generateTypePropertiesTable(type.properties)}
250
249
  ${JSON.stringify(type.examples[0] || {}, null, 2)}
251
250
  \`\`\`
252
251
 
253
- ${type.examples.length > 1 ? this.generateAdditionalExamples(type.examples.slice(1)) : ''}
252
+ ${type.examples.length > 1 ? this.generateAdditionalExamples(type.examples.slice(1)) : ""}
254
253
  `;
255
254
  }
256
255
 
257
256
  /**
258
257
  * Generate parameters table
259
258
  */
260
- private generateParametersTable(parameters: ParameterDocumentation[]): string {
259
+ private generateParametersTable(
260
+ parameters: ParameterDocumentation[],
261
+ ): string {
261
262
  if (parameters.length === 0) {
262
- return '*No parameters required.*';
263
+ return "*No parameters required.*";
263
264
  }
264
265
 
265
- const headers = '| Parameter | Type | Required | Description | Default | Examples |';
266
- const separator = '|-----------|------|----------|-------------|---------|----------|';
267
-
268
- const rows = parameters.map(param => {
269
- const examples = param.examples.slice(0, 2).map(ex => `\`${ex}\``).join(', ');
270
- const defaultVal = param.defaultValue !== undefined ? `\`${param.defaultValue}\`` : '-';
271
- const required = param.required ? '✅' : '❌';
272
-
273
- return `| \`${param.name}\` | \`${param.type}\` | ${required} | ${param.description} | ${defaultVal} | ${examples || '-'} |`;
266
+ const headers =
267
+ "| Parameter | Type | Required | Description | Default | Examples |";
268
+ const separator =
269
+ "|-----------|------|----------|-------------|---------|----------|";
270
+
271
+ const rows = parameters.map((param) => {
272
+ const examples = param.examples
273
+ .slice(0, 2)
274
+ .map((ex) => `\`${ex}\``)
275
+ .join(", ");
276
+ const defaultVal =
277
+ param.defaultValue !== undefined ? `\`${param.defaultValue}\`` : "-";
278
+ const required = param.required ? "✅" : "❌";
279
+
280
+ return `| \`${param.name}\` | \`${param.type}\` | ${required} | ${param.description} | ${defaultVal} | ${examples || "-"} |`;
274
281
  });
275
282
 
276
- return [headers, separator, ...rows].join('\n');
283
+ return [headers, separator, ...rows].join("\n");
277
284
  }
278
285
 
279
286
  /**
@@ -281,10 +288,12 @@ ${type.examples.length > 1 ? this.generateAdditionalExamples(type.examples.slice
281
288
  */
282
289
  private generateExamples(examples: ExampleUsage[]): string {
283
290
  if (examples.length === 0) {
284
- return '*No examples available.*';
291
+ return "*No examples available.*";
285
292
  }
286
293
 
287
- return examples.map(example => `### ${example.title}
294
+ return examples
295
+ .map(
296
+ (example) => `### ${example.title}
288
297
 
289
298
  ${example.description}
290
299
 
@@ -298,14 +307,19 @@ ${example.command} ${this.formatParameters(example.parameters)}
298
307
  ${JSON.stringify(example.expectedResponse, null, 2)}
299
308
  \`\`\`
300
309
 
301
- ${example.errorExample ? this.generateErrorExample(example.errorExample) : ''}
302
- `).join('\n\n');
310
+ ${example.errorExample ? this.generateErrorExample(example.errorExample) : ""}
311
+ `,
312
+ )
313
+ .join("\n\n");
303
314
  }
304
315
 
305
316
  /**
306
317
  * Generate error example
307
318
  */
308
- private generateErrorExample(errorExample: { scenario: string; error: any }): string {
319
+ private generateErrorExample(errorExample: {
320
+ scenario: string;
321
+ error: any;
322
+ }): string {
309
323
  return `**Error Example (${errorExample.scenario}):**
310
324
  \`\`\`json
311
325
  ${JSON.stringify(errorExample.error, null, 2)}
@@ -336,7 +350,7 @@ This tool directly interfaces with the WordPress REST API endpoint above. The re
336
350
 
337
351
  This tool requires the following WordPress user capabilities:
338
352
 
339
- ${permissions.map(perm => `- \`${perm}\``).join('\n')}
353
+ ${permissions.map((perm) => `- \`${perm}\``).join("\n")}
340
354
 
341
355
  **Note:** The authenticated user must have these capabilities to successfully execute this tool.
342
356
  `;
@@ -376,12 +390,16 @@ ${permissions.map(perm => `- \`${perm}\``).join('\n')}
376
390
  See [Error Handling Guide](../error-handling.md) for complete error reference.`;
377
391
  }
378
392
 
379
- return errorCodes.map(error => `### ${error.code}
393
+ return errorCodes
394
+ .map(
395
+ (error) => `### ${error.code}
380
396
 
381
397
  **Message:** ${error.message}
382
398
  **Description:** ${error.description}
383
399
  **Resolution:** ${error.resolution}
384
- `).join('\n\n');
400
+ `,
401
+ )
402
+ .join("\n\n");
385
403
  }
386
404
 
387
405
  /**
@@ -390,7 +408,7 @@ See [Error Handling Guide](../error-handling.md) for complete error reference.`;
390
408
  private generateRelatedTools(relatedTools: string[]): string {
391
409
  return `## Related Tools
392
410
 
393
- ${relatedTools.map(tool => `- [\`${tool}\`](./${tool}.md)`).join('\n')}
411
+ ${relatedTools.map((tool) => `- [\`${tool}\`](./${tool}.md)`).join("\n")}
394
412
  `;
395
413
  }
396
414
 
@@ -398,43 +416,45 @@ ${relatedTools.map(tool => `- [\`${tool}\`](./${tool}.md)`).join('\n')}
398
416
  * Generate categories table
399
417
  */
400
418
  private generateCategoriesTable(categories: CategoryDocumentation[]): string {
401
- const headers = '| Category | Tools | Description |';
402
- const separator = '|----------|-------|-------------|';
403
-
404
- const rows = categories.map(cat =>
405
- `| [${cat.name}](./categories/${cat.name.toLowerCase()}.md) | ${cat.toolCount} | ${cat.description} |`
419
+ const headers = "| Category | Tools | Description |";
420
+ const separator = "|----------|-------|-------------|";
421
+
422
+ const rows = categories.map(
423
+ (cat) =>
424
+ `| [${cat.name}](./categories/${cat.name.toLowerCase()}.md) | ${cat.toolCount} | ${cat.description} |`,
406
425
  );
407
426
 
408
- return [headers, separator, ...rows].join('\n');
427
+ return [headers, separator, ...rows].join("\n");
409
428
  }
410
429
 
411
430
  /**
412
431
  * Generate tools table
413
432
  */
414
433
  private generateToolsTable(tools: ToolDocumentation[]): string {
415
- const headers = '| Tool | Category | Description |';
416
- const separator = '|------|----------|-------------|';
417
-
418
- const rows = tools.map(tool =>
419
- `| [\`${tool.name}\`](./tools/${tool.name}.md) | ${tool.category} | ${tool.description} |`
434
+ const headers = "| Tool | Category | Description |";
435
+ const separator = "|------|----------|-------------|";
436
+
437
+ const rows = tools.map(
438
+ (tool) =>
439
+ `| [\`${tool.name}\`](./tools/${tool.name}.md) | ${tool.category} | ${tool.description} |`,
420
440
  );
421
441
 
422
- return [headers, separator, ...rows].join('\n');
442
+ return [headers, separator, ...rows].join("\n");
423
443
  }
424
444
 
425
445
  /**
426
446
  * Generate type properties table
427
447
  */
428
448
  private generateTypePropertiesTable(properties: any[]): string {
429
- const headers = '| Property | Type | Required | Description |';
430
- const separator = '|----------|------|----------|-------------|';
431
-
432
- const rows = properties.map(prop => {
433
- const required = prop.required ? '' : '';
449
+ const headers = "| Property | Type | Required | Description |";
450
+ const separator = "|----------|------|----------|-------------|";
451
+
452
+ const rows = properties.map((prop) => {
453
+ const required = prop.required ? "" : "";
434
454
  return `| \`${prop.name}\` | \`${prop.type}\` | ${required} | ${prop.description} |`;
435
455
  });
436
456
 
437
- return [headers, separator, ...rows].join('\n');
457
+ return [headers, separator, ...rows].join("\n");
438
458
  }
439
459
 
440
460
  /**
@@ -454,19 +474,20 @@ ${relatedTools.map(tool => `- [\`${tool}\`](./${tool}.md)`).join('\n')}
454
474
  */
455
475
  private generateToolBadge(category: string): string {
456
476
  const colors = {
457
- posts: 'blue',
458
- pages: 'green',
459
- media: 'purple',
460
- users: 'orange',
461
- comments: 'red',
462
- taxonomies: 'yellow',
463
- site: 'lightblue',
464
- auth: 'darkblue',
465
- cache: 'grey',
466
- performance: 'brightgreen'
477
+ posts: "blue",
478
+ pages: "green",
479
+ media: "purple",
480
+ users: "orange",
481
+ comments: "red",
482
+ taxonomies: "yellow",
483
+ site: "lightblue",
484
+ auth: "darkblue",
485
+ cache: "grey",
486
+ performance: "brightgreen",
467
487
  };
468
-
469
- const color = colors[category.toLowerCase() as keyof typeof colors] || 'lightgrey';
488
+
489
+ const color =
490
+ colors[category.toLowerCase() as keyof typeof colors] || "lightgrey";
470
491
  return `![${category}](https://img.shields.io/badge/category-${category}-${color})`;
471
492
  }
472
493
 
@@ -476,7 +497,7 @@ ${relatedTools.map(tool => `- [\`${tool}\`](./${tool}.md)`).join('\n')}
476
497
  private formatParameters(params: Record<string, any>): string {
477
498
  return Object.entries(params)
478
499
  .map(([key, value]) => `--${key}="${value}"`)
479
- .join(' ');
500
+ .join(" ");
480
501
  }
481
502
 
482
503
  /**
@@ -485,10 +506,14 @@ ${relatedTools.map(tool => `- [\`${tool}\`](./${tool}.md)`).join('\n')}
485
506
  private generateAdditionalExamples(examples: any[]): string {
486
507
  return `## Additional Examples
487
508
 
488
- ${examples.map((example, index) => `### Example ${index + 2}
509
+ ${examples
510
+ .map(
511
+ (example, index) => `### Example ${index + 2}
489
512
  \`\`\`json
490
513
  ${JSON.stringify(example, null, 2)}
491
514
  \`\`\`
492
- `).join('\n')}`;
515
+ `,
516
+ )
517
+ .join("\n")}`;
493
518
  }
494
519
  }
package/src/docs/index.ts CHANGED
@@ -3,8 +3,8 @@
3
3
  * Exports all documentation generation components
4
4
  */
5
5
 
6
- export { DocumentationGenerator } from './DocumentationGenerator.js';
7
- export { MarkdownFormatter } from './MarkdownFormatter.js';
6
+ export { DocumentationGenerator } from "./DocumentationGenerator.js";
7
+ export { MarkdownFormatter } from "./MarkdownFormatter.js";
8
8
 
9
9
  export type {
10
10
  DocumentationConfig,
@@ -17,5 +17,5 @@ export type {
17
17
  TypeDocumentation,
18
18
  PropertyDocumentation,
19
19
  OpenAPISpecification,
20
- DocumentationSummary
21
- } from './DocumentationGenerator.js';
20
+ DocumentationSummary,
21
+ } from "./DocumentationGenerator.js";
package/src/index.ts CHANGED
@@ -1,14 +1,17 @@
1
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
- import { fileURLToPath } from 'url';
4
- import { WordPressClient } from './client/api.js';
5
- import { ServerConfiguration, SiteConfig } from './config/ServerConfiguration.js';
6
- import { ToolRegistry } from './server/ToolRegistry.js';
7
- import { ConnectionTester } from './server/ConnectionTester.js';
8
- import { getErrorMessage } from './utils/error.js';
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { fileURLToPath } from "url";
4
+ import { WordPressClient } from "./client/api.js";
5
+ import {
6
+ ServerConfiguration,
7
+ SiteConfig,
8
+ } from "./config/ServerConfiguration.js";
9
+ import { ToolRegistry } from "./server/ToolRegistry.js";
10
+ import { ConnectionTester } from "./server/ConnectionTester.js";
11
+ import { getErrorMessage } from "./utils/error.js";
9
12
 
10
13
  // --- Constants ---
11
- const SERVER_VERSION = '1.1.8'; // Technical debt resolution and modular architecture
14
+ const SERVER_VERSION = "1.1.8"; // Technical debt resolution and modular architecture
12
15
 
13
16
  // --- Main Server Class ---
14
17
  class MCPWordPressServer {
@@ -23,14 +26,14 @@ class MCPWordPressServer {
23
26
 
24
27
  if (this.wordpressClients.size === 0) {
25
28
  console.error(
26
- 'No WordPress sites were configured. Please create mcp-wordpress.config.json or set environment variables.'
29
+ "No WordPress sites were configured. Please create mcp-wordpress.config.json or set environment variables.",
27
30
  );
28
31
  process.exit(1);
29
32
  }
30
33
 
31
34
  this.server = new McpServer({
32
- name: 'mcp-wordpress',
33
- version: SERVER_VERSION
35
+ name: "mcp-wordpress",
36
+ version: SERVER_VERSION,
34
37
  });
35
38
 
36
39
  this.toolRegistry = new ToolRegistry(this.server, this.wordpressClients);
@@ -39,8 +42,9 @@ class MCPWordPressServer {
39
42
 
40
43
  private loadConfiguration(mcpConfig?: any) {
41
44
  const serverConfig = ServerConfiguration.getInstance();
42
- const { clients, configs } = serverConfig.loadClientConfigurations(mcpConfig);
43
-
45
+ const { clients, configs } =
46
+ serverConfig.loadClientConfigurations(mcpConfig);
47
+
44
48
  this.wordpressClients = clients;
45
49
  this.siteConfigs = configs;
46
50
  }
@@ -54,26 +58,25 @@ class MCPWordPressServer {
54
58
  this.initialized = true;
55
59
  }
56
60
 
57
-
58
61
  async run() {
59
62
  if (!this.initialized) {
60
63
  await this.testClientConnections();
61
64
  }
62
- console.error('INFO: Starting MCP WordPress Server...');
65
+ console.error("INFO: Starting MCP WordPress Server...");
63
66
 
64
67
  // Connect to stdio transport
65
68
  const transport = new StdioServerTransport();
66
69
  await this.server.connect(transport);
67
70
 
68
71
  console.error(
69
- `INFO: Server started and connected. Tools available for ${this.wordpressClients.size} site(s).`
72
+ `INFO: Server started and connected. Tools available for ${this.wordpressClients.size} site(s).`,
70
73
  );
71
74
  }
72
75
 
73
76
  async shutdown() {
74
- console.error('INFO: Shutting down MCP WordPress Server...');
77
+ console.error("INFO: Shutting down MCP WordPress Server...");
75
78
  await this.server.close();
76
- console.error('INFO: Server stopped.');
79
+ console.error("INFO: Server stopped.");
77
80
  }
78
81
  }
79
82
 
@@ -88,8 +91,8 @@ async function main() {
88
91
  process.exit(0);
89
92
  };
90
93
 
91
- process.on('SIGINT', shutdown);
92
- process.on('SIGTERM', shutdown);
94
+ process.on("SIGINT", shutdown);
95
+ process.on("SIGTERM", shutdown);
93
96
  } catch (error) {
94
97
  console.error(`FATAL: Failed to start server: ${getErrorMessage(error)}`);
95
98
  process.exit(1);