mcp-wordpress 2.4.2 → 2.5.1

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 (653) hide show
  1. package/README.md +124 -54
  2. package/bin/status.js +1 -1
  3. package/dist/cache/CacheInvalidation.d.ts +3 -1
  4. package/dist/cache/CacheInvalidation.d.ts.map +1 -1
  5. package/dist/cache/CacheInvalidation.js +10 -4
  6. package/dist/cache/CacheInvalidation.js.map +1 -1
  7. package/dist/cache/CacheManager.d.ts +3 -2
  8. package/dist/cache/CacheManager.d.ts.map +1 -1
  9. package/dist/cache/CacheManager.js +11 -3
  10. package/dist/cache/CacheManager.js.map +1 -1
  11. package/dist/cache/HttpCacheWrapper.d.ts +7 -6
  12. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
  13. package/dist/cache/HttpCacheWrapper.js +8 -5
  14. package/dist/cache/HttpCacheWrapper.js.map +1 -1
  15. package/dist/cache/index.d.ts +3 -3
  16. package/dist/cache/index.d.ts.map +1 -1
  17. package/dist/cache/index.js +1 -1
  18. package/dist/cache/index.js.map +1 -1
  19. package/dist/client/CachedWordPressClient.d.ts +23 -9
  20. package/dist/client/CachedWordPressClient.d.ts.map +1 -1
  21. package/dist/client/CachedWordPressClient.js +4 -1
  22. package/dist/client/CachedWordPressClient.js.map +1 -1
  23. package/dist/client/MockWordPressClient.d.ts +2 -1
  24. package/dist/client/MockWordPressClient.d.ts.map +1 -1
  25. package/dist/client/MockWordPressClient.js +3 -1
  26. package/dist/client/MockWordPressClient.js.map +1 -1
  27. package/dist/client/api.d.ts +17 -13
  28. package/dist/client/api.d.ts.map +1 -1
  29. package/dist/client/api.js +135 -30
  30. package/dist/client/api.js.map +1 -1
  31. package/dist/client/auth.d.ts.map +1 -1
  32. package/dist/client/auth.js +2 -3
  33. package/dist/client/auth.js.map +1 -1
  34. package/dist/client/managers/AuthenticationManager.d.ts +55 -2
  35. package/dist/client/managers/AuthenticationManager.d.ts.map +1 -1
  36. package/dist/client/managers/AuthenticationManager.js +269 -71
  37. package/dist/client/managers/AuthenticationManager.js.map +1 -1
  38. package/dist/client/managers/BaseManager.d.ts +3 -3
  39. package/dist/client/managers/BaseManager.d.ts.map +1 -1
  40. package/dist/client/managers/BaseManager.js +11 -5
  41. package/dist/client/managers/BaseManager.js.map +1 -1
  42. package/dist/client/managers/RequestManager.d.ts +2 -2
  43. package/dist/client/managers/RequestManager.d.ts.map +1 -1
  44. package/dist/client/managers/RequestManager.js +25 -12
  45. package/dist/client/managers/RequestManager.js.map +1 -1
  46. package/dist/config/Config.d.ts +155 -0
  47. package/dist/config/Config.d.ts.map +1 -0
  48. package/dist/config/Config.js +215 -0
  49. package/dist/config/Config.js.map +1 -0
  50. package/dist/config/ConfigurationSchema.d.ts +21 -21
  51. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  52. package/dist/config/ConfigurationSchema.js +19 -2
  53. package/dist/config/ConfigurationSchema.js.map +1 -1
  54. package/dist/config/ServerConfiguration.d.ts +2 -1
  55. package/dist/config/ServerConfiguration.d.ts.map +1 -1
  56. package/dist/config/ServerConfiguration.js +73 -43
  57. package/dist/config/ServerConfiguration.js.map +1 -1
  58. package/dist/docs/DocumentationGenerator.d.ts +9 -8
  59. package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
  60. package/dist/docs/DocumentationGenerator.js +10 -7
  61. package/dist/docs/DocumentationGenerator.js.map +1 -1
  62. package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
  63. package/dist/docs/MarkdownFormatter.js +3 -2
  64. package/dist/docs/MarkdownFormatter.js.map +1 -1
  65. package/dist/dxt-entry.js +15 -14
  66. package/dist/dxt-entry.js.map +1 -1
  67. package/dist/index.d.ts +3 -1
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +37 -21
  70. package/dist/index.js.map +1 -1
  71. package/dist/performance/MetricsCollector.d.ts +13 -7
  72. package/dist/performance/MetricsCollector.d.ts.map +1 -1
  73. package/dist/performance/MetricsCollector.js +69 -27
  74. package/dist/performance/MetricsCollector.js.map +1 -1
  75. package/dist/performance/PerformanceAnalytics.d.ts +8 -2
  76. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
  77. package/dist/performance/PerformanceAnalytics.js +17 -47
  78. package/dist/performance/PerformanceAnalytics.js.map +1 -1
  79. package/dist/performance/PerformanceMonitor.d.ts +2 -1
  80. package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
  81. package/dist/performance/PerformanceMonitor.js +12 -13
  82. package/dist/performance/PerformanceMonitor.js.map +1 -1
  83. package/dist/performance/index.d.ts +2 -2
  84. package/dist/performance/index.d.ts.map +1 -1
  85. package/dist/security/AISecurityScanner.d.ts +1 -0
  86. package/dist/security/AISecurityScanner.d.ts.map +1 -1
  87. package/dist/security/AISecurityScanner.js +22 -12
  88. package/dist/security/AISecurityScanner.js.map +1 -1
  89. package/dist/security/AutomatedRemediation.d.ts +4 -3
  90. package/dist/security/AutomatedRemediation.d.ts.map +1 -1
  91. package/dist/security/AutomatedRemediation.js +46 -15
  92. package/dist/security/AutomatedRemediation.js.map +1 -1
  93. package/dist/security/InputValidator.d.ts +13 -9
  94. package/dist/security/InputValidator.d.ts.map +1 -1
  95. package/dist/security/InputValidator.js +4 -2
  96. package/dist/security/InputValidator.js.map +1 -1
  97. package/dist/security/SecurityCIPipeline.d.ts +1 -1
  98. package/dist/security/SecurityCIPipeline.d.ts.map +1 -1
  99. package/dist/security/SecurityCIPipeline.js +38 -29
  100. package/dist/security/SecurityCIPipeline.js.map +1 -1
  101. package/dist/security/SecurityConfig.d.ts +3 -3
  102. package/dist/security/SecurityConfig.d.ts.map +1 -1
  103. package/dist/security/SecurityConfig.js +13 -9
  104. package/dist/security/SecurityConfig.js.map +1 -1
  105. package/dist/security/SecurityConfigManager.d.ts +2 -2
  106. package/dist/security/SecurityConfigManager.d.ts.map +1 -1
  107. package/dist/security/SecurityConfigManager.js +20 -15
  108. package/dist/security/SecurityConfigManager.js.map +1 -1
  109. package/dist/security/SecurityMonitoring.d.ts +2 -2
  110. package/dist/security/SecurityMonitoring.d.ts.map +1 -1
  111. package/dist/security/SecurityMonitoring.js +19 -17
  112. package/dist/security/SecurityMonitoring.js.map +1 -1
  113. package/dist/security/SecurityReviewer.d.ts.map +1 -1
  114. package/dist/security/SecurityReviewer.js +10 -7
  115. package/dist/security/SecurityReviewer.js.map +1 -1
  116. package/dist/security/index.d.ts +24 -23
  117. package/dist/security/index.d.ts.map +1 -1
  118. package/dist/security/index.js +52 -23
  119. package/dist/security/index.js.map +1 -1
  120. package/dist/server/ConnectionTester.d.ts +12 -4
  121. package/dist/server/ConnectionTester.d.ts.map +1 -1
  122. package/dist/server/ConnectionTester.js +96 -22
  123. package/dist/server/ConnectionTester.js.map +1 -1
  124. package/dist/server/ToolRegistry.d.ts +2 -2
  125. package/dist/server/ToolRegistry.d.ts.map +1 -1
  126. package/dist/server/ToolRegistry.js +10 -5
  127. package/dist/server/ToolRegistry.js.map +1 -1
  128. package/dist/src/cache/CacheInvalidation.d.ts +120 -0
  129. package/dist/src/cache/CacheInvalidation.d.ts.map +1 -0
  130. package/dist/src/cache/CacheInvalidation.js +355 -0
  131. package/dist/src/cache/CacheInvalidation.js.map +1 -0
  132. package/dist/src/cache/CacheManager.d.ts +149 -0
  133. package/dist/src/cache/CacheManager.d.ts.map +1 -0
  134. package/dist/src/cache/CacheManager.js +326 -0
  135. package/dist/src/cache/CacheManager.js.map +1 -0
  136. package/dist/src/cache/HttpCacheWrapper.d.ts +122 -0
  137. package/dist/src/cache/HttpCacheWrapper.d.ts.map +1 -0
  138. package/dist/src/cache/HttpCacheWrapper.js +283 -0
  139. package/dist/src/cache/HttpCacheWrapper.js.map +1 -0
  140. package/dist/src/cache/index.d.ts +12 -0
  141. package/dist/src/cache/index.d.ts.map +1 -0
  142. package/dist/src/cache/index.js +9 -0
  143. package/dist/src/cache/index.js.map +1 -0
  144. package/dist/src/client/CachedWordPressClient.d.ts +174 -0
  145. package/dist/src/client/CachedWordPressClient.d.ts.map +1 -0
  146. package/dist/src/client/CachedWordPressClient.js +345 -0
  147. package/dist/src/client/CachedWordPressClient.js.map +1 -0
  148. package/dist/src/client/MockWordPressClient.d.ts +56 -0
  149. package/dist/src/client/MockWordPressClient.d.ts.map +1 -0
  150. package/dist/src/client/MockWordPressClient.js +371 -0
  151. package/dist/src/client/MockWordPressClient.js.map +1 -0
  152. package/dist/src/client/api.d.ts +235 -0
  153. package/dist/src/client/api.d.ts.map +1 -0
  154. package/dist/src/client/api.js +896 -0
  155. package/dist/src/client/api.js.map +1 -0
  156. package/dist/src/client/auth.d.ts +121 -0
  157. package/dist/src/client/auth.d.ts.map +1 -0
  158. package/dist/src/client/auth.js +429 -0
  159. package/dist/src/client/auth.js.map +1 -0
  160. package/dist/src/client/managers/AuthenticationManager.d.ts +92 -0
  161. package/dist/src/client/managers/AuthenticationManager.d.ts.map +1 -0
  162. package/dist/src/client/managers/AuthenticationManager.js +369 -0
  163. package/dist/src/client/managers/AuthenticationManager.js.map +1 -0
  164. package/dist/src/client/managers/BaseManager.d.ts +22 -0
  165. package/dist/src/client/managers/BaseManager.d.ts.map +1 -0
  166. package/dist/src/client/managers/BaseManager.js +53 -0
  167. package/dist/src/client/managers/BaseManager.js.map +1 -0
  168. package/dist/src/client/managers/RequestManager.d.ts +47 -0
  169. package/dist/src/client/managers/RequestManager.d.ts.map +1 -0
  170. package/dist/src/client/managers/RequestManager.js +193 -0
  171. package/dist/src/client/managers/RequestManager.js.map +1 -0
  172. package/dist/src/client/managers/index.d.ts +8 -0
  173. package/dist/src/client/managers/index.d.ts.map +1 -0
  174. package/dist/src/client/managers/index.js +8 -0
  175. package/dist/src/client/managers/index.js.map +1 -0
  176. package/dist/src/config/Config.d.ts +155 -0
  177. package/dist/src/config/Config.d.ts.map +1 -0
  178. package/dist/src/config/Config.js +215 -0
  179. package/dist/src/config/Config.js.map +1 -0
  180. package/dist/src/config/ConfigurationSchema.d.ts +281 -0
  181. package/dist/src/config/ConfigurationSchema.d.ts.map +1 -0
  182. package/dist/src/config/ConfigurationSchema.js +205 -0
  183. package/dist/src/config/ConfigurationSchema.js.map +1 -0
  184. package/dist/src/config/ServerConfiguration.d.ts +47 -0
  185. package/dist/src/config/ServerConfiguration.d.ts.map +1 -0
  186. package/dist/src/config/ServerConfiguration.js +255 -0
  187. package/dist/src/config/ServerConfiguration.js.map +1 -0
  188. package/dist/src/docs/DocumentationGenerator.d.ts +185 -0
  189. package/dist/src/docs/DocumentationGenerator.d.ts.map +1 -0
  190. package/dist/src/docs/DocumentationGenerator.js +777 -0
  191. package/dist/src/docs/DocumentationGenerator.js.map +1 -0
  192. package/dist/src/docs/MarkdownFormatter.d.ts +84 -0
  193. package/dist/src/docs/MarkdownFormatter.d.ts.map +1 -0
  194. package/dist/src/docs/MarkdownFormatter.js +458 -0
  195. package/dist/src/docs/MarkdownFormatter.js.map +1 -0
  196. package/dist/src/docs/index.d.ts +8 -0
  197. package/dist/src/docs/index.d.ts.map +1 -0
  198. package/dist/src/docs/index.js +7 -0
  199. package/dist/src/docs/index.js.map +1 -0
  200. package/dist/src/dxt-entry.d.ts +6 -0
  201. package/dist/src/dxt-entry.d.ts.map +1 -0
  202. package/dist/src/dxt-entry.js +39 -0
  203. package/dist/src/dxt-entry.js.map +1 -0
  204. package/dist/src/index.d.ts +18 -0
  205. package/dist/src/index.d.ts.map +1 -0
  206. package/dist/src/index.js +143 -0
  207. package/dist/src/index.js.map +1 -0
  208. package/dist/src/performance/MetricsCollector.d.ts +145 -0
  209. package/dist/src/performance/MetricsCollector.d.ts.map +1 -0
  210. package/dist/src/performance/MetricsCollector.js +368 -0
  211. package/dist/src/performance/MetricsCollector.js.map +1 -0
  212. package/dist/src/performance/PerformanceAnalytics.d.ts +168 -0
  213. package/dist/src/performance/PerformanceAnalytics.d.ts.map +1 -0
  214. package/dist/src/performance/PerformanceAnalytics.js +570 -0
  215. package/dist/src/performance/PerformanceAnalytics.js.map +1 -0
  216. package/dist/src/performance/PerformanceMonitor.d.ts +203 -0
  217. package/dist/src/performance/PerformanceMonitor.d.ts.map +1 -0
  218. package/dist/src/performance/PerformanceMonitor.js +478 -0
  219. package/dist/src/performance/PerformanceMonitor.js.map +1 -0
  220. package/dist/src/performance/index.d.ts +11 -0
  221. package/dist/src/performance/index.d.ts.map +1 -0
  222. package/dist/src/performance/index.js +8 -0
  223. package/dist/src/performance/index.js.map +1 -0
  224. package/dist/src/security/AISecurityScanner.d.ts +176 -0
  225. package/dist/src/security/AISecurityScanner.d.ts.map +1 -0
  226. package/dist/src/security/AISecurityScanner.js +655 -0
  227. package/dist/src/security/AISecurityScanner.js.map +1 -0
  228. package/dist/src/security/AutomatedRemediation.d.ts +146 -0
  229. package/dist/src/security/AutomatedRemediation.d.ts.map +1 -0
  230. package/dist/src/security/AutomatedRemediation.js +566 -0
  231. package/dist/src/security/AutomatedRemediation.js.map +1 -0
  232. package/dist/src/security/InputValidator.d.ts +219 -0
  233. package/dist/src/security/InputValidator.d.ts.map +1 -0
  234. package/dist/src/security/InputValidator.js +295 -0
  235. package/dist/src/security/InputValidator.js.map +1 -0
  236. package/dist/src/security/SecurityCIPipeline.d.ts +213 -0
  237. package/dist/src/security/SecurityCIPipeline.d.ts.map +1 -0
  238. package/dist/src/security/SecurityCIPipeline.js +693 -0
  239. package/dist/src/security/SecurityCIPipeline.js.map +1 -0
  240. package/dist/src/security/SecurityConfig.d.ts +129 -0
  241. package/dist/src/security/SecurityConfig.d.ts.map +1 -0
  242. package/dist/src/security/SecurityConfig.js +266 -0
  243. package/dist/src/security/SecurityConfig.js.map +1 -0
  244. package/dist/src/security/SecurityConfigManager.d.ts +294 -0
  245. package/dist/src/security/SecurityConfigManager.d.ts.map +1 -0
  246. package/dist/src/security/SecurityConfigManager.js +558 -0
  247. package/dist/src/security/SecurityConfigManager.js.map +1 -0
  248. package/dist/src/security/SecurityMonitoring.d.ts +245 -0
  249. package/dist/src/security/SecurityMonitoring.d.ts.map +1 -0
  250. package/dist/src/security/SecurityMonitoring.js +598 -0
  251. package/dist/src/security/SecurityMonitoring.js.map +1 -0
  252. package/dist/src/security/SecurityReviewer.d.ts +168 -0
  253. package/dist/src/security/SecurityReviewer.d.ts.map +1 -0
  254. package/dist/src/security/SecurityReviewer.js +686 -0
  255. package/dist/src/security/SecurityReviewer.js.map +1 -0
  256. package/dist/src/security/index.d.ts +183 -0
  257. package/dist/src/security/index.d.ts.map +1 -0
  258. package/dist/src/security/index.js +218 -0
  259. package/dist/src/security/index.js.map +1 -0
  260. package/dist/src/server/ConnectionTester.d.ts +32 -0
  261. package/dist/src/server/ConnectionTester.d.ts.map +1 -0
  262. package/dist/src/server/ConnectionTester.js +135 -0
  263. package/dist/src/server/ConnectionTester.js.map +1 -0
  264. package/dist/src/server/ToolRegistry.d.ts +50 -0
  265. package/dist/src/server/ToolRegistry.d.ts.map +1 -0
  266. package/dist/src/server/ToolRegistry.js +219 -0
  267. package/dist/src/server/ToolRegistry.js.map +1 -0
  268. package/dist/src/server.d.ts +7 -0
  269. package/dist/src/server.d.ts.map +1 -0
  270. package/dist/src/server.js +7 -0
  271. package/dist/src/server.js.map +1 -0
  272. package/dist/src/tools/BaseToolManager.d.ts +62 -0
  273. package/dist/src/tools/BaseToolManager.d.ts.map +1 -0
  274. package/dist/src/tools/BaseToolManager.js +195 -0
  275. package/dist/src/tools/BaseToolManager.js.map +1 -0
  276. package/dist/src/tools/auth.d.ts +50 -0
  277. package/dist/src/tools/auth.d.ts.map +1 -0
  278. package/dist/src/tools/auth.js +133 -0
  279. package/dist/src/tools/auth.js.map +1 -0
  280. package/dist/src/tools/cache.d.ts +260 -0
  281. package/dist/src/tools/cache.d.ts.map +1 -0
  282. package/dist/src/tools/cache.js +232 -0
  283. package/dist/src/tools/cache.js.map +1 -0
  284. package/dist/src/tools/comments.d.ts +33 -0
  285. package/dist/src/tools/comments.d.ts.map +1 -0
  286. package/dist/src/tools/comments.js +235 -0
  287. package/dist/src/tools/comments.js.map +1 -0
  288. package/dist/src/tools/index.d.ts +11 -0
  289. package/dist/src/tools/index.d.ts.map +1 -0
  290. package/dist/src/tools/index.js +11 -0
  291. package/dist/src/tools/index.js.map +1 -0
  292. package/dist/src/tools/media.d.ts +70 -0
  293. package/dist/src/tools/media.d.ts.map +1 -0
  294. package/dist/src/tools/media.js +248 -0
  295. package/dist/src/tools/media.js.map +1 -0
  296. package/dist/src/tools/pages.d.ts +32 -0
  297. package/dist/src/tools/pages.d.ts.map +1 -0
  298. package/dist/src/tools/pages.js +215 -0
  299. package/dist/src/tools/pages.js.map +1 -0
  300. package/dist/src/tools/performance.d.ts +73 -0
  301. package/dist/src/tools/performance.d.ts.map +1 -0
  302. package/dist/src/tools/performance.js +922 -0
  303. package/dist/src/tools/performance.js.map +1 -0
  304. package/dist/src/tools/posts/PostHandlers.d.ts +46 -0
  305. package/dist/src/tools/posts/PostHandlers.d.ts.map +1 -0
  306. package/dist/src/tools/posts/PostHandlers.js +400 -0
  307. package/dist/src/tools/posts/PostHandlers.js.map +1 -0
  308. package/dist/src/tools/posts/PostToolDefinitions.d.ts +37 -0
  309. package/dist/src/tools/posts/PostToolDefinitions.d.ts.map +1 -0
  310. package/dist/src/tools/posts/PostToolDefinitions.js +236 -0
  311. package/dist/src/tools/posts/PostToolDefinitions.js.map +1 -0
  312. package/dist/src/tools/posts/index.d.ts +138 -0
  313. package/dist/src/tools/posts/index.d.ts.map +1 -0
  314. package/dist/src/tools/posts/index.js +163 -0
  315. package/dist/src/tools/posts/index.js.map +1 -0
  316. package/dist/src/tools/posts.d.ts +15 -0
  317. package/dist/src/tools/posts.d.ts.map +1 -0
  318. package/dist/src/tools/posts.js +16 -0
  319. package/dist/src/tools/posts.js.map +1 -0
  320. package/dist/src/tools/site.d.ts +32 -0
  321. package/dist/src/tools/site.d.ts.map +1 -0
  322. package/dist/src/tools/site.js +234 -0
  323. package/dist/src/tools/site.js.map +1 -0
  324. package/dist/src/tools/taxonomies.d.ts +36 -0
  325. package/dist/src/tools/taxonomies.d.ts.map +1 -0
  326. package/dist/src/tools/taxonomies.js +286 -0
  327. package/dist/src/tools/taxonomies.js.map +1 -0
  328. package/dist/src/tools/users.d.ts +33 -0
  329. package/dist/src/tools/users.d.ts.map +1 -0
  330. package/dist/src/tools/users.js +308 -0
  331. package/dist/src/tools/users.js.map +1 -0
  332. package/dist/src/types/client.d.ts +223 -0
  333. package/dist/src/types/client.d.ts.map +1 -0
  334. package/dist/src/types/client.js +97 -0
  335. package/dist/src/types/client.js.map +1 -0
  336. package/dist/src/types/enhanced.d.ts +237 -0
  337. package/dist/src/types/enhanced.d.ts.map +1 -0
  338. package/dist/src/types/enhanced.js +49 -0
  339. package/dist/src/types/enhanced.js.map +1 -0
  340. package/dist/src/types/index.d.ts +160 -0
  341. package/dist/src/types/index.d.ts.map +1 -0
  342. package/dist/src/types/index.js +14 -0
  343. package/dist/src/types/index.js.map +1 -0
  344. package/dist/src/types/mcp.d.ts +178 -0
  345. package/dist/src/types/mcp.d.ts.map +1 -0
  346. package/dist/src/types/mcp.js +7 -0
  347. package/dist/src/types/mcp.js.map +1 -0
  348. package/dist/src/types/requests.d.ts +322 -0
  349. package/dist/src/types/requests.d.ts.map +1 -0
  350. package/dist/src/types/requests.js +8 -0
  351. package/dist/src/types/requests.js.map +1 -0
  352. package/dist/src/types/tools.d.ts +506 -0
  353. package/dist/src/types/tools.d.ts.map +1 -0
  354. package/dist/src/types/tools.js +8 -0
  355. package/dist/src/types/tools.js.map +1 -0
  356. package/dist/src/types/wordpress.d.ts +471 -0
  357. package/dist/src/types/wordpress.d.ts.map +1 -0
  358. package/dist/src/types/wordpress.js +14 -0
  359. package/dist/src/types/wordpress.js.map +1 -0
  360. package/dist/src/utils/debug.d.ts +71 -0
  361. package/dist/src/utils/debug.d.ts.map +1 -0
  362. package/dist/src/utils/debug.js +235 -0
  363. package/dist/src/utils/debug.js.map +1 -0
  364. package/dist/src/utils/enhancedError.d.ts +61 -0
  365. package/dist/src/utils/enhancedError.d.ts.map +1 -0
  366. package/dist/src/utils/enhancedError.js +221 -0
  367. package/dist/src/utils/enhancedError.js.map +1 -0
  368. package/dist/src/utils/error.d.ts +17 -0
  369. package/dist/src/utils/error.d.ts.map +1 -0
  370. package/dist/src/utils/error.js +108 -0
  371. package/dist/src/utils/error.js.map +1 -0
  372. package/dist/src/utils/logger.d.ts +106 -0
  373. package/dist/src/utils/logger.d.ts.map +1 -0
  374. package/dist/src/utils/logger.js +280 -0
  375. package/dist/src/utils/logger.js.map +1 -0
  376. package/dist/src/utils/streaming.d.ts +104 -0
  377. package/dist/src/utils/streaming.d.ts.map +1 -0
  378. package/dist/src/utils/streaming.js +331 -0
  379. package/dist/src/utils/streaming.js.map +1 -0
  380. package/dist/src/utils/toolWrapper.d.ts +42 -0
  381. package/dist/src/utils/toolWrapper.d.ts.map +1 -0
  382. package/dist/src/utils/toolWrapper.js +101 -0
  383. package/dist/src/utils/toolWrapper.js.map +1 -0
  384. package/dist/src/utils/validation/core.d.ts +21 -0
  385. package/dist/src/utils/validation/core.d.ts.map +1 -0
  386. package/dist/src/utils/validation/core.js +71 -0
  387. package/dist/src/utils/validation/core.js.map +1 -0
  388. package/dist/src/utils/validation/index.d.ts +25 -0
  389. package/dist/src/utils/validation/index.d.ts.map +1 -0
  390. package/dist/src/utils/validation/index.js +29 -0
  391. package/dist/src/utils/validation/index.js.map +1 -0
  392. package/dist/src/utils/validation/network.d.ts +19 -0
  393. package/dist/src/utils/validation/network.d.ts.map +1 -0
  394. package/dist/src/utils/validation/network.js +93 -0
  395. package/dist/src/utils/validation/network.js.map +1 -0
  396. package/dist/src/utils/validation/rateLimit.d.ts +21 -0
  397. package/dist/src/utils/validation/rateLimit.d.ts.map +1 -0
  398. package/dist/src/utils/validation/rateLimit.js +43 -0
  399. package/dist/src/utils/validation/rateLimit.js.map +1 -0
  400. package/dist/src/utils/validation/security.d.ts +29 -0
  401. package/dist/src/utils/validation/security.d.ts.map +1 -0
  402. package/dist/src/utils/validation/security.js +327 -0
  403. package/dist/src/utils/validation/security.js.map +1 -0
  404. package/dist/src/utils/validation/wordpress.d.ts +31 -0
  405. package/dist/src/utils/validation/wordpress.d.ts.map +1 -0
  406. package/dist/src/utils/validation/wordpress.js +146 -0
  407. package/dist/src/utils/validation/wordpress.js.map +1 -0
  408. package/dist/src/utils/validation.d.ts +15 -0
  409. package/dist/src/utils/validation.d.ts.map +1 -0
  410. package/dist/src/utils/validation.js +27 -0
  411. package/dist/src/utils/validation.js.map +1 -0
  412. package/dist/tests/vitest.setup.d.ts +6 -0
  413. package/dist/tests/vitest.setup.d.ts.map +1 -0
  414. package/dist/tests/vitest.setup.js +39 -0
  415. package/dist/tests/vitest.setup.js.map +1 -0
  416. package/dist/tools/BaseToolManager.d.ts +47 -11
  417. package/dist/tools/BaseToolManager.d.ts.map +1 -1
  418. package/dist/tools/BaseToolManager.js +168 -29
  419. package/dist/tools/BaseToolManager.js.map +1 -1
  420. package/dist/tools/auth.d.ts +16 -10
  421. package/dist/tools/auth.d.ts.map +1 -1
  422. package/dist/tools/auth.js +3 -2
  423. package/dist/tools/auth.js.map +1 -1
  424. package/dist/tools/cache.d.ts +30 -30
  425. package/dist/tools/cache.d.ts.map +1 -1
  426. package/dist/tools/cache.js +1 -6
  427. package/dist/tools/cache.js.map +1 -1
  428. package/dist/tools/comments.d.ts +20 -20
  429. package/dist/tools/comments.d.ts.map +1 -1
  430. package/dist/tools/comments.js +16 -9
  431. package/dist/tools/comments.js.map +1 -1
  432. package/dist/tools/media.d.ts +18 -16
  433. package/dist/tools/media.d.ts.map +1 -1
  434. package/dist/tools/media.js +16 -15
  435. package/dist/tools/media.js.map +1 -1
  436. package/dist/tools/pages.d.ts +19 -17
  437. package/dist/tools/pages.d.ts.map +1 -1
  438. package/dist/tools/pages.js +16 -12
  439. package/dist/tools/pages.js.map +1 -1
  440. package/dist/tools/performance.d.ts +11 -1
  441. package/dist/tools/performance.d.ts.map +1 -1
  442. package/dist/tools/performance.js +67 -34
  443. package/dist/tools/performance.js.map +1 -1
  444. package/dist/tools/posts/PostHandlers.d.ts +46 -0
  445. package/dist/tools/posts/PostHandlers.d.ts.map +1 -0
  446. package/dist/tools/posts/PostHandlers.js +400 -0
  447. package/dist/tools/posts/PostHandlers.js.map +1 -0
  448. package/dist/tools/posts/PostToolDefinitions.d.ts +37 -0
  449. package/dist/tools/posts/PostToolDefinitions.d.ts.map +1 -0
  450. package/dist/tools/posts/PostToolDefinitions.js +236 -0
  451. package/dist/tools/posts/PostToolDefinitions.js.map +1 -0
  452. package/dist/tools/posts/index.d.ts +138 -0
  453. package/dist/tools/posts/index.d.ts.map +1 -0
  454. package/dist/tools/posts/index.js +163 -0
  455. package/dist/tools/posts/index.js.map +1 -0
  456. package/dist/tools/posts.d.ts +10 -246
  457. package/dist/tools/posts.d.ts.map +1 -1
  458. package/dist/tools/posts.js +11 -723
  459. package/dist/tools/posts.js.map +1 -1
  460. package/dist/tools/site.d.ts +19 -18
  461. package/dist/tools/site.d.ts.map +1 -1
  462. package/dist/tools/site.js +14 -10
  463. package/dist/tools/site.js.map +1 -1
  464. package/dist/tools/taxonomies.d.ts +23 -24
  465. package/dist/tools/taxonomies.d.ts.map +1 -1
  466. package/dist/tools/taxonomies.js +24 -18
  467. package/dist/tools/taxonomies.js.map +1 -1
  468. package/dist/tools/users.d.ts +20 -15
  469. package/dist/tools/users.d.ts.map +1 -1
  470. package/dist/tools/users.js +12 -8
  471. package/dist/tools/users.js.map +1 -1
  472. package/dist/types/client.d.ts +48 -41
  473. package/dist/types/client.d.ts.map +1 -1
  474. package/dist/types/client.js +30 -5
  475. package/dist/types/client.js.map +1 -1
  476. package/dist/types/enhanced.d.ts +237 -0
  477. package/dist/types/enhanced.d.ts.map +1 -0
  478. package/dist/types/enhanced.js +49 -0
  479. package/dist/types/enhanced.js.map +1 -0
  480. package/dist/types/index.d.ts +15 -12
  481. package/dist/types/index.d.ts.map +1 -1
  482. package/dist/types/index.js +2 -0
  483. package/dist/types/index.js.map +1 -1
  484. package/dist/types/mcp.d.ts +12 -12
  485. package/dist/types/mcp.d.ts.map +1 -1
  486. package/dist/types/requests.d.ts +322 -0
  487. package/dist/types/requests.d.ts.map +1 -0
  488. package/dist/types/requests.js +8 -0
  489. package/dist/types/requests.js.map +1 -0
  490. package/dist/types/tools.d.ts +506 -0
  491. package/dist/types/tools.d.ts.map +1 -0
  492. package/dist/types/tools.js +8 -0
  493. package/dist/types/tools.js.map +1 -0
  494. package/dist/types/wordpress.d.ts +43 -15
  495. package/dist/types/wordpress.d.ts.map +1 -1
  496. package/dist/types/wordpress.js +8 -1
  497. package/dist/types/wordpress.js.map +1 -1
  498. package/dist/utils/debug.d.ts +19 -11
  499. package/dist/utils/debug.d.ts.map +1 -1
  500. package/dist/utils/debug.js +46 -10
  501. package/dist/utils/debug.js.map +1 -1
  502. package/dist/utils/enhancedError.d.ts +8 -8
  503. package/dist/utils/enhancedError.d.ts.map +1 -1
  504. package/dist/utils/enhancedError.js.map +1 -1
  505. package/dist/utils/error.d.ts +2 -4
  506. package/dist/utils/error.d.ts.map +1 -1
  507. package/dist/utils/error.js +42 -5
  508. package/dist/utils/error.js.map +1 -1
  509. package/dist/utils/logger.d.ts +106 -0
  510. package/dist/utils/logger.d.ts.map +1 -0
  511. package/dist/utils/logger.js +280 -0
  512. package/dist/utils/logger.js.map +1 -0
  513. package/dist/utils/streaming.d.ts +9 -9
  514. package/dist/utils/streaming.d.ts.map +1 -1
  515. package/dist/utils/streaming.js +71 -52
  516. package/dist/utils/streaming.js.map +1 -1
  517. package/dist/utils/toolWrapper.d.ts +9 -7
  518. package/dist/utils/toolWrapper.d.ts.map +1 -1
  519. package/dist/utils/toolWrapper.js.map +1 -1
  520. package/dist/utils/validation/core.d.ts +21 -0
  521. package/dist/utils/validation/core.d.ts.map +1 -0
  522. package/dist/utils/validation/core.js +71 -0
  523. package/dist/utils/validation/core.js.map +1 -0
  524. package/dist/utils/validation/index.d.ts +25 -0
  525. package/dist/utils/validation/index.d.ts.map +1 -0
  526. package/dist/utils/validation/index.js +29 -0
  527. package/dist/utils/validation/index.js.map +1 -0
  528. package/dist/utils/validation/network.d.ts +19 -0
  529. package/dist/utils/validation/network.d.ts.map +1 -0
  530. package/dist/utils/validation/network.js +93 -0
  531. package/dist/utils/validation/network.js.map +1 -0
  532. package/dist/utils/validation/rateLimit.d.ts +21 -0
  533. package/dist/utils/validation/rateLimit.d.ts.map +1 -0
  534. package/dist/utils/validation/rateLimit.js +43 -0
  535. package/dist/utils/validation/rateLimit.js.map +1 -0
  536. package/dist/utils/validation/security.d.ts +29 -0
  537. package/dist/utils/validation/security.d.ts.map +1 -0
  538. package/dist/utils/validation/security.js +327 -0
  539. package/dist/utils/validation/security.js.map +1 -0
  540. package/dist/utils/validation/wordpress.d.ts +31 -0
  541. package/dist/utils/validation/wordpress.d.ts.map +1 -0
  542. package/dist/utils/validation/wordpress.js +146 -0
  543. package/dist/utils/validation/wordpress.js.map +1 -0
  544. package/dist/utils/validation.d.ts +13 -82
  545. package/dist/utils/validation.d.ts.map +1 -1
  546. package/dist/utils/validation.js +25 -343
  547. package/dist/utils/validation.js.map +1 -1
  548. package/docs/BADGE_UPDATES.md +132 -0
  549. package/docs/CI_CD_IMPROVEMENTS.md +191 -0
  550. package/docs/INCREMENTAL_COVERAGE.md +183 -0
  551. package/docs/INSTALLATION.md +4 -2
  552. package/docs/TROUBLESHOOTING.md +2 -1
  553. package/docs/api/README.md +3 -1
  554. package/docs/api/openapi.json +5 -1
  555. package/docs/api/summary.json +1 -1
  556. package/docs/api/tools/wp_create_post.md +12 -14
  557. package/docs/developer/TESTING.md +24 -19
  558. package/docs/examples/claude-desktop-config.md +1 -1
  559. package/docs/examples/docker-production.md +100 -93
  560. package/docs/examples/multi-site-setup.md +5 -4
  561. package/docs/examples/single-site-setup.md +3 -4
  562. package/docs/examples/use-case-workflows.md +4 -5
  563. package/docs/integrations/claude-desktop.md +39 -34
  564. package/docs/integrations/cline.md +4 -4
  565. package/docs/integrations/vs-code.md +9 -8
  566. package/docs/user-guides/DXT_INSTALLATION.md +2 -1
  567. package/docs/user-guides/SMITHERY_SETUP.md +10 -10
  568. package/package.json +57 -39
  569. package/src/cache/CacheInvalidation.ts +12 -5
  570. package/src/cache/CacheManager.ts +18 -15
  571. package/src/cache/HttpCacheWrapper.ts +30 -59
  572. package/src/cache/__tests__/HttpCacheWrapper.test.ts +6 -5
  573. package/src/cache/index.ts +3 -14
  574. package/src/client/CachedWordPressClient.ts +32 -30
  575. package/src/client/MockWordPressClient.ts +4 -2
  576. package/src/client/api.ts +186 -64
  577. package/src/client/auth.ts +15 -40
  578. package/src/client/managers/AuthenticationManager.ts +337 -77
  579. package/src/client/managers/BaseManager.ts +18 -30
  580. package/src/client/managers/RequestManager.ts +39 -44
  581. package/src/config/Config.ts +308 -0
  582. package/src/config/ConfigurationSchema.ts +23 -2
  583. package/src/config/ServerConfiguration.ts +73 -49
  584. package/src/docs/DocumentationGenerator.ts +50 -39
  585. package/src/docs/MarkdownFormatter.ts +19 -29
  586. package/src/dxt-entry.cjs +26 -16
  587. package/src/dxt-entry.ts +17 -27
  588. package/src/index.ts +42 -28
  589. package/src/performance/MetricsCollector.ts +108 -86
  590. package/src/performance/PerformanceAnalytics.ts +69 -164
  591. package/src/performance/PerformanceMonitor.ts +32 -47
  592. package/src/performance/index.ts +2 -10
  593. package/src/security/AISecurityScanner.ts +22 -12
  594. package/src/security/AutomatedRemediation.ts +49 -18
  595. package/src/security/InputValidator.ts +9 -6
  596. package/src/security/SecurityCIPipeline.ts +53 -37
  597. package/src/security/SecurityConfig.ts +22 -22
  598. package/src/security/SecurityConfigManager.ts +23 -19
  599. package/src/security/SecurityMonitoring.ts +24 -21
  600. package/src/security/SecurityReviewer.ts +10 -7
  601. package/src/security/index.ts +64 -29
  602. package/src/server/ConnectionTester.ts +120 -31
  603. package/src/server/ToolRegistry.ts +31 -21
  604. package/src/tools/BaseToolManager.ts +286 -33
  605. package/src/tools/auth.ts +20 -8
  606. package/src/tools/cache.ts +5 -15
  607. package/src/tools/comments.ts +34 -48
  608. package/src/tools/media.ts +41 -53
  609. package/src/tools/pages.ts +32 -54
  610. package/src/tools/performance.ts +141 -176
  611. package/src/tools/posts/PostHandlers.ts +474 -0
  612. package/src/tools/posts/PostToolDefinitions.ts +250 -0
  613. package/src/tools/posts/index.ts +192 -0
  614. package/src/tools/posts.ts +24 -780
  615. package/src/tools/site.ts +34 -19
  616. package/src/tools/taxonomies.ts +41 -57
  617. package/src/tools/users.ts +28 -16
  618. package/src/types/client.ts +114 -138
  619. package/src/types/enhanced.ts +318 -0
  620. package/src/types/index.ts +51 -30
  621. package/src/types/mcp.ts +20 -42
  622. package/src/types/requests.ts +378 -0
  623. package/src/types/tools.ts +608 -0
  624. package/src/types/wordpress.ts +56 -34
  625. package/src/utils/debug.ts +77 -59
  626. package/src/utils/enhancedError.ts +8 -8
  627. package/src/utils/error.ts +53 -31
  628. package/src/utils/logger.ts +351 -0
  629. package/src/utils/streaming.ts +86 -68
  630. package/src/utils/toolWrapper.ts +10 -12
  631. package/src/utils/validation/core.ts +108 -0
  632. package/src/utils/validation/index.ts +36 -0
  633. package/src/utils/validation/network.ts +132 -0
  634. package/src/utils/validation/rateLimit.ts +54 -0
  635. package/src/utils/validation/security.ts +361 -0
  636. package/src/utils/validation/wordpress.ts +180 -0
  637. package/src/utils/validation.ts +47 -470
  638. package/dist/cache/__tests__/CacheInvalidation.test.d.ts +0 -5
  639. package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +0 -1
  640. package/dist/cache/__tests__/CacheInvalidation.test.js +0 -238
  641. package/dist/cache/__tests__/CacheInvalidation.test.js.map +0 -1
  642. package/dist/cache/__tests__/CacheManager.test.d.ts +0 -5
  643. package/dist/cache/__tests__/CacheManager.test.d.ts.map +0 -1
  644. package/dist/cache/__tests__/CacheManager.test.js +0 -233
  645. package/dist/cache/__tests__/CacheManager.test.js.map +0 -1
  646. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +0 -5
  647. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +0 -1
  648. package/dist/cache/__tests__/CachedWordPressClient.test.js +0 -231
  649. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +0 -1
  650. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +0 -5
  651. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +0 -1
  652. package/dist/cache/__tests__/HttpCacheWrapper.test.js +0 -299
  653. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +0 -1
