mcp-wordpress 2.3.0 → 2.4.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 (36) hide show
  1. package/README.md +503 -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 +4 -1
  34. package/src/client/api.ts +90 -0
  35. package/src/tools/media.ts +43 -4
  36. package/src/tools/posts.ts +225 -4
package/README.md CHANGED
@@ -135,6 +135,183 @@ npx -y @smithery/cli install @docdyhr/mcp-wordpress --client claude
135
135
  - 📦 **[Smithery Setup](docs/user-guides/SMITHERY_SETUP.md)** - MCP package manager (detailed guide)
136
136
  - 🔧 **[Manual Build](docs/developer/BUILD_SYSTEM.md)** - Custom builds
137
137
 
138
+ ## 📋 Configuration Examples
139
+
140
+ ### Single Site Setup
141
+
142
+ **Environment Variables (.env)**
143
+ ```bash
144
+ WORDPRESS_SITE_URL=https://myblog.com
145
+ WORDPRESS_USERNAME=admin
146
+ WORDPRESS_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx
147
+ WORDPRESS_AUTH_METHOD=app-password
148
+ ```
149
+
150
+ **Claude Desktop Config**
151
+ ```json
152
+ {
153
+ "mcpServers": {
154
+ "mcp-wordpress": {
155
+ "command": "npx",
156
+ "args": ["-y", "mcp-wordpress"],
157
+ "env": {
158
+ "WORDPRESS_SITE_URL": "https://myblog.com",
159
+ "WORDPRESS_USERNAME": "admin",
160
+ "WORDPRESS_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx"
161
+ }
162
+ }
163
+ }
164
+ }
165
+ ```
166
+
167
+ ### Multi-Site Agency Setup
168
+
169
+ **Configuration File (mcp-wordpress.config.json)**
170
+ ```json
171
+ {
172
+ "sites": [
173
+ {
174
+ "id": "main-corporate",
175
+ "name": "Corporate Website",
176
+ "config": {
177
+ "WORDPRESS_SITE_URL": "https://company.com",
178
+ "WORDPRESS_USERNAME": "admin",
179
+ "WORDPRESS_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
180
+ "WORDPRESS_AUTH_METHOD": "app-password"
181
+ }
182
+ },
183
+ {
184
+ "id": "client-restaurant",
185
+ "name": "Restaurant Client",
186
+ "config": {
187
+ "WORDPRESS_SITE_URL": "https://bestrestaurant.com",
188
+ "WORDPRESS_USERNAME": "editor",
189
+ "WORDPRESS_APP_PASSWORD": "yyyy yyyy yyyy yyyy yyyy yyyy",
190
+ "WORDPRESS_AUTH_METHOD": "app-password"
191
+ }
192
+ },
193
+ {
194
+ "id": "client-ecommerce",
195
+ "name": "E-commerce Client",
196
+ "config": {
197
+ "WORDPRESS_SITE_URL": "https://onlinestore.com",
198
+ "WORDPRESS_USERNAME": "shopmanager",
199
+ "WORDPRESS_APP_PASSWORD": "zzzz zzzz zzzz zzzz zzzz zzzz",
200
+ "WORDPRESS_AUTH_METHOD": "app-password"
201
+ }
202
+ }
203
+ ]
204
+ }
205
+ ```
206
+
207
+ ### Development Environment
208
+
209
+ **Local WordPress with Docker**
210
+ ```yaml
211
+ # docker-compose.yml
212
+ version: '3.8'
213
+ services:
214
+ wordpress:
215
+ image: wordpress:latest
216
+ ports:
217
+ - "8080:80"
218
+ environment:
219
+ WORDPRESS_DB_HOST: db
220
+ WORDPRESS_DB_USER: wordpress
221
+ WORDPRESS_DB_PASSWORD: wordpress
222
+ WORDPRESS_DB_NAME: wordpress
223
+ volumes:
224
+ - wordpress_data:/var/www/html
225
+
226
+ db:
227
+ image: mysql:8.0
228
+ environment:
229
+ MYSQL_DATABASE: wordpress
230
+ MYSQL_USER: wordpress
231
+ MYSQL_PASSWORD: wordpress
232
+ MYSQL_ROOT_PASSWORD: rootpassword
233
+ volumes:
234
+ - db_data:/var/lib/mysql
235
+
236
+ volumes:
237
+ wordpress_data:
238
+ db_data:
239
+ ```
240
+
241
+ **MCP WordPress Development Config**
242
+ ```json
243
+ {
244
+ "sites": [
245
+ {
246
+ "id": "local-dev",
247
+ "name": "Local Development",
248
+ "config": {
249
+ "WORDPRESS_SITE_URL": "http://localhost:8080",
250
+ "WORDPRESS_USERNAME": "admin",
251
+ "WORDPRESS_APP_PASSWORD": "dev-password-here",
252
+ "WORDPRESS_AUTH_METHOD": "app-password"
253
+ }
254
+ }
255
+ ]
256
+ }
257
+ ```
258
+
259
+ ### Production Deployment
260
+
261
+ **Server Environment Variables**
262
+ ```bash
263
+ # /etc/environment or systemd service
264
+ WORDPRESS_SITE_URL=https://production-site.com
265
+ WORDPRESS_USERNAME=api-user
266
+ WORDPRESS_APP_PASSWORD=secure-production-password
267
+ WORDPRESS_AUTH_METHOD=app-password
268
+ NODE_ENV=production
269
+ CACHE_ENABLED=true
270
+ CACHE_TTL=3600
271
+ RATE_LIMIT_ENABLED=true
272
+ DEBUG=false
273
+ ```
274
+
275
+ **Docker Production Setup**
276
+ ```dockerfile
277
+ # Dockerfile.production
278
+ FROM node:20-alpine
279
+ WORKDIR /app
280
+ COPY package*.json ./
281
+ RUN npm ci --only=production
282
+ COPY dist/ ./dist/
283
+ EXPOSE 3000
284
+ USER node
285
+ CMD ["node", "dist/index.js"]
286
+ ```
287
+
288
+ ### JWT Authentication Setup
289
+
290
+ **WordPress Plugin Configuration**
291
+ ```php
292
+ // wp-config.php
293
+ define('JWT_AUTH_SECRET_KEY', 'your-secret-key-here');
294
+ define('JWT_AUTH_CORS_ENABLE', true);
295
+ ```
296
+
297
+ **MCP Configuration**
298
+ ```json
299
+ {
300
+ "sites": [
301
+ {
302
+ "id": "jwt-site",
303
+ "name": "JWT Authentication Site",
304
+ "config": {
305
+ "WORDPRESS_SITE_URL": "https://site-with-jwt.com",
306
+ "WORDPRESS_USERNAME": "api-user",
307
+ "WORDPRESS_PASSWORD": "user-password",
308
+ "WORDPRESS_AUTH_METHOD": "jwt"
309
+ }
310
+ }
311
+ ]
312
+ }
313
+ ```
314
+
138
315
  ## 🌟 What Makes This Special
