mcp-wordpress 1.2.2 โ†’ 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/README.md +210 -182
  2. package/dist/cache/CacheInvalidation.d.ts +3 -3
  3. package/dist/cache/CacheInvalidation.d.ts.map +1 -1
  4. package/dist/cache/CacheInvalidation.js +119 -119
  5. package/dist/cache/CacheInvalidation.js.map +1 -1
  6. package/dist/cache/CacheManager.d.ts +5 -0
  7. package/dist/cache/CacheManager.d.ts.map +1 -1
  8. package/dist/cache/CacheManager.js +26 -16
  9. package/dist/cache/CacheManager.js.map +1 -1
  10. package/dist/cache/HttpCacheWrapper.d.ts +1 -1
  11. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
  12. package/dist/cache/HttpCacheWrapper.js +29 -29
  13. package/dist/cache/HttpCacheWrapper.js.map +1 -1
  14. package/dist/cache/__tests__/CacheInvalidation.test.js +96 -94
  15. package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -1
  16. package/dist/cache/__tests__/CacheManager.test.js +113 -113
  17. package/dist/cache/__tests__/CacheManager.test.js.map +1 -1
  18. package/dist/cache/__tests__/CachedWordPressClient.test.js +102 -99
  19. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -1
  20. package/dist/cache/__tests__/HttpCacheWrapper.test.js +98 -95
  21. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -1
  22. package/dist/cache/index.d.ts +7 -7
  23. package/dist/cache/index.d.ts.map +1 -1
  24. package/dist/cache/index.js +4 -4
  25. package/dist/cache/index.js.map +1 -1
  26. package/dist/client/CachedWordPressClient.d.ts +4 -4
  27. package/dist/client/CachedWordPressClient.d.ts.map +1 -1
  28. package/dist/client/CachedWordPressClient.js +55 -51
  29. package/dist/client/CachedWordPressClient.js.map +1 -1
  30. package/dist/client/api.d.ts +10 -10
  31. package/dist/client/api.js +158 -158
  32. package/dist/client/api.js.map +1 -1
  33. package/dist/client/auth.d.ts +2 -2
  34. package/dist/client/auth.js +72 -72
  35. package/dist/client/managers/AuthenticationManager.d.ts +2 -2
  36. package/dist/client/managers/AuthenticationManager.js +46 -46
  37. package/dist/client/managers/BaseManager.d.ts +1 -1
  38. package/dist/client/managers/BaseManager.js +9 -9
  39. package/dist/client/managers/RequestManager.d.ts +5 -3
  40. package/dist/client/managers/RequestManager.d.ts.map +1 -1
  41. package/dist/client/managers/RequestManager.js +39 -19
  42. package/dist/client/managers/RequestManager.js.map +1 -1
  43. package/dist/client/managers/index.d.ts +3 -3
  44. package/dist/client/managers/index.js +3 -3
  45. package/dist/config/ConfigurationSchema.d.ts +2 -2
  46. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  47. package/dist/config/ConfigurationSchema.js +40 -40
  48. package/dist/config/ConfigurationSchema.js.map +1 -1
  49. package/dist/config/ServerConfiguration.d.ts +2 -2
  50. package/dist/config/ServerConfiguration.js +35 -35
  51. package/dist/config/ServerConfiguration.js.map +1 -1
  52. package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
  53. package/dist/docs/DocumentationGenerator.js +296 -255
  54. package/dist/docs/DocumentationGenerator.js.map +1 -1
  55. package/dist/docs/MarkdownFormatter.d.ts +1 -1
  56. package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
  57. package/dist/docs/MarkdownFormatter.js +60 -51
  58. package/dist/docs/MarkdownFormatter.js.map +1 -1
  59. package/dist/docs/index.d.ts +3 -3
  60. package/dist/docs/index.d.ts.map +1 -1
  61. package/dist/docs/index.js +2 -2
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +16 -16
  64. package/dist/index.js.map +1 -1
  65. package/dist/mcp-wordpress-1.3.0.tgz +0 -0
  66. package/dist/performance/MetricsCollector.d.ts +3 -3
  67. package/dist/performance/MetricsCollector.d.ts.map +1 -1
  68. package/dist/performance/MetricsCollector.js +33 -27
  69. package/dist/performance/MetricsCollector.js.map +1 -1
  70. package/dist/performance/PerformanceAnalytics.d.ts +12 -12
  71. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
  72. package/dist/performance/PerformanceAnalytics.js +200 -154
  73. package/dist/performance/PerformanceAnalytics.js.map +1 -1
  74. package/dist/performance/PerformanceMonitor.d.ts +5 -5
  75. package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
  76. package/dist/performance/PerformanceMonitor.js +53 -52
  77. package/dist/performance/PerformanceMonitor.js.map +1 -1
  78. package/dist/performance/index.d.ts +6 -6
  79. package/dist/performance/index.d.ts.map +1 -1
  80. package/dist/performance/index.js +3 -3
  81. package/dist/security/InputValidator.d.ts +1 -1
  82. package/dist/security/InputValidator.d.ts.map +1 -1
  83. package/dist/security/InputValidator.js +111 -88
  84. package/dist/security/InputValidator.js.map +1 -1
  85. package/dist/security/SecurityConfig.d.ts +5 -5
  86. package/dist/security/SecurityConfig.js +92 -92
  87. package/dist/security/SecurityConfig.js.map +1 -1
  88. package/dist/server/ConnectionTester.d.ts +1 -1
  89. package/dist/server/ConnectionTester.d.ts.map +1 -1
  90. package/dist/server/ConnectionTester.js +4 -4
  91. package/dist/server/ConnectionTester.js.map +1 -1
  92. package/dist/server/ToolRegistry.d.ts +2 -2
  93. package/dist/server/ToolRegistry.d.ts.map +1 -1
  94. package/dist/server/ToolRegistry.js +35 -32
  95. package/dist/server/ToolRegistry.js.map +1 -1
  96. package/dist/server.d.ts +2 -2
  97. package/dist/server.js +2 -2
  98. package/dist/tools/BaseToolManager.js +5 -5
  99. package/dist/tools/auth.d.ts +2 -2
  100. package/dist/tools/auth.d.ts.map +1 -1
  101. package/dist/tools/auth.js +32 -31
  102. package/dist/tools/auth.js.map +1 -1
  103. package/dist/tools/cache.d.ts +1 -1
  104. package/dist/tools/cache.d.ts.map +1 -1
  105. package/dist/tools/cache.js +71 -71
  106. package/dist/tools/cache.js.map +1 -1
  107. package/dist/tools/comments.d.ts +2 -2
  108. package/dist/tools/comments.d.ts.map +1 -1
  109. package/dist/tools/comments.js +79 -79
  110. package/dist/tools/comments.js.map +1 -1
  111. package/dist/tools/index.d.ts +10 -10
  112. package/dist/tools/index.js +10 -10
  113. package/dist/tools/media.d.ts +2 -2
  114. package/dist/tools/media.js +80 -80
  115. package/dist/tools/pages.d.ts +2 -2
  116. package/dist/tools/pages.d.ts.map +1 -1
  117. package/dist/tools/pages.js +75 -75
  118. package/dist/tools/pages.js.map +1 -1
  119. package/dist/tools/performance.d.ts +1 -1
  120. package/dist/tools/performance.d.ts.map +1 -1
  121. package/dist/tools/performance.js +311 -287
  122. package/dist/tools/performance.js.map +1 -1
  123. package/dist/tools/posts.d.ts +2 -2
  124. package/dist/tools/posts.d.ts.map +1 -1
  125. package/dist/tools/posts.js +94 -94
  126. package/dist/tools/posts.js.map +1 -1
  127. package/dist/tools/site.d.ts +2 -2
  128. package/dist/tools/site.d.ts.map +1 -1
  129. package/dist/tools/site.js +60 -60
  130. package/dist/tools/site.js.map +1 -1
  131. package/dist/tools/taxonomies.d.ts +2 -2
  132. package/dist/tools/taxonomies.js +89 -89
  133. package/dist/tools/users.d.ts +2 -2
  134. package/dist/tools/users.js +68 -68
  135. package/dist/tools/users.js.map +1 -1
  136. package/dist/types/client.d.ts +13 -13
  137. package/dist/types/client.d.ts.map +1 -1
  138. package/dist/types/client.js +12 -12
  139. package/dist/types/client.js.map +1 -1
  140. package/dist/types/index.d.ts +19 -19
  141. package/dist/types/index.d.ts.map +1 -1
  142. package/dist/types/index.js +3 -3
  143. package/dist/types/mcp.d.ts +7 -7
  144. package/dist/types/wordpress.d.ts +21 -21
  145. package/dist/types/wordpress.d.ts.map +1 -1
  146. package/dist/utils/debug.d.ts +2 -2
  147. package/dist/utils/debug.js +28 -28
  148. package/dist/utils/error.d.ts.map +1 -1
  149. package/dist/utils/error.js +13 -13
  150. package/dist/utils/error.js.map +1 -1
  151. package/dist/utils/toolWrapper.d.ts.map +1 -1
  152. package/dist/utils/toolWrapper.js +5 -5
  153. package/dist/utils/toolWrapper.js.map +1 -1
  154. package/dist/utils/validation.d.ts.map +1 -1
  155. package/dist/utils/validation.js +41 -31
  156. package/dist/utils/validation.js.map +1 -1
  157. package/docs/CACHING.md +36 -2
  158. package/docs/DOCKER.md +24 -18
  159. package/docs/PERFORMANCE_MONITORING.md +49 -1
  160. package/docs/SECURITY_TESTING.md +30 -1
  161. package/docs/api/README.md +9 -1
  162. package/docs/api/summary.json +1 -1
  163. package/docs/contract-testing.md +24 -3
  164. package/docs/developer/GITHUB_ACTIONS_SETUP.md +8 -2
  165. package/docs/developer/MAINTENANCE.md +29 -3
  166. package/docs/developer/MIGRATION_GUIDE.md +13 -1
  167. package/docs/developer/NPM_AUTH_SETUP.md +13 -2
  168. package/docs/developer/REFACTORING.md +31 -1
  169. package/docs/releases/COMMUNITY_ANNOUNCEMENT_v1.1.2.md +18 -7
  170. package/docs/releases/RELEASE_NOTES_v1.1.2.md +31 -5
  171. package/docs/user-guides/DOCKER_SETUP.md +264 -0
  172. package/docs/user-guides/DTX_SETUP.md +327 -0
  173. package/docs/user-guides/NPM_SETUP.md +109 -0
  174. package/docs/user-guides/NPX_SETUP.md +281 -0
  175. package/docs/wordpress-rest-api-authentication-troubleshooting.md +13 -2
  176. package/package.json +27 -8
  177. package/src/cache/CacheInvalidation.ts +140 -132
  178. package/src/cache/CacheManager.ts +40 -29
  179. package/src/cache/HttpCacheWrapper.ts +105 -68
  180. package/src/cache/__tests__/CacheInvalidation.test.ts +123 -118
  181. package/src/cache/__tests__/CacheManager.test.ts +156 -152
  182. package/src/cache/__tests__/CachedWordPressClient.test.ts +131 -116
  183. package/src/cache/__tests__/HttpCacheWrapper.test.ts +118 -115
  184. package/src/cache/index.ts +13 -13
  185. package/src/client/CachedWordPressClient.ts +90 -80
  186. package/src/client/api.ts +205 -205
  187. package/src/client/auth.ts +80 -80
  188. package/src/client/managers/AuthenticationManager.ts +61 -61
  189. package/src/client/managers/BaseManager.ts +11 -11
  190. package/src/client/managers/RequestManager.ts +79 -47
  191. package/src/client/managers/index.ts +3 -3
  192. package/src/config/ConfigurationSchema.ts +44 -44
  193. package/src/config/ServerConfiguration.ts +39 -39
  194. package/src/docs/DocumentationGenerator.ts +402 -295
  195. package/src/docs/MarkdownFormatter.ts +94 -69
  196. package/src/docs/index.ts +4 -4
  197. package/src/index.ts +24 -21
  198. package/src/performance/MetricsCollector.ts +90 -58
  199. package/src/performance/PerformanceAnalytics.ts +386 -262
  200. package/src/performance/PerformanceMonitor.ts +152 -118
  201. package/src/performance/index.ts +9 -9
  202. package/src/security/InputValidator.ts +148 -91
  203. package/src/security/SecurityConfig.ts +94 -94
  204. package/src/server/ConnectionTester.ts +21 -15
  205. package/src/server/ToolRegistry.ts +64 -51
  206. package/src/server.ts +2 -2
  207. package/src/tools/BaseToolManager.ts +6 -6
  208. package/src/tools/auth.ts +42 -37
  209. package/src/tools/cache.ts +85 -81
  210. package/src/tools/comments.ts +93 -91
  211. package/src/tools/index.ts +10 -10
  212. package/src/tools/media.ts +89 -89
  213. package/src/tools/pages.ts +89 -87
  214. package/src/tools/performance.ts +443 -352
  215. package/src/tools/posts.ts +109 -107
  216. package/src/tools/site.ts +86 -77
  217. package/src/tools/taxonomies.ts +102 -102
  218. package/src/tools/users.ts +77 -77
  219. package/src/types/client.ts +157 -60
  220. package/src/types/index.ts +49 -27
  221. package/src/types/mcp.ts +15 -15
  222. package/src/types/wordpress.ts +57 -29
  223. package/src/utils/debug.ts +37 -37
  224. package/src/utils/error.ts +47 -25
  225. package/src/utils/toolWrapper.ts +12 -8
  226. package/src/utils/validation.ts +116 -65
  227. package/dist/client/WordPressClient.d.ts +0 -81
  228. package/dist/client/WordPressClient.d.ts.map +0 -1
  229. package/dist/client/WordPressClient.js +0 -354
  230. package/dist/client/WordPressClient.js.map +0 -1
  231. package/dist/performance/AnomalyDetector.d.ts +0 -63
  232. package/dist/performance/AnomalyDetector.d.ts.map +0 -1
  233. package/dist/performance/AnomalyDetector.js +0 -222
  234. package/dist/performance/AnomalyDetector.js.map +0 -1
  235. package/dist/performance/BenchmarkAnalyzer.d.ts +0 -67
  236. package/dist/performance/BenchmarkAnalyzer.d.ts.map +0 -1
  237. package/dist/performance/BenchmarkAnalyzer.js +0 -301
  238. package/dist/performance/BenchmarkAnalyzer.js.map +0 -1
  239. package/dist/performance/TrendAnalyzer.d.ts +0 -69
  240. package/dist/performance/TrendAnalyzer.d.ts.map +0 -1
  241. package/dist/performance/TrendAnalyzer.js +0 -203
  242. package/dist/performance/TrendAnalyzer.js.map +0 -1
  243. package/dist/tools/BaseToolClass.d.ts +0 -76
  244. package/dist/tools/BaseToolClass.d.ts.map +0 -1
  245. package/dist/tools/BaseToolClass.js +0 -104
  246. package/dist/tools/BaseToolClass.js.map +0 -1
  247. package/dist/tools/base.d.ts +0 -37
  248. package/dist/tools/base.d.ts.map +0 -1
  249. package/dist/tools/base.js +0 -60
  250. package/dist/tools/base.js.map +0 -1
  251. package/docs/user-guides/CLAUDE_DESKTOP_SETUP.md +0 -187
