mcp-wordpress 1.1.7 → 1.2.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 (255) hide show
  1. package/README.md +226 -62
  2. package/dist/cache/CacheInvalidation.d.ts +118 -0
  3. package/dist/cache/CacheInvalidation.d.ts.map +1 -0
  4. package/dist/cache/CacheInvalidation.js +349 -0
  5. package/dist/cache/CacheInvalidation.js.map +1 -0
  6. package/dist/cache/CacheManager.d.ts +143 -0
  7. package/dist/cache/CacheManager.d.ts.map +1 -0
  8. package/dist/cache/CacheManager.js +308 -0
  9. package/dist/cache/CacheManager.js.map +1 -0
  10. package/dist/cache/HttpCacheWrapper.d.ts +121 -0
  11. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -0
  12. package/dist/cache/HttpCacheWrapper.js +280 -0
  13. package/dist/cache/HttpCacheWrapper.js.map +1 -0
  14. package/dist/cache/__tests__/CacheInvalidation.test.d.ts +5 -0
  15. package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +1 -0
  16. package/dist/cache/__tests__/CacheInvalidation.test.js +236 -0
  17. package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -0
  18. package/dist/cache/__tests__/CacheManager.test.d.ts +5 -0
  19. package/dist/cache/__tests__/CacheManager.test.d.ts.map +1 -0
  20. package/dist/cache/__tests__/CacheManager.test.js +233 -0
  21. package/dist/cache/__tests__/CacheManager.test.js.map +1 -0
  22. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +5 -0
  23. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +1 -0
  24. package/dist/cache/__tests__/CachedWordPressClient.test.js +228 -0
  25. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -0
  26. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +5 -0
  27. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +1 -0
  28. package/dist/cache/__tests__/HttpCacheWrapper.test.js +296 -0
  29. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -0
  30. package/dist/cache/index.d.ts +12 -0
  31. package/dist/cache/index.d.ts.map +1 -0
  32. package/dist/cache/index.js +9 -0
  33. package/dist/cache/index.js.map +1 -0
  34. package/dist/client/CachedWordPressClient.d.ts +160 -0
  35. package/dist/client/CachedWordPressClient.d.ts.map +1 -0
  36. package/dist/client/CachedWordPressClient.js +338 -0
  37. package/dist/client/CachedWordPressClient.js.map +1 -0
  38. package/dist/client/WordPressClient.d.ts +81 -0
  39. package/dist/client/WordPressClient.d.ts.map +1 -0
  40. package/dist/client/WordPressClient.js +354 -0
  41. package/dist/client/WordPressClient.js.map +1 -0
  42. package/dist/config/ConfigurationSchema.d.ts +281 -0
  43. package/dist/config/ConfigurationSchema.d.ts.map +1 -0
  44. package/dist/config/ConfigurationSchema.js +205 -0
  45. package/dist/config/ConfigurationSchema.js.map +1 -0
  46. package/dist/config/ServerConfiguration.d.ts +38 -0
  47. package/dist/config/ServerConfiguration.d.ts.map +1 -0
  48. package/dist/config/ServerConfiguration.js +158 -0
  49. package/dist/config/ServerConfiguration.js.map +1 -0
  50. package/dist/docs/DocumentationGenerator.d.ts +184 -0
  51. package/dist/docs/DocumentationGenerator.d.ts.map +1 -0
  52. package/dist/docs/DocumentationGenerator.js +735 -0
  53. package/dist/docs/DocumentationGenerator.js.map +1 -0
  54. package/dist/docs/MarkdownFormatter.d.ts +84 -0
  55. package/dist/docs/MarkdownFormatter.d.ts.map +1 -0
  56. package/dist/docs/MarkdownFormatter.js +448 -0
  57. package/dist/docs/MarkdownFormatter.js.map +1 -0
  58. package/dist/docs/index.d.ts +8 -0
  59. package/dist/docs/index.d.ts.map +1 -0
  60. package/dist/docs/index.js +7 -0
  61. package/dist/docs/index.js.map +1 -0
  62. package/dist/index.d.ts +1 -4
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +12 -212
  65. package/dist/index.js.map +1 -1
  66. package/dist/performance/AnomalyDetector.d.ts +63 -0
  67. package/dist/performance/AnomalyDetector.d.ts.map +1 -0
  68. package/dist/performance/AnomalyDetector.js +222 -0
  69. package/dist/performance/AnomalyDetector.js.map +1 -0
  70. package/dist/performance/BenchmarkAnalyzer.d.ts +67 -0
  71. package/dist/performance/BenchmarkAnalyzer.d.ts.map +1 -0
  72. package/dist/performance/BenchmarkAnalyzer.js +301 -0
  73. package/dist/performance/BenchmarkAnalyzer.js.map +1 -0
  74. package/dist/performance/MetricsCollector.d.ts +139 -0
  75. package/dist/performance/MetricsCollector.d.ts.map +1 -0
  76. package/dist/performance/MetricsCollector.js +320 -0
  77. package/dist/performance/MetricsCollector.js.map +1 -0
  78. package/dist/performance/PerformanceAnalytics.d.ts +162 -0
  79. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -0
  80. package/dist/performance/PerformanceAnalytics.js +554 -0
  81. package/dist/performance/PerformanceAnalytics.js.map +1 -0
  82. package/dist/performance/PerformanceMonitor.d.ts +202 -0
  83. package/dist/performance/PerformanceMonitor.d.ts.map +1 -0
  84. package/dist/performance/PerformanceMonitor.js +478 -0
  85. package/dist/performance/PerformanceMonitor.js.map +1 -0
  86. package/dist/performance/TrendAnalyzer.d.ts +69 -0
  87. package/dist/performance/TrendAnalyzer.d.ts.map +1 -0
  88. package/dist/performance/TrendAnalyzer.js +203 -0
  89. package/dist/performance/TrendAnalyzer.js.map +1 -0
  90. package/dist/performance/index.d.ts +11 -0
  91. package/dist/performance/index.d.ts.map +1 -0
  92. package/dist/performance/index.js +8 -0
  93. package/dist/performance/index.js.map +1 -0
  94. package/dist/security/InputValidator.d.ts +215 -0
  95. package/dist/security/InputValidator.d.ts.map +1 -0
  96. package/dist/security/InputValidator.js +278 -0
  97. package/dist/security/InputValidator.js.map +1 -0
  98. package/dist/security/SecurityConfig.d.ts +129 -0
  99. package/dist/security/SecurityConfig.d.ts.map +1 -0
  100. package/dist/security/SecurityConfig.js +262 -0
  101. package/dist/security/SecurityConfig.js.map +1 -0
  102. package/dist/server/ConnectionTester.d.ts +24 -0
  103. package/dist/server/ConnectionTester.d.ts.map +1 -0
  104. package/dist/server/ConnectionTester.js +61 -0
  105. package/dist/server/ConnectionTester.js.map +1 -0
  106. package/dist/server/ToolRegistry.d.ts +46 -0
  107. package/dist/server/ToolRegistry.d.ts.map +1 -0
  108. package/dist/server/ToolRegistry.js +148 -0
  109. package/dist/server/ToolRegistry.js.map +1 -0
  110. package/dist/tools/BaseToolClass.d.ts +76 -0
  111. package/dist/tools/BaseToolClass.d.ts.map +1 -0
  112. package/dist/tools/BaseToolClass.js +104 -0
  113. package/dist/tools/BaseToolClass.js.map +1 -0
  114. package/dist/tools/BaseToolManager.d.ts +26 -0
  115. package/dist/tools/BaseToolManager.d.ts.map +1 -0
  116. package/dist/tools/BaseToolManager.js +56 -0
  117. package/dist/tools/BaseToolManager.js.map +1 -0
  118. package/dist/tools/base.d.ts +37 -0
  119. package/dist/tools/base.d.ts.map +1 -0
  120. package/dist/tools/base.js +60 -0
  121. package/dist/tools/base.js.map +1 -0
  122. package/dist/tools/cache.d.ts +260 -0
  123. package/dist/tools/cache.d.ts.map +1 -0
  124. package/dist/tools/cache.js +237 -0
  125. package/dist/tools/cache.js.map +1 -0
  126. package/dist/tools/index.d.ts +2 -0
  127. package/dist/tools/index.d.ts.map +1 -1
  128. package/dist/tools/index.js +2 -0
  129. package/dist/tools/index.js.map +1 -1
  130. package/dist/tools/performance.d.ts +63 -0
  131. package/dist/tools/performance.d.ts.map +1 -0
  132. package/dist/tools/performance.js +865 -0
  133. package/dist/tools/performance.js.map +1 -0
  134. package/dist/types/client.d.ts +1 -0
  135. package/dist/types/client.d.ts.map +1 -1
  136. package/dist/types/client.js.map +1 -1
  137. package/dist/utils/toolWrapper.d.ts +4 -0
  138. package/dist/utils/toolWrapper.d.ts.map +1 -1
  139. package/dist/utils/toolWrapper.js +11 -0
  140. package/dist/utils/toolWrapper.js.map +1 -1
  141. package/dist/utils/validation.d.ts +68 -0
  142. package/dist/utils/validation.d.ts.map +1 -0
  143. package/dist/utils/validation.js +185 -0
  144. package/dist/utils/validation.js.map +1 -0
  145. package/docs/CACHING.md +340 -0
  146. package/docs/DOCKER.md +451 -0
  147. package/docs/PERFORMANCE_MONITORING.md +471 -0
  148. package/docs/SECURITY_TESTING.md +393 -0
  149. package/docs/api/README.md +200 -0
  150. package/docs/api/categories/auth.md +40 -0
  151. package/docs/api/categories/cache.md +41 -0
  152. package/docs/api/categories/comment.md +44 -0
  153. package/docs/api/categories/media.md +43 -0
  154. package/docs/api/categories/page.md +43 -0
  155. package/docs/api/categories/performance.md +44 -0
  156. package/docs/api/categories/post.md +43 -0
  157. package/docs/api/categories/site.md +43 -0
  158. package/docs/api/categories/taxonomy.md +47 -0
  159. package/docs/api/categories/user.md +43 -0
  160. package/docs/api/openapi.json +3305 -0
  161. package/docs/api/summary.json +12 -0
  162. package/docs/api/tools/wp_approve_comment.md +98 -0
  163. package/docs/api/tools/wp_cache_clear.md +120 -0
  164. package/docs/api/tools/wp_cache_info.md +119 -0
  165. package/docs/api/tools/wp_cache_stats.md +119 -0
  166. package/docs/api/tools/wp_cache_warm.md +119 -0
  167. package/docs/api/tools/wp_create_application_password.md +102 -0
  168. package/docs/api/tools/wp_create_category.md +102 -0
  169. package/docs/api/tools/wp_create_comment.md +128 -0
  170. package/docs/api/tools/wp_create_page.md +135 -0
  171. package/docs/api/tools/wp_create_post.md +147 -0
  172. package/docs/api/tools/wp_create_tag.md +101 -0
  173. package/docs/api/tools/wp_create_user.md +135 -0
  174. package/docs/api/tools/wp_delete_application_password.md +101 -0
  175. package/docs/api/tools/wp_delete_category.md +100 -0
  176. package/docs/api/tools/wp_delete_comment.md +101 -0
  177. package/docs/api/tools/wp_delete_media.md +108 -0
  178. package/docs/api/tools/wp_delete_page.md +108 -0
  179. package/docs/api/tools/wp_delete_post.md +117 -0
  180. package/docs/api/tools/wp_delete_tag.md +100 -0
  181. package/docs/api/tools/wp_delete_user.md +108 -0
  182. package/docs/api/tools/wp_get_application_passwords.md +103 -0
  183. package/docs/api/tools/wp_get_auth_status.md +101 -0
  184. package/docs/api/tools/wp_get_category.md +103 -0
  185. package/docs/api/tools/wp_get_comment.md +103 -0
  186. package/docs/api/tools/wp_get_current_user.md +101 -0
  187. package/docs/api/tools/wp_get_media.md +103 -0
  188. package/docs/api/tools/wp_get_page.md +103 -0
  189. package/docs/api/tools/wp_get_page_revisions.md +103 -0
  190. package/docs/api/tools/wp_get_post.md +112 -0
  191. package/docs/api/tools/wp_get_post_revisions.md +103 -0
  192. package/docs/api/tools/wp_get_site_settings.md +108 -0
  193. package/docs/api/tools/wp_get_tag.md +103 -0
  194. package/docs/api/tools/wp_get_user.md +103 -0
  195. package/docs/api/tools/wp_list_categories.md +111 -0
  196. package/docs/api/tools/wp_list_comments.md +111 -0
  197. package/docs/api/tools/wp_list_media.md +145 -0
  198. package/docs/api/tools/wp_list_pages.md +145 -0
  199. package/docs/api/tools/wp_list_posts.md +156 -0
  200. package/docs/api/tools/wp_list_tags.md +110 -0
  201. package/docs/api/tools/wp_list_users.md +111 -0
  202. package/docs/api/tools/wp_performance_alerts.md +162 -0
  203. package/docs/api/tools/wp_performance_benchmark.md +160 -0
  204. package/docs/api/tools/wp_performance_export.md +162 -0
  205. package/docs/api/tools/wp_performance_history.md +161 -0
  206. package/docs/api/tools/wp_performance_optimize.md +162 -0
  207. package/docs/api/tools/wp_performance_stats.md +160 -0
  208. package/docs/api/tools/wp_search_site.md +99 -0
  209. package/docs/api/tools/wp_spam_comment.md +98 -0
  210. package/docs/api/tools/wp_switch_auth_method.md +122 -0
  211. package/docs/api/tools/wp_test_auth.md +96 -0
  212. package/docs/api/tools/wp_update_category.md +102 -0
  213. package/docs/api/tools/wp_update_comment.md +127 -0
  214. package/docs/api/tools/wp_update_media.md +129 -0
  215. package/docs/api/tools/wp_update_page.md +135 -0
  216. package/docs/api/tools/wp_update_post.md +144 -0
  217. package/docs/api/tools/wp_update_site_settings.md +127 -0
  218. package/docs/api/tools/wp_update_tag.md +102 -0
  219. package/docs/api/tools/wp_update_user.md +134 -0
  220. package/docs/api/tools/wp_upload_media.md +131 -0
  221. package/docs/api/types/WordPressPost.md +39 -0
  222. package/docs/contract-testing.md +183 -0
  223. package/docs/developer/NPM_AUTH_SETUP.md +3 -3
  224. package/docs/wordpress-rest-api-authentication-troubleshooting.md +218 -0
  225. package/package.json +83 -64
  226. package/src/cache/CacheInvalidation.ts +421 -0
  227. package/src/cache/CacheManager.ts +391 -0
  228. package/src/cache/HttpCacheWrapper.ts +372 -0
  229. package/src/cache/__tests__/CacheInvalidation.test.ts +299 -0
  230. package/src/cache/__tests__/CacheManager.test.ts +300 -0
  231. package/src/cache/__tests__/CachedWordPressClient.test.ts +304 -0
  232. package/src/cache/__tests__/HttpCacheWrapper.test.ts +359 -0
  233. package/src/cache/index.ts +26 -0
  234. package/src/client/CachedWordPressClient.ts +442 -0
  235. package/src/config/ConfigurationSchema.ts +246 -0
  236. package/src/config/ServerConfiguration.ts +215 -0
  237. package/src/docs/DocumentationGenerator.ts +952 -0
  238. package/src/docs/MarkdownFormatter.ts +494 -0
  239. package/src/docs/index.ts +21 -0
  240. package/src/index.ts +14 -274
  241. package/src/performance/MetricsCollector.ts +447 -0
  242. package/src/performance/PerformanceAnalytics.ts +762 -0
  243. package/src/performance/PerformanceMonitor.ts +649 -0
  244. package/src/performance/index.ts +28 -0
  245. package/src/security/InputValidator.ts +319 -0
  246. package/src/security/SecurityConfig.ts +301 -0
  247. package/src/server/ConnectionTester.ts +74 -0
  248. package/src/server/ToolRegistry.ts +194 -0
  249. package/src/tools/BaseToolManager.ts +66 -0
  250. package/src/tools/cache.ts +259 -0
  251. package/src/tools/index.ts +2 -0
  252. package/src/tools/performance.ts +948 -0
  253. package/src/types/client.ts +1 -0
  254. package/src/utils/toolWrapper.ts +11 -0
  255. package/src/utils/validation.ts +259 -0