@@ -7,6 +7,8 @@ import { CachedWordPressClient } from "../client/CachedWordPressClient.js";
7
7
  import { MockWordPressClient } from "../client/MockWordPressClient.js";
8
8
  import { WordPressClientConfig } from "../types/client.js";
9
9
  import { getErrorMessage } from "../utils/error.js";
10
+ import { LoggerFactory } from "../utils/logger.js";
11
+ import { ConfigHelpers } from "./Config.js";
10
12
  import {
11
13
  ConfigurationValidator,
12
14
  type SiteType as SiteConfig,
@@ -15,7 +17,7 @@ import {
15
17
  } from "./ConfigurationSchema.js";
16
18
 
17
19
  // Re-export types from schema for backward compatibility
18
- export type { SiteConfig, MultiSiteConfig };
20
+ export type { SiteConfig, MultiSiteConfig, McpConfigType };
19
21
 
20
22
  /**
21
23
  * Configuration loader for MCP WordPress Server
@@ -23,6 +25,7 @@ export type { SiteConfig, MultiSiteConfig };
23
25
  */
24
26
  export class ServerConfiguration {
25
27
  private static instance: ServerConfiguration;
28
+ private readonly logger = LoggerFactory.server();
26
29
  private rootDir: string;
27
30
  private envPath: string;
28
31
 
@@ -32,16 +35,36 @@ export class ServerConfiguration {
32
35
  this.rootDir = path.resolve(__dirname, "../..");
33
36
  this.envPath = path.resolve(this.rootDir, ".env");
34
37
 
35
- // Load environment variables
36
- dotenv.config({ path: this.envPath });
38
+ // Load environment variables (completely silent for MCP compatibility)
39
+ // Suppress dotenv output that could interfere with JSON-RPC communication
40
+ // eslint-disable-next-line no-console
41
+ const originalConsoleLog = console.log;
42
+ // eslint-disable-next-line no-console
43
+ const originalConsoleError = console.error;
44
+ try {
45
+ // eslint-disable-next-line no-console
46
+ console.log = () => {};
47
+ // eslint-disable-next-line no-console
48
+ console.error = () => {};
49
+ dotenv.config({
50
+ path: this.envPath,
51
+ debug: false,
52
+ override: false
53
+ });
54
+ } finally {
55
+ // eslint-disable-next-line no-console
56
+ console.log = originalConsoleLog;
57
+ // eslint-disable-next-line no-console
58
+ console.error = originalConsoleError;
59
+ }
37
60
 
38
61
  // Debug output for DXT troubleshooting (reduced in DXT mode)
39
- const isDXTMode = process.env.NODE_ENV === "dxt";
40
- if (!isDXTMode && process.env.DEBUG === "true") {
41
- console.error("DEBUG: ServerConfiguration initialized");
42
- console.error(`DEBUG: Root directory: ${this.rootDir}`);
43
- console.error(`DEBUG: Environment file path: ${this.envPath}`);
44
- console.error(`DEBUG: Environment file exists: ${fs.existsSync(this.envPath)}`);
62
+ if (ConfigHelpers.shouldDebug()) {
63
+ this.logger.debug("ServerConfiguration initialized", {
64
+ rootDir: this.rootDir,
65
+ envPath: this.envPath,
66
+ envFileExists: fs.existsSync(this.envPath),
67
+ });
45
68
  }
46
69
  }
47
70
 
@@ -66,15 +89,15 @@ export class ServerConfiguration {
66
89
  const configPath = path.resolve(this.rootDir, "mcp-wordpress.config.json");
67
90
 
68
91
  if (fs.existsSync(configPath)) {
69
- if (process.env.NODE_ENV !== "test") {
70
- console.error("INFO: Found mcp-wordpress.config.json, loading multi-site configuration.");
92
+ if (ConfigHelpers.shouldLogInfo()) {
93
+ this.logger.info("Found multi-site configuration file", { configPath });
71
94
  }
72
95
  return this.loadMultiSiteConfig(configPath);
73
96
  } else {
74
- if (process.env.NODE_ENV !== "test") {
75
- console.error(
76
- "INFO: mcp-wordpress.config.json not found, falling back to environment variables for single-site mode.",
77
- );
97
+ if (ConfigHelpers.shouldLogInfo()) {
98
+ this.logger.info("Multi-site config not found, using environment variables for single-site mode", {
99
+ configPath,
100
+ });
78
101
  }
79
102
  return this.loadSingleSiteFromEnv(mcpConfig);
80
103
  }
@@ -108,21 +131,27 @@ export class ServerConfiguration {
108
131
  };
109
132
 
110
133
  // Use cached client for better performance
111
- const client =
112
- process.env.DISABLE_CACHE === "true"
113
- ? new WordPressClient(clientConfig)
114
- : new CachedWordPressClient(clientConfig, site.id);
134
+ const client = ConfigHelpers.shouldUseCache()
135
+ ? new CachedWordPressClient(clientConfig, site.id)
136
+ : new WordPressClient(clientConfig);
115
137
  clients.set(site.id, client);
116
138
  validConfigs.push(site);
117
139
 
118
- if (process.env.NODE_ENV !== "test") {
119
- console.error(`INFO: Initialized client for site: ${site.name} (ID: ${site.id})`);
140
+ if (ConfigHelpers.shouldLogInfo()) {
141
+ this.logger.info("Initialized site client", {
142
+ siteName: site.name,
143
+ siteId: site.id,
144
+ authMethod: site.config.WORDPRESS_AUTH_METHOD,
145
+ });
120
146
  }
121
147
  }
122
148
 
123
149
  return { clients, configs: validConfigs };
124
150
  } catch (error) {
125
- console.error(`FATAL: Error reading or parsing mcp-wordpress.config.json: ${getErrorMessage(error)}`);
151
+ this.logger.fatal("Failed to load multi-site configuration", {
152
+ configPath,
153
+ error: getErrorMessage(error),
154
+ });
126
155
  process.exit(1);
127
156
  }
128
157
  }
@@ -131,14 +160,7 @@ export class ServerConfiguration {
131
160
  * Check if we're in CI environment
132
161
  */
133
162
  private isCIEnvironment(): boolean {
134
- return (
135
- process.env.CI === "true" ||
136
- process.env.NODE_ENV === "ci" ||
137
- process.env.NODE_ENV === "test" ||
138
- process.env.GITHUB_ACTIONS === "true" ||
139
- process.env.TRAVIS === "true" ||
140
- process.env.CIRCLECI === "true"
141
- );
163
+ return ConfigHelpers.isCI();
142
164
  }
143
165
 
144
166
  /**
@@ -175,7 +197,7 @@ export class ServerConfiguration {
175
197
  config: mockConfig,
176
198
  };
177
199
 
178
- console.error("INFO: Using mock configuration for CI environment.");
200
+ this.logger.info("Using mock configuration for CI environment");
179
201
  return { clients, configs: [siteConfig] };
180
202
  }
181
203
 
@@ -189,14 +211,14 @@ export class ServerConfiguration {
189
211
  try {
190
212
  // Debug output for DXT troubleshooting (reduced in DXT mode)
191
213
  const isDXTMode = process.env.NODE_ENV === "dxt";
192
- if (!isDXTMode) {
193
- console.error("DEBUG: loadSingleSiteFromEnv called");
194
- console.error(`DEBUG: mcpConfig provided: ${mcpConfig ? "YES" : "NO"}`);
195
- console.error("DEBUG: Current environment variables:");
196
- console.error(` WORDPRESS_SITE_URL: ${process.env.WORDPRESS_SITE_URL || "NOT SET"}`);
197
- console.error(` WORDPRESS_USERNAME: ${process.env.WORDPRESS_USERNAME || "NOT SET"}`);
198
- console.error(` WORDPRESS_APP_PASSWORD: ${process.env.WORDPRESS_APP_PASSWORD ? "SET" : "NOT SET"}`);
199
- console.error(` WORDPRESS_AUTH_METHOD: ${process.env.WORDPRESS_AUTH_METHOD || "NOT SET"}`);
214
+ if (!isDXTMode && ConfigHelpers.shouldDebug()) {
215
+ this.logger.debug("Loading single-site configuration from environment", {
216
+ mcpConfigProvided: Boolean(mcpConfig),
217
+ siteUrl: process.env.WORDPRESS_SITE_URL || "NOT SET",
218
+ username: process.env.WORDPRESS_USERNAME || "NOT SET",
219
+ appPasswordSet: Boolean(process.env.WORDPRESS_APP_PASSWORD),
220
+ authMethod: process.env.WORDPRESS_AUTH_METHOD || "NOT SET",
221
+ });
200
222
  }
201
223
 
202
224
  // Check if we're in CI environment and credentials are missing
@@ -220,12 +242,13 @@ export class ServerConfiguration {
220
242
  LOG_LEVEL: process.env.LOG_LEVEL,
221
243
  };
222
244
 
223
- if (!isDXTMode) {
224
- console.error("DEBUG: Final envConfig for validation:");
225
- console.error(` WORDPRESS_SITE_URL: ${envConfig.WORDPRESS_SITE_URL || "NOT SET"}`);
226
- console.error(` WORDPRESS_USERNAME: ${envConfig.WORDPRESS_USERNAME || "NOT SET"}`);
227
- console.error(` WORDPRESS_APP_PASSWORD: ${envConfig.WORDPRESS_APP_PASSWORD ? "SET" : "NOT SET"}`);
228
- console.error(` WORDPRESS_AUTH_METHOD: ${envConfig.WORDPRESS_AUTH_METHOD || "NOT SET"}`);
245
+ if (!isDXTMode && ConfigHelpers.shouldDebug()) {
246
+ this.logger.debug("Final environment configuration for validation", {
247
+ siteUrl: envConfig.WORDPRESS_SITE_URL || "NOT SET",
248
+ username: envConfig.WORDPRESS_USERNAME || "NOT SET",
249
+ appPasswordSet: Boolean(envConfig.WORDPRESS_APP_PASSWORD),
250
+ authMethod: envConfig.WORDPRESS_AUTH_METHOD || "NOT SET",
251
+ });
229
252
  }
230
253
 
231
254
  // Validate environment configuration using Zod schema
@@ -260,14 +283,15 @@ export class ServerConfiguration {
260
283
  };
261
284
 
262
285
  if (!isDXTMode) {
263
- console.error("INFO: Initialized client for default site in single-site mode.");
286
+ this.logger.info("Initialized default site client in single-site mode");
264
287
  }
265
288
 
266
289
  return { clients, configs: [siteConfig] };
267
290
  } catch (error) {
268
- console.error("ERROR: Configuration validation failed for single-site mode.");
269
- console.error(`Details: ${getErrorMessage(error)}`);
270
- console.error("Please check your environment variables or MCP configuration.");
291
+ this.logger.error("Configuration validation failed for single-site mode", {
292
+ error: getErrorMessage(error),
293
+ suggestion: "Please check your environment variables or MCP configuration",
294
+ });
271
295
  return { clients: new Map(), configs: [] };
272
296
  }
273
297
  }
@@ -7,6 +7,7 @@ import * as fs from "fs";
7
7
  import * as path from "path";
8
8
  import * as Tools from "../tools/index.js";
9
9
  import type { ToolDefinition } from "../server/ToolRegistry.js";
10
+ import { LoggerFactory } from "../utils/logger.js";
10
11
 
11
12
  export interface DocumentationConfig {
12
13
  outputDir: string;
@@ -35,7 +36,7 @@ export interface ParameterDocumentation {
35
36
  type: string;
36
37
  required: boolean;
37
38
  description: string;
38
- defaultValue: any;
39
+ defaultValue: unknown;
39
40
  allowedValues: string[] | undefined;
40
41
  examples: string[];
41
42
  }
@@ -44,11 +45,11 @@ export interface ExampleUsage {
44
45
  title: string;
45
46
  description: string;
46
47
  command: string;
47
- parameters: Record<string, any>;
48
- expectedResponse: any;
48
+ parameters: Record<string, unknown>;
49
+ expectedResponse: unknown;
49
50
  errorExample?: {
50
51
  scenario: string;
51
- error: any;
52
+ error: unknown;
52
53
  };
53
54
  }
54
55
 
@@ -79,7 +80,7 @@ export interface TypeDocumentation {
79
80
  name: string;
80
81
  description: string;
81
82
  properties: PropertyDocumentation[];
82
- examples: any[];
83
+ examples: unknown[];
83
84
  wordpressSource?: string;
84
85
  }
85
86
 
@@ -93,9 +94,9 @@ export interface PropertyDocumentation {
93
94
 
94
95
  export interface OpenAPISpecification {
95
96
  openapi: string;
96
- info: any;
97
- paths: Record<string, any>;
98
- components: Record<string, any>;
97
+ info: Record<string, unknown>;
98
+ paths: Record<string, unknown>;
99
+ components: Record<string, unknown>;
99
100
  }
100
101
 
101
102
  export interface DocumentationSummary {
@@ -118,6 +119,7 @@ export class DocumentationGenerator {
118
119
  private config: DocumentationConfig;
119
120
  private toolCategories: Map<string, string[]> = new Map();
120
121
  private wordpressEndpoints: Map<string, string> = new Map();
122
+ private logger = LoggerFactory.api();
121
123
 
122
124
  constructor(config: Partial<DocumentationConfig> = {}) {
123
125
  this.config = {
@@ -138,7 +140,7 @@ export class DocumentationGenerator {
138
140
  * Generate complete documentation for all tools and types
139
141
  */
140
142
  async generateFullDocumentation(): Promise<DocumentationOutput> {
141
- console.error("🚀 Starting API documentation generation...");
143
+ this.logger.info("🚀 Starting API documentation generation...");
142
144
 
143
145
  const tools = await this.extractAllToolDocumentation();
144
146
  const categories = this.generateCategoryDocumentation(tools);
@@ -162,7 +164,7 @@ export class DocumentationGenerator {
162
164
  // Write documentation to files
163
165
  await this.writeDocumentationFiles(output);
164
166
 
165
- console.error(`✅ Documentation generation complete! ${tools.length} tools documented.`);
167
+ this.logger.info(`✅ Documentation generation complete! ${tools.length} tools documented.`);
166
168
  return output;
167
169
  }
168
170
 
@@ -176,23 +178,23 @@ export class DocumentationGenerator {
176
178
  for (const [className, ToolClass] of Object.entries(Tools)) {
177
179
  try {
178
180
  // Create tool instance
179
- let toolInstance: any;
181
+ let toolInstance: { getTools(): unknown[] };
180
182
  if (className === "CacheTools" || className === "PerformanceTools") {
181
183
  // These tools need client map - use empty map for doc generation
182
184
  toolInstance = new ToolClass(new Map());
183
185
  } else {
184
- toolInstance = new (ToolClass as new () => any)();
186
+ toolInstance = new (ToolClass as new () => { getTools(): unknown[] })();
185
187
  }
186
188
 
187
189
  const toolDefinitions = toolInstance.getTools();
188
190
  const category = this.extractCategoryFromClassName(className);
189
191
 
190
192
  for (const toolDef of toolDefinitions) {
191
- const doc = await this.extractToolDocumentation(toolDef, category, className);
193
+ const doc = await this.extractToolDocumentation(toolDef as ToolDefinition, category, className);
192
194
  toolDocs.push(doc);
193
195
  }
194
196
  } catch (error) {
195
- console.warn(`⚠️ Failed to extract documentation for ${className}:`, error);
197
+ this.logger.warn(`⚠️ Failed to extract documentation for ${className}:`, { error: String(error) });
196
198
  }
197
199
  }
198
200
 
@@ -231,7 +233,15 @@ export class DocumentationGenerator {
231
233
  /**
232
234
  * Extract parameter documentation
233
235
  */
234
- private extractParameterDocumentation(parameters: any[]): ParameterDocumentation[] {
236
+ private extractParameterDocumentation(
237
+ parameters: Array<{
238
+ name: string;
239
+ type?: string;
240
+ description?: string;
241
+ required?: boolean;
242
+ [key: string]: unknown;
243
+ }>,
244
+ ): ParameterDocumentation[] {
235
245
  return parameters.map((param) => ({
236
246
  name: param.name,
237
247
  type: param.type || "string",
@@ -277,7 +287,7 @@ export class DocumentationGenerator {
277
287
  */
278
288
  private generateBasicExample(toolDef: ToolDefinition, category: string): ExampleUsage | null {
279
289
  const toolName = toolDef.name;
280
- const basicParams: Record<string, any> = {};
290
+ const basicParams: Record<string, unknown> = {};
281
291
 
282
292
  // Add essential parameters
283
293
  const requiredParams = (toolDef.parameters || []).filter((p) => p.required);
@@ -406,8 +416,8 @@ export class DocumentationGenerator {
406
416
  * Generate OpenAPI specification
407
417
  */
408
418
  private generateOpenAPISpecification(tools: ToolDocumentation[], types: TypeDocumentation[]): OpenAPISpecification {
409
- const paths: Record<string, any> = {};
410
- const components: Record<string, any> = {
419
+ const paths: Record<string, unknown> = {};
420
+ const components: Record<string, unknown> = {
411
421
  schemas: {},
412
422
  parameters: {},
413
423
  responses: {},
@@ -453,8 +463,9 @@ export class DocumentationGenerator {
453
463
  }
454
464
 
455
465
  // Add type schemas to components
466
+ const schemas = components.schemas as Record<string, unknown>;
456
467
  for (const type of types) {
457
- components.schemas[type.name] = this.convertTypeToJsonSchema(type);
468
+ schemas[type.name] = this.convertTypeToJsonSchema(type);
458
469
  }
459
470
 
460
471
  return {
@@ -520,7 +531,7 @@ export class DocumentationGenerator {
520
531
  // Write summary
521
532
  await fs.promises.writeFile(path.join(outputDir, "summary.json"), JSON.stringify(output.summary, null, 2));
522
533
 
523
- console.error(`📁 Documentation written to ${outputDir}/`);
534
+ this.logger.info(`📁 Documentation written to ${outputDir}/`);
524
535
  }
525
536
 
526
537
  // Helper methods for specific documentation tasks...
@@ -582,8 +593,8 @@ export class DocumentationGenerator {
582
593
  * Helper methods for documentation generation
583
594
  */
584
595
 
585
- private getDefaultValue(param: any): any {
586
- const defaults: Record<string, any> = {
596
+ private getDefaultValue(param: { [key: string]: unknown }): unknown {
597
+ const defaults: Record<string, unknown> = {
587
598
  per_page: 10,
588
599
  page: 1,
589
600
  order: "desc",
@@ -594,10 +605,10 @@ export class DocumentationGenerator {
594
605
  includeExamples: true,
595
606
  includeTrends: true,
596
607
  };
597
- return defaults[param.name];
608
+ return defaults[String(param.name)];
598
609
  }
599
610
 
600
- private getAllowedValues(param: any): string[] | undefined {
611
+ private getAllowedValues(param: { [key: string]: unknown }): string[] | undefined {
601
612
  const allowedValues: Record<string, string[]> = {
602
613
  status: ["publish", "draft", "private", "pending", "future"],
603
614
  order: ["asc", "desc"],
@@ -608,10 +619,10 @@ export class DocumentationGenerator {
608
619
  priority: ["quick_wins", "medium_term", "long_term", "all"],
609
620
  focus: ["speed", "reliability", "efficiency", "scaling"],
610
621
  };
611
- return allowedValues[param.name];
622
+ return allowedValues[String(param.name)];
612
623
  }
613
624
 
614
- private generateParameterExamples(param: any): string[] {
625
+ private generateParameterExamples(param: { name: string; type?: string; [key: string]: unknown }): string[] {
615
626
  const examples: Record<string, string[]> = {
616
627
  id: ["123", "456"],
617
628
  title: ["My Blog Post", "Hello World"],
@@ -633,8 +644,8 @@ export class DocumentationGenerator {
633
644
  return toolDef.parameters?.some((p) => p.name === "site") ?? true;
634
645
  }
635
646
 
636
- private generateExampleValue(param: any): any {
637
- const exampleValues: Record<string, any> = {
647
+ private generateExampleValue(param: { name: string; type?: string; [key: string]: unknown }): unknown {
648
+ const exampleValues: Record<string, unknown> = {
638
649
  id: 123,
639
650
  title: "Example Post Title",
640
651
  content: "This is example content for the post.",
@@ -656,7 +667,7 @@ export class DocumentationGenerator {
656
667
  return exampleValues[param.name] || "example_value";
657
668
  }
658
669
 
659
- private generateExpectedResponse(toolName: string, category: string, type: string): any {
670
+ private generateExpectedResponse(toolName: string, category: string, type: string): unknown {
660
671
  if (toolName.includes("list")) {
661
672
  return {
662
673
  success: true,
@@ -724,8 +735,8 @@ export class DocumentationGenerator {
724
735
  };
725
736
  }
726
737
 
727
- private getExampleParameters(toolDef: ToolDefinition, type: string | number): Record<string, any> {
728
- const params: Record<string, any> = {};
738
+ private getExampleParameters(toolDef: ToolDefinition, type: string | number): Record<string, unknown> {
739
+ const params: Record<string, unknown> = {};
729
740
  const parameters = toolDef.parameters || [];
730
741
 
731
742
  if (type === "all") {
@@ -795,7 +806,7 @@ export class DocumentationGenerator {
795
806
  );
796
807
  }
797
808
 
798
- private generateWordPressPostExample(): any {
809
+ private generateWordPressPostExample(): Record<string, unknown> {
799
810
  return {
800
811
  id: 123,
801
812
  title: "Welcome to WordPress",
@@ -811,8 +822,8 @@ export class DocumentationGenerator {
811
822
  };
812
823
  }
813
824
 
814
- private generateParameterSchema(parameters: ParameterDocumentation[]): any {
815
- const properties: Record<string, any> = {};
825
+ private generateParameterSchema(parameters: ParameterDocumentation[]): Record<string, unknown> {
826
+ const properties: Record<string, unknown> = {};
816
827
  const required: string[] = [];
817
828
 
818
829
  for (const param of parameters) {
@@ -822,11 +833,11 @@ export class DocumentationGenerator {
822
833
  };
823
834
 
824
835
  if (param.allowedValues) {
825
- properties[param.name].enum = param.allowedValues;
836
+ (properties[param.name] as Record<string, unknown>).enum = param.allowedValues;
826
837
  }
827
838
 
828
839
  if (param.defaultValue !== undefined) {
829
- properties[param.name].default = param.defaultValue;
840
+ (properties[param.name] as Record<string, unknown>).default = param.defaultValue;
830
841
  }
831
842
 
832
843
  if (param.required) {
@@ -841,8 +852,8 @@ export class DocumentationGenerator {
841
852
  };
842
853
  }
843
854
 
844
- private convertTypeToJsonSchema(type: TypeDocumentation): any {
845
- const properties: Record<string, any> = {};
855
+ private convertTypeToJsonSchema(type: TypeDocumentation): Record<string, unknown> {
856
+ const properties: Record<string, unknown> = {};
846
857
  const required: string[] = [];
847
858
 
848
859
  for (const prop of type.properties) {
@@ -852,7 +863,7 @@ export class DocumentationGenerator {
852
863
  };
853
864
 
854
865
  if (prop.format) {
855
- properties[prop.name].format = prop.format;
866
+ (properties[prop.name] as Record<string, unknown>).format = prop.format;
856
867
  }
857
868
 
858
869
  if (prop.required) {
@@ -256,25 +256,20 @@ ${type.examples.length > 1 ? this.generateAdditionalExamples(type.examples.slice
256
256
  /**
257
257
  * Generate parameters table
258
258
  */
259
- private generateParametersTable(
260
- parameters: ParameterDocumentation[],
261
- ): string {
259
+ private generateParametersTable(parameters: ParameterDocumentation[]): string {
262
260
  if (parameters.length === 0) {
263
261
  return "*No parameters required.*";
264
262
  }
265
263
 
266
- const headers =
267
- "| Parameter | Type | Required | Description | Default | Examples |";
268
- const separator =
269
- "|-----------|------|----------|-------------|---------|----------|";
264
+ const headers = "| Parameter | Type | Required | Description | Default | Examples |";
265
+ const separator = "|-----------|------|----------|-------------|---------|----------|";
270
266
 
271
267
  const rows = parameters.map((param) => {
272
268
  const examples = param.examples
273
269
  .slice(0, 2)
274
270
  .map((ex) => `\`${ex}\``)
275
271
  .join(", ");
276
- const defaultVal =
277
- param.defaultValue !== undefined ? `\`${param.defaultValue}\`` : "-";
272
+ const defaultVal = param.defaultValue !== undefined ? `\`${param.defaultValue}\`` : "-";
278
273
  const required = param.required ? "✅" : "❌";
279
274
 
280
275
  return `| \`${param.name}\` | \`${param.type}\` | ${required} | ${param.description} | ${defaultVal} | ${examples || "-"} |`;
@@ -316,10 +311,7 @@ ${example.errorExample ? this.generateErrorExample(example.errorExample) : ""}
316
311
  /**
317
312
  * Generate error example
318
313
  */
319
- private generateErrorExample(errorExample: {
320
- scenario: string;
321
- error: any;
322
- }): string {
314
+ private generateErrorExample(errorExample: { scenario: string; error: unknown }): string {
323
315
  return `**Error Example (${errorExample.scenario}):**
324
316
  \`\`\`json
325
317
  ${JSON.stringify(errorExample.error, null, 2)}
@@ -378,7 +370,7 @@ ${permissions.map((perm) => `- \`${perm}\``).join("\n")}
378
370
  /**
379
371
  * Generate error documentation
380
372
  */
381
- private generateErrorDocumentation(errorCodes: any[]): string {
373
+ private generateErrorDocumentation(errorCodes: unknown[]): string {
382
374
  if (errorCodes.length === 0) {
383
375
  return `### Common Errors
384
376
 
@@ -392,11 +384,11 @@ See [Error Handling Guide](../error-handling.md) for complete error reference.`;
392
384
 
393
385
  return errorCodes
394
386
  .map(
395
- (error) => `### ${error.code}
387
+ (error) => `### ${(error as Record<string, unknown>).code}
396
388
 
397
- **Message:** ${error.message}
398
- **Description:** ${error.description}
399
- **Resolution:** ${error.resolution}
389
+ **Message:** ${(error as Record<string, unknown>).message}
390
+ **Description:** ${(error as Record<string, unknown>).description}
391
+ **Resolution:** ${(error as Record<string, unknown>).resolution}
400
392
  `,
401
393
  )
402
394
  .join("\n\n");
@@ -420,8 +412,7 @@ ${relatedTools.map((tool) => `- [\`${tool}\`](./${tool}.md)`).join("\n")}
420
412
  const separator = "|----------|-------|-------------|";
421
413
 
422
414
  const rows = categories.map(
423
- (cat) =>
424
- `| [${cat.name}](./categories/${cat.name.toLowerCase()}.md) | ${cat.toolCount} | ${cat.description} |`,
415
+ (cat) => `| [${cat.name}](./categories/${cat.name.toLowerCase()}.md) | ${cat.toolCount} | ${cat.description} |`,
425
416
  );
426
417
 
427
418
  return [headers, separator, ...rows].join("\n");
@@ -435,8 +426,7 @@ ${relatedTools.map((tool) => `- [\`${tool}\`](./${tool}.md)`).join("\n")}
435
426
  const separator = "|------|----------|-------------|";
436
427
 
437
428
  const rows = tools.map(
438
- (tool) =>
439
- `| [\`${tool.name}\`](./tools/${tool.name}.md) | ${tool.category} | ${tool.description} |`,
429
+ (tool) => `| [\`${tool.name}\`](./tools/${tool.name}.md) | ${tool.category} | ${tool.description} |`,
440
430
  );
441
431
 
442
432
  return [headers, separator, ...rows].join("\n");
@@ -445,13 +435,14 @@ ${relatedTools.map((tool) => `- [\`${tool}\`](./${tool}.md)`).join("\n")}
445
435
  /**
446
436
  * Generate type properties table
447
437
  */
448
- private generateTypePropertiesTable(properties: any[]): string {
438
+ private generateTypePropertiesTable(properties: unknown[]): string {
449
439
  const headers = "| Property | Type | Required | Description |";
450
440
  const separator = "|----------|------|----------|-------------|";
451
441
 
452
442
  const rows = properties.map((prop) => {
453
- const required = prop.required ? "✅" : "❌";
454
- return `| \`${prop.name}\` | \`${prop.type}\` | ${required} | ${prop.description} |`;
443
+ const propObj = prop as Record<string, unknown>;
444
+ const required = propObj.required ? "✅" : "❌";
445
+ return `| \`${propObj.name}\` | \`${propObj.type}\` | ${required} | ${propObj.description} |`;
455
446
  });
456
447
 
457
448
  return [headers, separator, ...rows].join("\n");
@@ -486,15 +477,14 @@ ${relatedTools.map((tool) => `- [\`${tool}\`](./${tool}.md)`).join("\n")}
486
477
  performance: "brightgreen",
487
478
  };
488
479
 
489
- const color =
490
- colors[category.toLowerCase() as keyof typeof colors] || "lightgrey";
480
+ const color = colors[category.toLowerCase() as keyof typeof colors] || "lightgrey";
491
481
  return `![${category}](https://img.shields.io/badge/category-${category}-${color})`;
492
482
  }
493
483
 
494
484
  /**
495
485
  * Format parameters for command examples
496
486
  */
497
- private formatParameters(params: Record<string, any>): string {
487
+ private formatParameters(params: Record<string, unknown>): string {
498
488
  return Object.entries(params)
499
489
  .map(([key, value]) => `--${key}="${value}"`)
500
490
  .join(" ");
@@ -503,7 +493,7 @@ ${relatedTools.map((tool) => `- [\`${tool}\`](./${tool}.md)`).join("\n")}
503
493
  /**
504
494
  * Generate additional examples
505
495
  */
506
- private generateAdditionalExamples(examples: any[]): string {
496
+ private generateAdditionalExamples(examples: unknown[]): string {
507
497
  return `## Additional Examples
508
498
 
509
499
  ${examples