mcp-wordpress 1.2.2 → 1.3.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.
- package/README.md +210 -182
- package/dist/cache/CacheInvalidation.d.ts +3 -3
- package/dist/cache/CacheInvalidation.d.ts.map +1 -1
- package/dist/cache/CacheInvalidation.js +119 -119
- package/dist/cache/CacheInvalidation.js.map +1 -1
- package/dist/cache/CacheManager.d.ts +5 -0
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.js +26 -16
- package/dist/cache/CacheManager.js.map +1 -1
- package/dist/cache/HttpCacheWrapper.d.ts +1 -1
- package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
- package/dist/cache/HttpCacheWrapper.js +29 -29
- package/dist/cache/HttpCacheWrapper.js.map +1 -1
- package/dist/cache/__tests__/CacheInvalidation.test.js +96 -94
- package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -1
- package/dist/cache/__tests__/CacheManager.test.js +113 -113
- package/dist/cache/__tests__/CacheManager.test.js.map +1 -1
- package/dist/cache/__tests__/CachedWordPressClient.test.js +102 -99
- package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -1
- package/dist/cache/__tests__/HttpCacheWrapper.test.js +98 -95
- package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -1
- package/dist/cache/index.d.ts +7 -7
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +4 -4
- package/dist/cache/index.js.map +1 -1
- package/dist/client/CachedWordPressClient.d.ts +4 -4
- package/dist/client/CachedWordPressClient.d.ts.map +1 -1
- package/dist/client/CachedWordPressClient.js +55 -51
- package/dist/client/CachedWordPressClient.js.map +1 -1
- package/dist/client/api.d.ts +10 -10
- package/dist/client/api.js +158 -158
- package/dist/client/api.js.map +1 -1
- package/dist/client/auth.d.ts +2 -2
- package/dist/client/auth.js +72 -72
- package/dist/client/managers/AuthenticationManager.d.ts +2 -2
- package/dist/client/managers/AuthenticationManager.js +46 -46
- package/dist/client/managers/BaseManager.d.ts +1 -1
- package/dist/client/managers/BaseManager.js +9 -9
- package/dist/client/managers/RequestManager.d.ts +5 -3
- package/dist/client/managers/RequestManager.d.ts.map +1 -1
- package/dist/client/managers/RequestManager.js +39 -19
- package/dist/client/managers/RequestManager.js.map +1 -1
- package/dist/client/managers/index.d.ts +3 -3
- package/dist/client/managers/index.js +3 -3
- package/dist/config/ConfigurationSchema.d.ts +2 -2
- package/dist/config/ConfigurationSchema.d.ts.map +1 -1
- package/dist/config/ConfigurationSchema.js +40 -40
- package/dist/config/ConfigurationSchema.js.map +1 -1
- package/dist/config/ServerConfiguration.d.ts +2 -2
- package/dist/config/ServerConfiguration.js +35 -35
- package/dist/config/ServerConfiguration.js.map +1 -1
- package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
- package/dist/docs/DocumentationGenerator.js +296 -255
- package/dist/docs/DocumentationGenerator.js.map +1 -1
- package/dist/docs/MarkdownFormatter.d.ts +1 -1
- package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
- package/dist/docs/MarkdownFormatter.js +60 -51
- package/dist/docs/MarkdownFormatter.js.map +1 -1
- package/dist/docs/index.d.ts +3 -3
- package/dist/docs/index.d.ts.map +1 -1
- package/dist/docs/index.js +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -16
- package/dist/index.js.map +1 -1
- package/dist/mcp-wordpress-1.3.0.tgz +0 -0
- package/dist/performance/MetricsCollector.d.ts +3 -3
- package/dist/performance/MetricsCollector.d.ts.map +1 -1
- package/dist/performance/MetricsCollector.js +33 -27
- package/dist/performance/MetricsCollector.js.map +1 -1
- package/dist/performance/PerformanceAnalytics.d.ts +12 -12
- package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
- package/dist/performance/PerformanceAnalytics.js +200 -154
- package/dist/performance/PerformanceAnalytics.js.map +1 -1
- package/dist/performance/PerformanceMonitor.d.ts +5 -5
- package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
- package/dist/performance/PerformanceMonitor.js +53 -52
- package/dist/performance/PerformanceMonitor.js.map +1 -1
- package/dist/performance/index.d.ts +6 -6
- package/dist/performance/index.d.ts.map +1 -1
- package/dist/performance/index.js +3 -3
- package/dist/security/InputValidator.d.ts +1 -1
- package/dist/security/InputValidator.d.ts.map +1 -1
- package/dist/security/InputValidator.js +111 -88
- package/dist/security/InputValidator.js.map +1 -1
- package/dist/security/SecurityConfig.d.ts +5 -5
- package/dist/security/SecurityConfig.js +92 -92
- package/dist/security/SecurityConfig.js.map +1 -1
- package/dist/server/ConnectionTester.d.ts +1 -1
- package/dist/server/ConnectionTester.d.ts.map +1 -1
- package/dist/server/ConnectionTester.js +4 -4
- package/dist/server/ConnectionTester.js.map +1 -1
- package/dist/server/ToolRegistry.d.ts +2 -2
- package/dist/server/ToolRegistry.d.ts.map +1 -1
- package/dist/server/ToolRegistry.js +35 -32
- package/dist/server/ToolRegistry.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.js +2 -2
- package/dist/tools/BaseToolManager.js +5 -5
- package/dist/tools/auth.d.ts +2 -2
- package/dist/tools/auth.d.ts.map +1 -1
- package/dist/tools/auth.js +32 -31
- package/dist/tools/auth.js.map +1 -1
- package/dist/tools/cache.d.ts +1 -1
- package/dist/tools/cache.d.ts.map +1 -1
- package/dist/tools/cache.js +71 -71
- package/dist/tools/cache.js.map +1 -1
- package/dist/tools/comments.d.ts +2 -2
- package/dist/tools/comments.d.ts.map +1 -1
- package/dist/tools/comments.js +79 -79
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/index.d.ts +10 -10
- package/dist/tools/index.js +10 -10
- package/dist/tools/media.d.ts +2 -2
- package/dist/tools/media.js +80 -80
- package/dist/tools/pages.d.ts +2 -2
- package/dist/tools/pages.d.ts.map +1 -1
- package/dist/tools/pages.js +75 -75
- package/dist/tools/pages.js.map +1 -1
- package/dist/tools/performance.d.ts +1 -1
- package/dist/tools/performance.d.ts.map +1 -1
- package/dist/tools/performance.js +311 -287
- package/dist/tools/performance.js.map +1 -1
- package/dist/tools/posts.d.ts +2 -2
- package/dist/tools/posts.d.ts.map +1 -1
- package/dist/tools/posts.js +94 -94
- package/dist/tools/posts.js.map +1 -1
- package/dist/tools/site.d.ts +2 -2
- package/dist/tools/site.d.ts.map +1 -1
- package/dist/tools/site.js +60 -60
- package/dist/tools/site.js.map +1 -1
- package/dist/tools/taxonomies.d.ts +2 -2
- package/dist/tools/taxonomies.js +89 -89
- package/dist/tools/users.d.ts +2 -2
- package/dist/tools/users.js +68 -68
- package/dist/tools/users.js.map +1 -1
- package/dist/types/client.d.ts +13 -13
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/client.js +12 -12
- package/dist/types/client.js.map +1 -1
- package/dist/types/index.d.ts +19 -19
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -3
- package/dist/types/mcp.d.ts +7 -7
- package/dist/types/wordpress.d.ts +21 -21
- package/dist/types/wordpress.d.ts.map +1 -1
- package/dist/utils/debug.d.ts +2 -2
- package/dist/utils/debug.js +28 -28
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.js +13 -13
- package/dist/utils/error.js.map +1 -1
- package/dist/utils/toolWrapper.d.ts.map +1 -1
- package/dist/utils/toolWrapper.js +5 -5
- package/dist/utils/toolWrapper.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +41 -31
- package/dist/utils/validation.js.map +1 -1
- package/docs/CACHING.md +36 -2
- package/docs/DOCKER.md +24 -18
- package/docs/PERFORMANCE_MONITORING.md +49 -1
- package/docs/SECURITY_TESTING.md +30 -1
- package/docs/api/README.md +9 -1
- package/docs/api/summary.json +1 -1
- package/docs/contract-testing.md +24 -3
- package/docs/developer/GITHUB_ACTIONS_SETUP.md +8 -2
- package/docs/developer/MAINTENANCE.md +29 -3
- package/docs/developer/MIGRATION_GUIDE.md +13 -1
- package/docs/developer/NPM_AUTH_SETUP.md +13 -2
- package/docs/developer/REFACTORING.md +31 -1
- package/docs/releases/COMMUNITY_ANNOUNCEMENT_v1.1.2.md +18 -7
- package/docs/releases/RELEASE_NOTES_v1.1.2.md +31 -5
- package/docs/user-guides/DOCKER_SETUP.md +264 -0
- package/docs/user-guides/DTX_SETUP.md +327 -0
- package/docs/user-guides/NPM_SETUP.md +109 -0
- package/docs/user-guides/NPX_SETUP.md +281 -0
- package/docs/wordpress-rest-api-authentication-troubleshooting.md +13 -2
- package/package.json +27 -8
- package/src/cache/CacheInvalidation.ts +140 -132
- package/src/cache/CacheManager.ts +40 -29
- package/src/cache/HttpCacheWrapper.ts +105 -68
- package/src/cache/__tests__/CacheInvalidation.test.ts +123 -118
- package/src/cache/__tests__/CacheManager.test.ts +156 -152
- package/src/cache/__tests__/CachedWordPressClient.test.ts +131 -116
- package/src/cache/__tests__/HttpCacheWrapper.test.ts +118 -115
- package/src/cache/index.ts +13 -13
- package/src/client/CachedWordPressClient.ts +90 -80
- package/src/client/api.ts +205 -205
- package/src/client/auth.ts +80 -80
- package/src/client/managers/AuthenticationManager.ts +61 -61
- package/src/client/managers/BaseManager.ts +11 -11
- package/src/client/managers/RequestManager.ts +79 -47
- package/src/client/managers/index.ts +3 -3
- package/src/config/ConfigurationSchema.ts +44 -44
- package/src/config/ServerConfiguration.ts +39 -39
- package/src/docs/DocumentationGenerator.ts +402 -295
- package/src/docs/MarkdownFormatter.ts +94 -69
- package/src/docs/index.ts +4 -4
- package/src/index.ts +24 -21
- package/src/performance/MetricsCollector.ts +90 -58
- package/src/performance/PerformanceAnalytics.ts +386 -262
- package/src/performance/PerformanceMonitor.ts +152 -118
- package/src/performance/index.ts +9 -9
- package/src/security/InputValidator.ts +148 -91
- package/src/security/SecurityConfig.ts +94 -94
- package/src/server/ConnectionTester.ts +21 -15
- package/src/server/ToolRegistry.ts +64 -51
- package/src/server.ts +2 -2
- package/src/tools/BaseToolManager.ts +6 -6
- package/src/tools/auth.ts +42 -37
- package/src/tools/cache.ts +85 -81
- package/src/tools/comments.ts +93 -91
- package/src/tools/index.ts +10 -10
- package/src/tools/media.ts +89 -89
- package/src/tools/pages.ts +89 -87
- package/src/tools/performance.ts +443 -352
- package/src/tools/posts.ts +109 -107
- package/src/tools/site.ts +86 -77
- package/src/tools/taxonomies.ts +102 -102
- package/src/tools/users.ts +77 -77
- package/src/types/client.ts +157 -60
- package/src/types/index.ts +49 -27
- package/src/types/mcp.ts +15 -15
- package/src/types/wordpress.ts +57 -29
- package/src/utils/debug.ts +37 -37
- package/src/utils/error.ts +47 -25
- package/src/utils/toolWrapper.ts +12 -8
- package/src/utils/validation.ts +116 -65
- package/dist/client/WordPressClient.d.ts +0 -81
- package/dist/client/WordPressClient.d.ts.map +0 -1
- package/dist/client/WordPressClient.js +0 -354
- package/dist/client/WordPressClient.js.map +0 -1
- package/dist/performance/AnomalyDetector.d.ts +0 -63
- package/dist/performance/AnomalyDetector.d.ts.map +0 -1
- package/dist/performance/AnomalyDetector.js +0 -222
- package/dist/performance/AnomalyDetector.js.map +0 -1
- package/dist/performance/BenchmarkAnalyzer.d.ts +0 -67
- package/dist/performance/BenchmarkAnalyzer.d.ts.map +0 -1
- package/dist/performance/BenchmarkAnalyzer.js +0 -301
- package/dist/performance/BenchmarkAnalyzer.js.map +0 -1
- package/dist/performance/TrendAnalyzer.d.ts +0 -69
- package/dist/performance/TrendAnalyzer.d.ts.map +0 -1
- package/dist/performance/TrendAnalyzer.js +0 -203
- package/dist/performance/TrendAnalyzer.js.map +0 -1
- package/dist/tools/BaseToolClass.d.ts +0 -76
- package/dist/tools/BaseToolClass.d.ts.map +0 -1
- package/dist/tools/BaseToolClass.js +0 -104
- package/dist/tools/BaseToolClass.js.map +0 -1
- package/dist/tools/base.d.ts +0 -37
- package/dist/tools/base.d.ts.map +0 -1
- package/dist/tools/base.js +0 -60
- package/dist/tools/base.js.map +0 -1
- package/docs/user-guides/CLAUDE_DESKTOP_SETUP.md +0 -187
|
@@ -1,66 +1,66 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Security configuration and constants for MCP WordPress
|
|
3
3
|
*/
|
|
4
|
-
import { randomBytes } from
|
|
4
|
+
import { randomBytes } from "crypto";
|
|
5
5
|
export const SecurityConfig = {
|
|
6
6
|
// Rate limiting
|
|
7
7
|
rateLimiting: {
|
|
8
8
|
default: {
|
|
9
9
|
windowMs: 60 * 1000, // 1 minute
|
|
10
|
-
maxRequests: 60
|
|
10
|
+
maxRequests: 60,
|
|
11
11
|
},
|
|
12
12
|
authentication: {
|
|
13
13
|
windowMs: 5 * 60 * 1000, // 5 minutes
|
|
14
|
-
maxAttempts: 5
|
|
14
|
+
maxAttempts: 5,
|
|
15
15
|
},
|
|
16
16
|
upload: {
|
|
17
17
|
windowMs: 60 * 1000, // 1 minute
|
|
18
|
-
maxRequests: 10
|
|
19
|
-
}
|
|
18
|
+
maxRequests: 10,
|
|
19
|
+
},
|
|
20
20
|
},
|
|
21
21
|
// File upload restrictions
|
|
22
22
|
fileUpload: {
|
|
23
23
|
maxSizeMB: 10,
|
|
24
24
|
allowedMimeTypes: [
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
25
|
+
"image/jpeg",
|
|
26
|
+
"image/png",
|
|
27
|
+
"image/gif",
|
|
28
|
+
"image/webp",
|
|
29
|
+
"image/svg+xml",
|
|
30
|
+
"application/pdf",
|
|
31
|
+
"application/msword",
|
|
32
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
33
|
+
"application/vnd.ms-excel",
|
|
34
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
35
|
+
"text/plain",
|
|
36
|
+
"text/csv",
|
|
37
37
|
],
|
|
38
38
|
// Dangerous file extensions to block
|
|
39
39
|
blockedExtensions: [
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
]
|
|
40
|
+
".exe",
|
|
41
|
+
".bat",
|
|
42
|
+
".cmd",
|
|
43
|
+
".com",
|
|
44
|
+
".pif",
|
|
45
|
+
".scr",
|
|
46
|
+
".vbs",
|
|
47
|
+
".js",
|
|
48
|
+
".jar",
|
|
49
|
+
".zip",
|
|
50
|
+
".rar",
|
|
51
|
+
".tar",
|
|
52
|
+
".php",
|
|
53
|
+
".php3",
|
|
54
|
+
".php4",
|
|
55
|
+
".php5",
|
|
56
|
+
".phtml",
|
|
57
|
+
".sh",
|
|
58
|
+
".bash",
|
|
59
|
+
".zsh",
|
|
60
|
+
".fish",
|
|
61
|
+
".ps1",
|
|
62
|
+
".psm1",
|
|
63
|
+
],
|
|
64
64
|
},
|
|
65
65
|
// Input validation
|
|
66
66
|
validation: {
|
|
@@ -72,54 +72,54 @@ export const SecurityConfig = {
|
|
|
72
72
|
maxUsernameLength: 60,
|
|
73
73
|
minUsernameLength: 3,
|
|
74
74
|
maxPasswordLength: 128,
|
|
75
|
-
minPasswordLength: 8
|
|
75
|
+
minPasswordLength: 8,
|
|
76
76
|
},
|
|
77
77
|
// Request timeouts (milliseconds)
|
|
78
78
|
timeouts: {
|
|
79
79
|
default: 30000, // 30 seconds
|
|
80
80
|
upload: 600000, // 10 minutes
|
|
81
|
-
auth: 10000 // 10 seconds
|
|
81
|
+
auth: 10000, // 10 seconds
|
|
82
82
|
},
|
|
83
83
|
// Security headers
|
|
84
84
|
headers: {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
"X-Content-Type-Options": "nosniff",
|
|
86
|
+
"X-Frame-Options": "DENY",
|
|
87
|
+
"X-XSS-Protection": "1; mode=block",
|
|
88
|
+
"Strict-Transport-Security": "max-age=31536000; includeSubDomains",
|
|
89
|
+
"Content-Security-Policy": "default-src 'self'",
|
|
90
90
|
},
|
|
91
91
|
// Error messages (generic to avoid information disclosure)
|
|
92
92
|
errorMessages: {
|
|
93
|
-
authentication:
|
|
94
|
-
authorization:
|
|
95
|
-
validation:
|
|
96
|
-
rateLimit:
|
|
97
|
-
serverError:
|
|
98
|
-
notFound:
|
|
93
|
+
authentication: "Authentication failed. Please check your credentials.",
|
|
94
|
+
authorization: "You do not have permission to perform this action.",
|
|
95
|
+
validation: "Invalid input provided.",
|
|
96
|
+
rateLimit: "Too many requests. Please try again later.",
|
|
97
|
+
serverError: "An error occurred processing your request.",
|
|
98
|
+
notFound: "The requested resource was not found.",
|
|
99
99
|
},
|
|
100
100
|
// Logging configuration
|
|
101
101
|
logging: {
|
|
102
102
|
// Fields to exclude from logs
|
|
103
103
|
excludeFields: [
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
104
|
+
"password",
|
|
105
|
+
"appPassword",
|
|
106
|
+
"app_password",
|
|
107
|
+
"token",
|
|
108
|
+
"secret",
|
|
109
|
+
"authorization",
|
|
110
|
+
"cookie",
|
|
111
|
+
"session",
|
|
112
|
+
"key",
|
|
113
|
+
"apiKey",
|
|
114
|
+
"api_key",
|
|
115
115
|
],
|
|
116
116
|
// Patterns to redact in log messages
|
|
117
117
|
redactPatterns: [
|
|
118
118
|
/password["\s:=]+["']?([^"'\s]+)["']?/gi,
|
|
119
119
|
/token["\s:=]+["']?([^"'\s]+)["']?/gi,
|
|
120
120
|
/secret["\s:=]+["']?([^"'\s]+)["']?/gi,
|
|
121
|
-
/key["\s:=]+["']?([^"'\s]+)["']?/gi
|
|
122
|
-
]
|
|
121
|
+
/key["\s:=]+["']?([^"'\s]+)["']?/gi,
|
|
122
|
+
],
|
|
123
123
|
},
|
|
124
124
|
// Cache configuration
|
|
125
125
|
cache: {
|
|
@@ -135,30 +135,30 @@ export const SecurityConfig = {
|
|
|
135
135
|
semiStatic: 2 * 60 * 60 * 1000, // 2 hours - categories, tags, user profiles
|
|
136
136
|
dynamic: 15 * 60 * 1000, // 15 minutes - posts, pages, comments
|
|
137
137
|
session: 30 * 60 * 1000, // 30 minutes - authentication, current user
|
|
138
|
-
realtime: 60 * 1000 // 1 minute - real-time data
|
|
138
|
+
realtime: 60 * 1000, // 1 minute - real-time data
|
|
139
139
|
},
|
|
140
140
|
// Cache-Control headers by data type
|
|
141
141
|
cacheHeaders: {
|
|
142
|
-
static:
|
|
143
|
-
semiStatic:
|
|
144
|
-
dynamic:
|
|
145
|
-
session:
|
|
146
|
-
realtime:
|
|
142
|
+
static: "public, max-age=14400", // 4 hours
|
|
143
|
+
semiStatic: "public, max-age=7200", // 2 hours
|
|
144
|
+
dynamic: "public, max-age=900", // 15 minutes
|
|
145
|
+
session: "private, max-age=1800", // 30 minutes
|
|
146
|
+
realtime: "public, max-age=60", // 1 minute
|
|
147
147
|
},
|
|
148
148
|
// Invalidation settings
|
|
149
149
|
invalidation: {
|
|
150
150
|
enabled: true,
|
|
151
151
|
batchSize: 100, // Max events to process in one batch
|
|
152
152
|
queueTimeout: 5000, // Max time to wait before processing queue (ms)
|
|
153
|
-
enableCascading: true // Allow cascading invalidations
|
|
153
|
+
enableCascading: true, // Allow cascading invalidations
|
|
154
154
|
},
|
|
155
155
|
// Memory management
|
|
156
156
|
cleanup: {
|
|
157
157
|
interval: 60 * 1000, // Cleanup interval in milliseconds (1 minute)
|
|
158
158
|
maxMemoryMB: 50, // Maximum memory usage for cache
|
|
159
|
-
evictionThreshold: 0.8 // Start evicting when 80% full
|
|
160
|
-
}
|
|
161
|
-
}
|
|
159
|
+
evictionThreshold: 0.8, // Start evicting when 80% full
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
162
|
};
|
|
163
163
|
/**
|
|
164
164
|
* Security utility functions
|
|
@@ -168,15 +168,15 @@ export class SecurityUtils {
|
|
|
168
168
|
* Redact sensitive information from objects
|
|
169
169
|
*/
|
|
170
170
|
static redactSensitiveData(obj) {
|
|
171
|
-
if (typeof obj !==
|
|
171
|
+
if (typeof obj !== "object" || obj === null) {
|
|
172
172
|
return obj;
|
|
173
173
|
}
|
|
174
174
|
const redacted = Array.isArray(obj) ? [...obj] : { ...obj };
|
|
175
175
|
for (const key in redacted) {
|
|
176
176
|
if (SecurityConfig.logging.excludeFields.some((field) => key.toLowerCase().includes(field.toLowerCase()))) {
|
|
177
|
-
redacted[key] =
|
|
177
|
+
redacted[key] = "[REDACTED]";
|
|
178
178
|
}
|
|
179
|
-
else if (typeof redacted[key] ===
|
|
179
|
+
else if (typeof redacted[key] === "object") {
|
|
180
180
|
redacted[key] = SecurityUtils.redactSensitiveData(redacted[key]);
|
|
181
181
|
}
|
|
182
182
|
}
|
|
@@ -189,7 +189,7 @@ export class SecurityUtils {
|
|
|
189
189
|
let redacted = str;
|
|
190
190
|
for (const pattern of SecurityConfig.logging.redactPatterns) {
|
|
191
191
|
redacted = redacted.replace(pattern, (match, value) => {
|
|
192
|
-
return match.replace(value,
|
|
192
|
+
return match.replace(value, "[REDACTED]");
|
|
193
193
|
});
|
|
194
194
|
}
|
|
195
195
|
return redacted;
|
|
@@ -198,9 +198,9 @@ export class SecurityUtils {
|
|
|
198
198
|
* Generate secure random strings
|
|
199
199
|
*/
|
|
200
200
|
static generateSecureToken(length = 32) {
|
|
201
|
-
const chars =
|
|
201
|
+
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
202
202
|
const array = new Uint8Array(length);
|
|
203
|
-
if (typeof crypto !==
|
|
203
|
+
if (typeof crypto !== "undefined" && crypto.getRandomValues) {
|
|
204
204
|
crypto.getRandomValues(array);
|
|
205
205
|
}
|
|
206
206
|
else {
|
|
@@ -208,7 +208,7 @@ export class SecurityUtils {
|
|
|
208
208
|
const buffer = randomBytes(length);
|
|
209
209
|
array.set(buffer);
|
|
210
210
|
}
|
|
211
|
-
return Array.from(array, (byte) => chars[byte % chars.length]).join(
|
|
211
|
+
return Array.from(array, (byte) => chars[byte % chars.length]).join("");
|
|
212
212
|
}
|
|
213
213
|
/**
|
|
214
214
|
* Check if a file extension is allowed
|
|
@@ -221,10 +221,10 @@ export class SecurityUtils {
|
|
|
221
221
|
* Sanitize log output
|
|
222
222
|
*/
|
|
223
223
|
static sanitizeForLog(data) {
|
|
224
|
-
if (typeof data ===
|
|
224
|
+
if (typeof data === "string") {
|
|
225
225
|
return SecurityUtils.redactString(data);
|
|
226
226
|
}
|
|
227
|
-
if (typeof data ===
|
|
227
|
+
if (typeof data === "object") {
|
|
228
228
|
return SecurityUtils.redactSensitiveData(data);
|
|
229
229
|
}
|
|
230
230
|
return data;
|
|
@@ -235,28 +235,28 @@ export class SecurityUtils {
|
|
|
235
235
|
*/
|
|
236
236
|
export function createSecureError(error, fallbackMessage = SecurityConfig.errorMessages.serverError) {
|
|
237
237
|
// Log the actual error for debugging (with sanitization)
|
|
238
|
-
if (process.env.NODE_ENV !==
|
|
239
|
-
console.error(
|
|
238
|
+
if (process.env.NODE_ENV !== "production") {
|
|
239
|
+
console.error("Secure Error:", SecurityUtils.sanitizeForLog(error));
|
|
240
240
|
}
|
|
241
241
|
// Return generic error to prevent information disclosure
|
|
242
242
|
const secureError = new Error(fallbackMessage);
|
|
243
243
|
// Preserve error code if it's safe
|
|
244
|
-
if (error && typeof error.code ===
|
|
244
|
+
if (error && typeof error.code === "string" && !error.code.includes("_")) {
|
|
245
245
|
secureError.code = error.code;
|
|
246
246
|
}
|
|
247
247
|
return secureError;
|
|
248
248
|
}
|
|
249
249
|
// Import path for file extension checking
|
|
250
|
-
import * as path from
|
|
250
|
+
import * as path from "path";
|
|
251
251
|
/**
|
|
252
252
|
* Environment-specific security settings
|
|
253
253
|
*/
|
|
254
254
|
export function getEnvironmentSecurity() {
|
|
255
|
-
const isProduction = process.env.NODE_ENV ===
|
|
255
|
+
const isProduction = process.env.NODE_ENV === "production";
|
|
256
256
|
return {
|
|
257
257
|
strictMode: isProduction,
|
|
258
258
|
verboseErrors: !isProduction,
|
|
259
|
-
enforceHttps: isProduction
|
|
259
|
+
enforceHttps: isProduction,
|
|
260
260
|
};
|
|
261
261
|
}
|
|
262
262
|
//# sourceMappingURL=SecurityConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecurityConfig.js","sourceRoot":"","sources":["../../src/security/SecurityConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB;IAChB,YAAY,EAAE;QACZ,OAAO,EAAE;YACP,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW;YAChC,WAAW,EAAE,EAAE;SAChB;QACD,cAAc,EAAE;YACd,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;YACrC,WAAW,EAAE,CAAC;SACf;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW;YAChC,WAAW,EAAE,EAAE;SAChB;KACF;IAED,2BAA2B;IAC3B,UAAU,EAAE;QACV,SAAS,EAAE,EAAE;QACb,gBAAgB,EAAE;YAChB,YAAY;YACZ,WAAW;YACX,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;YACjB,oBAAoB;YACpB,yEAAyE;YACzE,0BAA0B;YAC1B,mEAAmE;YACnE,YAAY;YACZ,UAAU;SACX;QACD,qCAAqC;QACrC,iBAAiB,EAAE;YACjB,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,KAAK;YACL,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;YACP,QAAQ;YACR,KAAK;YACL,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;SACR;KACF;IAED,mBAAmB;IACnB,UAAU,EAAE;QACV,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,GAAG;QACnB,gBAAgB,EAAE,KAAK;QACvB,gBAAgB,EAAE,GAAG;QACrB,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,GAAG;QACtB,iBAAiB,EAAE,CAAC;KACrB;IAED,kCAAkC;IAClC,QAAQ,EAAE;QACR,OAAO,EAAE,KAAK,EAAE,aAAa;QAC7B,MAAM,EAAE,MAAM,EAAE,aAAa;QAC7B,IAAI,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"SecurityConfig.js","sourceRoot":"","sources":["../../src/security/SecurityConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionTester.d.ts","sourceRoot":"","sources":["../../src/server/ConnectionTester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;WACiB,qBAAqB,CACvC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ConnectionTester.d.ts","sourceRoot":"","sources":["../../src/server/ConnectionTester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;WACiB,qBAAqB,CACvC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC;IA4BhB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAOpC;;OAEG;WACiB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAU1E;;OAEG;WACiB,cAAc,CAChC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GAC7C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAUjC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getErrorMessage } from
|
|
1
|
+
import { getErrorMessage } from "../utils/error.js";
|
|
2
2
|
/**
|
|
3
3
|
* Service for testing WordPress client connections
|
|
4
4
|
* Handles connection validation and health checks
|
|
@@ -8,7 +8,7 @@ export class ConnectionTester {
|
|
|
8
8
|
* Test connections to all configured WordPress sites
|
|
9
9
|
*/
|
|
10
10
|
static async testClientConnections(wordpressClients) {
|
|
11
|
-
console.error(
|
|
11
|
+
console.error("INFO: Testing connections to all configured WordPress sites...");
|
|
12
12
|
const connectionPromises = Array.from(wordpressClients.entries()).map(async ([siteId, client]) => {
|
|
13
13
|
try {
|
|
14
14
|
await client.ping();
|
|
@@ -22,7 +22,7 @@ export class ConnectionTester {
|
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
await Promise.all(connectionPromises);
|
|
25
|
-
console.error(
|
|
25
|
+
console.error("INFO: Connection tests complete.");
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Check if error is authentication-related
|
|
@@ -31,7 +31,7 @@ export class ConnectionTester {
|
|
|
31
31
|
if (error?.response?.status && [401, 403].includes(error.response.status)) {
|
|
32
32
|
return true;
|
|
33
33
|
}
|
|
34
|
-
return error?.code ===
|
|
34
|
+
return error?.code === "WORDPRESS_AUTH_ERROR";
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* Perform health check for a specific client
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionTester.js","sourceRoot":"","sources":["../../src/server/ConnectionTester.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,qBAAqB,CACvC,gBAA8C;QAE9C,OAAO,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"ConnectionTester.js","sourceRoot":"","sources":["../../src/server/ConnectionTester.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,qBAAqB,CACvC,gBAA8C;QAE9C,OAAO,CAAC,KAAK,CACX,gEAAgE,CACjE,CAAC;QAEF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CACnE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,eAAe,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CACX,qCAAqC,MAAM,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,CAC1E,CAAC;gBAEF,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClD,OAAO,CAAC,KAAK,CACX,4CAA4C,MAAM,8BAA8B,CACjF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,qBAAqB,CAAC,KAAU;QAC7C,IAAI,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,EAAE,IAAI,KAAK,sBAAsB,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAuB;QACrD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,cAAc,CAChC,gBAA8C;QAE9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;QAE3C,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { McpServer } from
|
|
2
|
-
import { WordPressClient } from
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { WordPressClient } from "../client/api.js";
|
|
3
3
|
/**
|
|
4
4
|
* Interface for tool definition
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../src/server/ToolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC/D;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,gBAAgB,CAA+B;
|
|
1
|
+
{"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../src/server/ToolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC/D;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,gBAAgB,CAA+B;gBAGrD,MAAM,EAAE,SAAS,EACjB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IAMhD;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAuB/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAsFpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAM9B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getErrorMessage } from
|
|
2
|
-
import * as Tools from
|
|
3
|
-
import { z } from
|
|
1
|
+
import { getErrorMessage } from "../utils/error.js";
|
|
2
|
+
import * as Tools from "../tools/index.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
4
|
/**
|
|
5
5
|
* Registry for managing MCP tools
|
|
6
6
|
* Handles tool registration, parameter validation, and execution
|
|
@@ -20,7 +20,8 @@ export class ToolRegistry {
|
|
|
20
20
|
Object.values(Tools).forEach((ToolClass) => {
|
|
21
21
|
let toolInstance;
|
|
22
22
|
// Cache and Performance tools need the clients map
|
|
23
|
-
if (ToolClass.name ===
|
|
23
|
+
if (ToolClass.name === "CacheTools" ||
|
|
24
|
+
ToolClass.name === "PerformanceTools") {
|
|
24
25
|
toolInstance = new ToolClass(this.wordpressClients);
|
|
25
26
|
}
|
|
26
27
|
else {
|
|
@@ -41,28 +42,28 @@ export class ToolRegistry {
|
|
|
41
42
|
site: z
|
|
42
43
|
.string()
|
|
43
44
|
.optional()
|
|
44
|
-
.describe(
|
|
45
|
+
.describe("The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured."),
|
|
45
46
|
};
|
|
46
47
|
// Merge with tool-specific parameters
|
|
47
48
|
const parameterSchema = this.buildParameterSchema(tool, baseSchema);
|
|
48
49
|
// Make site parameter required if multiple sites are configured
|
|
49
50
|
if (this.wordpressClients.size > 1) {
|
|
50
|
-
parameterSchema.site = parameterSchema.site.describe(
|
|
51
|
+
parameterSchema.site = parameterSchema.site.describe("The ID of the WordPress site to target (from mcp-wordpress.config.json). Required when multiple sites are configured.");
|
|
51
52
|
}
|
|
52
53
|
this.server.tool(tool.name, tool.description || `WordPress tool: ${tool.name}`, parameterSchema, async (args) => {
|
|
53
54
|
try {
|
|
54
|
-
const siteId = args.site ||
|
|
55
|
+
const siteId = args.site || "default";
|
|
55
56
|
const client = this.wordpressClients.get(siteId);
|
|
56
57
|
if (!client) {
|
|
57
|
-
const availableSites = Array.from(this.wordpressClients.keys()).join(
|
|
58
|
+
const availableSites = Array.from(this.wordpressClients.keys()).join(", ");
|
|
58
59
|
return {
|
|
59
60
|
content: [
|
|
60
61
|
{
|
|
61
|
-
type:
|
|
62
|
-
text: `Error: Site with ID '${siteId}' not found. Available sites: ${availableSites}
|
|
63
|
-
}
|
|
62
|
+
type: "text",
|
|
63
|
+
text: `Error: Site with ID '${siteId}' not found. Available sites: ${availableSites}`,
|
|
64
|
+
},
|
|
64
65
|
],
|
|
65
|
-
isError: true
|
|
66
|
+
isError: true,
|
|
66
67
|
};
|
|
67
68
|
}
|
|
68
69
|
// Call the tool handler with the client and parameters
|
|
@@ -70,10 +71,12 @@ export class ToolRegistry {
|
|
|
70
71
|
return {
|
|
71
72
|
content: [
|
|
72
73
|
{
|
|
73
|
-
type:
|
|
74
|
-
text: typeof result ===
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
type: "text",
|
|
75
|
+
text: typeof result === "string"
|
|
76
|
+
? result
|
|
77
|
+
: JSON.stringify(result, null, 2),
|
|
78
|
+
},
|
|
79
|
+
],
|
|
77
80
|
};
|
|
78
81
|
}
|
|
79
82
|
catch (error) {
|
|
@@ -81,21 +84,21 @@ export class ToolRegistry {
|
|
|
81
84
|
return {
|
|
82
85
|
content: [
|
|
83
86
|
{
|
|
84
|
-
type:
|
|
85
|
-
text: `Authentication failed for site '${args.site ||
|
|
86
|
-
}
|
|
87
|
+
type: "text",
|
|
88
|
+
text: `Authentication failed for site '${args.site || "default"}'. Please check your credentials.`,
|
|
89
|
+
},
|
|
87
90
|
],
|
|
88
|
-
isError: true
|
|
91
|
+
isError: true,
|
|
89
92
|
};
|
|
90
93
|
}
|
|
91
94
|
return {
|
|
92
95
|
content: [
|
|
93
96
|
{
|
|
94
|
-
type:
|
|
95
|
-
text: `Error: ${getErrorMessage(error)}
|
|
96
|
-
}
|
|
97
|
+
type: "text",
|
|
98
|
+
text: `Error: ${getErrorMessage(error)}`,
|
|
99
|
+
},
|
|
97
100
|
],
|
|
98
|
-
isError: true
|
|
101
|
+
isError: true,
|
|
99
102
|
};
|
|
100
103
|
}
|
|
101
104
|
});
|
|
@@ -104,7 +107,7 @@ export class ToolRegistry {
|
|
|
104
107
|
* Build Zod parameter schema from tool definition
|
|
105
108
|
*/
|
|
106
109
|
buildParameterSchema(tool, baseSchema) {
|
|
107
|
-
return tool.parameters?.reduce((schema, param) => {
|
|
110
|
+
return (tool.parameters?.reduce((schema, param) => {
|
|
108
111
|
let zodType = this.getZodTypeForParameter(param);
|
|
109
112
|
if (param.description) {
|
|
110
113
|
zodType = zodType.describe(param.description);
|
|
@@ -114,22 +117,22 @@ export class ToolRegistry {
|
|
|
114
117
|
}
|
|
115
118
|
schema[param.name] = zodType;
|
|
116
119
|
return schema;
|
|
117
|
-
}, { ...baseSchema }) || baseSchema;
|
|
120
|
+
}, { ...baseSchema }) || baseSchema);
|
|
118
121
|
}
|
|
119
122
|
/**
|
|
120
123
|
* Get appropriate Zod type for parameter definition
|
|
121
124
|
*/
|
|
122
125
|
getZodTypeForParameter(param) {
|
|
123
126
|
switch (param.type) {
|
|
124
|
-
case
|
|
127
|
+
case "string":
|
|
125
128
|
return z.string();
|
|
126
|
-
case
|
|
129
|
+
case "number":
|
|
127
130
|
return z.number();
|
|
128
|
-
case
|
|
131
|
+
case "boolean":
|
|
129
132
|
return z.boolean();
|
|
130
|
-
case
|
|
133
|
+
case "array":
|
|
131
134
|
return z.array(z.string());
|
|
132
|
-
case
|
|
135
|
+
case "object":
|
|
133
136
|
return z.record(z.any());
|
|
134
137
|
default:
|
|
135
138
|
return z.string();
|
|
@@ -142,7 +145,7 @@ export class ToolRegistry {
|
|
|
142
145
|
if (error?.response?.status && [401, 403].includes(error.response.status)) {
|
|
143
146
|
return true;
|
|
144
147
|
}
|
|
145
|
-
return error?.code ===
|
|
148
|
+
return error?.code === "WORDPRESS_AUTH_ERROR";
|
|
146
149
|
}
|
|
147
150
|
}
|
|
148
151
|
//# sourceMappingURL=ToolRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../src/server/ToolRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAY;IAClB,gBAAgB,CAA+B;IAEvD,
|
|
1
|
+
{"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../src/server/ToolRegistry.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Compatibility export for tests
|
|
3
3
|
* Re-exports the main MCP server class for backward compatibility
|
|
4
4
|
*/
|
|
5
|
-
export { default as MCPWordPressServer } from
|
|
6
|
-
export { default } from
|
|
5
|
+
export { default as MCPWordPressServer } from "./index.js";
|
|
6
|
+
export { default } from "./index.js";
|
|
7
7
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Compatibility export for tests
|
|
3
3
|
* Re-exports the main MCP server class for backward compatibility
|
|
4
4
|
*/
|
|
5
|
-
export { default as MCPWordPressServer } from
|
|
6
|
-
export { default } from
|
|
5
|
+
export { default as MCPWordPressServer } from "./index.js";
|
|
6
|
+
export { default } from "./index.js";
|
|
7
7
|
//# sourceMappingURL=server.js.map
|