package/README.md CHANGED
@@ -1,23 +1,31 @@
1
1
  # MCP WordPress Server
2
2
 
3
+ <div align="center">
4
+ <img src="images/wordpress-mcp-logo.png" width="50%" alt="WordPress MCP Logo">
5
+ </div>
6
+
3
7
  A comprehensive Model Context Protocol (MCP) server for WordPress management through the WordPress REST API v2. Completely written in TypeScript with modular architecture and 95%+ test coverage.
4
8
 
5
9
  [![NPM Version](https://img.shields.io/npm/v/mcp-wordpress)](https://www.npmjs.com/package/mcp-wordpress)
6
- [![Test Coverage](https://img.shields.io/badge/test%20coverage-95%25%2B-brightgreen)](https://github.com/AiondaDotCom/mcp-wordpress)
7
- [![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue)](https://github.com/AiondaDotCom/mcp-wordpress)
8
- [![Architecture](https://img.shields.io/badge/architecture-modular-orange)](https://github.com/AiondaDotCom/mcp-wordpress/blob/main/REFACTORING.md)
10
+ [![Test Coverage](https://img.shields.io/badge/test%20coverage-95%25%2B-brightgreen)](https://github.com/thomasdyhr/mcp-wordpress)
11
+ [![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue)](https://github.com/thomasdyhr/mcp-wordpress)
12
+ [![Architecture](https://img.shields.io/badge/architecture-modular-orange)](https://github.com/thomasdyhr/mcp-wordpress/blob/main/REFACTORING.md)
9
13
 
10
14
  ## 🚀 Features
11
15
 
12
- - **54 WordPress Management Tools** across 8 categories
13
- - **🏗️ Modular Architecture** - Manager-based composition pattern (94% code reduction)
16
+ - **59 WordPress Management Tools** across 10 categories
17
+ - **⚡ Intelligent Caching System** - Multi-layer response caching with 50-70% performance improvement
18
+ - **📊 Real-Time Performance Monitoring** - Comprehensive metrics, analytics, and optimization insights
19
+ - **📚 Auto-Generated API Documentation** - Complete tool documentation with OpenAPI specification
20
+ - **🐳 Docker Support** - Containerized deployment for production environments
21
+ - **🏗 Modular Architecture** - Manager-based composition pattern (94% code reduction)
14
22
  - **Multi-Site Support** - Manage multiple WordPress sites from one configuration
15
23
  - **100% TypeScript** - Complete type safety and IntelliSense
16
24
  - **🎯 95%+ Test Coverage** - All critical functionality verified and tested
17
25
  - **⚡ Performance Optimized** - Intelligent rate limiting and memory management
18
- - **🔐 Flexible Authentication** - Supports App Passwords, JWT, Basic Auth, API Key
26
+ - **🔒 Flexible Authentication** - Supports App Passwords, JWT, Basic Auth, API Key
19
27
  - **📊 Comprehensive Monitoring** - Structured logging and error tracking
20
- - **🛡️ Production Ready** - Security-reviewed and battle-tested
28
+ - **🛠 Production Ready** - Security-reviewed and battle-tested
21
29
  - **🔄 100% Backward Compatible** - Zero breaking changes during refactoring
22
30
 
23
31
  ## ⚡ Quick Start
@@ -38,7 +46,7 @@ mcp-wordpress
38
46
  ### Option 2: Local Development
39
47
 
40
48
  ```bash
41
- git clone https://github.com/AiondaDotCom/mcp-wordpress.git
49
+ git clone https://github.com/thomasdyhr/mcp-wordpress.git
42
50
  cd mcp-wordpress
43
51
  npm install
44
52
  npm run setup
@@ -55,24 +63,48 @@ npx mcp-wordpress setup
55
63
  npm run setup
56
64
  ```
57
65
 
58
- ## 🏆 Latest Achievement: v1.1.2 Major Refactoring
66
+ ## 🏆 Latest Achievement: v1.2.0 - Performance & Documentation Revolution
67
+
68
+ We've implemented a **comprehensive performance monitoring system**, **intelligent caching**, **auto-generated documentation**, and **Docker containerization** - all while maintaining complete backward compatibility:
69
+
70
+ ### ⚡ Performance Monitoring System
71
+
72
+ - **📊 Real-Time Metrics**: Response times, cache hit rates, error tracking, system resources
73
+ - **📈 Historical Analytics**: Trend analysis, anomaly detection, predictive insights
74
+ - **🎯 Industry Benchmarks**: Compare against performance standards with optimization recommendations
75
+ - **🚨 Smart Alerts**: Automated performance alerts and threshold monitoring
76
+ - **📋 Comprehensive Reports**: Export detailed performance data in multiple formats
77
+ - **⚙️ Optimization Engine**: AI-powered recommendations for performance improvements
78
+
79
+ ### 🏗️ Intelligent Caching System
80
+
81
+ - **🚀 50-70% Performance Improvement**: Reduced API calls for taxonomy and authentication operations
82
+ - **📊 Multi-Layer Architecture**: HTTP response caching + in-memory application cache + intelligent invalidation
83
+ - **🎯 Site-Specific Isolation**: Complete cache separation for multi-site WordPress installations
84
+ - **🔧 Cache Management Tools**: 4 new MCP tools for monitoring and managing cache performance
85
+ - **⏱️ Sub-Millisecond Operations**: Cache hits deliver responses in under 1ms
86
+
87
+ ### 📚 Auto-Generated Documentation
59
88
 
60
- We've completed a **major technical debt refactoring** that dramatically improves the codebase while maintaining 100% backward compatibility:
89
+ - **📖 Complete API Documentation**: All 59 tools with examples, parameters, and usage guides
90
+ - **🔧 OpenAPI Specification**: Machine-readable API spec for integration
91
+ - **🔄 Automated CI/CD Pipeline**: Documentation updates automatically on code changes
92
+ - **✅ Quality Validation**: Comprehensive documentation quality checks
93
+ - **🌐 Multi-Format Output**: Markdown, JSON, and OpenAPI formats
61
94
 
62
- ### 📊 Refactoring Results
63
- - **🔥 94% Code Reduction**: Main client file reduced from 1043 lines to 59 lines
64
- - **🏗️ Modular Architecture**: Introduced manager-based composition pattern
65
- - **⚡ Performance Gains**: Better memory management and intelligent rate limiting
66
- - **🎯 Zero Breaking Changes**: All existing configurations continue to work
67
- - **📋 85% Less Duplication**: Standardized error handling across all components
95
+ ### 🐳 Docker Containerization
68
96
 
69
- ### 🏗️ New Architecture
70
- - **BaseManager**: Common functionality and error handling
71
- - **AuthenticationManager**: Centralized auth handling and token management
72
- - **RequestManager**: HTTP operations with retry logic and rate limiting
73
- - **Backward Compatible**: Original api.ts now re-exports modular components
97
+ - **📦 Production-Ready Images**: Optimized Docker containers for deployment
98
+ - **🔧 Development Environment**: Docker Compose for local development
99
+ - **⚙️ Environment Configuration**: Flexible configuration via environment variables
100
+ - **🚀 Easy Deployment**: One-command deployment to any Docker environment
74
101
 
75
- **Read the full technical analysis**: [REFACTORING.md](./REFACTORING.md)
102
+ **📚 Complete Documentation**:
103
+
104
+ - [Performance Monitoring Guide](./docs/PERFORMANCE.md)
105
+ - [Caching System Guide](./docs/CACHING.md)
106
+ - [API Documentation](./docs/api/README.md)
107
+ - [Docker Deployment Guide](./docs/DOCKER.md)
76
108
 
77
109
  ## 🔐 Authentication & Testing Status
78
110
 
@@ -84,6 +116,7 @@ We've completed a **major technical debt refactoring** that dramatically improve
84
116
  ✅ **Tool Tests** - 100% success rate (14/14 tools working)
85
117
 
86
118
  The setup wizard guides you through:
119
+
87
120
  - WordPress site configuration
88
121
  - Authentication method selection
89
122
  - Connection testing
@@ -95,7 +128,7 @@ The setup wizard guides you through:
95
128
 
96
129
  If you want the absolute easiest setup, just paste this prompt into Claude Desktop:
97
130
 
98
- ```
131
+ ```text
99
132
  Set up the MCP WordPress server using NPX for my Claude Desktop.
100
133
 
101
134
  My WordPress details:
@@ -116,7 +149,7 @@ I want to use the NPX version (mcp-wordpress) so I don't need to install anythin
116
149
  For local development and customization:
117
150
 
118
151
  ```
119
- Build and configure the MCP WordPress server project from https://github.com/AiondaDotCom/mcp-wordpress locally on my computer.
152
+ Build and configure the MCP WordPress server project from https://github.com/thomasdyhr/mcp-wordpress locally on my computer.
120
153
 
121
154
  Please:
122
155
  1. Clone the repository to an appropriate directory
@@ -151,6 +184,7 @@ DEBUG=false
151
184
  Configure MCP WordPress Server in your Claude Desktop `mcp.json` configuration file:
152
185
 
153
186
  #### Option 1: NPX (Recommended)
187
+
154
188
  ```json
155
189
  {
156
190
  "mcpServers": {
@@ -169,6 +203,7 @@ Configure MCP WordPress Server in your Claude Desktop `mcp.json` configuration f
169
203
  ```
170
204
 
171
205
  #### Option 2: Global Installation
206
+
172
207
  ```json
173
208
  {
174
209
  "mcpServers": {
@@ -186,6 +221,7 @@ Configure MCP WordPress Server in your Claude Desktop `mcp.json` configuration f
186
221
  ```
187
222
 
188
223
  #### Option 3: Local Development
224
+
189
225
  ```json
190
226
  {
191
227
  "mcpServers": {
@@ -204,6 +240,7 @@ Configure MCP WordPress Server in your Claude Desktop `mcp.json` configuration f
204
240
  ```
205
241
 
206
242
  #### Using .env File (Any Option)
243
+
207
244
  If you prefer to use a `.env` file instead of environment variables in the config:
208
245
 
209
246
  ```json
@@ -308,9 +345,10 @@ WORDPRESS_AUTH_METHOD=api-key
308
345
  WORDPRESS_API_KEY=your-api-key
309
346
  ```
310
347
 
311
- ## 📋 Available Tools (54 Tools)
348
+ ## 📋 Available Tools (59 Tools)
312
349
 
313
350
  ### 📝 Posts (6 Tools)
351
+
314
352
  - `wp_list_posts` - List and filter blog posts
315
353
  - `wp_get_post` - Get specific post
316
354
  - `wp_create_post` - Create new posts
@@ -319,6 +357,7 @@ WORDPRESS_API_KEY=your-api-key
319
357
  - `wp_get_post_revisions` - Get post revisions
320
358
 
321
359
  ### 📄 Pages (6 Tools)
360
+
322
361
  - `wp_list_pages` - List pages
323
362
  - `wp_get_page` - Get specific page
324
363
  - `wp_create_page` - Create new pages
@@ -327,6 +366,7 @@ WORDPRESS_API_KEY=your-api-key
327
366
  - `wp_get_page_revisions` - Get page revisions
328
367
 
329
368
  ### 🖼️ Media (6 Tools)
369
+
330
370
  - `wp_list_media` - Browse media library
331
371
  - `wp_get_media` - Get media details
332
372
  - `wp_upload_media` - Upload files
@@ -335,6 +375,7 @@ WORDPRESS_API_KEY=your-api-key
335
375
  - `wp_get_media_sizes` - Get available image sizes
336
376
 
337
377
  ### 👥 Users (6 Tools)
378
+
338
379
  - `wp_list_users` - List users
339
380
  - `wp_get_user` - Get user details
340
381
  - `wp_create_user` - Create new users
@@ -343,6 +384,7 @@ WORDPRESS_API_KEY=your-api-key
343
384
  - `wp_get_current_user` - Get current user
344
385
 
345
386
  ### 💬 Comments (7 Tools)
387
+
346
388
  - `wp_list_comments` - List comments
347
389
  - `wp_get_comment` - Get comment details
348
390
  - `wp_create_comment` - Create new comments
@@ -352,6 +394,7 @@ WORDPRESS_API_KEY=your-api-key
352
394
  - `wp_spam_comment` - Mark comments as spam
353
395
 
354
396
  ### 🏷️ Taxonomies (10 Tools)
397
+
355
398
  - `wp_list_categories` - List categories
356
399
  - `wp_get_category` - Get category details
357
400
  - `wp_create_category` - Create new categories
@@ -364,6 +407,7 @@ WORDPRESS_API_KEY=your-api-key
364
407
  - `wp_delete_tag` - Delete tags
365
408
 
366
409
  ### ⚙️ Site Management (7 Tools)
410
+
367
411
  - `wp_get_site_settings` - Get site settings
368
412
  - `wp_update_site_settings` - Update site settings
369
413
  - `wp_get_site_stats` - Get site statistics
@@ -373,6 +417,7 @@ WORDPRESS_API_KEY=your-api-key
373
417
  - `wp_delete_application_password` - Delete app passwords
374
418
 
375
419
  ### 🔐 Authentication (6 Tools)
420
+
376
421
  - `wp_test_auth` - Test authentication
377
422
  - `wp_get_auth_status` - Get authentication status
378
423
  - `wp_start_oauth_flow` - Start OAuth flow
@@ -380,35 +425,62 @@ WORDPRESS_API_KEY=your-api-key
380
425
  - `wp_refresh_oauth_token` - Refresh OAuth token
381
426
  - `wp_switch_auth_method` - Switch authentication method
382
427
 
428
+ ### ⚡ Cache Management (4 Tools)
429
+
430
+ - `wp_cache_stats` - Get real-time cache performance statistics
431
+ - `wp_cache_clear` - Clear cache entries with optional pattern matching
432
+ - `wp_cache_warm` - Pre-populate cache with essential data
433
+ - `wp_cache_info` - Get detailed cache configuration and status
434
+
435
+ ### 📊 Performance Monitoring (6 Tools)
436
+
437
+ - `wp_performance_stats` - Get real-time performance statistics and metrics
438
+ - `wp_performance_history` - Get historical performance data and trends
439
+ - `wp_performance_benchmark` - Compare current performance against industry benchmarks
440
+ - `wp_performance_alerts` - Get performance alerts and anomaly detection results
441
+ - `wp_performance_optimize` - Get optimization recommendations and insights
442
+ - `wp_performance_export` - Export comprehensive performance report
443
+
383
444
  ## 🧪 Testing
384
445
 
385
446
  ### Current Test Status ✅
447
+
386
448
  - **TypeScript Build Tests**: 19/19 passed (100%)
387
449
  - **Environment Loading Tests**: 7/7 passed (100%)
388
450
  - **Tool Functionality Tests**: 14/15 passed (93%)
389
451
  - **Upload Timeout Tests**: 11/12 passed (92%)
452
+ - **Contract Tests**: 5/8 passed (62.5%) - See [Contract Testing](#contract-testing) section
390
453
  - **Overall Success Rate**: 93-98%
391
454
 
392
455
  ### Test Commands
393
456
 
394
457
  ```bash
395
- # Run all tests
458
+ # Run all tests (improved)
396
459
  npm test
397
460
 
398
- # Tests with coverage
461
+ # Run tests with Docker test environment (recommended)
462
+ npm run test:with-env
463
+
464
+ # Tests with coverage (70% threshold)
399
465
  npm run test:coverage
400
466
 
401
467
  # Quick tests
402
468
  npm run test:fast
403
469
 
404
- # MCP integration tests
405
- npm run test:mcp
470
+ # Individual test suites
471
+ npm run test:security # Security tests
472
+ npm run test:config # Configuration tests
473
+ npm run test:property # Property-based tests
474
+ npm run test:contracts # Contract tests
475
+ npm run test:performance # Performance regression tests
406
476
 
407
- # Tool integration tests
408
- npm run test:tools
477
+ # Integration tests
478
+ npm run test:mcp # MCP protocol tests
479
+ npm run test:tools # Tool functionality tests
480
+ npm run test:auth # Authentication tests
409
481
 
410
- # Authentication tests (NEW)
411
- npm run test:auth
482
+ # Live contract tests with automated setup
483
+ npm run test:contracts:live
412
484
 
413
485
  # Tests in watch mode
414
486
  npm run test:watch
@@ -417,6 +489,28 @@ npm run test:watch
417
489
  ./scripts/wp-auth-check.sh
418
490
  ```
419
491
 
492
+ ### Docker Test Environment
493
+
494
+ The project now includes a complete Docker test environment for reliable testing:
495
+
496
+ ```bash
497
+ # Start test environment
498
+ ./scripts/start-test-env.sh
499
+
500
+ # Run tests with test environment
501
+ npm run test:with-env
502
+
503
+ # Stop test environment
504
+ docker-compose -f docker-compose.test.yml down
505
+ ```
506
+
507
+ The test environment includes:
508
+
509
+ - WordPress with pre-configured test user and application password
510
+ - MySQL database
511
+ - Pact broker for contract testing
512
+ - Automated WordPress configuration for API testing
513
+
420
514
  ## 📊 Status & Monitoring
421
515
 
422
516
  ```bash
@@ -527,42 +621,112 @@ DEBUG=true npm run dev
527
621
  - [Model Context Protocol](https://modelcontextprotocol.io/)
528
622
  - [TypeScript Handbook](https://www.typescriptlang.org/docs/)
529
623
 
530
- ## 📝 Recent Updates
624
+ ## 🐳 Docker Support
625
+
626
+ ### Quick Docker Start
531
627
 
532
- ### v1.1.0 - Latest Improvements
533
- - **Fixed TypeScript Compilation Issues**
534
- - Resolved FormData, fs, path, and http import statements
535
- - All modules now compile successfully
536
- - Complete type safety maintained
628
+ ```bash
629
+ # Using Docker Hub image
630
+ docker run -d \
631
+ --name mcp-wordpress \
632
+ -e WORDPRESS_SITE_URL=https://your-site.com \
633
+ -e WORDPRESS_USERNAME=your-username \
634
+ -e WORDPRESS_APP_PASSWORD=your-app-password \
635
+ aiondadotcom/mcp-wordpress:latest
636
+
637
+ # Using Docker Compose
638
+ curl -O https://raw.githubusercontent.com/thomasdyhr/mcp-wordpress/main/docker-compose.yml
639
+ docker-compose up -d
640
+ ```
641
+
642
+ ### Production Deployment
643
+
644
+ ```yaml
645
+ version: '3.8'
646
+ services:
647
+ mcp-wordpress:
648
+ image: aiondadotcom/mcp-wordpress:latest
649
+ restart: unless-stopped
650
+ environment:
651
+ - WORDPRESS_SITE_URL=https://your-site.com
652
+ - WORDPRESS_USERNAME=your-username
653
+ - WORDPRESS_APP_PASSWORD=your-app-password
654
+ - NODE_ENV=production
655
+ volumes:
656
+ - ./logs:/app/logs
657
+ - ./cache:/app/cache
658
+ ports:
659
+ - "3000:3000"
660
+ ```
537
661
 
538
- - **Enhanced Authentication Testing**
539
- - Added comprehensive `scripts/test-auth.js` for all auth methods
540
- - Added shell script `scripts/wp-auth-check.sh` for quick verification
541
- - Improved error handling and diagnostic messages
662
+ **📖 Full Docker Documentation**: [docs/DOCKER.md](./docs/DOCKER.md)
542
663
 
543
- - **Production Readiness Verified**
544
- - 93-98% test success rate across all test suites
545
- - Full Application Password authentication working
546
- - All 54 WordPress tools operational and tested
547
- - Connection to production WordPress sites verified
664
+ ## 🧪 Contract Testing with Live WordPress
548
665
 
549
- - **Improved Developer Experience**
550
- - Better error messages and debugging output
551
- - Enhanced status checking and monitoring
552
- - Comprehensive testing suite with clear reporting
666
+ Test the MCP server against a real WordPress instance using our automated testing setup:
667
+
668
+ ```bash
669
+ # Automated live contract testing (recommended)
670
+ npm run test:contracts:live
671
+ ```
553
672
 
554
- ## 🤝 Contributing
673
+ This command will:
555
674
 
556
- 1. Fork the repository
557
- 2. Create feature branch: `git checkout -b feature/new-feature`
558
- 3. Commit changes: `git commit -m 'Add new feature'`
559
- 4. Push branch: `git push origin feature/new-feature`
560
- 5. Create pull request
675
+ - 🐳 Start isolated WordPress + MySQL containers (port 8081)
676
+ - ⚙️ Auto-configure WordPress with test data and authentication
677
+ - 🧪 Run contract tests against the live WordPress API
678
+ - 🧹 Clean up automatically when done
561
679
 
562
- ## 📄 License
680
+ **Features:**
563
681
 
564
- MIT License - see LICENSE file for details
682
+ - **Zero Conflicts**: Uses isolated containers with separate ports
683
+ - **Fully Automated**: WordPress installation, user creation, and app password generation
684
+ - **Real API Testing**: Validates actual WordPress REST API behavior
685
+ - **CI/CD Ready**: Works in continuous integration environments
565
686
 
566
- ---
687
+ **Manual Setup Alternative:**
688
+
689
+ ```bash
690
+ # Test setup phase only
691
+ bash scripts/test-setup-only.sh
692
+
693
+ # Use existing WordPress instance
694
+ export WORDPRESS_TEST_URL="https://your-wordpress-site.com"
695
+ export WORDPRESS_USERNAME="your-username"
696
+ export WORDPRESS_APP_PASSWORD="your-app-password"
697
+ export PACT_LIVE_TESTING="true"
698
+ npm run test:contracts
699
+ ```
700
+
701
+ **📖 Full Contract Testing Guide**: [docs/contract-testing.md](./docs/contract-testing.md)
702
+
703
+ ## 📝 Recent Updates
567
704
 
568
- **🚀 Powered by TypeScript for better development experience and type safety!**
705
+ ### v1.2.0 - Performance & Documentation Revolution
706
+
707
+ - ✅ **Real-Time Performance Monitoring**
708
+ - Comprehensive metrics collection (response times, cache hit rates, system resources)
709
+ - Historical performance analysis with trend detection
710
+ - Industry benchmark comparisons with optimization recommendations
711
+ - Smart alerts and anomaly detection
712
+ - Comprehensive performance reports with export options
713
+ - AI-powered optimization engine for performance improvements
714
+ - ⚡ **Intelligent Caching System**
715
+ - 50-70% performance improvement with reduced API calls
716
+ - Multi-layer caching architecture with intelligent invalidation
717
+ - Site-specific cache isolation for multi-site installations
718
+ - New MCP tools for cache performance monitoring and management
719
+ - Sub-millisecond response times for cache hits
720
+ - 📚 **Auto-Generated Documentation**
721
+ - Complete API documentation for all 59 tools with examples and usage guides
722
+ - Machine-readable OpenAPI specification for integration
723
+ - Automated CI/CD pipeline for documentation updates
724
+ - Comprehensive documentation quality validation
725
+ - Multi-format output including Markdown, JSON, and OpenAPI
726
+ - 🐳 **Docker Containerization**
727
+ - Production-ready Docker images for easy deployment
728
+ - Docker Compose setup for local development
729
+ - Flexible environment configuration via variables
730
+ - One-command deployment to any Docker environment
731
+
732
+ **📚 Read the full release notes for all details!**
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Intelligent cache invalidation strategies for WordPress MCP Server
3
+ * Implements event-based and pattern-based invalidation
4
+ */
5
+ import { HttpCacheWrapper } from './HttpCacheWrapper.js';
6
+ export interface InvalidationRule {
7
+ trigger: string;
8
+ patterns: string[];
9
+ immediate?: boolean;
10
+ cascade?: boolean;
11
+ }
12
+ export interface InvalidationEvent {
13
+ type: 'create' | 'update' | 'delete';
14
+ resource: string;
15
+ id?: number | undefined;
16
+ siteId: string;
17
+ timestamp: number;
18
+ data?: any;
19
+ }
20
+ /**
21
+ * Cache invalidation manager that handles intelligent cache clearing
22
+ */
23
+ export declare class CacheInvalidation {
24
+ private httpCache;
25
+ private invalidationRules;
26
+ private eventQueue;
27
+ private processing;
28
+ constructor(httpCache: HttpCacheWrapper);
29
+ /**
30
+ * Register invalidation rule
31
+ */
32
+ registerRule(resource: string, rule: InvalidationRule): void;
33
+ /**
34
+ * Trigger invalidation event
35
+ */
36
+ trigger(event: InvalidationEvent): Promise<void>;
37
+ /**
38
+ * Invalidate cache for specific resource
39
+ */
40
+ invalidateResource(resource: string, id?: number, type?: 'create' | 'update' | 'delete'): Promise<void>;
41
+ /**
42
+ * Setup default invalidation rules
43
+ */
44
+ private setupDefaultRules;
45
+ /**
46
+ * Process invalidation event queue
47
+ */
48
+ private processQueue;
49
+ /**
50
+ * Process single invalidation event
51
+ */
52
+ private processEvent;
53
+ /**
54
+ * Apply invalidation rule to cache
55
+ */
56
+ private applyInvalidationRule;
57
+ /**
58
+ * Get invalidation statistics
59
+ */
60
+ getStats(): {
61
+ queueSize: number;
62
+ rulesCount: number;
63
+ processing: boolean;
64
+ };
65
+ /**
66
+ * Clear all invalidation rules
67
+ */
68
+ clearRules(): void;
69
+ /**
70
+ * Get all registered rules
71
+ */
72
+ getRules(): Record<string, InvalidationRule[]>;
73
+ }
74
+ /**
75
+ * Cache invalidation patterns for common WordPress operations
76
+ */
77
+ export declare class WordPressCachePatterns {
78
+ /**
79
+ * Invalidate all content-related caches
80
+ */
81
+ static invalidateContent(cache: HttpCacheWrapper): number;
82
+ /**
83
+ * Invalidate all taxonomy-related caches
84
+ */
85
+ static invalidateTaxonomies(cache: HttpCacheWrapper): number;
86
+ /**
87
+ * Invalidate all user-related caches
88
+ */
89
+ static invalidateUsers(cache: HttpCacheWrapper): number;
90
+ /**
91
+ * Invalidate search-related caches
92
+ */
93
+ static invalidateSearch(cache: HttpCacheWrapper): number;
94
+ /**
95
+ * Invalidate all caches (nuclear option)
96
+ */
97
+ static invalidateAll(cache: HttpCacheWrapper): number;
98
+ }
99
+ /**
100
+ * Cache warming strategies for common WordPress data
101
+ */
102
+ export declare class CacheWarmer {
103
+ private httpCache;
104
+ constructor(httpCache: HttpCacheWrapper);
105
+ /**
106
+ * Warm cache with essential WordPress data
107
+ */
108
+ warmEssentials(): Promise<void>;
109
+ /**
110
+ * Warm cache with taxonomy data
111
+ */
112
+ warmTaxonomies(): Promise<void>;
113
+ /**
114
+ * Warm cache with user data
115
+ */
116
+ warmUsers(): Promise<void>;
117
+ }
118
+ //# sourceMappingURL=CacheInvalidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheInvalidation.d.ts","sourceRoot":"","sources":["../../src/cache/CacheInvalidation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,SAAS;IAJ7B,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,UAAU,CAAS;gBAEP,SAAS,EAAE,gBAAgB;IAI/C;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAO5D;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,MAAM,EACX,IAAI,GAAE,QAAQ,GAAG,QAAQ,GAAG,QAAmB,GAC9C,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuLzB;;OAEG;YACW,YAAY;IAiB1B;;OAEG;YACW,YAAY;IAU1B;;OAEG;YACW,qBAAqB;IAqBnC;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;KACnB;IAQH;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAO/C;AAED;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAIzD;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAI5D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAIvD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAIxD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;CAGtD;AAED;;GAEG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB;IAE/C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAGjC"}