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.
- package/README.md +388 -66
- package/dist/cache/CacheInvalidation.d.ts +118 -0
- package/dist/cache/CacheInvalidation.d.ts.map +1 -0
- package/dist/cache/CacheInvalidation.js +349 -0
- package/dist/cache/CacheInvalidation.js.map +1 -0
- package/dist/cache/CacheManager.d.ts +143 -0
- package/dist/cache/CacheManager.d.ts.map +1 -0
- package/dist/cache/CacheManager.js +308 -0
- package/dist/cache/CacheManager.js.map +1 -0
- package/dist/cache/HttpCacheWrapper.d.ts +121 -0
- package/dist/cache/HttpCacheWrapper.d.ts.map +1 -0
- package/dist/cache/HttpCacheWrapper.js +280 -0
- package/dist/cache/HttpCacheWrapper.js.map +1 -0
- package/dist/cache/__tests__/CacheInvalidation.test.d.ts +5 -0
- package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +1 -0
- package/dist/cache/__tests__/CacheInvalidation.test.js +236 -0
- package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -0
- package/dist/cache/__tests__/CacheManager.test.d.ts +5 -0
- package/dist/cache/__tests__/CacheManager.test.d.ts.map +1 -0
- package/dist/cache/__tests__/CacheManager.test.js +233 -0
- package/dist/cache/__tests__/CacheManager.test.js.map +1 -0
- package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +5 -0
- package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +1 -0
- package/dist/cache/__tests__/CachedWordPressClient.test.js +228 -0
- package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -0
- package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +5 -0
- package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +1 -0
- package/dist/cache/__tests__/HttpCacheWrapper.test.js +296 -0
- package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -0
- package/dist/cache/index.d.ts +12 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +9 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/client/CachedWordPressClient.d.ts +160 -0
- package/dist/client/CachedWordPressClient.d.ts.map +1 -0
- package/dist/client/CachedWordPressClient.js +338 -0
- package/dist/client/CachedWordPressClient.js.map +1 -0
- package/dist/client/WordPressClient.d.ts +81 -0
- package/dist/client/WordPressClient.d.ts.map +1 -0
- package/dist/client/WordPressClient.js +354 -0
- package/dist/client/WordPressClient.js.map +1 -0
- package/dist/config/ConfigurationSchema.d.ts +281 -0
- package/dist/config/ConfigurationSchema.d.ts.map +1 -0
- package/dist/config/ConfigurationSchema.js +205 -0
- package/dist/config/ConfigurationSchema.js.map +1 -0
- package/dist/config/ServerConfiguration.d.ts +38 -0
- package/dist/config/ServerConfiguration.d.ts.map +1 -0
- package/dist/config/ServerConfiguration.js +158 -0
- package/dist/config/ServerConfiguration.js.map +1 -0
- package/dist/docs/DocumentationGenerator.d.ts +184 -0
- package/dist/docs/DocumentationGenerator.d.ts.map +1 -0
- package/dist/docs/DocumentationGenerator.js +735 -0
- package/dist/docs/DocumentationGenerator.js.map +1 -0
- package/dist/docs/MarkdownFormatter.d.ts +84 -0
- package/dist/docs/MarkdownFormatter.d.ts.map +1 -0
- package/dist/docs/MarkdownFormatter.js +448 -0
- package/dist/docs/MarkdownFormatter.js.map +1 -0
- package/dist/docs/index.d.ts +8 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +7 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -212
- package/dist/index.js.map +1 -1
- package/dist/performance/AnomalyDetector.d.ts +63 -0
- package/dist/performance/AnomalyDetector.d.ts.map +1 -0
- package/dist/performance/AnomalyDetector.js +222 -0
- package/dist/performance/AnomalyDetector.js.map +1 -0
- package/dist/performance/BenchmarkAnalyzer.d.ts +67 -0
- package/dist/performance/BenchmarkAnalyzer.d.ts.map +1 -0
- package/dist/performance/BenchmarkAnalyzer.js +301 -0
- package/dist/performance/BenchmarkAnalyzer.js.map +1 -0
- package/dist/performance/MetricsCollector.d.ts +139 -0
- package/dist/performance/MetricsCollector.d.ts.map +1 -0
- package/dist/performance/MetricsCollector.js +320 -0
- package/dist/performance/MetricsCollector.js.map +1 -0
- package/dist/performance/PerformanceAnalytics.d.ts +162 -0
- package/dist/performance/PerformanceAnalytics.d.ts.map +1 -0
- package/dist/performance/PerformanceAnalytics.js +554 -0
- package/dist/performance/PerformanceAnalytics.js.map +1 -0
- package/dist/performance/PerformanceMonitor.d.ts +202 -0
- package/dist/performance/PerformanceMonitor.d.ts.map +1 -0
- package/dist/performance/PerformanceMonitor.js +478 -0
- package/dist/performance/PerformanceMonitor.js.map +1 -0
- package/dist/performance/TrendAnalyzer.d.ts +69 -0
- package/dist/performance/TrendAnalyzer.d.ts.map +1 -0
- package/dist/performance/TrendAnalyzer.js +203 -0
- package/dist/performance/TrendAnalyzer.js.map +1 -0
- package/dist/performance/index.d.ts +11 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +8 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/security/InputValidator.d.ts +215 -0
- package/dist/security/InputValidator.d.ts.map +1 -0
- package/dist/security/InputValidator.js +278 -0
- package/dist/security/InputValidator.js.map +1 -0
- package/dist/security/SecurityConfig.d.ts +129 -0
- package/dist/security/SecurityConfig.d.ts.map +1 -0
- package/dist/security/SecurityConfig.js +262 -0
- package/dist/security/SecurityConfig.js.map +1 -0
- package/dist/server/ConnectionTester.d.ts +24 -0
- package/dist/server/ConnectionTester.d.ts.map +1 -0
- package/dist/server/ConnectionTester.js +61 -0
- package/dist/server/ConnectionTester.js.map +1 -0
- package/dist/server/ToolRegistry.d.ts +46 -0
- package/dist/server/ToolRegistry.d.ts.map +1 -0
- package/dist/server/ToolRegistry.js +148 -0
- package/dist/server/ToolRegistry.js.map +1 -0
- package/dist/tools/BaseToolClass.d.ts +76 -0
- package/dist/tools/BaseToolClass.d.ts.map +1 -0
- package/dist/tools/BaseToolClass.js +104 -0
- package/dist/tools/BaseToolClass.js.map +1 -0
- package/dist/tools/BaseToolManager.d.ts +26 -0
- package/dist/tools/BaseToolManager.d.ts.map +1 -0
- package/dist/tools/BaseToolManager.js +56 -0
- package/dist/tools/BaseToolManager.js.map +1 -0
- package/dist/tools/base.d.ts +37 -0
- package/dist/tools/base.d.ts.map +1 -0
- package/dist/tools/base.js +60 -0
- package/dist/tools/base.js.map +1 -0
- package/dist/tools/cache.d.ts +260 -0
- package/dist/tools/cache.d.ts.map +1 -0
- package/dist/tools/cache.js +237 -0
- package/dist/tools/cache.js.map +1 -0
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/performance.d.ts +63 -0
- package/dist/tools/performance.d.ts.map +1 -0
- package/dist/tools/performance.js +865 -0
- package/dist/tools/performance.js.map +1 -0
- package/dist/types/client.d.ts +1 -0
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/client.js.map +1 -1
- package/dist/utils/toolWrapper.d.ts +4 -0
- package/dist/utils/toolWrapper.d.ts.map +1 -1
- package/dist/utils/toolWrapper.js +11 -0
- package/dist/utils/toolWrapper.js.map +1 -1
- package/dist/utils/validation.d.ts +68 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +185 -0
- package/dist/utils/validation.js.map +1 -0
- package/docs/CACHING.md +340 -0
- package/docs/DOCKER.md +451 -0
- package/docs/PERFORMANCE_MONITORING.md +471 -0
- package/docs/SECURITY_TESTING.md +393 -0
- package/docs/api/README.md +200 -0
- package/docs/api/categories/auth.md +40 -0
- package/docs/api/categories/cache.md +41 -0
- package/docs/api/categories/comment.md +44 -0
- package/docs/api/categories/media.md +43 -0
- package/docs/api/categories/page.md +43 -0
- package/docs/api/categories/performance.md +44 -0
- package/docs/api/categories/post.md +43 -0
- package/docs/api/categories/site.md +43 -0
- package/docs/api/categories/taxonomy.md +47 -0
- package/docs/api/categories/user.md +43 -0
- package/docs/api/openapi.json +3305 -0
- package/docs/api/summary.json +12 -0
- package/docs/api/tools/wp_approve_comment.md +98 -0
- package/docs/api/tools/wp_cache_clear.md +120 -0
- package/docs/api/tools/wp_cache_info.md +119 -0
- package/docs/api/tools/wp_cache_stats.md +119 -0
- package/docs/api/tools/wp_cache_warm.md +119 -0
- package/docs/api/tools/wp_create_application_password.md +102 -0
- package/docs/api/tools/wp_create_category.md +102 -0
- package/docs/api/tools/wp_create_comment.md +128 -0
- package/docs/api/tools/wp_create_page.md +135 -0
- package/docs/api/tools/wp_create_post.md +147 -0
- package/docs/api/tools/wp_create_tag.md +101 -0
- package/docs/api/tools/wp_create_user.md +135 -0
- package/docs/api/tools/wp_delete_application_password.md +101 -0
- package/docs/api/tools/wp_delete_category.md +100 -0
- package/docs/api/tools/wp_delete_comment.md +101 -0
- package/docs/api/tools/wp_delete_media.md +108 -0
- package/docs/api/tools/wp_delete_page.md +108 -0
- package/docs/api/tools/wp_delete_post.md +117 -0
- package/docs/api/tools/wp_delete_tag.md +100 -0
- package/docs/api/tools/wp_delete_user.md +108 -0
- package/docs/api/tools/wp_get_application_passwords.md +103 -0
- package/docs/api/tools/wp_get_auth_status.md +101 -0
- package/docs/api/tools/wp_get_category.md +103 -0
- package/docs/api/tools/wp_get_comment.md +103 -0
- package/docs/api/tools/wp_get_current_user.md +101 -0
- package/docs/api/tools/wp_get_media.md +103 -0
- package/docs/api/tools/wp_get_page.md +103 -0
- package/docs/api/tools/wp_get_page_revisions.md +103 -0
- package/docs/api/tools/wp_get_post.md +112 -0
- package/docs/api/tools/wp_get_post_revisions.md +103 -0
- package/docs/api/tools/wp_get_site_settings.md +108 -0
- package/docs/api/tools/wp_get_tag.md +103 -0
- package/docs/api/tools/wp_get_user.md +103 -0
- package/docs/api/tools/wp_list_categories.md +111 -0
- package/docs/api/tools/wp_list_comments.md +111 -0
- package/docs/api/tools/wp_list_media.md +145 -0
- package/docs/api/tools/wp_list_pages.md +145 -0
- package/docs/api/tools/wp_list_posts.md +156 -0
- package/docs/api/tools/wp_list_tags.md +110 -0
- package/docs/api/tools/wp_list_users.md +111 -0
- package/docs/api/tools/wp_performance_alerts.md +162 -0
- package/docs/api/tools/wp_performance_benchmark.md +160 -0
- package/docs/api/tools/wp_performance_export.md +162 -0
- package/docs/api/tools/wp_performance_history.md +161 -0
- package/docs/api/tools/wp_performance_optimize.md +162 -0
- package/docs/api/tools/wp_performance_stats.md +160 -0
- package/docs/api/tools/wp_search_site.md +99 -0
- package/docs/api/tools/wp_spam_comment.md +98 -0
- package/docs/api/tools/wp_switch_auth_method.md +122 -0
- package/docs/api/tools/wp_test_auth.md +96 -0
- package/docs/api/tools/wp_update_category.md +102 -0
- package/docs/api/tools/wp_update_comment.md +127 -0
- package/docs/api/tools/wp_update_media.md +129 -0
- package/docs/api/tools/wp_update_page.md +135 -0
- package/docs/api/tools/wp_update_post.md +144 -0
- package/docs/api/tools/wp_update_site_settings.md +127 -0
- package/docs/api/tools/wp_update_tag.md +102 -0
- package/docs/api/tools/wp_update_user.md +134 -0
- package/docs/api/tools/wp_upload_media.md +131 -0
- package/docs/api/types/WordPressPost.md +39 -0
- package/docs/contract-testing.md +183 -0
- package/docs/developer/NPM_AUTH_SETUP.md +3 -3
- package/docs/wordpress-rest-api-authentication-troubleshooting.md +218 -0
- package/package.json +84 -64
- package/src/cache/CacheInvalidation.ts +421 -0
- package/src/cache/CacheManager.ts +391 -0
- package/src/cache/HttpCacheWrapper.ts +372 -0
- package/src/cache/__tests__/CacheInvalidation.test.ts +299 -0
- package/src/cache/__tests__/CacheManager.test.ts +300 -0
- package/src/cache/__tests__/CachedWordPressClient.test.ts +304 -0
- package/src/cache/__tests__/HttpCacheWrapper.test.ts +359 -0
- package/src/cache/index.ts +26 -0
- package/src/client/CachedWordPressClient.ts +442 -0
- package/src/config/ConfigurationSchema.ts +246 -0
- package/src/config/ServerConfiguration.ts +215 -0
- package/src/docs/DocumentationGenerator.ts +952 -0
- package/src/docs/MarkdownFormatter.ts +494 -0
- package/src/docs/index.ts +21 -0
- package/src/index.ts +14 -274
- package/src/performance/MetricsCollector.ts +447 -0
- package/src/performance/PerformanceAnalytics.ts +762 -0
- package/src/performance/PerformanceMonitor.ts +649 -0
- package/src/performance/index.ts +28 -0
- package/src/security/InputValidator.ts +319 -0
- package/src/security/SecurityConfig.ts +301 -0
- package/src/server/ConnectionTester.ts +74 -0
- package/src/server/ToolRegistry.ts +194 -0
- package/src/tools/BaseToolManager.ts +66 -0
- package/src/tools/cache.ts +259 -0
- package/src/tools/index.ts +2 -0
- package/src/tools/performance.ts +948 -0
- package/src/types/client.ts +1 -0
- package/src/utils/toolWrapper.ts +11 -0
- package/src/utils/validation.ts +259 -0
package/docs/DOCKER.md
ADDED
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
# Docker Deployment Guide
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
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!**
|