139
316
 
140
317
  ### 🏆 Feature Comparison
@@ -359,8 +536,333 @@ You: "Compare traffic between main-site and client-blog"
359
536
  Claude: "Here's a comparison of both sites..."
360
537
  ```
361
538
 
539
+ ## 🎨 Real-World Workflows
540
+
541
+ ### Content Marketing Agency Workflow
542
+
543
+ **Scenario**: Managing 20+ client blogs with consistent SEO optimization
544
+
545
+ ```text
546
+ 💬 "Analyze the top 5 performing posts across all sites and create similar content for underperforming clients"
547
+ 💬 "Batch update all client sites with the new privacy policy footer"
548
+ 💬 "Generate a weekly performance report comparing all client sites"
549
+ 💬 "Create social media snippets from the latest blog posts on each site"
550
+ ```
551
+
552
+ ### E-commerce Store Management
553
+
554
+ **Scenario**: Managing product launches and inventory updates
555
+
556
+ ```text
557
+ 💬 "Create a product launch post with gallery, specifications, and pricing for the new iPhone case"
558
+ 💬 "Update all 'out of stock' products with restock notifications"
559
+ 💬 "Generate product comparison pages for similar items"
560
+ 💬 "Create seasonal landing pages with current promotions"
561
+ ```
562
+
563
+ ### News Website Operations
564
+
565
+ **Scenario**: Breaking news and content moderation
566
+
567
+ ```text
568
+ 💬 "Publish breaking news about the tech merger with social media integration"
569
+ 💬 "Moderate comments on controversial articles and flag inappropriate content"
570
+ 💬 "Create topic clusters around trending news stories"
571
+ 💬 "Schedule social media posts for peak engagement times"
572
+ ```
573
+
574
+ ### Educational Institution Portal
575
+
576
+ **Scenario**: Course management and student communications
577
+
578
+ ```text
579
+ 💬 "Create course announcement pages with enrollment forms"
580
+ 💬 "Update faculty profiles with new publications and achievements"
581
+ 💬 "Generate student newsletter with upcoming events and deadlines"
582
+ 💬 "Moderate discussion forums and highlight valuable contributions"
583
+ ```
584
+
585
+ ### Non-Profit Organization
586
+
587
+ **Scenario**: Fundraising campaigns and volunteer coordination
588
+
589
+ ```text
590
+ 💬 "Create donation campaign pages with progress tracking"
591
+ 💬 "Update volunteer opportunity listings with current needs"
592
+ 💬 "Generate impact reports showing donation effectiveness"
593
+ 💬 "Create event registration pages with automated confirmations"
594
+ ```
595
+
596
+ ## 🚀 Advanced Automation Examples
597
+
598
+ ### Smart Content Workflows
599
+
600
+ **Automated SEO Optimization**
601
+ ```text
602
+ You: "Optimize all posts from the last month for better SEO performance"
603
+ Claude: "I'll analyze and optimize your recent posts...
604
+ - Analyzed 15 posts from the last 30 days
605
+ - Updated meta descriptions for 12 posts
606
+ - Added focus keywords to 8 posts
607
+ - Optimized heading structure in 10 posts
608
+ - Improved internal linking in 15 posts
609
+ - Average SEO score improved from 67% to 89%"
610
+ ```
611
+
612
+ **Content Gap Analysis**
613
+ ```text
614
+ You: "Identify content gaps in our blog compared to competitor topics"
615
+ Claude: "After analyzing your content and common industry topics...
616
+ - Missing topics: 'AI in Healthcare', 'Remote Work Security', 'Green Technology'
617
+ - Underperforming categories: 'Tutorials' (only 3 posts vs 15+ needed)
618
+ - Recommended: 8 new posts to fill major gaps
619
+ - Priority topics based on search volume and competition"
620
+ ```
621
+
622
+ ### Maintenance Automation
623
+
624
+ **Site Health Monitoring**
625
+ ```text
626
+ You: "Perform a comprehensive site health check and fix any issues"
627
+ Claude: "Running complete site diagnostics...
628
+ - ✅ SSL certificate valid (expires: March 15, 2025)
629
+ - ⚠️ 3 broken internal links found and flagged
630
+ - ✅ All images optimized (average load time: 1.2s)
631
+ - ⚠️ 2 plugins need updates
632
+ - ✅ Database optimized (reduced size by 15%)
633
+ - ✅ Cache performance: 78% hit rate"
634
+ ```
635
+
636
+ **User Management Automation**
637
+ ```text
638
+ You: "Clean up user accounts and update permissions for the new team structure"
639
+ Claude: "Updating user management...
640
+ - Deactivated 5 inactive accounts (no login >6 months)
641
+ - Updated 12 user roles to match new org chart
642
+ - Created 3 new editor accounts for content team
643
+ - Set up role-based content access restrictions
644
+ - Configured automated welcome emails for new users"
645
+ ```
646
+
647
+ ### Performance Optimization
648
+
649
+ **Intelligent Cache Management**
650
+ ```text
651
+ You: "Analyze site performance and implement optimal caching strategies"
652
+ Claude: "Implementing performance optimizations...
653
+ - Enabled object caching (40% speed improvement)
654
+ - Configured CDN for static assets
655
+ - Optimized database queries (reduced load time by 25%)
656
+ - Set up page caching with smart invalidation
657
+ - Compressed and optimized 47 images
658
+ - Site speed improved from 3.2s to 1.8s average load time"
659
+ ```
660
+
661
+ ## 🎯 Industry-Specific Solutions
662
+
663
+ ### Healthcare Practices
664
+ ```text
665
+ 💬 "Create HIPAA-compliant patient information pages with secure forms"
666
+ 💬 "Update doctor profiles with latest certifications and specializations"
667
+ 💬 "Generate appointment booking pages with calendar integration"
668
+ 💬 "Create health education content with medical disclaimers"
669
+ ```
670
+
671
+ ### Legal Firms
672
+ ```text
673
+ 💬 "Create practice area pages with case study examples"
674
+ 💬 "Update attorney profiles with recent wins and bar admissions"
675
+ 💬 "Generate client intake forms with confidentiality notices"
676
+ 💬 "Create legal blog posts with proper citations and disclaimers"
677
+ ```
678
+
679
+ ### Real Estate Agencies
680
+ ```text
681
+ 💬 "Create property listing pages with virtual tour embeds"
682
+ 💬 "Update agent profiles with recent sales and market statistics"
683
+ 💬 "Generate neighborhood guide pages with local amenities"
684
+ 💬 "Create mortgage calculator pages with current rates"
685
+ ```
686
+
687
+ ### Restaurants & Food Service
688
+ ```text
689
+ 💬 "Create menu pages with dietary restriction filters"
690
+ 💬 "Update chef profiles with signature dishes and cooking philosophy"
691
+ 💬 "Generate event booking pages for private dining"
692
+ 💬 "Create food blog posts with recipe cards and nutritional information"
693
+ ```
694
+
362
695
  📖 **[More Examples](docs/examples/)** | **[Use Case Library](docs/use-cases/)**
363
696
 
697
+ ## 🛠️ Troubleshooting Guide
698
+
699
+ ### Quick Diagnostics
700
+
701
+ **Connection Issues**
702
+ ```bash
703
+ # Test WordPress connection
704
+ npm run status
705
+
706
+ # Debug mode with detailed logs
707
+ DEBUG=true npm run dev
708
+
709
+ # Test specific site in multi-site setup
710
+ npm run status -- --site="your-site-id"
711
+ ```
712
+
713
+ **Authentication Problems**
714
+ ```bash
715
+ # Verify WordPress application password
716
+ curl -u username:app_password https://your-site.com/wp-json/wp/v2/users/me
717
+
718
+ # Test authentication with different methods
719
+ npm run test:auth
720
+
721
+ # Regenerate application password
722
+ npm run setup
723
+ ```
724
+
725
+ **Performance Issues**
726
+ ```bash
727
+ # Check cache performance
728
+ npm run test:cache
729
+
730
+ # Monitor real-time performance
731
+ npm run test:performance
732
+
733
+ # Clear all caches
734
+ rm -rf cache/ && npm run dev
735
+ ```
736
+
737
+ ### Common Error Solutions
738
+
739
+ | Error | Cause | Solution |
740
+ |-------|--------|----------|
741
+ | `401 Unauthorized` | Invalid credentials | Regenerate application password |
742
+ | `403 Forbidden` | Insufficient permissions | Check user role (Editor+ required) |
743
+ | `404 Not Found` | Wrong site URL | Verify WORDPRESS_SITE_URL |
744
+ | `SSL Certificate Error` | HTTPS issues | Add SSL exception or use HTTP |
745
+ | `Connection Timeout` | Network/firewall | Check WordPress REST API access |
746
+ | `Tools not showing in Claude` | Config file format | Validate JSON syntax |
747
+ | `Plugin conflicts` | WordPress plugins | Disable conflicting plugins |
748
+ | `Rate limiting` | Too many requests | Implement request throttling |
749
+
750
+ ### WordPress-Specific Issues
751
+
752
+ **REST API Not Available**
753
+ ```bash
754
+ # Test REST API directly
755
+ curl https://your-site.com/wp-json/wp/v2/
756
+
757
+ # Check if REST API is disabled
758
+ grep -r "rest_api" wp-config.php
759
+
760
+ # Verify permalink structure
761
+ wp-admin → Settings → Permalinks → Post name
762
+ ```
763
+
764
+ **Application Password Issues**
765
+ ```text
766
+ 1. WordPress Admin → Users → Profile
767
+ 2. Scroll to "Application Passwords"
768
+ 3. Ensure feature is enabled (WordPress 5.6+)
769
+ 4. Generate new password if needed
770
+ 5. Copy password exactly (includes spaces)
771
+ ```
772
+
773
+ **Multi-Site Configuration Problems**
774
+ ```json
775
+ // Check mcp-wordpress.config.json format
776
+ {
777
+ "sites": [
778
+ {
779
+ "id": "unique-site-id",
780
+ "name": "Human Readable Name",
781
+ "config": {
782
+ "WORDPRESS_SITE_URL": "https://site.com",
783
+ "WORDPRESS_USERNAME": "username",
784
+ "WORDPRESS_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx"
785
+ }
786
+ }
787
+ ]
788
+ }
789
+ ```
790
+
791
+ ### Environment-Specific Solutions
792
+
793
+ **Claude Desktop Integration**
794
+ ```json
795
+ // Verify claude_desktop_config.json format
796
+ {
797
+ "mcpServers": {
798
+ "mcp-wordpress": {
799
+ "command": "npx",
800
+ "args": ["-y", "mcp-wordpress"],
801
+ "env": {
802
+ "WORDPRESS_SITE_URL": "https://your-site.com",
803
+ "WORDPRESS_USERNAME": "your-username",
804
+ "WORDPRESS_APP_PASSWORD": "your-app-password"
805
+ }
806
+ }
807
+ }
808
+ }
809
+ ```
810
+
811
+ **Docker Deployment Issues**
812
+ ```bash
813
+ # Check container logs
814
+ docker logs mcp-wordpress
815
+
816
+ # Verify environment variables
817
+ docker exec mcp-wordpress env | grep WORDPRESS
818
+
819
+ # Test network connectivity
820
+ docker exec mcp-wordpress curl https://your-site.com/wp-json/wp/v2/
821
+ ```
822
+
823
+ **NPX Runtime Problems**
824
+ ```bash
825
+ # Clear NPX cache
826
+ npx clear-npx-cache
827
+
828
+ # Use specific version
829
+ npx mcp-wordpress@latest
830
+
831
+ # Install globally instead
832
+ npm install -g mcp-wordpress
833
+ ```
834
+
835
+ ### Getting Help
836
+
837
+ **Self-Diagnostics**
838
+ ```bash
839
+ # Comprehensive health check
840
+ npm run health
841
+
842
+ # Security validation
843
+ npm run security:check
844
+
845
+ # Performance analysis
846
+ npm run test:performance
847
+ ```
848
+
849
+ **Debug Information Collection**
850
+ ```bash
851
+ # Generate debug report
852
+ DEBUG=true npm run status > debug-report.txt 2>&1
853
+
854
+ # Include system information
855
+ node --version >> debug-report.txt
856
+ npm --version >> debug-report.txt
857
+ os-info >> debug-report.txt
858
+ ```
859
+
860
+ **Community Support**
861
+ - 🐛 [Report Issues](https://github.com/docdyhr/mcp-wordpress/issues)
862
+ - 💬 [Discussions](https://github.com/docdyhr/mcp-wordpress/discussions)
863
+ - 📧 [Security Issues](mailto:security@docdyhr.com)
864
+ - 📚 [Documentation](docs/TROUBLESHOOTING.md)
865
+
364
866
  ## 🧪 Testing & Status
365
867
 
366
868
  ### Current Test Status ✅
@@ -493,6 +995,7 @@ npm run setup
493
995
 
494
996
  ### Deployment & Operations
495
997
  - **[Docker Deployment](docs/deployment/docker.md)** - Container deployment
998
+ - **[Publishing Troubleshooting](docs/PUBLISHING-TROUBLESHOOTING.md)** - Fix publishing issues
496
999
  - **[Security Best Practices](docs/SECURITY.md)** - Production security
497
1000
  - **[Performance Tuning](docs/deployment/performance.md)** - Optimization guide
498
1001
  - **[Monitoring](docs/deployment/monitoring.md)** - Logging and metrics
@@ -4,6 +4,53 @@
4
4
  */
5
5
  import type { IWordPressClient, WordPressClientConfig, HTTPMethod, RequestOptions, ClientStats } from "../types/client.js";
6
6
  import type { WordPressPost, WordPressPage, WordPressMedia, WordPressUser, WordPressComment, WordPressCategory, WordPressTag, WordPressSiteSettings, WordPressApplicationPassword, PostQueryParams, MediaQueryParams, UserQueryParams, CommentQueryParams, CreatePostRequest, UpdatePostRequest, CreatePageRequest, UpdatePageRequest, CreateUserRequest, UpdateUserRequest, CreateCommentRequest, UpdateCommentRequest, CreateCategoryRequest, UpdateCategoryRequest, CreateTagRequest, UpdateTagRequest, UploadMediaRequest, UpdateMediaRequest } from "../types/wordpress.js";
7
+ /**
8
+ * WordPress REST API Client
9
+ *
10
+ * A comprehensive client for interacting with the WordPress REST API v2.
11
+ * Provides full CRUD operations for posts, pages, media, users, comments,
12
+ * categories, tags, and site settings with robust error handling and performance optimization.
13
+ *
14
+ * Features:
15
+ * - Multiple authentication methods (App Passwords, JWT, Basic Auth, API Key)
16
+ * - Automatic retry logic with exponential backoff
17
+ * - Request rate limiting and queue management
18
+ * - Comprehensive error handling with detailed messages
19
+ * - Performance monitoring and request statistics
20
+ * - Caching support for improved performance
21
+ * - Multi-site configuration support
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * // Initialize with app password authentication
26
+ * const client = new WordPressClient({
27
+ * baseUrl: 'https://mysite.com',
28
+ * auth: {
29
+ * method: 'app-password',
30
+ * username: 'admin',
31
+ * password: 'xxxx xxxx xxxx xxxx xxxx xxxx'
32
+ * }
33
+ * });
34
+ *
35
+ * // Create a new post
36
+ * const post = await client.createPost({
37
+ * title: 'My New Post',
38
+ * content: '<p>This is the content</p>',
39
+ * status: 'publish'
40
+ * });
41
+ *
42
+ * // List posts with filtering
43
+ * const posts = await client.getPosts({
44
+ * search: 'WordPress',
45
+ * status: 'publish',
46
+ * per_page: 10
47
+ * });
48
+ * ```
49
+ *
50
+ * @since 1.0.0
51
+ * @author MCP WordPress Team
52
+ * @implements {IWordPressClient}
53
+ */
7
54
  export declare class WordPressClient implements IWordPressClient {
8
55
  private baseUrl;
9
56
  private apiUrl;
@@ -16,6 +63,49 @@ export declare class WordPressClient implements IWordPressClient {
16
63
  private authenticated;
17
64
  private jwtToken;
18
65
  private _stats;
66
+ /**
67
+ * Creates a new WordPress API client instance.
68
+ *
69
+ * Initializes the client with configuration options for connecting to a WordPress site.
70
+ * Supports multiple authentication methods and automatic environment variable detection.
71
+ *
72
+ * @param {Partial<WordPressClientConfig>} [options={}] - Configuration options for the client
73
+ * @param {string} [options.baseUrl] - WordPress site URL (falls back to WORDPRESS_SITE_URL env var)
74
+ * @param {number} [options.timeout=30000] - Request timeout in milliseconds
75
+ * @param {number} [options.maxRetries=3] - Maximum number of retry attempts for failed requests
76
+ * @param {AuthConfig} [options.auth] - Authentication configuration (auto-detected from env if not provided)
77
+ * @param {boolean} [options.enableCache=true] - Whether to enable response caching
78
+ * @param {number} [options.cacheMaxAge=300000] - Cache max age in milliseconds (5 minutes default)
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * // Basic configuration with app password
83
+ * const client = new WordPressClient({
84
+ * baseUrl: 'https://mysite.com',
85
+ * auth: {
86
+ * method: 'app-password',
87
+ * username: 'admin',
88
+ * password: 'xxxx xxxx xxxx xxxx xxxx xxxx'
89
+ * }
90
+ * });
91
+ *
92
+ * // Configuration with environment variables
93
+ * // Set WORDPRESS_SITE_URL, WORDPRESS_USERNAME, WORDPRESS_APP_PASSWORD
94
+ * const client = new WordPressClient(); // Auto-detects from env
95
+ *
96
+ * // Custom timeout and retry settings
97
+ * const client = new WordPressClient({
98
+ * baseUrl: 'https://mysite.com',
99
+ * timeout: 60000, // 60 seconds
100
+ * maxRetries: 5, // 5 retry attempts
101
+ * auth: { method: 'app-password', username: 'user', password: 'pass' }
102
+ * });
103
+ * ```
104
+ *
105
+ * @throws {Error} When required configuration is missing or invalid
106
+ *
107
+ * @since 1.0.0
108
+ */
19
109
  constructor(options?: Partial<WordPressClientConfig>);
20
110
  get config(): WordPressClientConfig;
21
111
  get isAuthenticated(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EAGrB,UAAU,EACV,cAAc,EACd,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,4BAA4B,EAC5B,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAG/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAAc;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;gBACS,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;IA0BxD,IAAI,MAAM,IAAI,qBAAqB,CAOlC;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,UAAU,IAAI,MAAM;IAIpB,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,cAAc;IAYhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;OAEG;IACH,OAAO,CAAC,cAAc;IAqCtB;;OAEG;YACW,SAAS;IAYvB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIP,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IA0BtC;;OAEG;YACW,qBAAqB;IAwBnC;;OAEG;YACW,mBAAmB;IAkCjC;;OAEG;YACW,sBAAsB;IASpC;;OAEG;IACG,OAAO,CAAC,CAAC,GAAG,GAAG,EACnB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,GAAU,EAChB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC;IAwKb,OAAO,CAAC,yBAAyB;IAQ3B,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAIpE,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjF,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhF,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlF,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAOvE,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAK5D,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,GAAG,OAAO,GAAG,MAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAIxF,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3D,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAK3D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;KAAE,CAAC;IAI9F,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAKtD,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAK5D,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,GAAG,OAAO,GAAG,MAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAIxF,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3D,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAK3D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;KAAE,CAAC;IAI9F,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAKtD,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAK9D,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,GAAG,OAAO,GAAG,MAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAI9F,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;IAsB9D,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,OAAO,CAAC,kBAAkB,CAAM,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,CAAC;IAiCpB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;IAK9D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;KAAE,CAAC;IAKhG,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAK5D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAE,MAAM,GAAG,OAAO,GAAG,MAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAI/F,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3D,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAK3D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;KAAE,CAAC;IAKlG,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAKxC,WAAW,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAKrE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,GAAG,OAAO,GAAG,MAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9F,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIpE,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKpE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAIpG,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIrD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMpD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKlD,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAKzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInD,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIvE,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKvE,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;IAItG,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK9C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzC,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIxD,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAKxD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;IAK5F,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAIjD,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI5F,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IAK3B,uBAAuB,CAAC,MAAM,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC;IAI9F,yBAAyB,CAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,4BAA4B,CAAC;IAMlC,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAK7F,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IASzE,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IASxB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAInD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAShE,OAAO,CAAC,WAAW;CAoBpB"}