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.
Files changed (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +568 -0
  3. package/bin/mcp-wordpress.js +12 -0
  4. package/bin/setup.js +302 -0
  5. package/bin/status.js +359 -0
  6. package/dist/client/WordPressClient.d.ts +81 -0
  7. package/dist/client/WordPressClient.d.ts.map +1 -0
  8. package/dist/client/WordPressClient.js +354 -0
  9. package/dist/client/WordPressClient.js.map +1 -0
  10. package/dist/client/api.d.ts +140 -0
  11. package/dist/client/api.d.ts.map +1 -0
  12. package/dist/client/api.js +727 -0
  13. package/dist/client/api.js.map +1 -0
  14. package/dist/client/auth.d.ts +121 -0
  15. package/dist/client/auth.d.ts.map +1 -0
  16. package/dist/client/auth.js +430 -0
  17. package/dist/client/auth.js.map +1 -0
  18. package/dist/client/managers/AuthenticationManager.d.ts +39 -0
  19. package/dist/client/managers/AuthenticationManager.d.ts.map +1 -0
  20. package/dist/client/managers/AuthenticationManager.js +159 -0
  21. package/dist/client/managers/AuthenticationManager.js.map +1 -0
  22. package/dist/client/managers/BaseManager.d.ts +22 -0
  23. package/dist/client/managers/BaseManager.d.ts.map +1 -0
  24. package/dist/client/managers/BaseManager.js +47 -0
  25. package/dist/client/managers/BaseManager.js.map +1 -0
  26. package/dist/client/managers/RequestManager.d.ts +45 -0
  27. package/dist/client/managers/RequestManager.d.ts.map +1 -0
  28. package/dist/client/managers/RequestManager.js +161 -0
  29. package/dist/client/managers/RequestManager.js.map +1 -0
  30. package/dist/client/managers/index.d.ts +8 -0
  31. package/dist/client/managers/index.d.ts.map +1 -0
  32. package/dist/client/managers/index.js +8 -0
  33. package/dist/client/managers/index.js.map +1 -0
  34. package/dist/index.d.ts +19 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +264 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/server.d.ts +7 -0
  39. package/dist/server.d.ts.map +1 -0
  40. package/dist/server.js +7 -0
  41. package/dist/server.js.map +1 -0
  42. package/dist/tools/auth.d.ts +44 -0
  43. package/dist/tools/auth.d.ts.map +1 -0
  44. package/dist/tools/auth.js +126 -0
  45. package/dist/tools/auth.js.map +1 -0
  46. package/dist/tools/base.d.ts +37 -0
  47. package/dist/tools/base.d.ts.map +1 -0
  48. package/dist/tools/base.js +60 -0
  49. package/dist/tools/base.js.map +1 -0
  50. package/dist/tools/comments.d.ts +33 -0
  51. package/dist/tools/comments.d.ts.map +1 -0
  52. package/dist/tools/comments.js +228 -0
  53. package/dist/tools/comments.js.map +1 -0
  54. package/dist/tools/index.d.ts +9 -0
  55. package/dist/tools/index.d.ts.map +1 -0
  56. package/dist/tools/index.js +9 -0
  57. package/dist/tools/index.js.map +1 -0
  58. package/dist/tools/media.d.ts +29 -0
  59. package/dist/tools/media.d.ts.map +1 -0
  60. package/dist/tools/media.js +208 -0
  61. package/dist/tools/media.js.map +1 -0
  62. package/dist/tools/pages.d.ts +30 -0
  63. package/dist/tools/pages.d.ts.map +1 -0
  64. package/dist/tools/pages.js +211 -0
  65. package/dist/tools/pages.js.map +1 -0
  66. package/dist/tools/posts.d.ts +30 -0
  67. package/dist/tools/posts.d.ts.map +1 -0
  68. package/dist/tools/posts.js +240 -0
  69. package/dist/tools/posts.js.map +1 -0
  70. package/dist/tools/site.d.ts +31 -0
  71. package/dist/tools/site.d.ts.map +1 -0
  72. package/dist/tools/site.js +192 -0
  73. package/dist/tools/site.js.map +1 -0
  74. package/dist/tools/taxonomies.d.ts +37 -0
  75. package/dist/tools/taxonomies.d.ts.map +1 -0
  76. package/dist/tools/taxonomies.js +280 -0
  77. package/dist/tools/taxonomies.js.map +1 -0
  78. package/dist/tools/users.d.ts +28 -0
  79. package/dist/tools/users.d.ts.map +1 -0
  80. package/dist/tools/users.js +201 -0
  81. package/dist/tools/users.js.map +1 -0
  82. package/dist/types/client.d.ts +215 -0
  83. package/dist/types/client.d.ts.map +1 -0
  84. package/dist/types/client.js +72 -0
  85. package/dist/types/client.js.map +1 -0
  86. package/dist/types/index.d.ts +157 -0
  87. package/dist/types/index.d.ts.map +1 -0
  88. package/dist/types/index.js +12 -0
  89. package/dist/types/index.js.map +1 -0
  90. package/dist/types/mcp.d.ts +178 -0
  91. package/dist/types/mcp.d.ts.map +1 -0
  92. package/dist/types/mcp.js +7 -0
  93. package/dist/types/mcp.js.map +1 -0
  94. package/dist/types/wordpress.d.ts +443 -0
  95. package/dist/types/wordpress.d.ts.map +1 -0
  96. package/dist/types/wordpress.js +7 -0
  97. package/dist/types/wordpress.js.map +1 -0
  98. package/dist/utils/debug.d.ts +63 -0
  99. package/dist/utils/debug.d.ts.map +1 -0
  100. package/dist/utils/debug.js +195 -0
  101. package/dist/utils/debug.js.map +1 -0
  102. package/dist/utils/error.d.ts +19 -0
  103. package/dist/utils/error.d.ts.map +1 -0
  104. package/dist/utils/error.js +71 -0
  105. package/dist/utils/error.js.map +1 -0
  106. package/dist/utils/toolWrapper.d.ts +36 -0
  107. package/dist/utils/toolWrapper.d.ts.map +1 -0
  108. package/dist/utils/toolWrapper.js +90 -0
  109. package/dist/utils/toolWrapper.js.map +1 -0
  110. package/package.json +115 -0
  111. package/src/client/api.ts +1043 -0
  112. package/src/client/auth.ts +527 -0
  113. package/src/client/managers/AuthenticationManager.ts +190 -0
  114. package/src/client/managers/BaseManager.ts +73 -0
  115. package/src/client/managers/RequestManager.ts +214 -0
  116. package/src/client/managers/index.ts +8 -0
  117. package/src/index.ts +337 -0
  118. package/src/server.ts +7 -0
  119. package/src/tools/auth.ts +153 -0
  120. package/src/tools/comments.ts +263 -0
  121. package/src/tools/index.ts +8 -0
  122. package/src/tools/media.ts +240 -0
  123. package/src/tools/pages.ts +246 -0
  124. package/src/tools/posts.ts +277 -0
  125. package/src/tools/site.ts +227 -0
  126. package/src/tools/taxonomies.ts +322 -0
  127. package/src/tools/users.ts +233 -0
  128. package/src/types/client.ts +304 -0
  129. package/src/types/index.ts +207 -0
  130. package/src/types/mcp.ts +247 -0
  131. package/src/types/wordpress.ts +491 -0
  132. package/src/utils/debug.ts +258 -0
  133. package/src/utils/error.ts +88 -0
  134. 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":"AAAA;;GAEG;AAEH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,KAAc,EAAE,YAAe;IAC7D,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,SAAiB,EAAE,OAAiC;IAClG,OAAO,CAAC,KAAK,CAAC,YAAY,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;IAE/C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvC,8DAA8D;IAC9D,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,gEAAgE,CAAC,CAAC;IACzH,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,4CAA4C,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,uCAAuC,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,2BAA2B,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,aAAa,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA+B,EAAE,QAAkB;IAClF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAwB,EAAE,cAAwB;IAC7E,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mFAAmF,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClI,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,iCAAiC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,EAA8B;IAE9B,OAAO,KAAK,EAAE,GAAG,IAAO,EAAc,EAAE;QACtC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAiB,EACjB,SAA+B,EAC/B,EAA8B;IAE9B,OAAO,KAAK,EAAE,GAAG,IAAO,EAAc,EAAE;QACtC,IAAI,CAAC;YACH,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;YACnB,OAAO,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,CAAC,MAAW,EAAE,MAAW,EAAE,EAAE;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,SAAS,EAAE,CAAC,MAAgC,EAAE,EAAE;QAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,eAAe,EAAE,CAAC,KAAU,EAAE,SAAiB,EAAE,EAAE;QACjD,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,aAAa,EAAE,CAAC,MAAW,EAAE,MAAgB,EAAE,EAAE;QAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC/E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC/C,IAAI,CAAC;gBACH,OAAO,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,KAAU;IAC/D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;AAC9C,CAAC"}
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
+ }