mcp-wordpress 2.4.1 → 2.5.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 (350) hide show
  1. package/README.md +114 -48
  2. package/dist/ajv-patch.js +34 -0
  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/__tests__/HttpCacheWrapper.test.js +6 -5
  16. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -1
  17. package/dist/cache/index.d.ts +3 -3
  18. package/dist/cache/index.d.ts.map +1 -1
  19. package/dist/cache/index.js +1 -1
  20. package/dist/cache/index.js.map +1 -1
  21. package/dist/client/CachedWordPressClient.d.ts +23 -9
  22. package/dist/client/CachedWordPressClient.d.ts.map +1 -1
  23. package/dist/client/CachedWordPressClient.js +4 -1
  24. package/dist/client/CachedWordPressClient.js.map +1 -1
  25. package/dist/client/MockWordPressClient.d.ts +2 -1
  26. package/dist/client/MockWordPressClient.d.ts.map +1 -1
  27. package/dist/client/MockWordPressClient.js +3 -1
  28. package/dist/client/MockWordPressClient.js.map +1 -1
  29. package/dist/client/api.d.ts +17 -13
  30. package/dist/client/api.d.ts.map +1 -1
  31. package/dist/client/api.js +135 -30
  32. package/dist/client/api.js.map +1 -1
  33. package/dist/client/auth.d.ts.map +1 -1
  34. package/dist/client/auth.js +2 -3
  35. package/dist/client/auth.js.map +1 -1
  36. package/dist/client/managers/AuthenticationManager.d.ts +55 -2
  37. package/dist/client/managers/AuthenticationManager.d.ts.map +1 -1
  38. package/dist/client/managers/AuthenticationManager.js +269 -71
  39. package/dist/client/managers/AuthenticationManager.js.map +1 -1
  40. package/dist/client/managers/BaseManager.d.ts +3 -3
  41. package/dist/client/managers/BaseManager.d.ts.map +1 -1
  42. package/dist/client/managers/BaseManager.js +11 -5
  43. package/dist/client/managers/BaseManager.js.map +1 -1
  44. package/dist/client/managers/RequestManager.d.ts +2 -2
  45. package/dist/client/managers/RequestManager.d.ts.map +1 -1
  46. package/dist/client/managers/RequestManager.js +25 -12
  47. package/dist/client/managers/RequestManager.js.map +1 -1
  48. package/dist/config/Config.d.ts +155 -0
  49. package/dist/config/Config.d.ts.map +1 -0
  50. package/dist/config/Config.js +215 -0
  51. package/dist/config/Config.js.map +1 -0
  52. package/dist/config/ConfigurationSchema.d.ts +21 -21
  53. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  54. package/dist/config/ConfigurationSchema.js +19 -2
  55. package/dist/config/ConfigurationSchema.js.map +1 -1
  56. package/dist/config/ServerConfiguration.d.ts +2 -1
  57. package/dist/config/ServerConfiguration.d.ts.map +1 -1
  58. package/dist/config/ServerConfiguration.js +50 -41
  59. package/dist/config/ServerConfiguration.js.map +1 -1
  60. package/dist/docs/DocumentationGenerator.d.ts +9 -8
  61. package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
  62. package/dist/docs/DocumentationGenerator.js +10 -7
  63. package/dist/docs/DocumentationGenerator.js.map +1 -1
  64. package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
  65. package/dist/docs/MarkdownFormatter.js +3 -2
  66. package/dist/docs/MarkdownFormatter.js.map +1 -1
  67. package/dist/dxt-entry.cjs +81 -0
  68. package/dist/dxt-entry.js +15 -14
  69. package/dist/dxt-entry.js.map +1 -1
  70. package/dist/index.d.ts +3 -1
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +37 -21
  73. package/dist/index.js.map +1 -1
  74. package/dist/performance/MetricsCollector.d.ts +13 -7
  75. package/dist/performance/MetricsCollector.d.ts.map +1 -1
  76. package/dist/performance/MetricsCollector.js +69 -27
  77. package/dist/performance/MetricsCollector.js.map +1 -1
  78. package/dist/performance/PerformanceAnalytics.d.ts +8 -2
  79. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
  80. package/dist/performance/PerformanceAnalytics.js +17 -47
  81. package/dist/performance/PerformanceAnalytics.js.map +1 -1
  82. package/dist/performance/PerformanceMonitor.d.ts +2 -1
  83. package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
  84. package/dist/performance/PerformanceMonitor.js +12 -13
  85. package/dist/performance/PerformanceMonitor.js.map +1 -1
  86. package/dist/performance/index.d.ts +2 -2
  87. package/dist/performance/index.d.ts.map +1 -1
  88. package/dist/security/AISecurityScanner.d.ts +1 -0
  89. package/dist/security/AISecurityScanner.d.ts.map +1 -1
  90. package/dist/security/AISecurityScanner.js +22 -12
  91. package/dist/security/AISecurityScanner.js.map +1 -1
  92. package/dist/security/AutomatedRemediation.d.ts +4 -3
  93. package/dist/security/AutomatedRemediation.d.ts.map +1 -1
  94. package/dist/security/AutomatedRemediation.js +46 -15
  95. package/dist/security/AutomatedRemediation.js.map +1 -1
  96. package/dist/security/InputValidator.d.ts +13 -9
  97. package/dist/security/InputValidator.d.ts.map +1 -1
  98. package/dist/security/InputValidator.js +4 -2
  99. package/dist/security/InputValidator.js.map +1 -1
  100. package/dist/security/SecurityCIPipeline.d.ts +1 -1
  101. package/dist/security/SecurityCIPipeline.d.ts.map +1 -1
  102. package/dist/security/SecurityCIPipeline.js +38 -29
  103. package/dist/security/SecurityCIPipeline.js.map +1 -1
  104. package/dist/security/SecurityConfig.d.ts +3 -3
  105. package/dist/security/SecurityConfig.d.ts.map +1 -1
  106. package/dist/security/SecurityConfig.js +13 -9
  107. package/dist/security/SecurityConfig.js.map +1 -1
  108. package/dist/security/SecurityConfigManager.d.ts +2 -2
  109. package/dist/security/SecurityConfigManager.d.ts.map +1 -1
  110. package/dist/security/SecurityConfigManager.js +20 -15
  111. package/dist/security/SecurityConfigManager.js.map +1 -1
  112. package/dist/security/SecurityMonitoring.d.ts +2 -2
  113. package/dist/security/SecurityMonitoring.d.ts.map +1 -1
  114. package/dist/security/SecurityMonitoring.js +19 -17
  115. package/dist/security/SecurityMonitoring.js.map +1 -1
  116. package/dist/security/SecurityReviewer.d.ts.map +1 -1
  117. package/dist/security/SecurityReviewer.js +10 -7
  118. package/dist/security/SecurityReviewer.js.map +1 -1
  119. package/dist/security/index.d.ts +24 -23
  120. package/dist/security/index.d.ts.map +1 -1
  121. package/dist/security/index.js +52 -23
  122. package/dist/security/index.js.map +1 -1
  123. package/dist/server/ConnectionTester.d.ts +12 -4
  124. package/dist/server/ConnectionTester.d.ts.map +1 -1
  125. package/dist/server/ConnectionTester.js +96 -22
  126. package/dist/server/ConnectionTester.js.map +1 -1
  127. package/dist/server/ToolRegistry.d.ts +2 -2
  128. package/dist/server/ToolRegistry.d.ts.map +1 -1
  129. package/dist/server/ToolRegistry.js +10 -5
  130. package/dist/server/ToolRegistry.js.map +1 -1
  131. package/dist/tools/BaseToolManager.d.ts +47 -11
  132. package/dist/tools/BaseToolManager.d.ts.map +1 -1
  133. package/dist/tools/BaseToolManager.js +168 -29
  134. package/dist/tools/BaseToolManager.js.map +1 -1
  135. package/dist/tools/auth.d.ts +16 -10
  136. package/dist/tools/auth.d.ts.map +1 -1
  137. package/dist/tools/auth.js +3 -2
  138. package/dist/tools/auth.js.map +1 -1
  139. package/dist/tools/cache.d.ts +30 -30
  140. package/dist/tools/cache.d.ts.map +1 -1
  141. package/dist/tools/cache.js +1 -6
  142. package/dist/tools/cache.js.map +1 -1
  143. package/dist/tools/comments.d.ts +20 -20
  144. package/dist/tools/comments.d.ts.map +1 -1
  145. package/dist/tools/comments.js +16 -9
  146. package/dist/tools/comments.js.map +1 -1
  147. package/dist/tools/media.d.ts +18 -16
  148. package/dist/tools/media.d.ts.map +1 -1
  149. package/dist/tools/media.js +16 -15
  150. package/dist/tools/media.js.map +1 -1
  151. package/dist/tools/pages.d.ts +19 -17
  152. package/dist/tools/pages.d.ts.map +1 -1
  153. package/dist/tools/pages.js +16 -12
  154. package/dist/tools/pages.js.map +1 -1
  155. package/dist/tools/performance.d.ts +11 -1
  156. package/dist/tools/performance.d.ts.map +1 -1
  157. package/dist/tools/performance.js +67 -34
  158. package/dist/tools/performance.js.map +1 -1
  159. package/dist/tools/posts/PostHandlers.d.ts +46 -0
  160. package/dist/tools/posts/PostHandlers.d.ts.map +1 -0
  161. package/dist/tools/posts/PostHandlers.js +400 -0
  162. package/dist/tools/posts/PostHandlers.js.map +1 -0
  163. package/dist/tools/posts/PostToolDefinitions.d.ts +37 -0
  164. package/dist/tools/posts/PostToolDefinitions.d.ts.map +1 -0
  165. package/dist/tools/posts/PostToolDefinitions.js +236 -0
  166. package/dist/tools/posts/PostToolDefinitions.js.map +1 -0
  167. package/dist/tools/posts/index.d.ts +138 -0
  168. package/dist/tools/posts/index.d.ts.map +1 -0
  169. package/dist/tools/posts/index.js +163 -0
  170. package/dist/tools/posts/index.js.map +1 -0
  171. package/dist/tools/posts.d.ts +10 -246
  172. package/dist/tools/posts.d.ts.map +1 -1
  173. package/dist/tools/posts.js +11 -723
  174. package/dist/tools/posts.js.map +1 -1
  175. package/dist/tools/site.d.ts +19 -18
  176. package/dist/tools/site.d.ts.map +1 -1
  177. package/dist/tools/site.js +14 -10
  178. package/dist/tools/site.js.map +1 -1
  179. package/dist/tools/taxonomies.d.ts +23 -24
  180. package/dist/tools/taxonomies.d.ts.map +1 -1
  181. package/dist/tools/taxonomies.js +24 -18
  182. package/dist/tools/taxonomies.js.map +1 -1
  183. package/dist/tools/users.d.ts +20 -15
  184. package/dist/tools/users.d.ts.map +1 -1
  185. package/dist/tools/users.js +12 -8
  186. package/dist/tools/users.js.map +1 -1
  187. package/dist/types/client.d.ts +48 -41
  188. package/dist/types/client.d.ts.map +1 -1
  189. package/dist/types/client.js +30 -5
  190. package/dist/types/client.js.map +1 -1
  191. package/dist/types/enhanced.d.ts +237 -0
  192. package/dist/types/enhanced.d.ts.map +1 -0
  193. package/dist/types/enhanced.js +49 -0
  194. package/dist/types/enhanced.js.map +1 -0
  195. package/dist/types/index.d.ts +15 -12
  196. package/dist/types/index.d.ts.map +1 -1
  197. package/dist/types/index.js +2 -0
  198. package/dist/types/index.js.map +1 -1
  199. package/dist/types/mcp.d.ts +12 -12
  200. package/dist/types/mcp.d.ts.map +1 -1
  201. package/dist/types/requests.d.ts +322 -0
  202. package/dist/types/requests.d.ts.map +1 -0
  203. package/dist/types/requests.js +8 -0
  204. package/dist/types/requests.js.map +1 -0
  205. package/dist/types/tools.d.ts +506 -0
  206. package/dist/types/tools.d.ts.map +1 -0
  207. package/dist/types/tools.js +8 -0
  208. package/dist/types/tools.js.map +1 -0
  209. package/dist/types/wordpress.d.ts +43 -15
  210. package/dist/types/wordpress.d.ts.map +1 -1
  211. package/dist/types/wordpress.js +8 -1
  212. package/dist/types/wordpress.js.map +1 -1
  213. package/dist/utils/debug.d.ts +19 -11
  214. package/dist/utils/debug.d.ts.map +1 -1
  215. package/dist/utils/debug.js +46 -10
  216. package/dist/utils/debug.js.map +1 -1
  217. package/dist/utils/enhancedError.d.ts +8 -8
  218. package/dist/utils/enhancedError.d.ts.map +1 -1
  219. package/dist/utils/enhancedError.js.map +1 -1
  220. package/dist/utils/error.d.ts +2 -4
  221. package/dist/utils/error.d.ts.map +1 -1
  222. package/dist/utils/error.js +42 -5
  223. package/dist/utils/error.js.map +1 -1
  224. package/dist/utils/logger.d.ts +106 -0
  225. package/dist/utils/logger.d.ts.map +1 -0
  226. package/dist/utils/logger.js +280 -0
  227. package/dist/utils/logger.js.map +1 -0
  228. package/dist/utils/streaming.d.ts +9 -9
  229. package/dist/utils/streaming.d.ts.map +1 -1
  230. package/dist/utils/streaming.js +71 -52
  231. package/dist/utils/streaming.js.map +1 -1
  232. package/dist/utils/toolWrapper.d.ts +9 -7
  233. package/dist/utils/toolWrapper.d.ts.map +1 -1
  234. package/dist/utils/toolWrapper.js.map +1 -1
  235. package/dist/utils/validation/core.d.ts +21 -0
  236. package/dist/utils/validation/core.d.ts.map +1 -0
  237. package/dist/utils/validation/core.js +71 -0
  238. package/dist/utils/validation/core.js.map +1 -0
  239. package/dist/utils/validation/index.d.ts +25 -0
  240. package/dist/utils/validation/index.d.ts.map +1 -0
  241. package/dist/utils/validation/index.js +29 -0
  242. package/dist/utils/validation/index.js.map +1 -0
  243. package/dist/utils/validation/network.d.ts +19 -0
  244. package/dist/utils/validation/network.d.ts.map +1 -0
  245. package/dist/utils/validation/network.js +93 -0
  246. package/dist/utils/validation/network.js.map +1 -0
  247. package/dist/utils/validation/rateLimit.d.ts +21 -0
  248. package/dist/utils/validation/rateLimit.d.ts.map +1 -0
  249. package/dist/utils/validation/rateLimit.js +43 -0
  250. package/dist/utils/validation/rateLimit.js.map +1 -0
  251. package/dist/utils/validation/security.d.ts +29 -0
  252. package/dist/utils/validation/security.d.ts.map +1 -0
  253. package/dist/utils/validation/security.js +327 -0
  254. package/dist/utils/validation/security.js.map +1 -0
  255. package/dist/utils/validation/wordpress.d.ts +31 -0
  256. package/dist/utils/validation/wordpress.d.ts.map +1 -0
  257. package/dist/utils/validation/wordpress.js +146 -0
  258. package/dist/utils/validation/wordpress.js.map +1 -0
  259. package/dist/utils/validation.d.ts +13 -82
  260. package/dist/utils/validation.d.ts.map +1 -1
  261. package/dist/utils/validation.js +25 -343
  262. package/dist/utils/validation.js.map +1 -1
  263. package/docs/BADGE_UPDATES.md +132 -0
  264. package/docs/BRANCH_PROTECTION.md +0 -0
  265. package/docs/CI_CD_IMPROVEMENTS.md +191 -0
  266. package/docs/INCREMENTAL_COVERAGE.md +183 -0
  267. package/docs/api/README.md +3 -1
  268. package/docs/api/openapi.json +5 -1
  269. package/docs/api/summary.json +1 -1
  270. package/docs/api/tools/wp_create_post.md +12 -14
  271. package/docs/examples/claude-desktop-config.md +1 -1
  272. package/docs/examples/docker-production.md +100 -93
  273. package/docs/examples/multi-site-setup.md +5 -4
  274. package/docs/examples/single-site-setup.md +3 -4
  275. package/docs/examples/use-case-workflows.md +4 -5
  276. package/docs/integrations/claude-desktop.md +31 -31
  277. package/docs/integrations/cline.md +4 -4
  278. package/docs/integrations/vs-code.md +9 -8
  279. package/docs/user-guides/SMITHERY_SETUP.md +10 -10
  280. package/docs/v2.2.0-resolution-demo.md +119 -0
  281. package/package.json +44 -25
  282. package/src/cache/CacheInvalidation.ts +12 -5
  283. package/src/cache/CacheManager.ts +18 -15
  284. package/src/cache/HttpCacheWrapper.ts +30 -59
  285. package/src/cache/__tests__/HttpCacheWrapper.test.ts +6 -5
  286. package/src/cache/index.ts +3 -14
  287. package/src/client/CachedWordPressClient.ts +32 -30
  288. package/src/client/MockWordPressClient.ts +4 -2
  289. package/src/client/api.ts +186 -64
  290. package/src/client/auth.ts +15 -40
  291. package/src/client/managers/AuthenticationManager.ts +337 -77
  292. package/src/client/managers/BaseManager.ts +18 -30
  293. package/src/client/managers/RequestManager.ts +39 -44
  294. package/src/config/Config.ts +308 -0
  295. package/src/config/ConfigurationSchema.ts +23 -2
  296. package/src/config/ServerConfiguration.ts +51 -47
  297. package/src/docs/DocumentationGenerator.ts +50 -39
  298. package/src/docs/MarkdownFormatter.ts +19 -29
  299. package/src/dxt-entry.cjs +26 -16
  300. package/src/dxt-entry.ts +17 -27
  301. package/src/index.ts +42 -28
  302. package/src/performance/MetricsCollector.ts +108 -86
  303. package/src/performance/PerformanceAnalytics.ts +69 -164
  304. package/src/performance/PerformanceMonitor.ts +32 -47
  305. package/src/performance/index.ts +2 -10
  306. package/src/security/AISecurityScanner.ts +22 -12
  307. package/src/security/AutomatedRemediation.ts +49 -18
  308. package/src/security/InputValidator.ts +9 -6
  309. package/src/security/SecurityCIPipeline.ts +53 -37
  310. package/src/security/SecurityConfig.ts +22 -22
  311. package/src/security/SecurityConfigManager.ts +23 -19
  312. package/src/security/SecurityMonitoring.ts +24 -21
  313. package/src/security/SecurityReviewer.ts +10 -7
  314. package/src/security/index.ts +64 -29
  315. package/src/server/ConnectionTester.ts +120 -31
  316. package/src/server/ToolRegistry.ts +31 -21
  317. package/src/tools/BaseToolManager.ts +286 -33
  318. package/src/tools/auth.ts +20 -8
  319. package/src/tools/cache.ts +5 -15
  320. package/src/tools/comments.ts +34 -48
  321. package/src/tools/media.ts +41 -53
  322. package/src/tools/pages.ts +32 -54
  323. package/src/tools/performance.ts +141 -176
  324. package/src/tools/posts/PostHandlers.ts +474 -0
  325. package/src/tools/posts/PostToolDefinitions.ts +250 -0
  326. package/src/tools/posts/index.ts +192 -0
  327. package/src/tools/posts.ts +24 -780
  328. package/src/tools/site.ts +34 -19
  329. package/src/tools/taxonomies.ts +41 -57
  330. package/src/tools/users.ts +28 -16
  331. package/src/types/client.ts +114 -138
  332. package/src/types/enhanced.ts +318 -0
  333. package/src/types/index.ts +51 -30
  334. package/src/types/mcp.ts +20 -42
  335. package/src/types/requests.ts +378 -0
  336. package/src/types/tools.ts +608 -0
  337. package/src/types/wordpress.ts +56 -34
  338. package/src/utils/debug.ts +77 -59
  339. package/src/utils/enhancedError.ts +8 -8
  340. package/src/utils/error.ts +53 -31
  341. package/src/utils/logger.ts +351 -0
  342. package/src/utils/streaming.ts +86 -68
  343. package/src/utils/toolWrapper.ts +10 -12
  344. package/src/utils/validation/core.ts +108 -0
  345. package/src/utils/validation/index.ts +36 -0
  346. package/src/utils/validation/network.ts +132 -0
  347. package/src/utils/validation/rateLimit.ts +54 -0
  348. package/src/utils/validation/security.ts +361 -0
  349. package/src/utils/validation/wordpress.ts +180 -0
  350. package/src/utils/validation.ts +47 -470
