mcp-wordpress 2.3.0 → 2.4.1

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 (36) hide show
  1. package/README.md +511 -0
  2. package/dist/client/api.d.ts +90 -0
  3. package/dist/client/api.d.ts.map +1 -1
  4. package/dist/client/api.js +90 -0
  5. package/dist/client/api.js.map +1 -1
  6. package/dist/tools/media.d.ts +43 -4
  7. package/dist/tools/media.d.ts.map +1 -1
  8. package/dist/tools/media.js +43 -4
  9. package/dist/tools/media.js.map +1 -1
  10. package/dist/tools/posts.d.ts +225 -4
  11. package/dist/tools/posts.d.ts.map +1 -1
  12. package/dist/tools/posts.js +225 -4
  13. package/dist/tools/posts.js.map +1 -1
  14. package/docs/DOCKER_PUBLISHING_TROUBLESHOOTING.md +233 -0
  15. package/docs/PUBLISHING-TROUBLESHOOTING.md +227 -0
  16. package/docs/api/README.md +53 -11
  17. package/docs/api/openapi.json +10 -10
  18. package/docs/api/summary.json +1 -1
  19. package/docs/api/tools/wp_create_post.md +9 -3
  20. package/docs/api/tools/wp_delete_post.md +2 -3
  21. package/docs/api/tools/wp_get_current_user.md +7 -1
  22. package/docs/api/tools/wp_get_post.md +2 -3
  23. package/docs/api/tools/wp_get_post_revisions.md +1 -1
  24. package/docs/api/tools/wp_list_posts.md +10 -3
  25. package/docs/api/tools/wp_list_users.md +8 -1
  26. package/docs/api/tools/wp_search_site.md +8 -1
  27. package/docs/api/tools/wp_test_auth.md +8 -1
  28. package/docs/api/tools/wp_update_post.md +2 -3
  29. package/docs/examples/docker-production.md +801 -0
  30. package/docs/examples/multi-site-setup.md +575 -0
  31. package/docs/examples/single-site-setup.md +390 -0
  32. package/docs/examples/use-case-workflows.md +469 -0
  33. package/package.json +12 -2
  34. package/src/client/api.ts +90 -0
  35. package/src/tools/media.ts +43 -4
  36. package/src/tools/posts.ts +225 -4
@@ -3,13 +3,45 @@ import { ErrorHandlers, EnhancedError } from "../utils/enhancedError.js";
3
3
  import { validateId, validatePaginationParams, validatePostParams } from "../utils/validation.js";
4
4
  import { WordPressDataStreamer, StreamingUtils } from "../utils/streaming.js";
5
5
  /**
6
- * Provides tools for managing posts on a WordPress site.
7
- * This class encapsulates tool definitions and their corresponding handlers.
6
+ * Provides comprehensive tools for managing WordPress posts.
7
+ *
8
+ * This class encapsulates tool definitions and their corresponding handlers for:
9
+ * - Listing posts with advanced filtering and search capabilities
10
+ * - Creating new posts with full metadata support
11
+ * - Updating existing posts with validation
12
+ * - Deleting posts with trash/permanent options
13
+ * - Retrieving individual posts with detailed information
14
+ * - Managing post revisions and history
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const postTools = new PostTools();
19
+ * const tools = postTools.getTools();
20
+ *
21
+ * // Use with a WordPress client
22
+ * const client = new WordPressClient(config);
23
+ * const result = await postTools.handleListPosts(client, { per_page: 10 });
24
+ * ```
25
+ *
26
+ * @since 1.0.0
27
+ * @author MCP WordPress Team
8
28
  */
