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
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Zod schema for WordPress authentication methods
|
|
4
|
+
*/
|
|
5
|
+
const AuthMethodSchema = z.enum([
|
|
6
|
+
'app-password',
|
|
7
|
+
'jwt',
|
|
8
|
+
'basic',
|
|
9
|
+
'api-key',
|
|
10
|
+
'cookie'
|
|
11
|
+
]);
|
|
12
|
+
/**
|
|
13
|
+
* Zod schema for URL validation
|
|
14
|
+
*/
|
|
15
|
+
const UrlSchema = z
|
|
16
|
+
.string()
|
|
17
|
+
.url('Must be a valid URL')
|
|
18
|
+
.refine((url) => {
|
|
19
|
+
const parsed = new URL(url);
|
|
20
|
+
return parsed.protocol === 'http:' || parsed.protocol === 'https:';
|
|
21
|
+
}, 'URL must use http or https protocol');
|
|
22
|
+
/**
|
|
23
|
+
* Zod schema for WordPress site configuration
|
|
24
|
+
*/
|
|
25
|
+
const SiteConfigSchema = z.object({
|
|
26
|
+
WORDPRESS_SITE_URL: UrlSchema,
|
|
27
|
+
WORDPRESS_USERNAME: z
|
|
28
|
+
.string()
|
|
29
|
+
.min(1, 'Username is required')
|
|
30
|
+
.max(60, 'Username must be 60 characters or less')
|
|
31
|
+
.regex(/^[a-zA-Z0-9._@-]+$/, 'Username contains invalid characters'),
|
|
32
|
+
WORDPRESS_APP_PASSWORD: z
|
|
33
|
+
.string()
|
|
34
|
+
.min(1, 'Password is required')
|
|
35
|
+
.refine((password) => {
|
|
36
|
+
// WordPress app passwords are typically 24 characters with spaces
|
|
37
|
+
// But we'll be flexible to support different auth methods
|
|
38
|
+
return password.length >= 8;
|
|
39
|
+
}, 'Password must be at least 8 characters'),
|
|
40
|
+
WORDPRESS_AUTH_METHOD: AuthMethodSchema.optional().default('app-password')
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* Zod schema for site configuration with metadata
|
|
44
|
+
*/
|
|
45
|
+
const SiteSchema = z.object({
|
|
46
|
+
id: z
|
|
47
|
+
.string()
|
|
48
|
+
.min(1, 'Site ID is required')
|
|
49
|
+
.max(50, 'Site ID must be 50 characters or less')
|
|
50
|
+
.regex(/^[a-zA-Z0-9_-]+$/, 'Site ID can only contain letters, numbers, underscores, and hyphens'),
|
|
51
|
+
name: z
|
|
52
|
+
.string()
|
|
53
|
+
.min(1, 'Site name is required')
|
|
54
|
+
.max(100, 'Site name must be 100 characters or less'),
|
|
55
|
+
config: SiteConfigSchema
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* Zod schema for multi-site configuration file
|
|
59
|
+
*/
|
|
60
|
+
const MultiSiteConfigSchema = z.object({
|
|
61
|
+
sites: z
|
|
62
|
+
.array(SiteSchema)
|
|
63
|
+
.min(1, 'At least one site must be configured')
|
|
64
|
+
.max(50, 'Maximum of 50 sites supported')
|
|
65
|
+
.refine((sites) => {
|
|
66
|
+
const ids = sites.map((site) => site.id);
|
|
67
|
+
const uniqueIds = new Set(ids);
|
|
68
|
+
return ids.length === uniqueIds.size;
|
|
69
|
+
}, 'Site IDs must be unique')
|
|
70
|
+
.refine((sites) => {
|
|
71
|
+
const names = sites.map((site) => site.name);
|
|
72
|
+
const uniqueNames = new Set(names);
|
|
73
|
+
return names.length === uniqueNames.size;
|
|
74
|
+
}, 'Site names must be unique')
|
|
75
|
+
.refine((sites) => {
|
|
76
|
+
const urls = sites.map((site) => site.config.WORDPRESS_SITE_URL);
|
|
77
|
+
const uniqueUrls = new Set(urls);
|
|
78
|
+
return urls.length === uniqueUrls.size;
|
|
79
|
+
}, 'Site URLs must be unique')
|
|
80
|
+
});
|
|
81
|
+
/**
|
|
82
|
+
* Zod schema for environment variables (single-site mode)
|
|
83
|
+
*/
|
|
84
|
+
const EnvironmentConfigSchema = z.object({
|
|
85
|
+
WORDPRESS_SITE_URL: UrlSchema,
|
|
86
|
+
WORDPRESS_USERNAME: SiteConfigSchema.shape.WORDPRESS_USERNAME,
|
|
87
|
+
WORDPRESS_APP_PASSWORD: SiteConfigSchema.shape.WORDPRESS_APP_PASSWORD,
|
|
88
|
+
WORDPRESS_AUTH_METHOD: AuthMethodSchema.optional().default('app-password'),
|
|
89
|
+
// Optional environment variables
|
|
90
|
+
NODE_ENV: z.enum(['development', 'production', 'test']).optional(),
|
|
91
|
+
DEBUG: z.string().optional(),
|
|
92
|
+
DISABLE_CACHE: z.string().optional(),
|
|
93
|
+
LOG_LEVEL: z.enum(['error', 'warn', 'info', 'debug']).optional()
|
|
94
|
+
});
|
|
95
|
+
/**
|
|
96
|
+
* Zod schema for MCP configuration passed from client
|
|
97
|
+
*/
|
|
98
|
+
const McpConfigSchema = z
|
|
99
|
+
.object({
|
|
100
|
+
wordpressSiteUrl: UrlSchema.optional(),
|
|
101
|
+
wordpressUsername: SiteConfigSchema.shape.WORDPRESS_USERNAME.optional(),
|
|
102
|
+
wordpressAppPassword: SiteConfigSchema.shape.WORDPRESS_APP_PASSWORD.optional(),
|
|
103
|
+
wordpressAuthMethod: AuthMethodSchema.optional()
|
|
104
|
+
})
|
|
105
|
+
.optional();
|
|
106
|
+
/**
|
|
107
|
+
* Configuration validation utilities
|
|
108
|
+
*/
|
|
109
|
+
export class ConfigurationValidator {
|
|
110
|
+
/**
|
|
111
|
+
* Validate multi-site configuration from JSON file
|
|
112
|
+
*/
|
|
113
|
+
static validateMultiSiteConfig(config) {
|
|
114
|
+
try {
|
|
115
|
+
return MultiSiteConfigSchema.parse(config);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error instanceof z.ZodError) {
|
|
119
|
+
const messages = error.errors
|
|
120
|
+
.map((err) => `${err.path.join('.')}: ${err.message}`)
|
|
121
|
+
.join('; ');
|
|
122
|
+
throw new Error(`Multi-site configuration validation failed: ${messages}`);
|
|
123
|
+
}
|
|
124
|
+
throw error;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Validate environment configuration for single-site mode
|
|
129
|
+
*/
|
|
130
|
+
static validateEnvironmentConfig(env) {
|
|
131
|
+
try {
|
|
132
|
+
return EnvironmentConfigSchema.parse(env);
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
if (error instanceof z.ZodError) {
|
|
136
|
+
const messages = error.errors
|
|
137
|
+
.map((err) => `${err.path.join('.')}: ${err.message}`)
|
|
138
|
+
.join('; ');
|
|
139
|
+
throw new Error(`Environment configuration validation failed: ${messages}`);
|
|
140
|
+
}
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Validate MCP configuration passed from client
|
|
146
|
+
*/
|
|
147
|
+
static validateMcpConfig(config) {
|
|
148
|
+
try {
|
|
149
|
+
return McpConfigSchema.parse(config);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
if (error instanceof z.ZodError) {
|
|
153
|
+
const messages = error.errors
|
|
154
|
+
.map((err) => `${err.path.join('.')}: ${err.message}`)
|
|
155
|
+
.join('; ');
|
|
156
|
+
throw new Error(`MCP configuration validation failed: ${messages}`);
|
|
157
|
+
}
|
|
158
|
+
throw error;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Validate a single site configuration
|
|
163
|
+
*/
|
|
164
|
+
static validateSiteConfig(config) {
|
|
165
|
+
try {
|
|
166
|
+
return SiteSchema.parse(config);
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
if (error instanceof z.ZodError) {
|
|
170
|
+
const messages = error.errors
|
|
171
|
+
.map((err) => `${err.path.join('.')}: ${err.message}`)
|
|
172
|
+
.join('; ');
|
|
173
|
+
throw new Error(`Site configuration validation failed: ${messages}`);
|
|
174
|
+
}
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Check if a configuration file structure is valid without throwing
|
|
180
|
+
*/
|
|
181
|
+
static isValidMultiSiteConfig(config) {
|
|
182
|
+
const result = MultiSiteConfigSchema.safeParse(config);
|
|
183
|
+
return result.success;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Check if environment configuration is valid without throwing
|
|
187
|
+
*/
|
|
188
|
+
static isValidEnvironmentConfig(env) {
|
|
189
|
+
const result = EnvironmentConfigSchema.safeParse(env);
|
|
190
|
+
return result.success;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get validation errors without throwing
|
|
194
|
+
*/
|
|
195
|
+
static getValidationErrors(schema, data) {
|
|
196
|
+
const result = schema.safeParse(data);
|
|
197
|
+
if (result.success) {
|
|
198
|
+
return [];
|
|
199
|
+
}
|
|
200
|
+
return result.error.errors.map((err) => `${err.path.join('.')}: ${err.message}`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Export schemas for direct use if needed
|
|
204
|
+
export { SiteConfigSchema, SiteSchema, MultiSiteConfigSchema, EnvironmentConfigSchema, McpConfigSchema, AuthMethodSchema, UrlSchema };
|
|
205
|
+
//# sourceMappingURL=ConfigurationSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigurationSchema.js","sourceRoot":"","sources":["../../src/config/ConfigurationSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9B,cAAc;IACd,KAAK;IACL,OAAO;IACP,SAAS;IACT,QAAQ;CACA,CAAC,CAAC;AAEZ;;GAEG;AACH,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,EAAE;KACR,GAAG,CAAC,qBAAqB,CAAC;KAC1B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;IACd,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACrE,CAAC,EAAE,qCAAqC,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,kBAAkB,EAAE,SAAS;IAC7B,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,GAAG,CAAC,EAAE,EAAE,wCAAwC,CAAC;SACjD,KAAK,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;IACtE,sBAAsB,EAAE,CAAC;SACtB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;QACnB,kEAAkE;QAClE,0DAA0D;QAC1D,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9B,CAAC,EAAE,wCAAwC,CAAC;IAC9C,qBAAqB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;CAC3E,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC;SAC7B,GAAG,CAAC,EAAE,EAAE,uCAAuC,CAAC;SAChD,KAAK,CACJ,kBAAkB,EAClB,qEAAqE,CACtE;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;SAC/B,GAAG,CAAC,GAAG,EAAE,0CAA0C,CAAC;IACvD,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,UAAU,CAAC;SACjB,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;SAC9C,GAAG,CAAC,EAAE,EAAE,+BAA+B,CAAC;SACxC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC;IACvC,CAAC,EAAE,yBAAyB,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI,CAAC;IAC3C,CAAC,EAAE,2BAA2B,CAAC;SAC9B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC;IACzC,CAAC,EAAE,0BAA0B,CAAC;CACjC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,kBAAkB,EAAE,SAAS;IAC7B,kBAAkB,EAAE,gBAAgB,CAAC,KAAK,CAAC,kBAAkB;IAC7D,sBAAsB,EAAE,gBAAgB,CAAC,KAAK,CAAC,sBAAsB;IACrE,qBAAqB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;IAC1E,iCAAiC;IACjC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;CACjE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,gBAAgB,EAAE,SAAS,CAAC,QAAQ,EAAE;IACtC,iBAAiB,EAAE,gBAAgB,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACvE,oBAAoB,EAClB,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,CAAC,QAAQ,EAAE;IAC1D,mBAAmB,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACjD,CAAC;KACD,QAAQ,EAAE,CAAC;AAWd;;GAEG;AACH,MAAM,OAAO,sBAAsB;IACjC;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAe;QAC5C,IAAI,CAAC;YACH,OAAO,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;qBAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;qBACrD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,+CAA+C,QAAQ,EAAE,CAC1D,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAC9B,GAAuC;QAEvC,IAAI,CAAC;YACH,OAAO,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;qBAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;qBACrD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,gDAAgD,QAAQ,EAAE,CAC3D,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAe;QACtC,IAAI,CAAC;YACH,OAAO,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;qBAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;qBACrD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAe;QACvC,IAAI,CAAC;YACH,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;qBAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;qBACrD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,MAAe;QAC3C,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAC7B,GAAuC;QAEvC,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAmB,EAAE,IAAa;QAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAC5B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CACjD,CAAC;IACJ,CAAC;CACF;AAED,0CAA0C;AAC1C,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,SAAS,EACV,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { WordPressClient } from '../client/api.js';
|
|
2
|
+
import { type SiteType as SiteConfig, type MultiSiteConfigType as MultiSiteConfig, type McpConfigType } from './ConfigurationSchema.js';
|
|
3
|
+
export type { SiteConfig, MultiSiteConfig };
|
|
4
|
+
/**
|
|
5
|
+
* Configuration loader for MCP WordPress Server
|
|
6
|
+
* Handles both single-site (environment variables) and multi-site (JSON config) modes
|
|
7
|
+
*/
|
|
8
|
+
export declare class ServerConfiguration {
|
|
9
|
+
private static instance;
|
|
10
|
+
private rootDir;
|
|
11
|
+
private envPath;
|
|
12
|
+
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Get singleton instance of ServerConfiguration
|
|
15
|
+
*/
|
|
16
|
+
static getInstance(): ServerConfiguration;
|
|
17
|
+
/**
|
|
18
|
+
* Load WordPress client configurations
|
|
19
|
+
* Returns a Map of site ID to WordPressClient instances
|
|
20
|
+
*/
|
|
21
|
+
loadClientConfigurations(mcpConfig?: McpConfigType): {
|
|
22
|
+
clients: Map<string, WordPressClient>;
|
|
23
|
+
configs: SiteConfig[];
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Load multi-site configuration from JSON file
|
|
27
|
+
*/
|
|
28
|
+
private loadMultiSiteConfig;
|
|
29
|
+
/**
|
|
30
|
+
* Load single-site configuration from environment variables
|
|
31
|
+
*/
|
|
32
|
+
private loadSingleSiteFromEnv;
|
|
33
|
+
/**
|
|
34
|
+
* Get root directory path
|
|
35
|
+
*/
|
|
36
|
+
getRootDir(): string;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=ServerConfiguration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerConfiguration.d.ts","sourceRoot":"","sources":["../../src/config/ServerConfiguration.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,EAEL,KAAK,QAAQ,IAAI,UAAU,EAC3B,KAAK,mBAAmB,IAAI,eAAe,EAC3C,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AAE5C;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;;IAYxB;;OAEG;WACW,WAAW,IAAI,mBAAmB;IAOhD;;;OAGG;IACI,wBAAwB,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG;QAC1D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACtC,OAAO,EAAE,UAAU,EAAE,CAAC;KACvB;IAoBD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgD3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgF7B;;OAEG;IACI,UAAU,IAAI,MAAM;CAG5B"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import dotenv from 'dotenv';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
import { WordPressClient } from '../client/api.js';
|
|
6
|
+
import { CachedWordPressClient } from '../client/CachedWordPressClient.js';
|
|
7
|
+
import { getErrorMessage } from '../utils/error.js';
|
|
8
|
+
import { ConfigurationValidator } from './ConfigurationSchema.js';
|
|
9
|
+
/**
|
|
10
|
+
* Configuration loader for MCP WordPress Server
|
|
11
|
+
* Handles both single-site (environment variables) and multi-site (JSON config) modes
|
|
12
|
+
*/
|
|
13
|
+
export class ServerConfiguration {
|
|
14
|
+
static instance;
|
|
15
|
+
rootDir;
|
|
16
|
+
envPath;
|
|
17
|
+
constructor() {
|
|
18
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
19
|
+
const __dirname = path.dirname(__filename);
|
|
20
|
+
this.rootDir = path.resolve(__dirname, '../..');
|
|
21
|
+
this.envPath = path.resolve(this.rootDir, '.env');
|
|
22
|
+
// Load environment variables
|
|
23
|
+
dotenv.config({ path: this.envPath });
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get singleton instance of ServerConfiguration
|
|
27
|
+
*/
|
|
28
|
+
static getInstance() {
|
|
29
|
+
if (!ServerConfiguration.instance) {
|
|
30
|
+
ServerConfiguration.instance = new ServerConfiguration();
|
|
31
|
+
}
|
|
32
|
+
return ServerConfiguration.instance;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Load WordPress client configurations
|
|
36
|
+
* Returns a Map of site ID to WordPressClient instances
|
|
37
|
+
*/
|
|
38
|
+
loadClientConfigurations(mcpConfig) {
|
|
39
|
+
const configPath = path.resolve(this.rootDir, 'mcp-wordpress.config.json');
|
|
40
|
+
if (fs.existsSync(configPath)) {
|
|
41
|
+
if (process.env.NODE_ENV !== 'test') {
|
|
42
|
+
console.error('INFO: Found mcp-wordpress.config.json, loading multi-site configuration.');
|
|
43
|
+
}
|
|
44
|
+
return this.loadMultiSiteConfig(configPath);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
if (process.env.NODE_ENV !== 'test') {
|
|
48
|
+
console.error('INFO: mcp-wordpress.config.json not found, falling back to environment variables for single-site mode.');
|
|
49
|
+
}
|
|
50
|
+
return this.loadSingleSiteFromEnv(mcpConfig);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Load multi-site configuration from JSON file
|
|
55
|
+
*/
|
|
56
|
+
loadMultiSiteConfig(configPath) {
|
|
57
|
+
try {
|
|
58
|
+
const configFile = fs.readFileSync(configPath, 'utf-8');
|
|
59
|
+
const rawConfig = JSON.parse(configFile);
|
|
60
|
+
// Validate configuration using Zod schema
|
|
61
|
+
const config = ConfigurationValidator.validateMultiSiteConfig(rawConfig);
|
|
62
|
+
const clients = new Map();
|
|
63
|
+
const validConfigs = [];
|
|
64
|
+
for (const site of config.sites) {
|
|
65
|
+
const clientConfig = {
|
|
66
|
+
baseUrl: site.config.WORDPRESS_SITE_URL,
|
|
67
|
+
auth: {
|
|
68
|
+
method: site.config.WORDPRESS_AUTH_METHOD || 'app-password',
|
|
69
|
+
username: site.config.WORDPRESS_USERNAME,
|
|
70
|
+
appPassword: site.config.WORDPRESS_APP_PASSWORD
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
// Use cached client for better performance
|
|
74
|
+
const client = process.env.DISABLE_CACHE === 'true'
|
|
75
|
+
? new WordPressClient(clientConfig)
|
|
76
|
+
: new CachedWordPressClient(clientConfig, site.id);
|
|
77
|
+
clients.set(site.id, client);
|
|
78
|
+
validConfigs.push(site);
|
|
79
|
+
if (process.env.NODE_ENV !== 'test') {
|
|
80
|
+
console.error(`INFO: Initialized client for site: ${site.name} (ID: ${site.id})`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return { clients, configs: validConfigs };
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.error(`FATAL: Error reading or parsing mcp-wordpress.config.json: ${getErrorMessage(error)}`);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Load single-site configuration from environment variables
|
|
92
|
+
*/
|
|
93
|
+
loadSingleSiteFromEnv(mcpConfig) {
|
|
94
|
+
try {
|
|
95
|
+
// Validate MCP config if provided
|
|
96
|
+
const validatedMcpConfig = mcpConfig
|
|
97
|
+
? ConfigurationValidator.validateMcpConfig(mcpConfig)
|
|
98
|
+
: undefined;
|
|
99
|
+
// Prepare environment configuration for validation
|
|
100
|
+
const envConfig = {
|
|
101
|
+
WORDPRESS_SITE_URL: validatedMcpConfig?.wordpressSiteUrl ||
|
|
102
|
+
process.env.WORDPRESS_SITE_URL,
|
|
103
|
+
WORDPRESS_USERNAME: validatedMcpConfig?.wordpressUsername ||
|
|
104
|
+
process.env.WORDPRESS_USERNAME,
|
|
105
|
+
WORDPRESS_APP_PASSWORD: validatedMcpConfig?.wordpressAppPassword ||
|
|
106
|
+
process.env.WORDPRESS_APP_PASSWORD,
|
|
107
|
+
WORDPRESS_AUTH_METHOD: validatedMcpConfig?.wordpressAuthMethod ||
|
|
108
|
+
process.env.WORDPRESS_AUTH_METHOD ||
|
|
109
|
+
'app-password',
|
|
110
|
+
NODE_ENV: process.env.NODE_ENV,
|
|
111
|
+
DEBUG: process.env.DEBUG,
|
|
112
|
+
DISABLE_CACHE: process.env.DISABLE_CACHE,
|
|
113
|
+
LOG_LEVEL: process.env.LOG_LEVEL
|
|
114
|
+
};
|
|
115
|
+
// Validate environment configuration using Zod schema
|
|
116
|
+
const validatedConfig = ConfigurationValidator.validateEnvironmentConfig(envConfig);
|
|
117
|
+
const clientConfig = {
|
|
118
|
+
baseUrl: validatedConfig.WORDPRESS_SITE_URL,
|
|
119
|
+
auth: {
|
|
120
|
+
method: validatedConfig.WORDPRESS_AUTH_METHOD,
|
|
121
|
+
username: validatedConfig.WORDPRESS_USERNAME,
|
|
122
|
+
appPassword: validatedConfig.WORDPRESS_APP_PASSWORD
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
// Use cached client for better performance
|
|
126
|
+
const client = process.env.DISABLE_CACHE === 'true'
|
|
127
|
+
? new WordPressClient(clientConfig)
|
|
128
|
+
: new CachedWordPressClient(clientConfig, 'default');
|
|
129
|
+
const clients = new Map();
|
|
130
|
+
clients.set('default', client);
|
|
131
|
+
const siteConfig = {
|
|
132
|
+
id: 'default',
|
|
133
|
+
name: 'Default Site',
|
|
134
|
+
config: {
|
|
135
|
+
WORDPRESS_SITE_URL: validatedConfig.WORDPRESS_SITE_URL,
|
|
136
|
+
WORDPRESS_USERNAME: validatedConfig.WORDPRESS_USERNAME,
|
|
137
|
+
WORDPRESS_APP_PASSWORD: validatedConfig.WORDPRESS_APP_PASSWORD,
|
|
138
|
+
WORDPRESS_AUTH_METHOD: validatedConfig.WORDPRESS_AUTH_METHOD
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
console.error('INFO: Initialized client for default site in single-site mode.');
|
|
142
|
+
return { clients, configs: [siteConfig] };
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
console.error('ERROR: Configuration validation failed for single-site mode.');
|
|
146
|
+
console.error(`Details: ${getErrorMessage(error)}`);
|
|
147
|
+
console.error('Please check your environment variables or MCP configuration.');
|
|
148
|
+
return { clients: new Map(), configs: [] };
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get root directory path
|
|
153
|
+
*/
|
|
154
|
+
getRootDir() {
|
|
155
|
+
return this.rootDir;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=ServerConfiguration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerConfiguration.js","sourceRoot":"","sources":["../../src/config/ServerConfiguration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comprehensive API Documentation Auto-Generation System
|
|
3
|
+
* Extracts documentation from tool classes, types, and WordPress mappings
|
|
4
|
+
*/
|
|
5
|
+
export interface DocumentationConfig {
|
|
6
|
+
outputDir: string;
|
|
7
|
+
includeExamples: boolean;
|
|
8
|
+
includeWordPressMapping: boolean;
|
|
9
|
+
generateOpenAPI: boolean;
|
|
10
|
+
generateInteractiveHtml: boolean;
|
|
11
|
+
validateExamples: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ToolDocumentation {
|
|
14
|
+
name: string;
|
|
15
|
+
category: string;
|
|
16
|
+
description: string;
|
|
17
|
+
parameters: ParameterDocumentation[];
|
|
18
|
+
examples: ExampleUsage[];
|
|
19
|
+
wordpressEndpoint: string | undefined;
|
|
20
|
+
requiredPermissions: string[] | undefined;
|
|
21
|
+
returnType: string;
|
|
22
|
+
errorCodes: ErrorDocumentation[];
|
|
23
|
+
relatedTools: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface ParameterDocumentation {
|
|
26
|
+
name: string;
|
|
27
|
+
type: string;
|
|
28
|
+
required: boolean;
|
|
29
|
+
description: string;
|
|
30
|
+
defaultValue: any;
|
|
31
|
+
allowedValues: string[] | undefined;
|
|
32
|
+
examples: string[];
|
|
33
|
+
}
|
|
34
|
+
export interface ExampleUsage {
|
|
35
|
+
title: string;
|
|
36
|
+
description: string;
|
|
37
|
+
command: string;
|
|
38
|
+
parameters: Record<string, any>;
|
|
39
|
+
expectedResponse: any;
|
|
40
|
+
errorExample?: {
|
|
41
|
+
scenario: string;
|
|
42
|
+
error: any;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export interface ErrorDocumentation {
|
|
46
|
+
code: string;
|
|
47
|
+
message: string;
|
|
48
|
+
description: string;
|
|
49
|
+
resolution: string;
|
|
50
|
+
}
|
|
51
|
+
export interface DocumentationOutput {
|
|
52
|
+
tools: ToolDocumentation[];
|
|
53
|
+
categories: CategoryDocumentation[];
|
|
54
|
+
types: TypeDocumentation[];
|
|
55
|
+
openApiSpec: OpenAPISpecification | undefined;
|
|
56
|
+
summary: DocumentationSummary;
|
|
57
|
+
}
|
|
58
|
+
export interface CategoryDocumentation {
|
|
59
|
+
name: string;
|
|
60
|
+
description: string;
|
|
61
|
+
toolCount: number;
|
|
62
|
+
tools: string[];
|
|
63
|
+
usagePatterns: string[];
|
|
64
|
+
}
|
|
65
|
+
export interface TypeDocumentation {
|
|
66
|
+
name: string;
|
|
67
|
+
description: string;
|
|
68
|
+
properties: PropertyDocumentation[];
|
|
69
|
+
examples: any[];
|
|
70
|
+
wordpressSource?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface PropertyDocumentation {
|
|
73
|
+
name: string;
|
|
74
|
+
type: string;
|
|
75
|
+
required: boolean;
|
|
76
|
+
description: string;
|
|
77
|
+
format?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface OpenAPISpecification {
|
|
80
|
+
openapi: string;
|
|
81
|
+
info: any;
|
|
82
|
+
paths: Record<string, any>;
|
|
83
|
+
components: Record<string, any>;
|
|
84
|
+
}
|
|
85
|
+
export interface DocumentationSummary {
|
|
86
|
+
totalTools: number;
|
|
87
|
+
totalCategories: number;
|
|
88
|
+
totalTypes: number;
|
|
89
|
+
lastUpdated: string;
|
|
90
|
+
version: string;
|
|
91
|
+
coverage: {
|
|
92
|
+
toolsWithExamples: number;
|
|
93
|
+
toolsWithWordPressMapping: number;
|
|
94
|
+
typesDocumented: number;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Main Documentation Generator
|
|
99
|
+
*/
|
|
100
|
+
export declare class DocumentationGenerator {
|
|
101
|
+
private config;
|
|
102
|
+
private toolCategories;
|
|
103
|
+
private wordpressEndpoints;
|
|
104
|
+
constructor(config?: Partial<DocumentationConfig>);
|
|
105
|
+
/**
|
|
106
|
+
* Generate complete documentation for all tools and types
|
|
107
|
+
*/
|
|
108
|
+
generateFullDocumentation(): Promise<DocumentationOutput>;
|
|
109
|
+
/**
|
|
110
|
+
* Extract documentation from all tool classes
|
|
111
|
+
*/
|
|
112
|
+
private extractAllToolDocumentation;
|
|
113
|
+
/**
|
|
114
|
+
* Extract documentation for a single tool
|
|
115
|
+
*/
|
|
116
|
+
private extractToolDocumentation;
|
|
117
|
+
/**
|
|
118
|
+
* Extract parameter documentation
|
|
119
|
+
*/
|
|
120
|
+
private extractParameterDocumentation;
|
|
121
|
+
/**
|
|
122
|
+
* Generate usage examples for tools
|
|
123
|
+
*/
|
|
124
|
+
private generateToolExamples;
|
|
125
|
+
/**
|
|
126
|
+
* Generate basic usage example
|
|
127
|
+
*/
|
|
128
|
+
private generateBasicExample;
|
|
129
|
+
/**
|
|
130
|
+
* Generate multi-site example
|
|
131
|
+
*/
|
|
132
|
+
private generateMultiSiteExample;
|
|
133
|
+
/**
|
|
134
|
+
* Generate advanced example with all parameters
|
|
135
|
+
*/
|
|
136
|
+
private generateAdvancedExample;
|
|
137
|
+
/**
|
|
138
|
+
* Generate category documentation
|
|
139
|
+
*/
|
|
140
|
+
private generateCategoryDocumentation;
|
|
141
|
+
/**
|
|
142
|
+
* Extract type documentation from TypeScript definitions
|
|
143
|
+
*/
|
|
144
|
+
private extractTypeDocumentation;
|
|
145
|
+
/**
|
|
146
|
+
* Generate OpenAPI specification
|
|
147
|
+
*/
|
|
148
|
+
private generateOpenAPISpecification;
|
|
149
|
+
/**
|
|
150
|
+
* Write all documentation files
|
|
151
|
+
*/
|
|
152
|
+
private writeDocumentationFiles;
|
|
153
|
+
private extractCategoryFromClassName;
|
|
154
|
+
private initializeWordPressMapping;
|
|
155
|
+
private initializeToolCategories;
|
|
156
|
+
private generateDocumentationSummary;
|
|
157
|
+
/**
|
|
158
|
+
* Helper methods for documentation generation
|
|
159
|
+
*/
|
|
160
|
+
private getDefaultValue;
|
|
161
|
+
private getAllowedValues;
|
|
162
|
+
private generateParameterExamples;
|
|
163
|
+
private supportsMultiSite;
|
|
164
|
+
private generateExampleValue;
|
|
165
|
+
private generateExpectedResponse;
|
|
166
|
+
private getExampleParameters;
|
|
167
|
+
private getCategoryDescription;
|
|
168
|
+
private generateUsagePatterns;
|
|
169
|
+
private generateWordPressPostExample;
|
|
170
|
+
private generateParameterSchema;
|
|
171
|
+
private convertTypeToJsonSchema;
|
|
172
|
+
private inferReturnType;
|
|
173
|
+
private generateErrorDocumentation;
|
|
174
|
+
private findRelatedTools;
|
|
175
|
+
private getRequiredPermissions;
|
|
176
|
+
/**
|
|
177
|
+
* File writing implementations
|
|
178
|
+
*/
|
|
179
|
+
private writeApiOverview;
|
|
180
|
+
private writeToolDocumentation;
|
|
181
|
+
private writeCategoryDocumentation;
|
|
182
|
+
private writeTypeDocumentation;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=DocumentationGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentationGenerator.d.ts","sourceRoot":"","sources":["../../src/docs/DocumentationGenerator.ts"],"names":[],"mappings":"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"}
|