package/README.md CHANGED
@@ -7,9 +7,9 @@
7
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.
8
8
 
9
9
  [![NPM Version](https://img.shields.io/npm/v/mcp-wordpress)](https://www.npmjs.com/package/mcp-wordpress)
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)
10
+ [![Test Coverage](https://img.shields.io/badge/test%20coverage-95%25%2B-brightgreen)](https://github.com/docdyhr/mcp-wordpress)
11
+ [![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue)](https://github.com/docdyhr/mcp-wordpress)
12
+ [![Architecture](https://img.shields.io/badge/architecture-modular-orange)](https://github.com/docdyhr/mcp-wordpress/blob/main/REFACTORING.md)
13
13
 
14
14
  ## ๐Ÿš€ Features
15
15
 
@@ -30,36 +30,28 @@ A comprehensive Model Context Protocol (MCP) server for WordPress management thr
30
30
 
31
31
  ## โšก Quick Start
32
32
 
33
- ### Option 1: NPX (Recommended)
33
+ Choose your preferred setup method:
34
34
 
35
- The easiest way to get started - no installation required:
35
+ - ๐Ÿš€ **[NPX Setup](docs/user-guides/NPX_SETUP.md)** - Zero installation, always latest version
36
+ - ๐Ÿ’ป **[NPM Setup](docs/user-guides/NPM_SETUP.md)** - Local development and customization
37
+ - ๐Ÿณ **[Docker Setup](docs/user-guides/DOCKER_SETUP.md)** - Containerized deployment
38
+ - ๐Ÿ“ฆ **[DTX Setup](docs/user-guides/DTX_SETUP.md)** - Claude Desktop Extension package
39
+
40
+ ### Ultra-Quick NPX Start
36
41
 
37
42
  ```bash
38
- # Run directly with NPX
39
- npx mcp-wordpress
43
+ # Run directly with NPX (recommended)
44
+ npx -y mcp-wordpress
40
45
 
41
46
  # Or install globally
42
47
  npm install -g mcp-wordpress
43
48
  mcp-wordpress
44
49
  ```
45
50
 
46
- ### Option 2: Local Development
47
-
48
- ```bash
49
- git clone https://github.com/thomasdyhr/mcp-wordpress.git
50
- cd mcp-wordpress
51
- npm install
52
- npm run setup
53
- npm start
54
- ```
55
-
56
51
  ### Setup Wizard
57
52
 
58
53
  ```bash
59
- # For NPX users
60
- npx mcp-wordpress setup
61
-
62
- # For local installation
54
+ # For any installation method
63
55
  npm run setup
64
56
  ```
65
57
 
@@ -128,17 +120,17 @@ We've implemented a **comprehensive performance monitoring system**, **intellige
128
120
  - [API Documentation](./docs/api/README.md)
129
121
  - [Docker Deployment Guide](./docs/DOCKER.md)
130
122
 
131
- ## ๐Ÿ” Authentication & Testing Status (v1.2.1)
123
+ ## ๐Ÿ” Authentication & Testing Status (v1.2.4+)
132
124
 
133
125
  โœ… **Application Passwords** - Tested and working perfectly
134
126
  โœ… **JWT Authentication** - Supported with plugin
135
127
  โœ… **Basic Authentication** - Development ready
136
128
  โœ… **API Key Authentication** - Plugin-based support
137
- โœ… **Integration Tests** - 100% success rate (9/9 tests passing)
138
- โœ… **Multi-Site Tests** - 100% success rate (3/3 sites verified)
129
+ โœ… **Main Test Suite** - 100% success rate (144/144 tests passing)
139
130
  โœ… **Security Tests** - 100% success rate (40/40 tests passing)
140
131
  โœ… **Performance Tests** - 100% success rate (8/8 tests passing)
141
132
  โœ… **Tool Tests** - 100% success rate (14/14 tools working)
133
+ โœ… **CI/CD Pipeline** - Fully functional with automated publishing
142
134
 
143
135
  The setup wizard guides you through:
144
136
 
@@ -147,55 +139,47 @@ The setup wizard guides you through:
147
139
  - Connection testing
148
140
  - Claude Desktop configuration
149
141
 
150
- ## ๐Ÿš€ Lazy Setup via Claude Desktop
142
+ ## ๐Ÿš€ Claude Desktop Integration
151
143
 
152
- ### Super Easy NPX Setup
144
+ ### ๐Ÿ“– Complete Setup Guides
153
145
 
154
- If you want the absolute easiest setup, just paste this prompt into Claude Desktop:
155
-
156
- ```text
157
- Set up the MCP WordPress server using NPX for my Claude Desktop.
146
+ For detailed setup instructions, see our comprehensive guides:
158
147
 
159
- My WordPress details:
160
- - Site URL: [YOUR_WORDPRESS_URL]
161
- - Username: [YOUR_USERNAME]
148
+ - **[NPX Setup Guide](docs/user-guides/NPX_SETUP.md)** - Zero installation method
149
+ - **[NPM Setup Guide](docs/user-guides/NPM_SETUP.md)** - Local development
150
+ - **[Docker Setup Guide](docs/user-guides/DOCKER_SETUP.md)** - Containerized deployment
151
+ - **[DTX Setup Guide](docs/user-guides/DTX_SETUP.md)** - Desktop Extension package
162
152
 
163
- Please:
164
- 1. Help me create a WordPress Application Password
165
- 2. Configure my Claude Desktop mcp.json file with the NPX command
166
- 3. Test the connection to make sure everything works
167
- 4. Show me how to use the WordPress tools
153
+ ### ๐Ÿค– Claude Desktop Quick Prompts
168
154
 
169
- I want to use the NPX version (mcp-wordpress) so I don't need to install anything locally.
155
+ **For NPX Users (Easiest):**
156
+ ```text
157
+ Set up MCP WordPress using NPX. My site: [YOUR_SITE_URL], username: [YOUR_USERNAME]. Help with application password creation and Claude Desktop configuration.
170
158
  ```
171
159
 
172
- ### Full Local Development Setup
173
-
174
- For local development and customization:
175
-
160
+ **For Local Development:**
176
161
  ```text
177
- Build and configure the MCP WordPress server project from https://github.com/thomasdyhr/mcp-wordpress locally on my computer.
162
+ Set up MCP WordPress locally from GitHub. Clone, install, configure for my site: [YOUR_SITE_URL], username: [YOUR_USERNAME]. Include Claude Desktop setup.
163
+ ```
178
164
 
179
- Please:
180
- 1. Clone the repository to an appropriate directory
181
- 2. Install all dependencies
182
- 3. Run the setup wizard and help me configure my WordPress connection
183
- 4. Test the connection to make sure everything works
184
- 5. Set up the Claude Desktop MCP configuration
185
- 6. Run a quick test to verify all tools are working
165
+ **Replace placeholders with your actual WordPress details - Claude will handle the rest!**
186
166
 
187
- My WordPress site URL is: [YOUR_WORDPRESS_URL]
188
- My WordPress username is: [YOUR_USERNAME]
167
+ ## ๐Ÿ”ง Configuration
189
168
 
190
- Guide me through any steps that require manual input, and let me know if you need any additional information from me.
191
- ```
169
+ The MCP WordPress server supports multiple configuration methods to fit different needs.
192
170
 
193
- **Just replace `[YOUR_WORDPRESS_URL]` and `[YOUR_USERNAME]` with your actual WordPress site details, and Claude will handle the rest!**
171
+ ### Setup Methods Overview
194
172
 
195
- ## ๐Ÿ”ง Configuration
173
+ | Method | Best For | Configuration File |
174
+ |--------|----------|---------------------|
175
+ | **NPX** | Quick start, always latest | Claude Desktop config only |
176
+ | **NPM** | Local development | `.env` or Claude Desktop config |
177
+ | **Docker** | Production deployment | Environment variables or mounted config |
178
+ | **DTX** | Simple GUI setup | DTX config + optional multi-site file |
196
179
 
197
- ### Environment Variables (.env)
180
+ ### Environment Variables
198
181
 
182
+ **Core Configuration:**
199
183
  ```env
200
184
  WORDPRESS_SITE_URL=https://your-wordpress-site.com
201
185
  WORDPRESS_USERNAME=your-username
@@ -204,118 +188,38 @@ WORDPRESS_AUTH_METHOD=app-password
204
188
  DEBUG=false
205
189
  ```
206
190
 
207
- ### Claude Desktop Integration
208
-
209
- Configure MCP WordPress Server in your Claude Desktop `mcp.json` configuration file:
210
-
211
- #### Option 1: NPX (Recommended)
212
-
213
- ```json
214
- {
215
- "mcpServers": {
216
- "mcp-wordpress": {
217
- "command": "npx",
218
- "args": ["mcp-wordpress"],
219
- "env": {
220
- "WORDPRESS_SITE_URL": "https://your-site.com",
221
- "WORDPRESS_USERNAME": "your-username",
222
- "WORDPRESS_APP_PASSWORD": "your-app-password",
223
- "WORDPRESS_AUTH_METHOD": "app-password"
224
- }
225
- }
226
- }
227
- }
228
- ```
229
-
230
- #### Option 2: Global Installation
231
-
232
- ```json
233
- {
234
- "mcpServers": {
235
- "mcp-wordpress": {
236
- "command": "mcp-wordpress",
237
- "env": {
238
- "WORDPRESS_SITE_URL": "https://your-site.com",
239
- "WORDPRESS_USERNAME": "your-username",
240
- "WORDPRESS_APP_PASSWORD": "your-app-password",
241
- "WORDPRESS_AUTH_METHOD": "app-password"
242
- }
243
- }
244
- }
245
- }
246
- ```
247
-
248
- #### Option 3: Local Development
191
+ **๐Ÿ“– Detailed Configuration Guides:**
192
+ - **[NPX Configuration](docs/user-guides/NPX_SETUP.md#quick-start)** - Claude Desktop environment variables
193
+ - **[NPM Configuration](docs/user-guides/NPM_SETUP.md#configuration)** - Local `.env` file setup
194
+ - **[Docker Configuration](docs/user-guides/DOCKER_SETUP.md#configuration)** - Container environment setup
195
+ - **[DTX Configuration](docs/user-guides/DTX_SETUP.md#configuration)** - Extension package setup
249
196
 
250
- ```json
251
- {
252
- "mcpServers": {
253
- "mcp-wordpress": {
254
- "command": "node",
255
- "args": ["/path/to/mcp-wordpress/dist/index.js"],
256
- "env": {
257
- "WORDPRESS_SITE_URL": "https://your-site.com",
258
- "WORDPRESS_USERNAME": "your-username",
259
- "WORDPRESS_APP_PASSWORD": "your-app-password",
260
- "WORDPRESS_AUTH_METHOD": "app-password"
261
- }
262
- }
263
- }
264
- }
265
- ```
266
-
267
- #### Using .env File (Any Option)
268
-
269
- If you prefer to use a `.env` file instead of environment variables in the config:
270
-
271
- ```json
272
- {
273
- "mcpServers": {
274
- "mcp-wordpress": {
275
- "command": "npx",
276
- "args": ["mcp-wordpress"],
277
- "env": {
278
- "NODE_ENV": "production"
279
- }
280
- }
281
- }
282
- }
283
- ```
284
-
285
- ### Claude Desktop Configuration File Locations
197
+ ### Claude Desktop Integration
286
198
 
199
+ **Configuration File Locations:**
287
200
  - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
288
201
  - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
289
202
  - **Linux**: `~/.config/Claude/claude_desktop_config.json`
290
203
 
291
- ### Quick Configuration Steps
292
-
293
- 1. **Create or locate your Claude Desktop config file** at the path above
294
- 2. **Add the MCP server configuration** using one of the options above
295
- 3. **Restart Claude Desktop** for changes to take effect
296
- 4. **Verify the connection** - you should see WordPress tools available in Claude Desktop
297
-
298
- ### Example Complete Configuration
299
-
300
- Here's a complete `claude_desktop_config.json` file with MCP WordPress:
301
-
204
+ **Quick NPX Example:**
302
205
  ```json
303
206
  {
304
207
  "mcpServers": {
305
208
  "mcp-wordpress": {
306
209
  "command": "npx",
307
- "args": ["mcp-wordpress"],
210
+ "args": ["-y", "mcp-wordpress"],
308
211
  "env": {
309
212
  "WORDPRESS_SITE_URL": "https://your-site.com",
310
213
  "WORDPRESS_USERNAME": "your-username",
311
- "WORDPRESS_APP_PASSWORD": "your-app-password",
312
- "WORDPRESS_AUTH_METHOD": "app-password"
214
+ "WORDPRESS_APP_PASSWORD": "your-app-password"
313
215
  }
314
216
  }
315
217
  }
316
218
  }
317
219
  ```
318
220
 
221
+ ๐Ÿ”— **See the detailed setup guides above for complete configuration examples for each method.**
222
+
319
223
  ## ๐ŸŒ Multi-Site Configuration
320
224
 
321
225
  MCP WordPress Server supports managing multiple WordPress sites from a single configuration. This is perfect for agencies, developers managing multiple client sites, or anyone with multiple WordPress installations.
@@ -603,12 +507,14 @@ WORDPRESS_API_KEY=your-api-key
603
507
 
604
508
  ### Current Test Status โœ…
605
509
 
606
- - **TypeScript Build Tests**: 19/19 passed (100%)
607
- - **Environment Loading Tests**: 7/7 passed (100%)
608
- - **Tool Functionality Tests**: 14/15 passed (93%)
609
- - **Upload Timeout Tests**: 11/12 passed (92%)
610
- - **Contract Tests**: 5/8 passed (62.5%) - See [Contract Testing](#contract-testing) section
611
- - **Overall Success Rate**: 93-98%
510
+ - **Main Test Suite**: 144/144 passed (100%) - Optimized for CI/CD reliability
511
+ - **TypeScript Build Tests**: 21/21 passed (100%)
512
+ - **Security Tests**: 40/40 passed (100%) - Comprehensive vulnerability testing
513
+ - **Configuration Tests**: 27/27 passed (100%) - Multi-site validation
514
+ - **Property-Based Tests**: 12/12 passed (100%) - Generative testing
515
+ - **Performance Tests**: 8/8 passed (100%) - Regression detection
516
+ - **Contract Tests**: Available via dedicated command when needed
517
+ - **Overall Success Rate**: 100% - All critical functionality verified
612
518
 
613
519
  ### Test Commands
614
520
 
@@ -781,43 +687,61 @@ DEBUG=true npm run dev
781
687
 
782
688
  ## ๐Ÿณ Docker Support
783
689
 
690
+ Docker support with production-ready containers and Claude Desktop integration.
691
+
784
692
  ### Quick Docker Start
785
693
 
786
694
  ```bash
787
- # Using Docker Hub image
788
- docker run -d \
789
- --name mcp-wordpress \
695
+ # Single-site with environment variables
696
+ docker run --rm -i \
790
697
  -e WORDPRESS_SITE_URL=https://your-site.com \
791
698
  -e WORDPRESS_USERNAME=your-username \
792
699
  -e WORDPRESS_APP_PASSWORD=your-app-password \
793
- aiondadotcom/mcp-wordpress:latest
700
+ docdyhr/mcp-wordpress:latest
794
701
 
795
- # Using Docker Compose
796
- curl -O https://raw.githubusercontent.com/thomasdyhr/mcp-wordpress/main/docker-compose.yml
797
- docker-compose up -d
702
+ # Multi-site with config file
703
+ docker run --rm -i \
704
+ -v ./mcp-wordpress.config.json:/app/mcp-wordpress.config.json:ro \
705
+ docdyhr/mcp-wordpress:latest
798
706
  ```
799
707
 
800
- ### Production Deployment
801
-
802
- ```yaml
803
- version: '3.8'
804
- services:
805
- mcp-wordpress:
806
- image: aiondadotcom/mcp-wordpress:latest
807
- restart: unless-stopped
808
- environment:
809
- - WORDPRESS_SITE_URL=https://your-site.com
810
- - WORDPRESS_USERNAME=your-username
811
- - WORDPRESS_APP_PASSWORD=your-app-password
812
- - NODE_ENV=production
813
- volumes:
814
- - ./logs:/app/logs
815
- - ./cache:/app/cache
816
- ports:
817
- - "3000:3000"
708
+ ### Claude Desktop Docker Integration
709
+
710
+ **Single-Site:**
711
+ ```json
712
+ {
713
+ "mcpServers": {
714
+ "mcp-wordpress": {
715
+ "command": "docker",
716
+ "args": [
717
+ "run", "--rm", "-i",
718
+ "-e", "WORDPRESS_SITE_URL=https://your-site.com",
719
+ "-e", "WORDPRESS_USERNAME=your-username",
720
+ "-e", "WORDPRESS_APP_PASSWORD=your-app-password",
721
+ "docdyhr/mcp-wordpress:latest"
722
+ ]
723
+ }
724
+ }
725
+ }
726
+ ```
727
+
728
+ **Multi-Site:**
729
+ ```json
730
+ {
731
+ "mcpServers": {
732
+ "mcp-wordpress": {
733
+ "command": "docker",
734
+ "args": [
735
+ "run", "--rm", "-i",
736
+ "-v", "/path/to/mcp-wordpress.config.json:/app/mcp-wordpress.config.json:ro",
737
+ "docdyhr/mcp-wordpress:latest"
738
+ ]
739
+ }
740
+ }
741
+ }
818
742
  ```
819
743
 
820
- **๐Ÿ“– Full Docker Documentation**: [docs/DOCKER.md](./docs/DOCKER.md)
744
+ **๐Ÿ“– Complete Docker Guide**: [docs/user-guides/DOCKER_SETUP.md](docs/user-guides/DOCKER_SETUP.md)
821
745
 
822
746
  ## ๐Ÿงช Contract Testing with Live WordPress
823
747
 
@@ -888,3 +812,107 @@ npm run test:contracts
888
812
  - One-command deployment to any Docker environment
889
813
 
890
814
  **๐Ÿ“š Read the full release notes for all details!**
815
+
816
+ ## ๐Ÿš€ Release & Publishing
817
+
818
+ This project uses automated semantic versioning and publishing to NPM and Docker Hub.
819
+
820
+ ### ๐Ÿ“ฆ Installation Options
821
+
822
+ **NPM Package:**
823
+
824
+ ```bash
825
+ # Latest stable version
826
+ npm install -g mcp-wordpress
827
+
828
+ # Specific version
829
+ npm install -g mcp-wordpress@1.2.2
830
+
831
+ # Use with npx (no installation)
832
+ npx mcp-wordpress
833
+ ```
834
+
835
+ **Docker Images:**
836
+
837
+ ```bash
838
+ # Latest stable version
839
+ docker pull docdyhr/mcp-wordpress:latest
840
+
841
+ # Specific version
842
+ docker pull docdyhr/mcp-wordpress:1.2.2
843
+
844
+ # Test container (interactive)
845
+ docker run --rm -i docdyhr/mcp-wordpress:latest
846
+ ```
847
+
848
+ ### ๐Ÿท๏ธ Release Process
849
+
850
+ **Automated Releases:**
851
+
852
+ - Releases are automatically created when conventional commits are pushed to the `main` branch
853
+ - Semantic versioning determines the version bump automatically
854
+ - NPM and Docker Hub publishing happens automatically on release
855
+
856
+ **Conventional Commit Format:**
857
+
858
+ ```bash
859
+ # Patch release (1.2.2 โ†’ 1.2.4)
860
+ fix: resolve authentication timeout issue
861
+
862
+ # Minor release (1.2.2 โ†’ 1.3.0)
863
+ feat: add new performance monitoring tools
864
+
865
+ # Major release (1.2.2 โ†’ 2.0.0)
866
+ feat!: redesign MCP tool interface
867
+ BREAKING CHANGE: tool parameter structure has changed
868
+ ```
869
+
870
+ **Manual Release (if needed):**
871
+
872
+ ```bash
873
+ # Test release locally
874
+ npm run release:dry
875
+
876
+ # Create release manually (requires proper permissions)
877
+ npm run release
878
+ ```
879
+
880
+ ### ๐Ÿ“‹ Release Checklist
881
+
882
+ For contributors planning releases:
883
+
884
+ 1. **Pre-Release Validation:**
885
+ - โœ… All tests passing (`npm test`)
886
+ - โœ… Documentation updated
887
+ - โœ… Performance benchmarks within acceptable range
888
+ - โœ… Security audit clean (`npm audit`)
889
+
890
+ 2. **Commit with Conventional Format:**
891
+
892
+ ```bash
893
+ git add .
894
+ git commit -m "feat: add new functionality"
895
+ git push origin main
896
+ ```
897
+
898
+ 3. **Automated Process Handles:**
899
+ - ๐Ÿ“ Generate release notes
900
+ - ๐Ÿท๏ธ Create GitHub release
901
+ - ๐Ÿ“ฆ Publish to NPM with provenance
902
+ - ๐Ÿณ Build and push Docker images (multi-arch)
903
+ - ๐Ÿ“š Update CHANGELOG.md
904
+ - ๐Ÿ”— Update Docker Hub description
905
+
906
+ ### ๐ŸŒ Distribution Channels
907
+
908
+ - **NPM:** [`mcp-wordpress`](https://www.npmjs.com/package/mcp-wordpress)
909
+ - **Docker Hub:** [`docdyhr/mcp-wordpress`](https://hub.docker.com/r/docdyhr/mcp-wordpress)
910
+ - **GitHub Releases:** [Latest releases](https://github.com/docdyhr/mcp-wordpress/releases)
911
+
912
+ ---
913
+
914
+ ## ๐Ÿ™ Acknowledgments
915
+
916
+ Special thanks to **[Stephan Ferraro](https://github.com/ferraro)** for the upstream main project that inspired this implementation.
917
+
918
+ > *"We are all standing on the shoulders of giants"*
@@ -2,7 +2,7 @@
2
2
  * Intelligent cache invalidation strategies for WordPress MCP Server
3
3
  * Implements event-based and pattern-based invalidation
4
4
  */
5
- import { HttpCacheWrapper } from './HttpCacheWrapper.js';
5
+ import { HttpCacheWrapper } from "./HttpCacheWrapper.js";
6
6
  export interface InvalidationRule {
7
7
  trigger: string;
8
8
  patterns: string[];
@@ -10,7 +10,7 @@ export interface InvalidationRule {
10
10
  cascade?: boolean;
11
11
  }
12
12
  export interface InvalidationEvent {
13
- type: 'create' | 'update' | 'delete';
13
+ type: "create" | "update" | "delete";
14
14
  resource: string;
15
15
  id?: number | undefined;
16
16
  siteId: string;
@@ -37,7 +37,7 @@ export declare class CacheInvalidation {
37
37
  /**
38
38
  * Invalidate cache for specific resource
39
39
  */
40
- invalidateResource(resource: string, id?: number, type?: 'create' | 'update' | 'delete'): Promise<void>;
40
+ invalidateResource(resource: string, id?: number, type?: "create" | "update" | "delete"): Promise<void>;
41
41
  /**
42
42
  * Setup default invalidation rules
43
43
  */
@@ -1 +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"}
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;IA0BnC;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;KACnB;IAWH;;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"}