package/README.md CHANGED
@@ -7,13 +7,19 @@
7
7
 
8
8
  Manage WordPress sites with natural language through AI tools like Claude Desktop
9
9
 
10
- [Quick Start](#-quick-start) • [Features](#-features) [Installation](#-installation-options) • [Documentation](#-documentation) • [Examples](#-examples)
10
+ [Quick Start](#-quick-start) • [Why This MCP Server?](#-why-this-mcp-server)
11
+ [Installation Options](#-installation-options) • [Documentation](#-documentation) • [Examples](#-examples)
11
12
 
12
13
  [![CI/CD Pipeline](https://github.com/docdyhr/mcp-wordpress/workflows/%F0%9F%9A%80%20CI%2FCD%20Pipeline/badge.svg)](https://github.com/docdyhr/mcp-wordpress/actions)
14
+ [![GitHub Stars](https://img.shields.io/github/stars/docdyhr/mcp-wordpress?style=social)](https://github.com/docdyhr/mcp-wordpress/stargazers)
13
15
  [![NPM Version](https://img.shields.io/npm/v/mcp-wordpress?logo=npm&logoColor=white)](https://www.npmjs.com/package/mcp-wordpress)
14
16
  [![NPM Downloads](https://img.shields.io/npm/dm/mcp-wordpress?logo=npm&logoColor=white)](https://www.npmjs.com/package/mcp-wordpress)
15
- [![Test Coverage](https://img.shields.io/badge/test%20coverage-95%25%2B-brightgreen?logo=jest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
16
- [![Test Results](https://img.shields.io/badge/tests-207%2F207%20passing-brightgreen?logo=checkmarx&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
17
+ [![NPM Total Downloads](https://img.shields.io/npm/dt/mcp-wordpress?logo=npm&logoColor=white&label=total%20downloads)](https://www.npmjs.com/package/mcp-wordpress)
18
+ [![Docker Pulls](https://img.shields.io/docker/pulls/docdyhr/mcp-wordpress?logo=docker&logoColor=white)](https://hub.docker.com/r/docdyhr/mcp-wordpress)
19
+ [![Line Coverage](https://img.shields.io/badge/lines%20coverage-96.17%25-brightgreen?logo=jest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
20
+ [![Branch Coverage](https://img.shields.io/badge/branch%20coverage-95.83%25-brightgreen?logo=jest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
21
+ [![Function Coverage](https://img.shields.io/badge/function%20coverage-100.00%25-brightgreen?logo=jest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
22
+ [![Test Results](https://img.shields.io/badge/tests-884%2F1040%20passing-green?logo=checkmarx&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
17
23
  [![MCP Evaluation](https://img.shields.io/badge/mcp%20evaluation-4.5%2F5.0-brightgreen?logo=openai&logoColor=white)](https://github.com/docdyhr/mcp-wordpress/actions/workflows/mcp-evaluations.yml)
18
24
 
19
25
  [![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue?logo=typescript&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
@@ -36,9 +42,10 @@ Manage WordPress sites with natural language through AI tools like Claude Deskto
36
42
  ```
37
43
 
38
44
  **Key Advantages:**
45
+
39
46
  - 🏆 **Most Complete**: 59 tools vs 20-30 in alternatives
40
47
  - ⚡ **Fastest Setup**: 2-click Claude Desktop installation via DXT
41
- - 🔒 **Production Ready**: 207 tests, security audited, battle-tested
48
+ - 🔒 **Production Ready**: 404 tests (expanding), security audited, battle-tested
42
49
  - 🎯 **TypeScript Native**: 100% type safety, best-in-class developer experience
43
50
  - 🌐 **Multi-Site**: Manage unlimited WordPress sites from one place
44
51
 
@@ -47,6 +54,7 @@ Manage WordPress sites with natural language through AI tools like Claude Deskto
47
54
  Get up and running in **under 5 minutes**:
48
55
 
49
56
  ### Prerequisites
57
+
50
58
  - **WordPress**: Version 5.6+ with REST API enabled
51
59
  - **Claude Desktop**: Latest version installed
52
60
  - **Application Password**: Generated from WordPress admin panel
@@ -54,6 +62,7 @@ Get up and running in **under 5 minutes**:
54
62
  ### 3-Step Setup
55
63
 
56
64
  **1️⃣ Generate WordPress Application Password**
65
+
57
66
  ```text
58
67
  WordPress Admin → Users → Profile → Application Passwords → Add New
59
68
  ```
@@ -61,6 +70,7 @@ WordPress Admin → Users → Profile → Application Passwords → Add New
61
70
  **2️⃣ Install MCP Server (Choose One)**
62
71
 
63
72
  **Option A: DXT Extension (Easiest)**
73
+
64
74
  ```bash
65
75
  # Download and install in Claude Desktop
66
76
  curl -L https://github.com/docdyhr/mcp-wordpress/raw/main/mcp-wordpress.dxt -o mcp-wordpress.dxt
@@ -68,17 +78,20 @@ curl -L https://github.com/docdyhr/mcp-wordpress/raw/main/mcp-wordpress.dxt -o m
68
78
  ```
69
79
 
70
80
  **Option B: NPM Global Install**
81
+
71
82
  ```bash
72
83
  npm install -g mcp-wordpress
73
84
  ```
74
85
 
75
86
  **3️⃣ Test Your Connection**
87
+
76
88
  ```text
77
89
  In Claude: "Test my WordPress connection"
78
90
  Response: "✅ Authentication successful! Connected to: Your Site Name"
79
91
  ```
80
92
 
81
- 📺 **[Watch 2-minute Setup Video](https://github.com/docdyhr/mcp-wordpress/wiki/setup-video)** | 📖 **[Detailed Setup Guide](docs/INSTALLATION.md)**
93
+ 📺 **[Watch 2-minute Setup Video](https://github.com/docdyhr/mcp-wordpress/wiki/setup-video)** | 📖
94
+ **[Detailed Setup Guide](docs/INSTALLATION.md)**
82
95
 
83
96
  ## ⚡ Installation Options
84
97
 
@@ -92,7 +105,7 @@ Response: "✅ Authentication successful! Connected to: Your Site Name"
92
105
 
93
106
  ✅ **Zero command line required**
94
107
  ✅ **Automatic updates**
95
- ✅ **Built-in security**
108
+ ✅ **Built-in security**
96
109
 
97
110
  **[📖 Complete DXT Setup Guide →](docs/integrations/claude-desktop.md)**
98
111
 
@@ -118,11 +131,12 @@ smithery configure mcp-wordpress
118
131
 
119
132
  ✅ **Package management**
120
133
  ✅ **Version control**
121
- ✅ **Easy updates**
134
+ ✅ **Easy updates**
122
135
 
123
136
  ### Installing via Smithery
124
137
 
125
- To install mcp-wordpress for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@docdyhr/mcp-wordpress):
138
+ To install mcp-wordpress for Claude Desktop automatically via
139
+ [Smithery](https://smithery.ai/server/@docdyhr/mcp-wordpress):
126
140
 
127
141
  ```bash
128
142
  npx -y @smithery/cli install @docdyhr/mcp-wordpress --client claude
@@ -140,6 +154,7 @@ npx -y @smithery/cli install @docdyhr/mcp-wordpress --client claude
140
154
  ### Single Site Setup
141
155
 
142
156
  **Environment Variables (.env)**
157
+
143
158
  ```bash
144
159
  WORDPRESS_SITE_URL=https://myblog.com
145
160
  WORDPRESS_USERNAME=admin
@@ -148,6 +163,7 @@ WORDPRESS_AUTH_METHOD=app-password
148
163
  ```
149
164
 
150
165
  **Claude Desktop Config**
166
+
151
167
  ```json
152
168
  {
153
169
  "mcpServers": {
@@ -167,6 +183,7 @@ WORDPRESS_AUTH_METHOD=app-password
167
183
  ### Multi-Site Agency Setup
168
184
 
169
185
  **Configuration File (mcp-wordpress.config.json)**
186
+
170
187
  ```json
171
188
  {
172
189
  "sites": [
@@ -207,9 +224,10 @@ WORDPRESS_AUTH_METHOD=app-password
207
224
  ### Development Environment
208
225
 
209
226
  **Local WordPress with Docker**
227
+
210
228
  ```yaml
211
229
  # docker-compose.yml
212
- version: '3.8'
230
+ version: "3.8"
213
231
  services:
214
232
  wordpress:
215
233
  image: wordpress:latest
@@ -222,7 +240,7 @@ services:
222
240
  WORDPRESS_DB_NAME: wordpress
223
241
  volumes:
224
242
  - wordpress_data:/var/www/html
225
-
243
+
226
244
  db:
227
245
  image: mysql:8.0
228
246
  environment:
@@ -239,6 +257,7 @@ volumes:
239
257
  ```
240
258
 
241
259
  **MCP WordPress Development Config**
260
+
242
261
  ```json
243
262
  {
244
263
  "sites": [
@@ -259,6 +278,7 @@ volumes:
259
278
  ### Production Deployment
260
279
 
261
280
  **Server Environment Variables**
281
+
262
282
  ```bash
263
283
  # /etc/environment or systemd service
264
284
  WORDPRESS_SITE_URL=https://production-site.com
@@ -273,6 +293,7 @@ DEBUG=false
273
293
  ```
274
294
 
275
295
  **Docker Production Setup**
296
+
276
297
  ```dockerfile
277
298
  # Dockerfile.production
278
299
  FROM node:20-alpine
@@ -288,6 +309,7 @@ CMD ["node", "dist/index.js"]
288
309
  ### JWT Authentication Setup
289
310
 
290
311
  **WordPress Plugin Configuration**
312
+
291
313
  ```php
292
314
  // wp-config.php
293
315
  define('JWT_AUTH_SECRET_KEY', 'your-secret-key-here');
@@ -295,6 +317,7 @@ define('JWT_AUTH_CORS_ENABLE', true);
295
317
  ```
296
318
 
297
319
  **MCP Configuration**
320
+
298
321
  ```json
299
322
  {
300
323
  "sites": [
@@ -316,31 +339,34 @@ define('JWT_AUTH_CORS_ENABLE', true);
316
339
 
317
340
  ### 🏆 Feature Comparison
318
341
 
319
- | Feature | This Server | Competition |
320
- |---------|-------------|-------------|
321
- | **Tools Available** | 59 tools | 20-30 tools |
322
- | **Claude Desktop DXT** | ✅ 2-click install | ❌ Manual setup |
323
- | **Multi-Site Support** | ✅ Unlimited sites | ❌ Single site |
324
- | **TypeScript** | ✅ 100% coverage | ⚠️ Partial/None |
325
- | **Performance Monitoring** | ✅ Real-time analytics | ❌ Basic only |
326
- | **Test Coverage** | ✅ 207 tests (100%) | ⚠️ Limited |
327
- | **Production Ready** | ✅ Security audited | ⚠️ Unknown |
342
+ | Feature | This Server | Competition |
343
+ | -------------------------- | ---------------------- | --------------- |
344
+ | **Tools Available** | 59 tools | 20-30 tools |
345
+ | **Claude Desktop DXT** | ✅ 2-click install | ❌ Manual setup |
346
+ | **Multi-Site Support** | ✅ Unlimited sites | ❌ Single site |
347
+ | **TypeScript** | ✅ 100% coverage | ⚠️ Partial/None |
348
+ | **Performance Monitoring** | ✅ Real-time analytics | ❌ Basic only |
349
+ | **Test Coverage** | ✅ 404 tests (100% pass / 30% lines) | ⚠️ Limited |
350
+ | **Production Ready** | ✅ Security audited | ⚠️ Unknown |
328
351
 
329
352
  ### 🚀 Core Capabilities
330
353
 
331
354
  #### WordPress Management
355
+
332
356
  - **59 WordPress Tools** across 10 categories
333
357
  - **Multi-Site Support** - Manage unlimited WordPress installations
334
358
  - **Flexible Authentication** - App Passwords, JWT, Basic Auth, API Key
335
359
  - **Real-Time Sync** - Instant updates across all connected tools
336
360
 
337
361
  #### Performance & Reliability
362
+
338
363
  - **⚡ Intelligent Caching** - 50-70% performance improvement
339
364
  - **📊 Real-Time Monitoring** - Performance metrics and optimization insights
340
- - **🔒 Production Ready** - Security-reviewed, 95%+ test coverage
365
+ - **🔒 Production Ready** - Security-reviewed, growing coverage (30% lines) after expanding test suite
341
366
  - **🔄 Zero Downtime** - Graceful error handling and automatic recovery
342
367
 
343
368
  #### Developer Experience
369
+
344
370
  - **100% TypeScript** - Complete type safety and IntelliSense
345
371
  - **🐳 Docker Support** - Production-ready containerization
346
372
  - **📚 Auto-Generated Docs** - API documentation with live examples
@@ -411,7 +437,7 @@ Use with site parameter: `wp_list_posts --site="main-site"`
411
437
  - **💬 Comments** (7 tools) - Comment moderation and management
412
438
  - **🏷️ Taxonomies** (10 tools) - Categories and tags management
413
439
 
414
- ### Site Management
440
+ ### Site Management (Monitoring & Admin)
415
441
 
416
442
  - **⚙️ Site Settings** (7 tools) - Site configuration and statistics
417
443
  - **🔐 Authentication** (6 tools) - Auth testing and management
@@ -425,6 +451,7 @@ Use with site parameter: `wp_list_posts --site="main-site"`
425
451
  ### 🎯 Real-World Use Cases
426
452
 
427
453
  **Content Creation & Management:**
454
+
428
455
  ```text
429
456
  💬 "Analyze my top 10 blog posts and create a new post about emerging trends"
430
457
  💬 "Upload these 5 images and create a photo gallery page with SEO optimization"
@@ -432,6 +459,7 @@ Use with site parameter: `wp_list_posts --site="main-site"`
432
459
  ```
433
460
 
434
461
  **Site Management & Analytics:**
462
+
435
463
  ```text
436
464
  💬 "Check my WordPress site performance and provide optimization recommendations"
437
465
  💬 "Create a new user account for my freelance writer with editor permissions"
@@ -439,6 +467,7 @@ Use with site parameter: `wp_list_posts --site="main-site"`
439
467
  ```
440
468
 
441
469
  **Bulk Operations:**
470
+
442
471
  ```text
443
472
  💬 "Update all posts from 2023 to include my new author bio"
444
473
  💬 "Find all images over 1MB and suggest compression strategies"
@@ -448,9 +477,11 @@ Use with site parameter: `wp_list_posts --site="main-site"`
448
477
  ### ⚙️ Configuration Methods
449
478
 
450
479
  #### Option 1: DXT Extension (Recommended)
480
+
451
481
  **No configuration needed** - built-in secure credential management!
452
482
 
453
483
  #### Option 2: NPX in Claude Desktop
484
+
454
485
  ```json
455
486
  {
456
487
  "mcpServers": {
@@ -474,6 +505,7 @@ Use with site parameter: `wp_list_posts --site="main-site"`
474
505
  ### Basic Content Management
475
506
 
476
507
  **Create and Publish a Blog Post**
508
+
477
509
  ```text
478
510
  You: "Create a new blog post titled 'AI Revolution in 2024' with content about recent AI breakthroughs"
479
511
  Claude: "I'll create that blog post for you..."
@@ -481,6 +513,7 @@ Result: ✅ Post "AI Revolution in 2024" created successfully (ID: 123)
481
513
  ```
482
514
 
483
515
  **Media Management**
516
+
484
517
  ```text
485
518
  You: "Upload the image at /path/to/image.jpg and set it as featured image for post 123"
486
519
  Claude: "I'll upload that image and set it as the featured image..."
@@ -490,17 +523,19 @@ Result: ✅ Image uploaded (ID: 456) and set as featured image
490
523
  ### Advanced Workflows
491
524
 
492
525
  **SEO-Optimized Content Creation**
526
+
493
527
  ```text
494
528
  You: "Create an SEO-optimized blog post about 'WordPress Security Best Practices' with:
495
529
  - Focus keyword: 'WordPress security'
496
530
  - Meta description
497
531
  - Proper heading structure
498
532
  - At least 1500 words"
499
-
533
+
500
534
  Claude: "I'll create a comprehensive SEO-optimized post on WordPress security..."
501
535
  ```
502
536
 
503
537
  **Bulk Operations**
538
+
504
539
  ```text
505
540
  You: "Find all draft posts older than 30 days and provide a summary"
506
541
  You: "Update all posts in category 'News' to include a disclaimer at the end"
@@ -510,6 +545,7 @@ You: "Delete all spam comments from the last week"
510
545
  ### Site Management
511
546
 
512
547
  **Performance Monitoring**
548
+
513
549
  ```text
514
550
  You: "Analyze my site's performance and suggest optimizations"
515
551
  Claude: "Let me check your site's performance metrics...
@@ -519,6 +555,7 @@ Claude: "Let me check your site's performance metrics...
519
555
  ```
520
556
 
521
557
  **User Management**
558
+
522
559
  ```text
523
560
  You: "Create a new editor account for john@example.com with a secure password"
524
561
  You: "List all users who haven't logged in for 90 days"
@@ -528,6 +565,7 @@ You: "Update Sarah's role from Author to Editor"
528
565
  ### Multi-Site Management
529
566
 
530
567
  **Working with Multiple Sites**
568
+
531
569
  ```text
532
570
  You: "List all posts from my client-blog site"
533
571
  Claude: "I'll list the posts from the client-blog site..."
@@ -598,6 +636,7 @@ Claude: "Here's a comparison of both sites..."
598
636
  ### Smart Content Workflows
599
637
 
600
638
  **Automated SEO Optimization**
639
+
601
640
  ```text
602
641
  You: "Optimize all posts from the last month for better SEO performance"
603
642
  Claude: "I'll analyze and optimize your recent posts...
@@ -610,6 +649,7 @@ Claude: "I'll analyze and optimize your recent posts...
610
649
  ```
611
650
 
612
651
  **Content Gap Analysis**
652
+
613
653
  ```text
614
654
  You: "Identify content gaps in our blog compared to competitor topics"
615
655
  Claude: "After analyzing your content and common industry topics...
@@ -622,6 +662,7 @@ Claude: "After analyzing your content and common industry topics...
622
662
  ### Maintenance Automation
623
663
 
624
664
  **Site Health Monitoring**
665
+
625
666
  ```text
626
667
  You: "Perform a comprehensive site health check and fix any issues"
627
668
  Claude: "Running complete site diagnostics...
@@ -634,6 +675,7 @@ Claude: "Running complete site diagnostics...
634
675
  ```
635
676
 
636
677
  **User Management Automation**
678
+
637
679
  ```text
638
680
  You: "Clean up user accounts and update permissions for the new team structure"
639
681
  Claude: "Updating user management...
@@ -647,6 +689,7 @@ Claude: "Updating user management...
647
689
  ### Performance Optimization
648
690
 
649
691
  **Intelligent Cache Management**
692
+
650
693
  ```text
651
694
  You: "Analyze site performance and implement optimal caching strategies"
652
695
  Claude: "Implementing performance optimizations...
@@ -661,6 +704,7 @@ Claude: "Implementing performance optimizations...
661
704
  ## 🎯 Industry-Specific Solutions
662
705
 
663
706
  ### Healthcare Practices
707
+
664
708
  ```text
665
709
  💬 "Create HIPAA-compliant patient information pages with secure forms"
666
710
  💬 "Update doctor profiles with latest certifications and specializations"
@@ -669,6 +713,7 @@ Claude: "Implementing performance optimizations...
669
713
  ```
670
714
 
671
715
  ### Legal Firms
716
+
672
717
  ```text
673
718
  💬 "Create practice area pages with case study examples"
674
719
  💬 "Update attorney profiles with recent wins and bar admissions"
@@ -677,6 +722,7 @@ Claude: "Implementing performance optimizations...
677
722
  ```
678
723
 
679
724
  ### Real Estate Agencies
725
+
680
726
  ```text
681
727
  💬 "Create property listing pages with virtual tour embeds"
682
728
  💬 "Update agent profiles with recent sales and market statistics"
@@ -685,6 +731,7 @@ Claude: "Implementing performance optimizations...
685
731
  ```
686
732
 
687
733
  ### Restaurants & Food Service
734
+
688
735
  ```text
689
736
  💬 "Create menu pages with dietary restriction filters"
690
737
  💬 "Update chef profiles with signature dishes and cooking philosophy"
@@ -699,6 +746,7 @@ Claude: "Implementing performance optimizations...
699
746
  ### Quick Diagnostics
700
747
 
701
748
  **Connection Issues**
749
+
702
750
  ```bash
703
751
  # Test WordPress connection
704
752
  npm run status
@@ -711,6 +759,7 @@ npm run status -- --site="your-site-id"
711
759
  ```
712
760
 
713
761
  **Authentication Problems**
762
+
714
763
  ```bash
715
764
  # Verify WordPress application password
716
765
  curl -u username:app_password https://your-site.com/wp-json/wp/v2/users/me
@@ -723,6 +772,7 @@ npm run setup
723
772
  ```
724
773
 
725
774
  **Performance Issues**
775
+
726
776
  ```bash
727
777
  # Check cache performance
728
778
  npm run test:cache
@@ -736,20 +786,21 @@ rm -rf cache/ && npm run dev
736
786
 
737
787
  ### Common Error Solutions
738
788
 
739
- | Error | Cause | Solution |
740
- |-------|--------|----------|
741
- | `401 Unauthorized` | Invalid credentials | Regenerate application password |
742
- | `403 Forbidden` | Insufficient permissions | Check user role (Editor+ required) |
743
- | `404 Not Found` | Wrong site URL | Verify WORDPRESS_SITE_URL |
744
- | `SSL Certificate Error` | HTTPS issues | Add SSL exception or use HTTP |
745
- | `Connection Timeout` | Network/firewall | Check WordPress REST API access |
746
- | `Tools not showing in Claude` | Config file format | Validate JSON syntax |
747
- | `Plugin conflicts` | WordPress plugins | Disable conflicting plugins |
748
- | `Rate limiting` | Too many requests | Implement request throttling |
789
+ | Error | Cause | Solution |
790
+ | ----------------------------- | ------------------------ | ---------------------------------- |
791
+ | `401 Unauthorized` | Invalid credentials | Regenerate application password |
792
+ | `403 Forbidden` | Insufficient permissions | Check user role (Editor+ required) |
793
+ | `404 Not Found` | Wrong site URL | Verify WORDPRESS_SITE_URL |
794
+ | `SSL Certificate Error` | HTTPS issues | Add SSL exception or use HTTP |
795
+ | `Connection Timeout` | Network/firewall | Check WordPress REST API access |
796
+ | `Tools not showing in Claude` | Config file format | Validate JSON syntax |
797
+ | `Plugin conflicts` | WordPress plugins | Disable conflicting plugins |
798
+ | `Rate limiting` | Too many requests | Implement request throttling |
749
799
 
750
800
  ### WordPress-Specific Issues
751
801
 
752
802
  **REST API Not Available**
803
+
753
804
  ```bash
754
805
  # Test REST API directly
755
806
  curl https://your-site.com/wp-json/wp/v2/
@@ -762,6 +813,7 @@ wp-admin → Settings → Permalinks → Post name
762
813
  ```
763
814
 
764
815
  **Application Password Issues**
816
+
765
817
  ```text
766
818
  1. WordPress Admin → Users → Profile
767
819
  2. Scroll to "Application Passwords"
@@ -771,13 +823,14 @@ wp-admin → Settings → Permalinks → Post name
771
823
  ```
772
824
 
773
825
  **Multi-Site Configuration Problems**
826
+
774
827
  ```json
775
828
  // Check mcp-wordpress.config.json format
776
829
  {
777
830
  "sites": [
778
831
  {
779
832
  "id": "unique-site-id",
780
- "name": "Human Readable Name",
833
+ "name": "Human Readable Name",
781
834
  "config": {
782
835
  "WORDPRESS_SITE_URL": "https://site.com",
783
836
  "WORDPRESS_USERNAME": "username",
@@ -791,6 +844,7 @@ wp-admin → Settings → Permalinks → Post name
791
844
  ### Environment-Specific Solutions
792
845
 
793
846
  **Claude Desktop Integration**
847
+
794
848
  ```json
795
849
  // Verify claude_desktop_config.json format
796
850
  {
@@ -809,6 +863,7 @@ wp-admin → Settings → Permalinks → Post name
809
863
  ```
810
864
 
811
865
  **Docker Deployment Issues**
866
+
812
867
  ```bash
813
868
  # Check container logs
814
869
  docker logs mcp-wordpress
@@ -821,6 +876,7 @@ docker exec mcp-wordpress curl https://your-site.com/wp-json/wp/v2/
821
876
  ```
822
877
 
823
878
  **NPX Runtime Problems**
879
+
824
880
  ```bash
825
881
  # Clear NPX cache
826
882
  npx clear-npx-cache
@@ -835,6 +891,7 @@ npm install -g mcp-wordpress
835
891
  ### Getting Help
836
892
 
837
893
  **Self-Diagnostics**
894
+
838
895
  ```bash
839
896
  # Comprehensive health check
840
897
  npm run health
@@ -847,6 +904,7 @@ npm run test:performance
847
904
  ```
848
905
 
849
906
  **Debug Information Collection**
907
+
850
908
  ```bash
851
909
  # Generate debug report
852
910
  DEBUG=true npm run status > debug-report.txt 2>&1
@@ -858,6 +916,7 @@ os-info >> debug-report.txt
858
916
  ```
859
917
 
860
918
  **Community Support**
919
+
861
920
  - 🐛 [Report Issues](https://github.com/docdyhr/mcp-wordpress/issues)
862
921
  - 💬 [Discussions](https://github.com/docdyhr/mcp-wordpress/discussions)
863
922
  - 📧 [Security Issues](mailto:security@docdyhr.com)
@@ -867,7 +926,7 @@ os-info >> debug-report.txt
867
926
 
868
927
  ### Current Test Status ✅
869
928
 
870
- - **Main Test Suite**: 207/207 passed (100%)
929
+ - **Main Test Suite**: 404/404 passed (100%)
871
930
  - **Security Tests**: 40/40 passed (100%)
872
931
  - **Performance Tests**: 8/8 passed (100%)
873
932
  - **CI/CD Pipeline**: Fully functional
@@ -891,16 +950,16 @@ npm run test:fast
891
950
 
892
951
  Our security posture is continuously monitored through automated testing and vulnerability scanning:
893
952
 
894
- | **Security Area** | **Status** | **Tests** | **Coverage** |
895
- |-------------------|------------|-----------|--------------|
896
- | **XSS Protection** | ✅ Secure | 6/6 passing | Script injection, URL validation, HTML sanitization |
897
- | **SQL Injection** | ✅ Secure | 3/3 passing | Query parameterization, input validation |
898
- | **Path Traversal** | ✅ Secure | 3/3 passing | File path validation, directory restrictions |
899
- | **Input Validation** | ✅ Secure | 9/9 passing | Length limits, format validation, sanitization |
900
- | **Authentication** | ✅ Secure | 7/7 passing | Bypass prevention, token validation |
901
- | **Rate Limiting** | ✅ Secure | 3/3 passing | DoS protection, request throttling |
902
- | **Information Disclosure** | ✅ Secure | 2/2 passing | Error sanitization, sensitive data protection |
903
- | **Penetration Testing** | ✅ Secure | 12/12 passing | Comprehensive attack simulation |
953
+ | **Security Area** | **Status** | **Tests** | **Coverage** |
954
+ | -------------------------- | ---------- | ------------- | --------------------------------------------------- |
955
+ | **XSS Protection** | ✅ Secure | 6/6 passing | Script injection, URL validation, HTML sanitization |
956
+ | **SQL Injection** | ✅ Secure | 3/3 passing | Query parameterization, input validation |
957
+ | **Path Traversal** | ✅ Secure | 3/3 passing | File path validation, directory restrictions |
958
+ | **Input Validation** | ✅ Secure | 9/9 passing | Length limits, format validation, sanitization |
959
+ | **Authentication** | ✅ Secure | 7/7 passing | Bypass prevention, token validation |
960
+ | **Rate Limiting** | ✅ Secure | 3/3 passing | DoS protection, request throttling |
961
+ | **Information Disclosure** | ✅ Secure | 2/2 passing | Error sanitization, sensitive data protection |
962
+ | **Penetration Testing** | ✅ Secure | 12/12 passing | Comprehensive attack simulation |
904
963
 
905
964
  ### Security Features
906
965
 
@@ -970,37 +1029,42 @@ npm run setup
970
1029
  ## 📚 Documentation
971
1030
 
972
1031
  ### Getting Started
1032
+
973
1033
  - **[Quick Start Guide](#-quick-start)** - Get running in 5 minutes
974
1034
  - **[Installation Guide](docs/INSTALLATION.md)** - Detailed setup instructions
975
1035
  - **[Configuration Guide](docs/CONFIGURATION.md)** - All configuration options
976
1036
  - **[Authentication Setup](docs/SECURITY.md#authentication)** - WordPress auth methods
977
1037
 
978
1038
  ### User Guides
1039
+
979
1040
  - **[Basic Usage](docs/examples/basic-usage.md)** - Common tasks and workflows
980
1041
  - **[Advanced Workflows](docs/examples/advanced-workflows.md)** - Complex automation
981
1042
  - **[Multi-Site Management](docs/user-guides/multi-site.md)** - Managing multiple sites
982
1043
  - **[Troubleshooting](docs/TROUBLESHOOTING.md)** - Common issues and solutions
983
1044
 
984
1045
  ### Integration Guides
1046
+
985
1047
  - **[Claude Desktop](docs/integrations/claude-desktop.md)** - Complete Claude integration
986
1048
  - **[VS Code](docs/integrations/vs-code.md)** - VS Code extension setup
987
1049
  - **[Cline](docs/integrations/cline.md)** - Cline AI assistant integration
988
1050
  - **[Custom Clients](docs/developer/custom-clients.md)** - Build your own MCP client
989
1051
 
990
1052
  ### Developer Documentation
1053
+
991
1054
  - **[API Reference](docs/API_REFERENCE.md)** - Complete tool documentation
992
1055
  - **[Architecture](docs/ARCHITECTURE.md)** - System design and decisions
993
1056
  - **[Contributing](CONTRIBUTING.md)** - Development guidelines
994
1057
  - **[Plugin Development](docs/developer/plugins.md)** - Extend functionality
995
1058
 
1059
+
996
1060
  ### Deployment & Operations
1061
+
997
1062
  - **[Docker Deployment](docs/deployment/docker.md)** - Container deployment
998
1063
  - **[Publishing Troubleshooting](docs/PUBLISHING-TROUBLESHOOTING.md)** - Fix publishing issues
999
1064
  - **[Security Best Practices](docs/SECURITY.md)** - Production security
1000
1065
  - **[Performance Tuning](docs/deployment/performance.md)** - Optimization guide
1001
1066
  - **[Monitoring](docs/deployment/monitoring.md)** - Logging and metrics
1002
1067
 
1003
-
1004
1068
  ## 🔧 Requirements
1005
1069
 
1006
1070
  - **WordPress 5.0+** with REST API enabled
@@ -1050,7 +1114,8 @@ docker pull docdyhr/mcp-wordpress:1.3.1
1050
1114
 
1051
1115
  **Ready to transform your WordPress management?**
1052
1116
 
1053
- 1. **🏆 [Download DXT Extension](https://github.com/docdyhr/mcp-wordpress/raw/main/mcp-wordpress.dxt)** - Easiest setup (2 minutes)
1117
+ 1. **🏆 [Download DXT Extension](https://github.com/docdyhr/mcp-wordpress/raw/main/mcp-wordpress.dxt)** - Easiest setup
1118
+ (2 minutes)
1054
1119
  2. **⚡ [Try NPX Method](docs/user-guides/NPX_SETUP.md)** - Power user setup (5 minutes)
1055
1120
  3. **📚 [Explore All Tools](docs/api/README.md)** - See what's possible
1056
1121
  4. **💬 [Join Discussions](https://github.com/docdyhr/mcp-wordpress/discussions)** - Get help and share ideas
@@ -1061,7 +1126,8 @@ docker pull docdyhr/mcp-wordpress:1.3.1
1061
1126
 
1062
1127
  Looking for alternatives or complementary tools? Check out these WordPress MCP implementations:
1063
1128
 
1064
- - **[Automattic WordPress MCP](https://github.com/Automattic/wordpress-mcp)** - Official WordPress MCP server by Automattic
1129
+ - **[Automattic WordPress MCP](https://github.com/Automattic/wordpress-mcp)** - Official WordPress MCP server by
1130
+ Automattic
1065
1131
 
1066
1132
  ---
1067
1133
 
@@ -1076,4 +1142,4 @@ implementation.
1076
1142
 
1077
1143
  **⭐ Found this helpful? [Give us a star on GitHub!](https://github.com/docdyhr/mcp-wordpress) ⭐**
1078
1144
 
1079
- </div>
1145
+ </div>
@@ -0,0 +1,34 @@
1
+ /**
2
+ * AJV patch to handle missing refs directory in DXT package
3
+ */
4
+
5
+ const fs = require('fs');
6
+ const path = require('path');
7
+
8
+ // Patch the AJV module to use our embedded schema files
9
+ const originalRequire = require;
10
+ const Module = require('module');
11
+
12
+ const originalResolveFilename = Module._resolveFilename;
13
+ Module._resolveFilename = function(request, parent, isMain) {
14
+ // Intercept requests for AJV refs
15
+ if (request.includes('refs/json-schema-draft-07.json')) {
16
+ return path.join(__dirname, 'ajv-refs', 'json-schema-draft-07.json');
17
+ }
18
+ if (request.includes('refs/json-schema-draft-04.json')) {
19
+ return path.join(__dirname, 'ajv-refs', 'json-schema-draft-04.json');
20
+ }
21
+ if (request.includes('refs/json-schema-draft-06.json')) {
22
+ return path.join(__dirname, 'ajv-refs', 'json-schema-draft-06.json');
23
+ }
24
+ if (request.includes('refs/json-schema-secure.json')) {
25
+ return path.join(__dirname, 'ajv-refs', 'json-schema-secure.json');
26
+ }
27
+ if (request.includes('refs/data.json')) {
28
+ return path.join(__dirname, 'ajv-refs', 'data.json');
29
+ }
30
+
31
+ return originalResolveFilename.call(this, request, parent, isMain);
32
+ };
33
+
34
+ module.exports = {};
@@ -15,7 +15,7 @@ export interface InvalidationEvent {
15
15
  id?: number | undefined;
16
16
  siteId: string;
17
17
  timestamp: number;
18
- data?: any;
18
+ data?: unknown;
19
19
  }
20
20
  /**
21
21
  * Cache invalidation manager that handles intelligent cache clearing
@@ -25,6 +25,7 @@ export declare class CacheInvalidation {
25
25
  private invalidationRules;
26
26
  private eventQueue;
27
27
  private processing;
28
+ private logger;
28
29
  constructor(httpCache: HttpCacheWrapper);
29
30
  /**
30
31
  * Register invalidation rule
@@ -101,6 +102,7 @@ export declare class WordPressCachePatterns {
101
102
  */
102
103
  export declare class CacheWarmer {
103
104
  private httpCache;
105
+ private logger;
104
106
  constructor(httpCache: HttpCacheWrapper);
105
107
  /**
106
108
  * Warm cache with essential WordPress data