9
29
  export class PostTools {
10
30
  /**
11
- * Retrieves the list of post management tools.
12
- * @returns An array of MCPTool definitions.
31
+ * Retrieves the complete list of post management tools available for MCP.
32
+ *
33
+ * Returns an array of tool definitions that can be registered with an MCP server.
34
+ * Each tool includes comprehensive parameter validation, error handling, and
35
+ * detailed documentation with usage examples.
36
+ *
37
+ * @returns {Array<MCPTool>} An array of MCPTool definitions for post management
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const postTools = new PostTools();
42
+ * const tools = postTools.getTools();
43
+ * console.log(tools.length); // 6 tools: list, get, create, update, delete, revisions
44
+ * ```
13
45
  */
14
46
  getTools() {
15
47
  return [
@@ -177,6 +209,42 @@ export class PostTools {
177
209
  },
178
210
  ];
179
211
  }
212
+ /**
213
+ * Handles listing posts from a WordPress site with comprehensive filtering options.
214
+ *
215
+ * This method provides advanced search capabilities, status filtering, pagination,
216
+ * and category/tag filtering. Results include enhanced metadata and author information.
217
+ * For large result sets (>50 posts), it automatically uses streaming for better performance.
218
+ *
219
+ * @param {WordPressClient} client - The WordPress client instance for API communication
220
+ * @param {PostQueryParams} params - Query parameters for filtering and pagination
221
+ * @param {number} [params.per_page=10] - Number of posts to return per page (max 100)
222
+ * @param {string} [params.search] - Search term to filter posts by title/content
223
+ * @param {string|string[]} [params.status] - Post status filter (publish, draft, etc.)
224
+ * @param {number[]} [params.categories] - Array of category IDs to filter by
225
+ * @param {number[]} [params.tags] - Array of tag IDs to filter by
226
+ * @param {number} [params.page=1] - Page number for pagination
227
+ *
228
+ * @returns {Promise<string>} Formatted list of posts with metadata and context
229
+ *
230
+ * @throws {EnhancedError} When validation fails or API request encounters an error
231
+ *
232
+ * @example
233
+ * ```typescript
234
+ * // Basic listing
235
+ * const result = await handleListPosts(client, {});
236
+ *
237
+ * // Advanced filtering
238
+ * const filtered = await handleListPosts(client, {
239
+ * search: "WordPress tips",
240
+ * status: "publish",
241
+ * categories: [1, 2],
242
+ * per_page: 20
243
+ * });
244
+ * ```
245
+ *
246
+ * @since 1.0.0
247
+ */
180
248
  async handleListPosts(client, params) {
181
249
  try {
182
250
  // Enhanced input validation and sanitization
@@ -345,6 +413,28 @@ export class PostTools {
345
413
  throw new Error(`Failed to list posts: ${getErrorMessage(error)}`);
346
414
  }
347
415
  }
416
+ /**
417
+ * Retrieves a single WordPress post by ID with complete details and metadata.
418
+ *
419
+ * This method fetches a specific post and returns comprehensive information including
420
+ * content, metadata, author details, categories, tags, and publication status.
421
+ *
422
+ * @param {WordPressClient} client - The WordPress client instance for API communication
423
+ * @param {Object} params - Parameters for post retrieval
424
+ * @param {number} params.id - The unique ID of the post to retrieve
425
+ *
426
+ * @returns {Promise<string>} Detailed post information formatted for display
427
+ *
428
+ * @throws {EnhancedError} When post ID is invalid or post is not found
429
+ *
430
+ * @example
431
+ * ```typescript
432
+ * // Get a specific post
433
+ * const post = await handleGetPost(client, { id: 123 });
434
+ * ```
435
+ *
436
+ * @since 1.0.0
437
+ */
348
438
  async handleGetPost(client, params) {
349
439
  try {
350
440
  // Input validation
@@ -444,6 +534,47 @@ export class PostTools {
444
534
  throw ErrorHandlers.generic("get post", error);
445
535
  }
446
536
  }
537
+ /**
538
+ * Creates a new WordPress post with comprehensive validation and metadata support.
539
+ *
540
+ * This method handles the creation of new posts with full support for content,
541
+ * metadata, categories, tags, and publishing options. Includes automatic validation
542
+ * and sanitization of all input parameters.
543
+ *
544
+ * @param {WordPressClient} client - The WordPress client instance for API communication
545
+ * @param {CreatePostRequest} params - Post creation parameters
546
+ * @param {string} params.title - The post title
547
+ * @param {string} params.content - The post content in HTML format
548
+ * @param {string} [params.status="draft"] - Post status (publish, draft, pending, private)
549
+ * @param {string} [params.excerpt] - Post excerpt/summary
550
+ * @param {number[]} [params.categories] - Array of category IDs to assign
551
+ * @param {number[]} [params.tags] - Array of tag IDs to assign
552
+ *
553
+ * @returns {Promise<string>} Success message with the new post ID and details
554
+ *
555
+ * @throws {EnhancedError} When validation fails or post creation encounters an error
556
+ *
557
+ * @example
558
+ * ```typescript
559
+ * // Create a basic post
560
+ * const result = await handleCreatePost(client, {
561
+ * title: "My New Post",
562
+ * content: "<p>This is the post content.</p>",
563
+ * status: "publish"
564
+ * });
565
+ *
566
+ * // Create post with categories and tags
567
+ * const detailed = await handleCreatePost(client, {
568
+ * title: "WordPress Tips",
569
+ * content: "<p>Detailed WordPress tips...</p>",
570
+ * categories: [1, 2],
571
+ * tags: [5, 6],
572
+ * excerpt: "Learn essential WordPress tips"
573
+ * });
574
+ * ```
575
+ *
576
+ * @since 1.0.0
577
+ */
447
578
  async handleCreatePost(client, params) {
448
579
  try {
449
580
  // Enhanced input validation using new validation utilities
@@ -467,6 +598,45 @@ export class PostTools {
467
598
  throw new Error(`Failed to create post: ${getErrorMessage(error)}`);
468
599
  }
469
600
  }
601
+ /**
602
+ * Updates an existing WordPress post with validation and detailed confirmation.
603
+ *
604
+ * This method allows updating any aspect of a post including title, content, status,
605
+ * categories, and tags. Only provided fields are updated, leaving others unchanged.
606
+ *
607
+ * @param {WordPressClient} client - The WordPress client instance for API communication
608
+ * @param {UpdatePostRequest & {id: number}} params - Update parameters
609
+ * @param {number} params.id - The ID of the post to update
610
+ * @param {string} [params.title] - New post title
611
+ * @param {string} [params.content] - New post content in HTML format
612
+ * @param {string} [params.status] - New post status (publish, draft, pending, private)
613
+ * @param {string} [params.excerpt] - New post excerpt
614
+ * @param {number[]} [params.categories] - New category IDs to assign
615
+ * @param {number[]} [params.tags] - New tag IDs to assign
616
+ *
617
+ * @returns {Promise<string>} Success message confirming the update
618
+ *
619
+ * @throws {EnhancedError} When post ID is invalid or update fails
620
+ *
621
+ * @example
622
+ * ```typescript
623
+ * // Update post title and status
624
+ * const result = await handleUpdatePost(client, {
625
+ * id: 123,
626
+ * title: "Updated Post Title",
627
+ * status: "publish"
628
+ * });
629
+ *
630
+ * // Update content and categories
631
+ * const updated = await handleUpdatePost(client, {
632
+ * id: 123,
633
+ * content: "<p>New content here...</p>",
634
+ * categories: [1, 3, 5]
635
+ * });
636
+ * ```
637
+ *
638
+ * @since 1.0.0
639
+ */
470
640
  async handleUpdatePost(client, params) {
471
641
  try {
472
642
  const post = await client.updatePost(params);
@@ -476,6 +646,35 @@ export class PostTools {
476
646
  throw new Error(`Failed to update post: ${getErrorMessage(error)}`);
477
647
  }
478
648
  }
649
+ /**
650
+ * Deletes a WordPress post with options for trash or permanent deletion.
651
+ *
652
+ * This method provides safe deletion with trash option (default) or permanent
653
+ * deletion when force is specified. Includes confirmation of the deletion action.
654
+ *
655
+ * @param {WordPressClient} client - The WordPress client instance for API communication
656
+ * @param {Object} params - Deletion parameters
657
+ * @param {number} params.id - The ID of the post to delete
658
+ * @param {boolean} [params.force=false] - Whether to permanently delete (true) or move to trash (false)
659
+ *
660
+ * @returns {Promise<string>} Confirmation message of the deletion action
661
+ *
662
+ * @throws {EnhancedError} When post ID is invalid or deletion fails
663
+ *
664
+ * @example
665
+ * ```typescript
666
+ * // Move post to trash (safe deletion)
667
+ * const result = await handleDeletePost(client, { id: 123 });
668
+ *
669
+ * // Permanently delete post (cannot be undone)
670
+ * const permanent = await handleDeletePost(client, {
671
+ * id: 123,
672
+ * force: true
673
+ * });
674
+ * ```
675
+ *
676
+ * @since 1.0.0
677
+ */
479
678
  async handleDeletePost(client, params) {
480
679
  try {
481
680
  await client.deletePost(params.id, params.force);
@@ -486,6 +685,28 @@ export class PostTools {
486
685
  throw new Error(`Failed to delete post: ${getErrorMessage(error)}`);
487
686
  }
488
687
  }
688
+ /**
689
+ * Retrieves revision history for a specific WordPress post.
690
+ *
691
+ * This method fetches all available revisions for a post, providing a complete
692
+ * history of changes including dates, authors, and modification details.
693
+ *
694
+ * @param {WordPressClient} client - The WordPress client instance for API communication
695
+ * @param {Object} params - Parameters for revision retrieval
696
+ * @param {number} params.id - The ID of the post to get revisions for
697
+ *
698
+ * @returns {Promise<string>} Formatted list of post revisions with details
699
+ *
700
+ * @throws {EnhancedError} When post ID is invalid or revisions cannot be retrieved
701
+ *
702
+ * @example
703
+ * ```typescript
704
+ * // Get all revisions for a post
705
+ * const revisions = await handleGetPostRevisions(client, { id: 123 });
706
+ * ```
707
+ *
708
+ * @since 1.0.0
709
+ */
489
710
  async handleGetPostRevisions(client, params) {
490
711
  try {
491
712
  const revisions = await client.getPostRevisions(params.id);
@@ -1 +1 @@
1
- {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../src/tools/posts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../src/tools/posts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,233 @@
1
+ # Docker Publishing Troubleshooting Guide
2
+
3
+ This guide helps resolve Docker Hub publishing failures and provides tools for manual intervention when the automated release process encounters issues.
4
+
5
+ ## 🚨 Current Status - Multiple Missing Versions
6
+
7
+ **Investigation Results:**
8
+ - NPM Publishing: ✅ All versions available (2.0.4, 2.1.0, 2.2.0, 2.3.0)
9
+ - Docker Hub Publishing: ❌ Multiple versions missing since v2.0.4
10
+
11
+ **Missing Docker Hub Versions:**
12
+ - v2.0.4 (original issue)
13
+ - v2.1.0, v2.2.0, v2.3.0 (subsequent failures)
14
+
15
+ **Root Cause:** Systemic Docker publishing failure in release workflow since v2.0.4 release.
16
+
17
+ **Available Versions on Docker Hub:**
18
+ - ✅ v2.0.0, v2.0.1, v2.0.2, v2.0.3 (working)
19
+ - ❌ v2.0.4, v2.1.0, v2.2.0, v2.3.0 (missing)
20
+
21
+ ### Bulk Recovery Process
22
+
23
+ To resolve all missing versions at once:
24
+
25
+ ```bash
26
+ # Fix all missing versions
27
+ for version in 2.0.4 2.1.0 2.2.0 2.3.0; do
28
+ ./scripts/fix-docker-publishing.sh republish $version
29
+ sleep 60 # Wait between publishes
30
+ done
31
+
32
+ # Verify all versions
33
+ ./scripts/fix-docker-publishing.sh status
34
+ ```
35
+
36
+ ### Missing Docker Hub Versions
37
+
38
+ **Symptoms:**
39
+ - NPM publishing succeeds but Docker Hub fails
40
+ - Verification workflow reports missing versions
41
+ - GitHub releases exist but corresponding Docker images are absent
42
+
43
+ **Root Causes:**
44
+ - Docker Hub API rate limiting
45
+ - Network timeouts during multi-platform builds
46
+ - Docker registry authentication issues
47
+ - Temporary Docker Hub service disruptions
48
+
49
+ ## 🔧 Resolution Tools
50
+
51
+ ### 1. Quick Fix Script
52
+
53
+ For immediate resolution of publishing failures:
54
+
55
+ ```bash
56
+ # Fix specific v2.0.4 issue (automatic)
57
+ ./scripts/fix-docker-publishing.sh fix-2.0.4
58
+
59
+ # Check any version status
60
+ ./scripts/fix-docker-publishing.sh check 2.1.0
61
+
62
+ # Trigger manual republish
63
+ ./scripts/fix-docker-publishing.sh republish 2.0.4
64
+
65
+ # Check status of recent versions
66
+ ./scripts/fix-docker-publishing.sh status
67
+ ```
68
+
69
+ ### 2. Manual Docker Publishing Script
70
+
71
+ For detailed control over the publishing process:
72
+
73
+ ```bash
74
+ # Requires Docker credentials in environment
75
+ export DOCKER_USERNAME="your-username"
76
+ export DOCKER_PASSWORD="your-token"
77
+
78
+ # Publish missing version
79
+ ./scripts/manual-docker-publish.sh 2.0.4
80
+
81
+ # Publish for specific platforms only
82
+ ./scripts/manual-docker-publish.sh 2.0.4 linux/amd64
83
+ ```
84
+
85
+ ### 3. GitHub Workflow Manual Trigger
86
+
87
+ Using GitHub CLI or web interface:
88
+
89
+ ```bash
90
+ # Using GitHub CLI
91
+ gh workflow run manual-docker-republish.yml -f version=2.0.4
92
+
93
+ # Verify only (no publishing)
94
+ gh workflow run manual-docker-republish.yml -f version=2.0.4 -f verify_only=true
95
+
96
+ # Custom platforms
97
+ gh workflow run manual-docker-republish.yml -f version=2.0.4 -f platforms=linux/amd64
98
+ ```
99
+
100
+ ## 🔍 Verification Process
101
+
102
+ ### Automated Verification
103
+
104
+ The improved verification workflow now includes:
105
+
106
+ 1. **Docker Hub API Check** - Queries the registry API
107
+ 2. **Docker Pull Verification** - Attempts to pull the image
108
+ 3. **Enhanced Debugging** - Shows available tags and detailed logs
109
+ 4. **Multiple Tag Format Support** - Checks both `v2.0.4` and `2.0.4` formats
110
+
111
+ ### Manual Verification
112
+
113
+ ```bash
114
+ # Check via Docker Hub API
115
+ curl -s https://hub.docker.com/v2/repositories/docdyhr/mcp-wordpress/tags | \
116
+ jq '.results[] | select(.name | test("2.0.4")) | {name: .name, last_updated: .last_updated}'
117
+
118
+ # Check via Docker pull
119
+ docker pull docdyhr/mcp-wordpress:2.0.4
120
+ docker pull docdyhr/mcp-wordpress:v2.0.4
121
+
122
+ # Verify image metadata
123
+ docker inspect docdyhr/mcp-wordpress:2.0.4 | jq '.[].Config.Labels'
124
+ ```
125
+
126
+ ## 🛠️ Workflow Improvements
127
+
128
+ ### Enhanced Release Workflow
129
+
130
+ The release workflow now includes:
131
+
132
+ - **Retry Mechanism**: Automatic retry on Docker build failure
133
+ - **Immediate Verification**: Post-build image validation
134
+ - **Better Error Reporting**: Detailed failure notifications
135
+ - **Graceful Degradation**: Continue if NPM succeeds but Docker fails
136
+
137
+ ### Improved Verification Workflow
138
+
139
+ - **Multi-Method Verification**: API + Docker pull validation
140
+ - **Enhanced Debugging**: Shows available tags and API responses
141
+ - **Better Issue Creation**: More detailed error reports with fix instructions
142
+ - **Retry Integration**: Automatic retry triggers for failed publishes
143
+
144
+ ## 📋 Troubleshooting Checklist
145
+
146
+ ### Before Manual Intervention
147
+
148
+ - [ ] Check if NPM version exists: `npm view mcp-wordpress@2.0.4`
149
+ - [ ] Verify GitHub tag exists: `git tag -l | grep v2.0.4`
150
+ - [ ] Check recent workflow runs for error patterns
151
+ - [ ] Verify Docker Hub credentials in repository secrets
152
+
153
+ ### During Manual Fix
154
+
155
+ - [ ] Run verification first: `./scripts/fix-docker-publishing.sh check 2.0.4`
156
+ - [ ] Use appropriate script based on access level (local vs. GitHub Actions)
157
+ - [ ] Monitor workflow progress if using GitHub Actions
158
+ - [ ] Wait for Docker Hub propagation (30-60 seconds)
159
+
160
+ ### After Resolution
161
+
162
+ - [ ] Verify via multiple methods (API, Docker pull)
163
+ - [ ] Run verification workflow: `gh workflow run verify-release.yml -f version=2.0.4`
164
+ - [ ] Update any dependent systems or documentation
165
+ - [ ] Close related GitHub issues
166
+
167
+ ## 🔐 Security Considerations
168
+
169
+ ### Credential Management
170
+
171
+ - **GitHub Actions**: Uses repository secrets (secure)
172
+ - **Local Scripts**: Requires environment variables (use with caution)
173
+ - **Docker Tokens**: Use Docker Hub access tokens, not passwords
174
+
175
+ ### Image Integrity
176
+
177
+ All published images include:
178
+ - **Provenance**: Build attestation data
179
+ - **SBOM**: Software Bill of Materials
180
+ - **Signatures**: Cryptographic verification
181
+ - **Metadata**: Complete OCI labels
182
+
183
+ ## 📈 Monitoring & Alerts
184
+
185
+ ### Automated Monitoring
186
+
187
+ - **Verification Workflow**: Runs after every release
188
+ - **Issue Creation**: Automatic tickets for failures
189
+ - **Status Checks**: Integration with GitHub commit status
190
+
191
+ ### Manual Monitoring
192
+
193
+ ```bash
194
+ # Check recent publishing status
195
+ ./scripts/fix-docker-publishing.sh status
196
+
197
+ # Monitor workflow runs
198
+ gh run list --workflow=release.yml --limit=5
199
+ gh run list --workflow=verify-release.yml --limit=5
200
+
201
+ # Check Docker Hub directly
202
+ curl -s https://hub.docker.com/v2/repositories/docdyhr/mcp-wordpress/tags | \
203
+ jq '.results[0:5] | .[] | {name: .name, last_updated: .last_updated}'
204
+ ```
205
+
206
+ ## 🆘 Emergency Recovery
207
+
208
+ If all automated methods fail:
209
+
210
+ 1. **Manual Docker Build:**
211
+ ```bash
212
+ git checkout v2.0.4
213
+ docker buildx build --platform linux/amd64,linux/arm64 \
214
+ --tag docdyhr/mcp-wordpress:2.0.4 \
215
+ --tag docdyhr/mcp-wordpress:v2.0.4 \
216
+ --push .
217
+ ```
218
+
219
+ 2. **Contact Repository Maintainer:**
220
+ - Create detailed issue with error logs
221
+ - Include attempted resolution steps
222
+ - Mention urgency level and impact
223
+
224
+ 3. **Fallback Options:**
225
+ - Use previous version temporarily
226
+ - Build local image for immediate needs
227
+ - Use GitHub Container Registry as alternative
228
+
229
+ ## 📞 Support
230
+
231
+ - **GitHub Issues**: [Create Issue](https://github.com/docdyhr/mcp-wordpress/issues/new)
232
+ - **Workflow Logs**: Check Actions tab for detailed error information
233
+ - **Docker Hub Status**: [Docker Hub Status Page](https://status.docker.com/)