mcp-wordpress 1.1.7 → 1.2.2

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 +388 -66
  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 +84 -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/docs/DOCKER.md ADDED
@@ -0,0 +1,451 @@
1
+ # Docker Deployment Guide
2
+
3
+ ![Docker](https://img.shields.io/badge/Docker-ready-blue)
4
+ ![Version](https://img.shields.io/badge/version-1.2.0-green)
5
+ ![Security](https://img.shields.io/badge/security-hardened-brightgreen)
6
+
7
+ This guide covers deploying the MCP WordPress Server using Docker for production and development environments.
8
+
9
+ ## 🚀 Quick Start
10
+
11
+ ### Option 1: Docker Hub (Recommended)
12
+
13
+ ```bash
14
+ # Pull and run the latest image
15
+ docker run -d \
16
+ --name mcp-wordpress \
17
+ --restart unless-stopped \
18
+ -e WORDPRESS_SITE_URL=https://your-site.com \
19
+ -e WORDPRESS_USERNAME=your-username \
20
+ -e WORDPRESS_APP_PASSWORD=your-app-password \
21
+ aiondadotcom/mcp-wordpress:latest
22
+ ```
23
+
24
+ ### Option 2: Docker Compose
25
+
26
+ ```bash
27
+ # Download the compose file
28
+ curl -O https://raw.githubusercontent.com/AiondaDotCom/mcp-wordpress/main/docker-compose.yml
29
+
30
+ # Configure environment variables (see below)
31
+ # Start the service
32
+ docker-compose up -d
33
+ ```
34
+
35
+ ### Option 3: Build from Source
36
+
37
+ ```bash
38
+ # Clone the repository
39
+ git clone https://github.com/AiondaDotCom/mcp-wordpress.git
40
+ cd mcp-wordpress
41
+
42
+ # Build the image
43
+ docker build -t mcp-wordpress .
44
+
45
+ # Run the container
46
+ docker run -d --name mcp-wordpress mcp-wordpress
47
+ ```
48
+
49
+ ## 📋 Configuration
50
+
51
+ ### Environment Variables
52
+
53
+ | Variable | Required | Description | Example |
54
+ |----------|----------|-------------|---------|
55
+ | `WORDPRESS_SITE_URL` | ✅ | WordPress site URL | `https://example.com` |
56
+ | `WORDPRESS_USERNAME` | ✅ | WordPress username | `admin` |
57
+ | `WORDPRESS_APP_PASSWORD` | ✅ | Application password | `xxxx xxxx xxxx xxxx xxxx xxxx` |
58
+ | `WORDPRESS_AUTH_METHOD` | ❌ | Authentication method | `app-password` (default) |
59
+ | `NODE_ENV` | ❌ | Environment mode | `production` |
60
+ | `DEBUG` | ❌ | Enable debug logging | `false` |
61
+ | `DISABLE_CACHE` | ❌ | Disable caching system | `false` |
62
+
63
+ ### Multi-Site Configuration
64
+
65
+ For multi-site setups, mount a configuration file:
66
+
67
+ ```bash
68
+ docker run -d \
69
+ --name mcp-wordpress \
70
+ -v ./mcp-wordpress.config.json:/app/config/mcp-wordpress.config.json:ro \
71
+ aiondadotcom/mcp-wordpress:latest
72
+ ```
73
+
74
+ **Example `mcp-wordpress.config.json`:**
75
+ ```json
76
+ {
77
+ \"sites\": [
78
+ {
79
+ \"id\": \"site1\",
80
+ \"name\": \"Production Site\",
81
+ \"config\": {
82
+ \"WORDPRESS_SITE_URL\": \"https://site1.com\",
83
+ \"WORDPRESS_USERNAME\": \"admin\",
84
+ \"WORDPRESS_APP_PASSWORD\": \"xxxx xxxx xxxx xxxx xxxx xxxx\"
85
+ }
86
+ },
87
+ {
88
+ \"id\": \"site2\",
89
+ \"name\": \"Staging Site\",
90
+ \"config\": {
91
+ \"WORDPRESS_SITE_URL\": \"https://staging.site2.com\",
92
+ \"WORDPRESS_USERNAME\": \"staging-user\",
93
+ \"WORDPRESS_APP_PASSWORD\": \"yyyy yyyy yyyy yyyy yyyy yyyy\"
94
+ }
95
+ }
96
+ ]
97
+ }
98
+ ```
99
+
100
+ ## 🐳 Docker Compose
101
+
102
+ ### Basic Setup
103
+
104
+ **docker-compose.yml:**
105
+ ```yaml
106
+ version: '3.8'
107
+
108
+ services:
109
+ mcp-wordpress:
110
+ image: aiondadotcom/mcp-wordpress:latest
111
+ container_name: mcp-wordpress
112
+ restart: unless-stopped
113
+ environment:
114
+ - WORDPRESS_SITE_URL=https://your-site.com
115
+ - WORDPRESS_USERNAME=your-username
116
+ - WORDPRESS_APP_PASSWORD=your-app-password
117
+ - NODE_ENV=production
118
+ volumes:
119
+ # Optional: Mount config for multi-site
120
+ - ./mcp-wordpress.config.json:/app/config/mcp-wordpress.config.json:ro
121
+ # Optional: Persist logs
122
+ - ./logs:/app/logs
123
+ # Optional: Persist cache
124
+ - ./cache:/app/cache
125
+ healthcheck:
126
+ test: [\"CMD\", \"node\", \"dist/index.js\", \"--health-check\"]
127
+ interval: 30s
128
+ timeout: 10s
129
+ retries: 3
130
+ start_period: 40s
131
+ ```
132
+
133
+ ### Development Environment
134
+
135
+ For local development with WordPress and database:
136
+
137
+ ```bash
138
+ # Start with development profile
139
+ docker-compose up --profile dev
140
+
141
+ # This includes:
142
+ # - MCP WordPress Server
143
+ # - WordPress instance (http://localhost:8080)
144
+ # - MySQL database
145
+ ```
146
+
147
+ ## 🏗️ Production Deployment
148
+
149
+ ### Docker Swarm
150
+
151
+ ```yaml
152
+ version: '3.8'
153
+
154
+ services:
155
+ mcp-wordpress:
156
+ image: aiondadotcom/mcp-wordpress:latest
157
+ deploy:
158
+ replicas: 2
159
+ restart_policy:
160
+ condition: on-failure
161
+ delay: 5s
162
+ max_attempts: 3
163
+ resources:
164
+ limits:
165
+ memory: 512M
166
+ reservations:
167
+ memory: 256M
168
+ environment:
169
+ - NODE_ENV=production
170
+ secrets:
171
+ - wordpress_config
172
+ networks:
173
+ - mcp-network
174
+
175
+ secrets:
176
+ wordpress_config:
177
+ external: true
178
+
179
+ networks:
180
+ mcp-network:
181
+ driver: overlay
182
+ ```
183
+
184
+ ### Kubernetes
185
+
186
+ **deployment.yaml:**
187
+ ```yaml
188
+ apiVersion: apps/v1
189
+ kind: Deployment
190
+ metadata:
191
+ name: mcp-wordpress
192
+ spec:
193
+ replicas: 3
194
+ selector:
195
+ matchLabels:
196
+ app: mcp-wordpress
197
+ template:
198
+ metadata:
199
+ labels:
200
+ app: mcp-wordpress
201
+ spec:
202
+ containers:
203
+ - name: mcp-wordpress
204
+ image: aiondadotcom/mcp-wordpress:latest
205
+ ports:
206
+ - containerPort: 3000
207
+ env:
208
+ - name: NODE_ENV
209
+ value: \"production\"
210
+ - name: WORDPRESS_SITE_URL
211
+ valueFrom:
212
+ secretKeyRef:
213
+ name: wordpress-secrets
214
+ key: site-url
215
+ - name: WORDPRESS_USERNAME
216
+ valueFrom:
217
+ secretKeyRef:
218
+ name: wordpress-secrets
219
+ key: username
220
+ - name: WORDPRESS_APP_PASSWORD
221
+ valueFrom:
222
+ secretKeyRef:
223
+ name: wordpress-secrets
224
+ key: app-password
225
+ resources:
226
+ requests:
227
+ memory: \"256Mi\"
228
+ cpu: \"250m\"
229
+ limits:
230
+ memory: \"512Mi\"
231
+ cpu: \"500m\"
232
+ livenessProbe:
233
+ exec:
234
+ command:
235
+ - node
236
+ - dist/index.js
237
+ - --health-check
238
+ initialDelaySeconds: 30
239
+ periodSeconds: 30
240
+ readinessProbe:
241
+ exec:
242
+ command:
243
+ - node
244
+ - dist/index.js
245
+ - --health-check
246
+ initialDelaySeconds: 10
247
+ periodSeconds: 10
248
+ ```
249
+
250
+ ## 🔧 Management Commands
251
+
252
+ ### Container Management
253
+
254
+ ```bash
255
+ # View logs
256
+ docker logs -f mcp-wordpress
257
+
258
+ # Check health status
259
+ docker inspect --format='{{.State.Health.Status}}' mcp-wordpress
260
+
261
+ # Execute commands inside container
262
+ docker exec -it mcp-wordpress /bin/sh
263
+
264
+ # Update to latest version
265
+ docker pull aiondadotcom/mcp-wordpress:latest
266
+ docker stop mcp-wordpress
267
+ docker rm mcp-wordpress
268
+ # Run with new image...
269
+ ```
270
+
271
+ ### Docker Compose Management
272
+
273
+ ```bash
274
+ # Start services
275
+ docker-compose up -d
276
+
277
+ # View logs
278
+ docker-compose logs -f mcp-wordpress
279
+
280
+ # Stop services
281
+ docker-compose down
282
+
283
+ # Update images
284
+ docker-compose pull
285
+ docker-compose up -d
286
+
287
+ # View service status
288
+ docker-compose ps
289
+ ```
290
+
291
+ ## 📊 Monitoring
292
+
293
+ ### Health Checks
294
+
295
+ The container includes built-in health checks:
296
+
297
+ ```bash
298
+ # Check health status
299
+ docker inspect mcp-wordpress | jq '.[0].State.Health'
300
+
301
+ # View health check logs
302
+ docker inspect mcp-wordpress | jq '.[0].State.Health.Log'
303
+ ```
304
+
305
+ ### Performance Monitoring
306
+
307
+ Access performance monitoring tools inside the container:
308
+
309
+ ```bash
310
+ # Get performance stats
311
+ docker exec mcp-wordpress node -e \"
312
+ const { PerformanceMonitor } = require('./dist/performance/PerformanceMonitor.js');
313
+ const monitor = new PerformanceMonitor();
314
+ console.log(JSON.stringify(monitor.getCurrentMetrics(), null, 2));
315
+ \"
316
+ ```
317
+
318
+ ### Log Management
319
+
320
+ ```bash
321
+ # View container logs
322
+ docker logs mcp-wordpress
323
+
324
+ # Follow logs in real-time
325
+ docker logs -f mcp-wordpress
326
+
327
+ # Limit log output
328
+ docker logs --tail 100 mcp-wordpress
329
+
330
+ # Export logs
331
+ docker logs mcp-wordpress > mcp-wordpress.log
332
+ ```
333
+
334
+ ## 🔒 Security
335
+
336
+ ### Security Best Practices
337
+
338
+ 1. **Non-Root User**: Container runs as non-root user `mcp` (UID 1001)
339
+ 2. **Minimal Base Image**: Uses Alpine Linux for smaller attack surface
340
+ 3. **Secrets Management**: Use Docker secrets or environment variables securely
341
+ 4. **Network Security**: Use custom networks for container isolation
342
+ 5. **Resource Limits**: Set memory and CPU limits
343
+
344
+ ### Secrets Management
345
+
346
+ **Using Docker Secrets:**
347
+ ```bash
348
+ # Create secrets
349
+ echo \"https://your-site.com\" | docker secret create wordpress_url -
350
+ echo \"your-username\" | docker secret create wordpress_user -
351
+ echo \"your-app-password\" | docker secret create wordpress_password -
352
+
353
+ # Use in compose file
354
+ version: '3.8'
355
+ services:
356
+ mcp-wordpress:
357
+ image: aiondadotcom/mcp-wordpress:latest
358
+ secrets:
359
+ - wordpress_url
360
+ - wordpress_user
361
+ - wordpress_password
362
+ environment:
363
+ - WORDPRESS_SITE_URL_FILE=/run/secrets/wordpress_url
364
+ - WORDPRESS_USERNAME_FILE=/run/secrets/wordpress_user
365
+ - WORDPRESS_APP_PASSWORD_FILE=/run/secrets/wordpress_password
366
+
367
+ secrets:
368
+ wordpress_url:
369
+ external: true
370
+ wordpress_user:
371
+ external: true
372
+ wordpress_password:
373
+ external: true
374
+ ```
375
+
376
+ ### Firewall Configuration
377
+
378
+ ```bash
379
+ # Allow only necessary ports
380
+ ufw allow 3000/tcp # If exposing HTTP endpoint
381
+ ufw deny 3000/tcp from any to any # Block external access if not needed
382
+ ```
383
+
384
+ ## 🛠️ Troubleshooting
385
+
386
+ ### Common Issues
387
+
388
+ #### Container Won't Start
389
+ ```bash
390
+ # Check logs for errors
391
+ docker logs mcp-wordpress
392
+
393
+ # Verify environment variables
394
+ docker exec mcp-wordpress env | grep WORDPRESS
395
+
396
+ # Test configuration
397
+ docker exec mcp-wordpress node dist/index.js --test-config
398
+ ```
399
+
400
+ #### Authentication Problems
401
+ ```bash
402
+ # Test WordPress connection
403
+ docker exec mcp-wordpress node -e \"
404
+ const client = require('./dist/client/api.js');
405
+ // Test authentication...
406
+ \"
407
+
408
+ # Check credentials
409
+ docker exec mcp-wordpress printenv | grep WORDPRESS
410
+ ```
411
+
412
+ #### Performance Issues
413
+ ```bash
414
+ # Check resource usage
415
+ docker stats mcp-wordpress
416
+
417
+ # Monitor performance metrics
418
+ docker exec mcp-wordpress node -e \"
419
+ // Access performance monitoring tools...
420
+ \"
421
+ ```
422
+
423
+ ### Debug Mode
424
+
425
+ ```bash
426
+ # Run with debug logging
427
+ docker run -e DEBUG=true aiondadotcom/mcp-wordpress:latest
428
+
429
+ # Or with compose
430
+ environment:
431
+ - DEBUG=true
432
+ ```
433
+
434
+ ## 📚 Additional Resources
435
+
436
+ - [Docker Documentation](https://docs.docker.com/)
437
+ - [Docker Compose Documentation](https://docs.docker.com/compose/)
438
+ - [Kubernetes Documentation](https://kubernetes.io/docs/)
439
+ - [MCP WordPress Server Documentation](../README.md)
440
+ - [Performance Monitoring Guide](./PERFORMANCE.md)
441
+ - [Caching Guide](./CACHING.md)
442
+
443
+ ## 🤝 Support
444
+
445
+ - **GitHub Issues**: [Report problems](https://github.com/AiondaDotCom/mcp-wordpress/issues)
446
+ - **Discussions**: [Ask questions](https://github.com/AiondaDotCom/mcp-wordpress/discussions)
447
+ - **Documentation**: [Browse guides](https://github.com/AiondaDotCom/mcp-wordpress/tree/main/docs)
448
+
449
+ ---
450
+
451
+ **🐳 Docker deployment made simple with comprehensive security and monitoring!**