mcp-wordpress 1.1.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/LICENSE +21 -0
- package/README.md +568 -0
- package/bin/mcp-wordpress.js +12 -0
- package/bin/setup.js +302 -0
- package/bin/status.js +359 -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/client/api.d.ts +140 -0
- package/dist/client/api.d.ts.map +1 -0
- package/dist/client/api.js +727 -0
- package/dist/client/api.js.map +1 -0
- package/dist/client/auth.d.ts +121 -0
- package/dist/client/auth.d.ts.map +1 -0
- package/dist/client/auth.js +430 -0
- package/dist/client/auth.js.map +1 -0
- package/dist/client/managers/AuthenticationManager.d.ts +39 -0
- package/dist/client/managers/AuthenticationManager.d.ts.map +1 -0
- package/dist/client/managers/AuthenticationManager.js +159 -0
- package/dist/client/managers/AuthenticationManager.js.map +1 -0
- package/dist/client/managers/BaseManager.d.ts +22 -0
- package/dist/client/managers/BaseManager.d.ts.map +1 -0
- package/dist/client/managers/BaseManager.js +47 -0
- package/dist/client/managers/BaseManager.js.map +1 -0
- package/dist/client/managers/RequestManager.d.ts +45 -0
- package/dist/client/managers/RequestManager.d.ts.map +1 -0
- package/dist/client/managers/RequestManager.js +161 -0
- package/dist/client/managers/RequestManager.js.map +1 -0
- package/dist/client/managers/index.d.ts +8 -0
- package/dist/client/managers/index.d.ts.map +1 -0
- package/dist/client/managers/index.js +8 -0
- package/dist/client/managers/index.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +264 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +7 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/auth.d.ts +44 -0
- package/dist/tools/auth.d.ts.map +1 -0
- package/dist/tools/auth.js +126 -0
- package/dist/tools/auth.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/comments.d.ts +33 -0
- package/dist/tools/comments.d.ts.map +1 -0
- package/dist/tools/comments.js +228 -0
- package/dist/tools/comments.js.map +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +9 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/media.d.ts +29 -0
- package/dist/tools/media.d.ts.map +1 -0
- package/dist/tools/media.js +208 -0
- package/dist/tools/media.js.map +1 -0
- package/dist/tools/pages.d.ts +30 -0
- package/dist/tools/pages.d.ts.map +1 -0
- package/dist/tools/pages.js +211 -0
- package/dist/tools/pages.js.map +1 -0
- package/dist/tools/posts.d.ts +30 -0
- package/dist/tools/posts.d.ts.map +1 -0
- package/dist/tools/posts.js +240 -0
- package/dist/tools/posts.js.map +1 -0
- package/dist/tools/site.d.ts +31 -0
- package/dist/tools/site.d.ts.map +1 -0
- package/dist/tools/site.js +192 -0
- package/dist/tools/site.js.map +1 -0
- package/dist/tools/taxonomies.d.ts +37 -0
- package/dist/tools/taxonomies.d.ts.map +1 -0
- package/dist/tools/taxonomies.js +280 -0
- package/dist/tools/taxonomies.js.map +1 -0
- package/dist/tools/users.d.ts +28 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +201 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/types/client.d.ts +215 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +72 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/index.d.ts +157 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +178 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +7 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/wordpress.d.ts +443 -0
- package/dist/types/wordpress.d.ts.map +1 -0
- package/dist/types/wordpress.js +7 -0
- package/dist/types/wordpress.js.map +1 -0
- package/dist/utils/debug.d.ts +63 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +195 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/error.d.ts +19 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +71 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/toolWrapper.d.ts +36 -0
- package/dist/utils/toolWrapper.d.ts.map +1 -0
- package/dist/utils/toolWrapper.js +90 -0
- package/dist/utils/toolWrapper.js.map +1 -0
- package/package.json +115 -0
- package/src/client/api.ts +1043 -0
- package/src/client/auth.ts +527 -0
- package/src/client/managers/AuthenticationManager.ts +190 -0
- package/src/client/managers/BaseManager.ts +73 -0
- package/src/client/managers/RequestManager.ts +214 -0
- package/src/client/managers/index.ts +8 -0
- package/src/index.ts +337 -0
- package/src/server.ts +7 -0
- package/src/tools/auth.ts +153 -0
- package/src/tools/comments.ts +263 -0
- package/src/tools/index.ts +8 -0
- package/src/tools/media.ts +240 -0
- package/src/tools/pages.ts +246 -0
- package/src/tools/posts.ts +277 -0
- package/src/tools/site.ts +227 -0
- package/src/tools/taxonomies.ts +322 -0
- package/src/tools/users.ts +233 -0
- package/src/types/client.ts +304 -0
- package/src/types/index.ts +207 -0
- package/src/types/mcp.ts +247 -0
- package/src/types/wordpress.ts +491 -0
- package/src/utils/debug.ts +258 -0
- package/src/utils/error.ts +88 -0
- package/src/utils/toolWrapper.ts +105 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug Utility for MCP Server
|
|
3
|
+
*
|
|
4
|
+
* This module provides debug logging that only outputs when DEBUG mode is enabled.
|
|
5
|
+
* This prevents console.log from interfering with MCP STDIO communication.
|
|
6
|
+
*/
|
|
7
|
+
// Check if debug mode is enabled
|
|
8
|
+
const isDebugMode = () => process.env.DEBUG === 'true' ||
|
|
9
|
+
process.env.NODE_ENV === 'development';
|
|
10
|
+
// Get current timestamp
|
|
11
|
+
const getTimestamp = () => new Date().toISOString();
|
|
12
|
+
// Format log message with timestamp and level
|
|
13
|
+
const formatMessage = (level, args) => {
|
|
14
|
+
const timestamp = getTimestamp();
|
|
15
|
+
const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
|
|
16
|
+
return `${prefix} ${args.map(arg => typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)).join(' ')}`;
|
|
17
|
+
};
|
|
18
|
+
// Handle circular references in objects
|
|
19
|
+
const safeStringify = (obj) => {
|
|
20
|
+
try {
|
|
21
|
+
return JSON.stringify(obj, (key, value) => {
|
|
22
|
+
if (value instanceof Error) {
|
|
23
|
+
return {
|
|
24
|
+
name: value.name,
|
|
25
|
+
message: value.message,
|
|
26
|
+
stack: value.stack
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}, 2);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return '[Object with circular reference]';
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Debug logger that only outputs in debug mode
|
|
38
|
+
*/
|
|
39
|
+
export const debug = {
|
|
40
|
+
log: (...args) => {
|
|
41
|
+
if (isDebugMode()) {
|
|
42
|
+
console.error(formatMessage('debug', args)); // Use stderr for debug to avoid STDIO interference
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
info: (...args) => {
|
|
46
|
+
if (isDebugMode()) {
|
|
47
|
+
console.error(formatMessage('info', args));
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
warn: (...args) => {
|
|
51
|
+
if (isDebugMode()) {
|
|
52
|
+
console.error(formatMessage('warn', args));
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
error: (...args) => {
|
|
56
|
+
if (isDebugMode()) {
|
|
57
|
+
console.error(formatMessage('error', args));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Silent logger for production use
|
|
63
|
+
*/
|
|
64
|
+
export const silent = {
|
|
65
|
+
log: () => { },
|
|
66
|
+
warn: () => { },
|
|
67
|
+
error: () => { },
|
|
68
|
+
info: () => { }
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Enhanced structured logger
|
|
72
|
+
*/
|
|
73
|
+
class StructuredLoggerImpl {
|
|
74
|
+
context;
|
|
75
|
+
enabled;
|
|
76
|
+
constructor(context = {}, enabled = isDebugMode()) {
|
|
77
|
+
this.context = context;
|
|
78
|
+
this.enabled = enabled;
|
|
79
|
+
}
|
|
80
|
+
output(level, args) {
|
|
81
|
+
if (!this.enabled)
|
|
82
|
+
return;
|
|
83
|
+
const debugInfo = {
|
|
84
|
+
timestamp: Date.now(),
|
|
85
|
+
level,
|
|
86
|
+
message: args.map(arg => typeof arg === 'object' ? safeStringify(arg) : String(arg)).join(' '),
|
|
87
|
+
...(Object.keys(this.context).length > 0 && { context: this.context })
|
|
88
|
+
};
|
|
89
|
+
console.error(safeStringify(debugInfo));
|
|
90
|
+
}
|
|
91
|
+
log(...args) {
|
|
92
|
+
this.output('debug', args);
|
|
93
|
+
}
|
|
94
|
+
info(...args) {
|
|
95
|
+
this.output('info', args);
|
|
96
|
+
}
|
|
97
|
+
warn(...args) {
|
|
98
|
+
this.output('warn', args);
|
|
99
|
+
}
|
|
100
|
+
error(...args) {
|
|
101
|
+
this.output('error', args);
|
|
102
|
+
}
|
|
103
|
+
logStructured(info) {
|
|
104
|
+
if (!this.enabled)
|
|
105
|
+
return;
|
|
106
|
+
const enhancedInfo = {
|
|
107
|
+
...info,
|
|
108
|
+
context: { ...this.context, ...info.context }
|
|
109
|
+
};
|
|
110
|
+
console.error(safeStringify(enhancedInfo));
|
|
111
|
+
}
|
|
112
|
+
child(context) {
|
|
113
|
+
return new StructuredLoggerImpl({ ...this.context, ...context }, this.enabled);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Create a structured logger instance
|
|
118
|
+
*/
|
|
119
|
+
export const createStructuredLogger = (context = {}) => {
|
|
120
|
+
return new StructuredLoggerImpl(context);
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Default logger instance
|
|
124
|
+
*/
|
|
125
|
+
export const logger = debug;
|
|
126
|
+
/**
|
|
127
|
+
* Create a logger with context
|
|
128
|
+
*/
|
|
129
|
+
export const createLogger = (context = {}) => {
|
|
130
|
+
return createStructuredLogger(context);
|
|
131
|
+
};
|
|
132
|
+
export const startTimer = (label) => {
|
|
133
|
+
const start = Date.now();
|
|
134
|
+
return {
|
|
135
|
+
end() {
|
|
136
|
+
return Date.now() - start;
|
|
137
|
+
},
|
|
138
|
+
endWithLog(message = 'Operation') {
|
|
139
|
+
const duration = Date.now() - start;
|
|
140
|
+
debug.info(`${message} completed in ${duration}ms${label ? ` [${label}]` : ''}`);
|
|
141
|
+
return duration;
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Log error with stack trace
|
|
147
|
+
*/
|
|
148
|
+
export const logError = (error, context) => {
|
|
149
|
+
if (typeof error === 'string') {
|
|
150
|
+
debug.error(error, context);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
debug.error(`${error.name}: ${error.message}`, {
|
|
154
|
+
stack: error.stack,
|
|
155
|
+
...context
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Conditional logging
|
|
161
|
+
*/
|
|
162
|
+
export const logIf = (condition, level = 'debug') => {
|
|
163
|
+
if (!condition)
|
|
164
|
+
return silent;
|
|
165
|
+
const loggers = {
|
|
166
|
+
log: debug.log,
|
|
167
|
+
info: debug.info,
|
|
168
|
+
warn: debug.warn,
|
|
169
|
+
error: debug.error
|
|
170
|
+
};
|
|
171
|
+
return loggers[level] || debug.log;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Type-safe environment variable getter
|
|
175
|
+
*/
|
|
176
|
+
export const getEnvVar = (key, defaultValue) => {
|
|
177
|
+
const value = process.env[key];
|
|
178
|
+
if (value === undefined && defaultValue !== undefined) {
|
|
179
|
+
debug.warn(`Environment variable ${key} not found, using default: ${defaultValue}`);
|
|
180
|
+
return defaultValue;
|
|
181
|
+
}
|
|
182
|
+
return value;
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Validate required environment variables
|
|
186
|
+
*/
|
|
187
|
+
export const validateEnvVars = (required) => {
|
|
188
|
+
const missing = required.filter(key => !process.env[key]);
|
|
189
|
+
if (missing.length > 0) {
|
|
190
|
+
const error = new Error(`Missing required environment variables: ${missing.join(', ')}`);
|
|
191
|
+
logError(error);
|
|
192
|
+
throw error;
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling utilities
|
|
3
|
+
*/
|
|
4
|
+
export declare function getErrorMessage(error: unknown): string;
|
|
5
|
+
export declare function isError(error: unknown): error is Error;
|
|
6
|
+
export declare function logAndReturn<T>(error: unknown, defaultValue: T): T;
|
|
7
|
+
/**
|
|
8
|
+
* Enhanced error handler for consistent tool error handling
|
|
9
|
+
*/
|
|
10
|
+
export declare function handleToolError(error: unknown, operation: string, context?: Record<string, unknown>): never;
|
|
11
|
+
/**
|
|
12
|
+
* Validates required parameters
|
|
13
|
+
*/
|
|
14
|
+
export declare function validateRequired(params: Record<string, unknown>, required: string[]): void;
|
|
15
|
+
/**
|
|
16
|
+
* Validates site parameter for multi-site configurations
|
|
17
|
+
*/
|
|
18
|
+
export declare function validateSite(site: string | undefined, availableSites: string[]): string;
|
|
19
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CActD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAEtD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAGlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CA2B3G;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAK1F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAavF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling utilities
|
|
3
|
+
*/
|
|
4
|
+
export function getErrorMessage(error) {
|
|
5
|
+
if (error instanceof Error) {
|
|
6
|
+
return error.message;
|
|
7
|
+
}
|
|
8
|
+
if (typeof error === 'string') {
|
|
9
|
+
return error;
|
|
10
|
+
}
|
|
11
|
+
if (error && typeof error === 'object' && 'message' in error) {
|
|
12
|
+
return String(error.message);
|
|
13
|
+
}
|
|
14
|
+
return 'Unknown error occurred';
|
|
15
|
+
}
|
|
16
|
+
export function isError(error) {
|
|
17
|
+
return error instanceof Error;
|
|
18
|
+
}
|
|
19
|
+
export function logAndReturn(error, defaultValue) {
|
|
20
|
+
console.error('Error occurred:', getErrorMessage(error));
|
|
21
|
+
return defaultValue;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Enhanced error handler for consistent tool error handling
|
|
25
|
+
*/
|
|
26
|
+
export function handleToolError(error, operation, context) {
|
|
27
|
+
console.error(`Error in ${operation}:`, error);
|
|
28
|
+
if (context) {
|
|
29
|
+
console.error('Context:', context);
|
|
30
|
+
}
|
|
31
|
+
const message = getErrorMessage(error);
|
|
32
|
+
// Provide more specific error messages based on error content
|
|
33
|
+
if (message.includes('ECONNREFUSED') || message.includes('ENOTFOUND')) {
|
|
34
|
+
throw new Error(`Connection failed during ${operation}. Please check your WordPress site URL and network connection.`);
|
|
35
|
+
}
|
|
36
|
+
if (message.includes('401') || message.includes('Unauthorized')) {
|
|
37
|
+
throw new Error(`Authentication failed during ${operation}. Please check your WordPress credentials.`);
|
|
38
|
+
}
|
|
39
|
+
if (message.includes('403') || message.includes('Forbidden')) {
|
|
40
|
+
throw new Error(`Permission denied during ${operation}. Please check your user permissions.`);
|
|
41
|
+
}
|
|
42
|
+
if (message.includes('429') || message.includes('Too Many Requests')) {
|
|
43
|
+
throw new Error(`Rate limit exceeded during ${operation}. Please try again later.`);
|
|
44
|
+
}
|
|
45
|
+
throw new Error(`Failed to ${operation}: ${message}`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Validates required parameters
|
|
49
|
+
*/
|
|
50
|
+
export function validateRequired(params, required) {
|
|
51
|
+
const missing = required.filter(key => !params[key]);
|
|
52
|
+
if (missing.length > 0) {
|
|
53
|
+
throw new Error(`Missing required parameters: ${missing.join(', ')}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Validates site parameter for multi-site configurations
|
|
58
|
+
*/
|
|
59
|
+
export function validateSite(site, availableSites) {
|
|
60
|
+
if (!site) {
|
|
61
|
+
if (availableSites.length === 1) {
|
|
62
|
+
return availableSites[0];
|
|
63
|
+
}
|
|
64
|
+
throw new Error(`Site parameter is required when multiple sites are configured. Available sites: ${availableSites.join(', ')}`);
|
|
65
|
+
}
|
|
66
|
+
if (!availableSites.includes(site)) {
|
|
67
|
+
throw new Error(`Site '${site}' not found. Available sites: ${availableSites.join(', ')}`);
|
|
68
|
+
}
|
|
69
|
+
return site;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Wrapper Utility
|
|
3
|
+
* Standardizes error handling and reduces repetitive try-catch blocks
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Wrapper for tool methods that standardizes error handling
|
|
7
|
+
*/
|
|
8
|
+
export declare function withErrorHandling<T extends any[], R>(operation: string, fn: (...args: T) => Promise<R>): (...args: T) => Promise<R>;
|
|
9
|
+
/**
|
|
10
|
+
* Wrapper for tool methods with validation
|
|
11
|
+
*/
|
|
12
|
+
export declare function withValidation<T extends any[], R>(operation: string, validator: (...args: T) => void, fn: (...args: T) => Promise<R>): (...args: T) => Promise<R>;
|
|
13
|
+
/**
|
|
14
|
+
* Common validation functions
|
|
15
|
+
*/
|
|
16
|
+
export declare const validators: {
|
|
17
|
+
requireSite: (client: any, params: any) => void;
|
|
18
|
+
requireId: (params: {
|
|
19
|
+
id?: number | string;
|
|
20
|
+
}) => void;
|
|
21
|
+
requireNonEmpty: (value: any, fieldName: string) => void;
|
|
22
|
+
requireFields: (params: any, fields: string[]) => void;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Decorator for class methods to add error handling
|
|
26
|
+
*/
|
|
27
|
+
export declare function errorHandler(operation: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
28
|
+
/**
|
|
29
|
+
* Helper to format success responses consistently
|
|
30
|
+
*/
|
|
31
|
+
export declare function formatSuccessResponse(content: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Helper to format error responses consistently
|
|
34
|
+
*/
|
|
35
|
+
export declare function formatErrorResponse(operation: string, error: any): never;
|
|
36
|
+
//# sourceMappingURL=toolWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolWrapper.d.ts","sourceRoot":"","sources":["../../src/utils/toolWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,EAClD,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAQ5B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,EAC/C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,EAC/B,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAS5B;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;0BACC,GAAG,UAAU,GAAG;wBAMlB;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;6BAMnB,GAAG,aAAa,MAAM;4BAMvB,GAAG,UAAU,MAAM,EAAE;CAO9C,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,IAC3B,QAAQ,GAAG,EAAE,aAAa,MAAM,EAAE,YAAY,kBAAkB,wBAalF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,CAGxE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Wrapper Utility
|
|
3
|
+
* Standardizes error handling and reduces repetitive try-catch blocks
|
|
4
|
+
*/
|
|
5
|
+
import { getErrorMessage } from "./error.js";
|
|
6
|
+
/**
|
|
7
|
+
* Wrapper for tool methods that standardizes error handling
|
|
8
|
+
*/
|
|
9
|
+
export function withErrorHandling(operation, fn) {
|
|
10
|
+
return async (...args) => {
|
|
11
|
+
try {
|
|
12
|
+
return await fn(...args);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
throw new Error(`${operation}: ${getErrorMessage(error)}`);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Wrapper for tool methods with validation
|
|
21
|
+
*/
|
|
22
|
+
export function withValidation(operation, validator, fn) {
|
|
23
|
+
return async (...args) => {
|
|
24
|
+
try {
|
|
25
|
+
validator(...args);
|
|
26
|
+
return await fn(...args);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
throw new Error(`${operation}: ${getErrorMessage(error)}`);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Common validation functions
|
|
35
|
+
*/
|
|
36
|
+
export const validators = {
|
|
37
|
+
requireSite: (client, params) => {
|
|
38
|
+
if (!client) {
|
|
39
|
+
throw new Error("WordPress client is required");
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
requireId: (params) => {
|
|
43
|
+
if (!params.id) {
|
|
44
|
+
throw new Error("ID parameter is required");
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
requireNonEmpty: (value, fieldName) => {
|
|
48
|
+
if (!value || (typeof value === 'string' && value.trim() === '')) {
|
|
49
|
+
throw new Error(`${fieldName} cannot be empty`);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
requireFields: (params, fields) => {
|
|
53
|
+
for (const field of fields) {
|
|
54
|
+
if (params[field] === undefined || params[field] === null) {
|
|
55
|
+
throw new Error(`${field} is required`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Decorator for class methods to add error handling
|
|
62
|
+
*/
|
|
63
|
+
export function errorHandler(operation) {
|
|
64
|
+
return function (target, propertyKey, descriptor) {
|
|
65
|
+
const originalMethod = descriptor.value;
|
|
66
|
+
descriptor.value = async function (...args) {
|
|
67
|
+
try {
|
|
68
|
+
return await originalMethod.apply(this, args);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
throw new Error(`${operation}: ${getErrorMessage(error)}`);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
return descriptor;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Helper to format success responses consistently
|
|
79
|
+
*/
|
|
80
|
+
export function formatSuccessResponse(content) {
|
|
81
|
+
return content;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Helper to format error responses consistently
|
|
85
|
+
*/
|
|
86
|
+
export function formatErrorResponse(operation, error) {
|
|
87
|
+
const message = getErrorMessage(error);
|
|
88
|
+
throw new Error(`${operation}: ${message}`);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=toolWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolWrapper.js","sourceRoot":"","sources":["../../src/utils/toolWrapper.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mcp-wordpress",
|
|
3
|
+
"version": "1.1.2",
|
|
4
|
+
"description": "Comprehensive Model Context Protocol server for WordPress management with 54 tools, TypeScript support, and production-ready authentication",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"mcp-wordpress": "bin/mcp-wordpress.js",
|
|
9
|
+
"wordpress-setup": "bin/setup.js",
|
|
10
|
+
"wordpress-status": "bin/status.js"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"build:watch": "tsc --watch",
|
|
15
|
+
"start": "npm run build && node dist/index.js",
|
|
16
|
+
"dev": "npm run build && DEBUG=true node dist/index.js",
|
|
17
|
+
"setup": "node bin/setup.js",
|
|
18
|
+
"status": "node bin/status.js",
|
|
19
|
+
"test": "npm run test:typescript",
|
|
20
|
+
"test:typescript": "npm run build && NODE_OPTIONS=\"--experimental-vm-modules\" jest --config=jest.typescript.config.json",
|
|
21
|
+
"test:tools": "node scripts/test-all-tools.js",
|
|
22
|
+
"test:legacy": "npm run build && NODE_OPTIONS=\"--experimental-vm-modules\" jest",
|
|
23
|
+
"test:watch": "NODE_OPTIONS=\"--experimental-vm-modules\" jest --watch --config=jest.typescript.config.json",
|
|
24
|
+
"test:coverage": "npm run build && NODE_OPTIONS=\"--experimental-vm-modules\" jest --coverage --collectCoverageFrom='dist/**/*.js' --coverageThreshold='{\"global\":{\"branches\":50,\"functions\":50,\"lines\":50,\"statements\":50}}' --config=jest.typescript.config.json",
|
|
25
|
+
"test:fast": "npm run test:typescript",
|
|
26
|
+
"test:mcp": "node scripts/test-mcp.js",
|
|
27
|
+
"test:integration": "node scripts/test-integration.js",
|
|
28
|
+
"test:auth": "node scripts/test-auth.js",
|
|
29
|
+
"health": "node scripts/health-check.js",
|
|
30
|
+
"verify-claude": "node scripts/verify-claude-integration.js",
|
|
31
|
+
"lint": "eslint src/ tests/ bin/ scripts/",
|
|
32
|
+
"lint:fix": "eslint src/ tests/ bin/ scripts/ --fix",
|
|
33
|
+
"typecheck": "tsc --noEmit",
|
|
34
|
+
"check:ignore": "node scripts/sync-ignore-files.js",
|
|
35
|
+
"check:npm": "node scripts/test-npm-config.js",
|
|
36
|
+
"prepare": "husky",
|
|
37
|
+
"pre-commit": "lint-staged",
|
|
38
|
+
"prepublishOnly": "npm run build && npm run check:ignore"
|
|
39
|
+
},
|
|
40
|
+
"keywords": [
|
|
41
|
+
"mcp",
|
|
42
|
+
"model-context-protocol",
|
|
43
|
+
"wordpress",
|
|
44
|
+
"cms",
|
|
45
|
+
"rest-api",
|
|
46
|
+
"ai",
|
|
47
|
+
"assistant"
|
|
48
|
+
],
|
|
49
|
+
"author": "AiondaDotCom",
|
|
50
|
+
"license": "MIT",
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
53
|
+
"dotenv": "^16.3.1",
|
|
54
|
+
"form-data": "^4.0.0",
|
|
55
|
+
"node-fetch": "^3.3.2",
|
|
56
|
+
"open": "^9.1.0",
|
|
57
|
+
"zod": "^3.25.67"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@eslint/js": "^9.29.0",
|
|
61
|
+
"@jest/globals": "^30.0.0",
|
|
62
|
+
"@types/jest": "^30.0.0",
|
|
63
|
+
"@types/nock": "^10.0.3",
|
|
64
|
+
"@types/node": "^20.19.1",
|
|
65
|
+
"eslint": "^9.29.0",
|
|
66
|
+
"eslint-plugin-jest": "^29.0.1",
|
|
67
|
+
"eslint-plugin-node": "^11.1.0",
|
|
68
|
+
"husky": "^9.1.7",
|
|
69
|
+
"jest": "^30.0.0",
|
|
70
|
+
"lint-staged": "^16.1.2",
|
|
71
|
+
"markdownlint-cli": "^0.45.0",
|
|
72
|
+
"nock": "^14.0.5",
|
|
73
|
+
"prettier": "^3.6.2",
|
|
74
|
+
"sort-package-json": "^3.3.1",
|
|
75
|
+
"ts-jest": "^29.4.0",
|
|
76
|
+
"ts-node": "^10.9.2",
|
|
77
|
+
"typescript": "^5.8.3"
|
|
78
|
+
},
|
|
79
|
+
"engines": {
|
|
80
|
+
"node": ">=18.0.0"
|
|
81
|
+
},
|
|
82
|
+
"files": [
|
|
83
|
+
"dist/",
|
|
84
|
+
"src/",
|
|
85
|
+
"bin/",
|
|
86
|
+
"docs/",
|
|
87
|
+
"examples/",
|
|
88
|
+
"cache/",
|
|
89
|
+
"README.md",
|
|
90
|
+
"LICENSE"
|
|
91
|
+
],
|
|
92
|
+
"repository": {
|
|
93
|
+
"type": "git",
|
|
94
|
+
"url": "git+https://github.com/AiondaDotCom/mcp-wordpress.git"
|
|
95
|
+
},
|
|
96
|
+
"bugs": {
|
|
97
|
+
"url": "https://github.com/AiondaDotCom/mcp-wordpress/issues"
|
|
98
|
+
},
|
|
99
|
+
"homepage": "https://github.com/AiondaDotCom/mcp-wordpress#readme",
|
|
100
|
+
"publishConfig": {
|
|
101
|
+
"access": "public"
|
|
102
|
+
},
|
|
103
|
+
"lint-staged": {
|
|
104
|
+
"*.{ts,js}": [
|
|
105
|
+
"eslint --fix",
|
|
106
|
+
"prettier --write"
|
|
107
|
+
],
|
|
108
|
+
"*.md": [
|
|
109
|
+
"markdownlint --fix"
|
|
110
|
+
],
|
|
111
|
+
"package.json": [
|
|
112
|
+
"sort-package-json"
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
}
|