@mainwp/mcp 1.0.0-beta.1

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 (49) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +1034 -0
  3. package/dist/abilities.d.ts +144 -0
  4. package/dist/abilities.d.ts.map +1 -0
  5. package/dist/abilities.js +529 -0
  6. package/dist/abilities.js.map +1 -0
  7. package/dist/config.d.ts +135 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +405 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/confirmation-responses.d.ts +44 -0
  12. package/dist/confirmation-responses.d.ts.map +1 -0
  13. package/dist/confirmation-responses.js +120 -0
  14. package/dist/confirmation-responses.js.map +1 -0
  15. package/dist/errors.d.ts +118 -0
  16. package/dist/errors.d.ts.map +1 -0
  17. package/dist/errors.js +206 -0
  18. package/dist/errors.js.map +1 -0
  19. package/dist/index.d.ts +17 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +506 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/logging.d.ts +34 -0
  24. package/dist/logging.d.ts.map +1 -0
  25. package/dist/logging.js +74 -0
  26. package/dist/logging.js.map +1 -0
  27. package/dist/naming.d.ts +23 -0
  28. package/dist/naming.d.ts.map +1 -0
  29. package/dist/naming.js +37 -0
  30. package/dist/naming.js.map +1 -0
  31. package/dist/prompts.d.ts +22 -0
  32. package/dist/prompts.d.ts.map +1 -0
  33. package/dist/prompts.js +414 -0
  34. package/dist/prompts.js.map +1 -0
  35. package/dist/retry.d.ts +77 -0
  36. package/dist/retry.d.ts.map +1 -0
  37. package/dist/retry.js +206 -0
  38. package/dist/retry.js.map +1 -0
  39. package/dist/security.d.ts +41 -0
  40. package/dist/security.d.ts.map +1 -0
  41. package/dist/security.js +154 -0
  42. package/dist/security.js.map +1 -0
  43. package/dist/tools.d.ts +82 -0
  44. package/dist/tools.d.ts.map +1 -0
  45. package/dist/tools.js +861 -0
  46. package/dist/tools.js.map +1 -0
  47. package/package.json +73 -0
  48. package/settings.example.json +30 -0
  49. package/settings.schema.json +129 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abilities.js","sourceRoot":"","sources":["../src/abilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * MainWP MCP Server Configuration
3
+ *
4
+ * Configuration is loaded from environment variables:
5
+ * - MAINWP_URL: Base URL of the MainWP Dashboard (e.g., https://dashboard.example.com)
6
+ *
7
+ * Authentication (one of):
8
+ * - MAINWP_USER + MAINWP_APP_PASSWORD: WordPress Application Password (recommended for Abilities API)
9
+ * - MAINWP_TOKEN: MainWP REST API Bearer token (only works with MainWP endpoints, not Abilities API)
10
+ */
11
+ /** Allowed schema verbosity values */
12
+ export declare const SCHEMA_VERBOSITY_VALUES: readonly ["compact", "standard"];
13
+ /** Schema verbosity type derived from allowed values */
14
+ export type SchemaVerbosity = (typeof SCHEMA_VERBOSITY_VALUES)[number];
15
+ /** Allowed response format values */
16
+ export declare const RESPONSE_FORMAT_VALUES: readonly ["compact", "pretty"];
17
+ /** Response format type derived from allowed values */
18
+ export type ResponseFormat = (typeof RESPONSE_FORMAT_VALUES)[number];
19
+ export interface Config {
20
+ /** Base URL of the MainWP Dashboard */
21
+ dashboardUrl: string;
22
+ /** Authentication type: 'basic' (app password) or 'bearer' (MainWP token) */
23
+ authType: 'basic' | 'bearer';
24
+ /** WordPress username (for basic auth) */
25
+ username?: string;
26
+ /** WordPress Application Password (for basic auth) */
27
+ appPassword?: string;
28
+ /** Bearer token for REST API authentication (for MainWP-specific endpoints) */
29
+ apiToken?: string;
30
+ /** Whether to skip SSL verification (for local dev with self-signed certs) */
31
+ skipSslVerify: boolean;
32
+ /** Whether HTTP URLs are explicitly allowed (insecure) */
33
+ allowHttp: boolean;
34
+ /** Rate limit: max API requests per minute (0 = disabled) */
35
+ rateLimit: number;
36
+ /** Optional list of allowed tool names (whitelist). If set, only these tools are exposed. */
37
+ allowedTools?: string[];
38
+ /** Optional list of blocked tool names (blacklist). These tools are never exposed. */
39
+ blockedTools?: string[];
40
+ /** Request timeout in milliseconds (default: 30000) */
41
+ requestTimeout: number;
42
+ /** Maximum response size in bytes (default: 10485760 = 10MB) */
43
+ maxResponseSize: number;
44
+ /** Safe mode: prevents destructive operations by stripping confirm parameter */
45
+ safeMode: boolean;
46
+ /** Require explicit user confirmation for destructive operations via two-phase preview flow */
47
+ requireUserConfirmation: boolean;
48
+ /** Maximum cumulative response data per server session in bytes (default: 52428800 = 50MB) */
49
+ maxSessionData: number;
50
+ /** Schema verbosity level: 'compact' reduces token usage, 'standard' provides full descriptions */
51
+ schemaVerbosity: SchemaVerbosity;
52
+ /** Response format: 'compact' omits whitespace to reduce token usage, 'pretty' uses 2-space indentation */
53
+ responseFormat: ResponseFormat;
54
+ /** Enable retry logic for transient errors (default: true) */
55
+ retryEnabled: boolean;
56
+ /** Maximum retry attempts including initial request (default: 2) */
57
+ maxRetries: number;
58
+ /** Base delay between retries in milliseconds (default: 1000) */
59
+ retryBaseDelay: number;
60
+ /** Maximum delay between retries in milliseconds (default: 2000) */
61
+ retryMaxDelay: number;
62
+ /** Configuration source: 'environment', 'settings file', or 'mixed' */
63
+ configSource: 'environment' | 'settings file' | 'mixed';
64
+ }
65
+ /**
66
+ * Settings file interface - all fields optional for file-based configuration
67
+ */
68
+ export interface SettingsFile {
69
+ /** Base URL of the MainWP Dashboard */
70
+ dashboardUrl?: string;
71
+ /** WordPress username (for basic auth) */
72
+ username?: string;
73
+ /** WordPress Application Password (for basic auth) */
74
+ appPassword?: string;
75
+ /** Bearer token for REST API authentication (for MainWP-specific endpoints) */
76
+ apiToken?: string;
77
+ /** Whether to skip SSL verification (for local dev with self-signed certs) */
78
+ skipSslVerify?: boolean;
79
+ /** Whether HTTP URLs are explicitly allowed (insecure) */
80
+ allowHttp?: boolean;
81
+ /** Safe mode: prevents destructive operations by stripping confirm parameter */
82
+ safeMode?: boolean;
83
+ /** Require explicit user confirmation for destructive operations via two-phase preview flow */
84
+ requireUserConfirmation?: boolean;
85
+ /** Rate limit: max API requests per minute (0 = disabled) */
86
+ rateLimit?: number;
87
+ /** Request timeout in milliseconds (default: 30000) */
88
+ requestTimeout?: number;
89
+ /** Maximum response size in bytes (default: 10485760 = 10MB) */
90
+ maxResponseSize?: number;
91
+ /** Maximum cumulative response data per server session in bytes (default: 52428800 = 50MB) */
92
+ maxSessionData?: number;
93
+ /** Optional list of allowed tool names (whitelist). If set, only these tools are exposed. */
94
+ allowedTools?: string[];
95
+ /** Optional list of blocked tool names (blacklist). These tools are never exposed. */
96
+ blockedTools?: string[];
97
+ /** Schema verbosity level: 'compact' reduces token usage, 'standard' provides full descriptions */
98
+ schemaVerbosity?: SchemaVerbosity;
99
+ /** Response format: 'compact' omits whitespace to reduce token usage, 'pretty' uses 2-space indentation */
100
+ responseFormat?: ResponseFormat;
101
+ /** Enable retry logic for transient errors (default: true) */
102
+ retryEnabled?: boolean;
103
+ /** Maximum retry attempts including initial request (default: 2) */
104
+ maxRetries?: number;
105
+ /** Base delay between retries in milliseconds (default: 1000) */
106
+ retryBaseDelay?: number;
107
+ /** Maximum delay between retries in milliseconds (default: 2000) */
108
+ retryMaxDelay?: number;
109
+ }
110
+ /**
111
+ * Load settings from settings.json file
112
+ * Searches: CWD first, then ~/.config/mainwp-mcp/
113
+ * Returns null if no file found (silent fallback)
114
+ * Throws on validation errors
115
+ */
116
+ export declare function loadSettingsFile(): SettingsFile | null;
117
+ /**
118
+ * Load configuration from environment variables and settings file
119
+ * Precedence: environment variables > settings file > defaults
120
+ */
121
+ export declare function loadConfig(): Config;
122
+ /**
123
+ * Serialize data as JSON using the configured response format.
124
+ * 'compact' omits whitespace; 'pretty' uses 2-space indentation.
125
+ */
126
+ export declare function formatJson(config: Pick<Config, 'responseFormat'>, data: unknown): string;
127
+ /**
128
+ * Build the Abilities API base URL
129
+ */
130
+ export declare function getAbilitiesApiUrl(config: Config): string;
131
+ /**
132
+ * Get authorization headers for API requests
133
+ */
134
+ export declare function getAuthHeaders(config: Config): Record<string, string>;
135
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js ADDED
@@ -0,0 +1,405 @@
1
+ /**
2
+ * MainWP MCP Server Configuration
3
+ *
4
+ * Configuration is loaded from environment variables:
5
+ * - MAINWP_URL: Base URL of the MainWP Dashboard (e.g., https://dashboard.example.com)
6
+ *
7
+ * Authentication (one of):
8
+ * - MAINWP_USER + MAINWP_APP_PASSWORD: WordPress Application Password (recommended for Abilities API)
9
+ * - MAINWP_TOKEN: MainWP REST API Bearer token (only works with MainWP endpoints, not Abilities API)
10
+ */
11
+ import fs from 'fs';
12
+ import path from 'path';
13
+ import os from 'os';
14
+ /** Allowed schema verbosity values */
15
+ export const SCHEMA_VERBOSITY_VALUES = ['compact', 'standard'];
16
+ /** Allowed response format values */
17
+ export const RESPONSE_FORMAT_VALUES = ['compact', 'pretty'];
18
+ const SETTINGS_FILENAME = 'settings.json';
19
+ /**
20
+ * Validate settings file structure and types
21
+ * Throws on validation errors with descriptive messages
22
+ */
23
+ function validateSettingsFile(settings, filePath) {
24
+ // Guard: root value must be a non-null plain object
25
+ if (settings === null || typeof settings !== 'object' || Array.isArray(settings)) {
26
+ throw new Error(`Invalid settings file: ${filePath}\n - root value must be a JSON object`);
27
+ }
28
+ const errors = [];
29
+ // Define expected field types
30
+ const stringFields = [
31
+ 'dashboardUrl',
32
+ 'username',
33
+ 'appPassword',
34
+ 'apiToken',
35
+ 'schemaVerbosity',
36
+ 'responseFormat',
37
+ ];
38
+ const booleanFields = [
39
+ 'skipSslVerify',
40
+ 'allowHttp',
41
+ 'safeMode',
42
+ 'requireUserConfirmation',
43
+ 'retryEnabled',
44
+ ];
45
+ const numberFields = [
46
+ 'rateLimit',
47
+ 'requestTimeout',
48
+ 'maxResponseSize',
49
+ 'maxSessionData',
50
+ 'maxRetries',
51
+ 'retryBaseDelay',
52
+ 'retryMaxDelay',
53
+ ];
54
+ const arrayFields = ['allowedTools', 'blockedTools'];
55
+ // Validate string fields
56
+ for (const field of stringFields) {
57
+ if (settings[field] !== undefined && typeof settings[field] !== 'string') {
58
+ errors.push(`"${field}" must be a string`);
59
+ }
60
+ }
61
+ // Validate boolean fields
62
+ for (const field of booleanFields) {
63
+ if (settings[field] !== undefined && typeof settings[field] !== 'boolean') {
64
+ errors.push(`"${field}" must be a boolean`);
65
+ }
66
+ }
67
+ // Validate number fields
68
+ for (const field of numberFields) {
69
+ if (settings[field] !== undefined && typeof settings[field] !== 'number') {
70
+ errors.push(`"${field}" must be a number`);
71
+ }
72
+ }
73
+ // Validate array fields (must be arrays of strings)
74
+ for (const field of arrayFields) {
75
+ const value = settings[field];
76
+ if (value !== undefined) {
77
+ if (!Array.isArray(value) || !value.every((x) => typeof x === 'string')) {
78
+ errors.push(`"${field}" must be an array of strings`);
79
+ }
80
+ }
81
+ }
82
+ // Validate schemaVerbosity enum
83
+ if (settings.schemaVerbosity !== undefined) {
84
+ if (!SCHEMA_VERBOSITY_VALUES.includes(settings.schemaVerbosity)) {
85
+ errors.push(`"schemaVerbosity" must be one of: ${SCHEMA_VERBOSITY_VALUES.join(', ')}; got: "${settings.schemaVerbosity}"`);
86
+ }
87
+ }
88
+ // Validate responseFormat enum
89
+ if (settings.responseFormat !== undefined) {
90
+ if (!RESPONSE_FORMAT_VALUES.includes(settings.responseFormat)) {
91
+ errors.push(`"responseFormat" must be one of: ${RESPONSE_FORMAT_VALUES.join(', ')}; got: "${settings.responseFormat}"`);
92
+ }
93
+ }
94
+ // Detect unknown fields
95
+ // Valid fields: all SettingsFile properties plus _comment (for inline documentation per schema)
96
+ const validFields = new Set([
97
+ ...stringFields,
98
+ ...booleanFields,
99
+ ...numberFields,
100
+ ...arrayFields,
101
+ '_comment',
102
+ ]);
103
+ for (const key of Object.keys(settings)) {
104
+ if (!validFields.has(key)) {
105
+ errors.push(`Unknown field "${key}"`);
106
+ }
107
+ }
108
+ // Report all errors at once
109
+ if (errors.length > 0) {
110
+ throw new Error(`Invalid settings file: ${filePath}\n${errors.map(e => ` - ${e}`).join('\n')}`);
111
+ }
112
+ }
113
+ /**
114
+ * Load settings from settings.json file
115
+ * Searches: CWD first, then ~/.config/mainwp-mcp/
116
+ * Returns null if no file found (silent fallback)
117
+ * Throws on validation errors
118
+ */
119
+ export function loadSettingsFile() {
120
+ const searchPaths = [
121
+ path.join(process.cwd(), SETTINGS_FILENAME),
122
+ path.join(os.homedir(), '.config', 'mainwp-mcp', SETTINGS_FILENAME),
123
+ ];
124
+ for (const filePath of searchPaths) {
125
+ if (fs.existsSync(filePath)) {
126
+ let content;
127
+ let parsed;
128
+ try {
129
+ content = fs.readFileSync(filePath, 'utf-8');
130
+ }
131
+ catch (error) {
132
+ throw new Error(`Failed to read settings file: ${filePath}\n${error.message}`, {
133
+ cause: error,
134
+ });
135
+ }
136
+ try {
137
+ parsed = JSON.parse(content);
138
+ }
139
+ catch (error) {
140
+ throw new Error(`Invalid JSON in settings file: ${filePath}\n${error.message}`, {
141
+ cause: error,
142
+ });
143
+ }
144
+ validateSettingsFile(parsed, filePath);
145
+ console.error('[mainwp-mcp] Loaded settings from file');
146
+ return parsed;
147
+ }
148
+ }
149
+ return null;
150
+ }
151
+ /**
152
+ * Get string value with precedence: env var > settings file > default
153
+ */
154
+ function getString(envVar, fileValue, defaultValue) {
155
+ if (envVar !== undefined && envVar !== '') {
156
+ return envVar;
157
+ }
158
+ if (fileValue !== undefined && fileValue !== '') {
159
+ return fileValue;
160
+ }
161
+ return defaultValue;
162
+ }
163
+ /**
164
+ * Get boolean value with precedence: env var > settings file > default
165
+ */
166
+ function getBoolean(envVar, fileValue, defaultValue) {
167
+ if (envVar !== undefined && envVar !== '') {
168
+ return envVar === 'true';
169
+ }
170
+ if (fileValue !== undefined) {
171
+ return fileValue;
172
+ }
173
+ return defaultValue;
174
+ }
175
+ /**
176
+ * Get number value with precedence: env var > settings file > default
177
+ */
178
+ function getNumber(envVar, fileValue, defaultValue) {
179
+ if (envVar !== undefined && envVar !== '') {
180
+ return parseInt(envVar, 10);
181
+ }
182
+ if (fileValue !== undefined) {
183
+ return fileValue;
184
+ }
185
+ return defaultValue;
186
+ }
187
+ /**
188
+ * Get string array value with precedence: env var > settings file > default
189
+ */
190
+ function getStringArray(envVar, fileValue, defaultValue) {
191
+ if (envVar !== undefined && envVar !== '') {
192
+ return envVar
193
+ .split(',')
194
+ .map(s => s.trim())
195
+ .filter(Boolean);
196
+ }
197
+ if (fileValue !== undefined) {
198
+ return fileValue;
199
+ }
200
+ return defaultValue;
201
+ }
202
+ /**
203
+ * Load configuration from environment variables and settings file
204
+ * Precedence: environment variables > settings file > defaults
205
+ */
206
+ export function loadConfig() {
207
+ // Load settings file (returns null if not found)
208
+ const settings = loadSettingsFile();
209
+ // Determine config source based on what's available
210
+ const hasEnvVars = !!(process.env.MAINWP_URL ||
211
+ process.env.MAINWP_USER ||
212
+ process.env.MAINWP_APP_PASSWORD ||
213
+ process.env.MAINWP_TOKEN ||
214
+ process.env.MAINWP_SKIP_SSL_VERIFY ||
215
+ process.env.MAINWP_ALLOW_HTTP ||
216
+ process.env.MAINWP_SAFE_MODE ||
217
+ process.env.MAINWP_REQUIRE_USER_CONFIRMATION ||
218
+ process.env.MAINWP_RATE_LIMIT ||
219
+ process.env.MAINWP_REQUEST_TIMEOUT ||
220
+ process.env.MAINWP_MAX_RESPONSE_SIZE ||
221
+ process.env.MAINWP_MAX_SESSION_DATA ||
222
+ process.env.MAINWP_ALLOWED_TOOLS ||
223
+ process.env.MAINWP_BLOCKED_TOOLS ||
224
+ process.env.MAINWP_SCHEMA_VERBOSITY ||
225
+ process.env.MAINWP_RESPONSE_FORMAT ||
226
+ process.env.MAINWP_RETRY_ENABLED ||
227
+ process.env.MAINWP_MAX_RETRIES ||
228
+ process.env.MAINWP_RETRY_BASE_DELAY ||
229
+ process.env.MAINWP_RETRY_MAX_DELAY);
230
+ const configSource = settings === null ? 'environment' : !hasEnvVars ? 'settings file' : 'mixed';
231
+ // Merge configuration with precedence: env > file > default
232
+ const dashboardUrl = getString(process.env.MAINWP_URL, settings?.dashboardUrl, '');
233
+ const username = getString(process.env.MAINWP_USER, settings?.username, '');
234
+ const appPassword = getString(process.env.MAINWP_APP_PASSWORD, settings?.appPassword, '');
235
+ const apiToken = getString(process.env.MAINWP_TOKEN, settings?.apiToken, '');
236
+ const skipSslVerify = getBoolean(process.env.MAINWP_SKIP_SSL_VERIFY, settings?.skipSslVerify, false);
237
+ const allowHttp = getBoolean(process.env.MAINWP_ALLOW_HTTP, settings?.allowHttp, false);
238
+ const safeMode = getBoolean(process.env.MAINWP_SAFE_MODE, settings?.safeMode, false);
239
+ const requireUserConfirmation = getBoolean(process.env.MAINWP_REQUIRE_USER_CONFIRMATION, settings?.requireUserConfirmation, true);
240
+ // Parse rate limit (default: 60 requests/minute)
241
+ const rateLimit = getNumber(process.env.MAINWP_RATE_LIMIT, settings?.rateLimit, 60);
242
+ if (isNaN(rateLimit) || rateLimit < 0) {
243
+ throw new Error('MAINWP_RATE_LIMIT must be a non-negative integer (set via environment variable or settings.json)');
244
+ }
245
+ // Parse request timeout (default: 30000ms = 30 seconds)
246
+ const requestTimeout = getNumber(process.env.MAINWP_REQUEST_TIMEOUT, settings?.requestTimeout, 30000);
247
+ if (isNaN(requestTimeout) || requestTimeout <= 0) {
248
+ throw new Error('MAINWP_REQUEST_TIMEOUT must be a positive integer (set via environment variable or settings.json)');
249
+ }
250
+ // Parse max response size (default: 10485760 bytes = 10MB)
251
+ const maxResponseSize = getNumber(process.env.MAINWP_MAX_RESPONSE_SIZE, settings?.maxResponseSize, 10485760);
252
+ if (isNaN(maxResponseSize) || maxResponseSize <= 0) {
253
+ throw new Error('MAINWP_MAX_RESPONSE_SIZE must be a positive integer (set via environment variable or settings.json)');
254
+ }
255
+ // Parse max session data (default: 52428800 bytes = 50MB)
256
+ const maxSessionData = getNumber(process.env.MAINWP_MAX_SESSION_DATA, settings?.maxSessionData, 52428800);
257
+ if (isNaN(maxSessionData) || maxSessionData <= 0) {
258
+ throw new Error('MAINWP_MAX_SESSION_DATA must be a positive integer (set via environment variable or settings.json)');
259
+ }
260
+ // Parse allowed/blocked tool lists
261
+ const allowedTools = getStringArray(process.env.MAINWP_ALLOWED_TOOLS, settings?.allowedTools, []);
262
+ const blockedTools = getStringArray(process.env.MAINWP_BLOCKED_TOOLS, settings?.blockedTools, []);
263
+ // Parse schema verbosity (default: 'standard' for backwards compatibility)
264
+ const schemaVerbosity = getString(process.env.MAINWP_SCHEMA_VERBOSITY, settings?.schemaVerbosity, 'standard');
265
+ // Validate enum value
266
+ if (!SCHEMA_VERBOSITY_VALUES.includes(schemaVerbosity)) {
267
+ throw new Error(`MAINWP_SCHEMA_VERBOSITY must be one of: ${SCHEMA_VERBOSITY_VALUES.join(', ')}; got: "${schemaVerbosity}" ` +
268
+ `(set via environment variable or settings.json)`);
269
+ }
270
+ // Parse response format (default: 'compact' to reduce token usage)
271
+ const responseFormat = getString(process.env.MAINWP_RESPONSE_FORMAT, settings?.responseFormat, 'compact');
272
+ // Validate enum value
273
+ if (!RESPONSE_FORMAT_VALUES.includes(responseFormat)) {
274
+ throw new Error(`MAINWP_RESPONSE_FORMAT must be one of: ${RESPONSE_FORMAT_VALUES.join(', ')}; got: "${responseFormat}" ` +
275
+ `(set via environment variable or settings.json)`);
276
+ }
277
+ // Parse retry configuration
278
+ const retryEnabled = getBoolean(process.env.MAINWP_RETRY_ENABLED, settings?.retryEnabled, true);
279
+ const maxRetries = getNumber(process.env.MAINWP_MAX_RETRIES, settings?.maxRetries, 2);
280
+ if (isNaN(maxRetries) || maxRetries < 1 || maxRetries > 5) {
281
+ throw new Error('MAINWP_MAX_RETRIES must be between 1 and 5 (set via environment variable or settings.json)');
282
+ }
283
+ const retryBaseDelay = getNumber(process.env.MAINWP_RETRY_BASE_DELAY, settings?.retryBaseDelay, 1000);
284
+ if (isNaN(retryBaseDelay) || retryBaseDelay < 500 || retryBaseDelay > 10000) {
285
+ throw new Error('MAINWP_RETRY_BASE_DELAY must be between 500ms and 10000ms (set via environment variable or settings.json)');
286
+ }
287
+ const retryMaxDelay = getNumber(process.env.MAINWP_RETRY_MAX_DELAY, settings?.retryMaxDelay, 2000);
288
+ if (isNaN(retryMaxDelay) || retryMaxDelay < retryBaseDelay || retryMaxDelay > 30000) {
289
+ throw new Error(`MAINWP_RETRY_MAX_DELAY must be between ${retryBaseDelay}ms and 30000ms (set via environment variable or settings.json)`);
290
+ }
291
+ // Validate no conflicts between allowed and blocked lists
292
+ if (allowedTools.length > 0 && blockedTools.length > 0) {
293
+ const allowedSet = new Set(allowedTools);
294
+ const conflicts = blockedTools.filter(tool => allowedSet.has(tool));
295
+ if (conflicts.length > 0) {
296
+ throw new Error(`Tool allow/block list conflict: ${conflicts.join(', ')} appear in both allowedTools and blockedTools`);
297
+ }
298
+ }
299
+ if (!dashboardUrl) {
300
+ throw new Error('MAINWP_URL is required (set via environment variable or settings.json)');
301
+ }
302
+ // Determine auth type
303
+ const hasBasicAuth = username && appPassword;
304
+ const hasBearerAuth = apiToken;
305
+ if (!hasBasicAuth && !hasBearerAuth) {
306
+ throw new Error('Authentication required: Set MAINWP_USER + MAINWP_APP_PASSWORD or MAINWP_TOKEN (via environment variables or settings.json)');
307
+ }
308
+ // Normalize URL (remove trailing slash)
309
+ const normalizedUrl = dashboardUrl.replace(/\/+$/, '');
310
+ // Validate URL format
311
+ let parsedUrl;
312
+ try {
313
+ parsedUrl = new URL(normalizedUrl);
314
+ }
315
+ catch {
316
+ throw new Error(`Invalid dashboardUrl: "${dashboardUrl}" is not a valid URL`);
317
+ }
318
+ // Block HTTP by default (insecure credential transmission)
319
+ if (parsedUrl.protocol === 'http:') {
320
+ if (!allowHttp) {
321
+ throw new Error('dashboardUrl uses HTTP which transmits credentials in plain text. ' +
322
+ 'Use HTTPS, or set allowHttp=true to allow insecure connections (not recommended).');
323
+ }
324
+ console.error('WARNING: dashboardUrl uses HTTP - credentials will be transmitted in plain text');
325
+ }
326
+ // Prefer basic auth (Application Password) as it works with Abilities API
327
+ if (hasBasicAuth) {
328
+ return {
329
+ dashboardUrl: normalizedUrl,
330
+ authType: 'basic',
331
+ username,
332
+ appPassword,
333
+ skipSslVerify,
334
+ allowHttp,
335
+ rateLimit,
336
+ requestTimeout,
337
+ maxResponseSize,
338
+ safeMode,
339
+ requireUserConfirmation,
340
+ maxSessionData,
341
+ schemaVerbosity,
342
+ responseFormat,
343
+ retryEnabled,
344
+ maxRetries,
345
+ retryBaseDelay,
346
+ retryMaxDelay,
347
+ configSource,
348
+ ...(allowedTools.length > 0 ? { allowedTools } : {}),
349
+ ...(blockedTools.length > 0 ? { blockedTools } : {}),
350
+ };
351
+ }
352
+ return {
353
+ dashboardUrl: normalizedUrl,
354
+ authType: 'bearer',
355
+ apiToken,
356
+ skipSslVerify,
357
+ allowHttp,
358
+ rateLimit,
359
+ requestTimeout,
360
+ maxResponseSize,
361
+ safeMode,
362
+ requireUserConfirmation,
363
+ maxSessionData,
364
+ schemaVerbosity,
365
+ responseFormat,
366
+ retryEnabled,
367
+ maxRetries,
368
+ retryBaseDelay,
369
+ retryMaxDelay,
370
+ configSource,
371
+ ...(allowedTools.length > 0 ? { allowedTools } : {}),
372
+ ...(blockedTools.length > 0 ? { blockedTools } : {}),
373
+ };
374
+ }
375
+ /**
376
+ * Serialize data as JSON using the configured response format.
377
+ * 'compact' omits whitespace; 'pretty' uses 2-space indentation.
378
+ */
379
+ export function formatJson(config, data) {
380
+ return config.responseFormat === 'pretty' ? JSON.stringify(data, null, 2) : JSON.stringify(data);
381
+ }
382
+ /**
383
+ * Build the Abilities API base URL
384
+ */
385
+ export function getAbilitiesApiUrl(config) {
386
+ return `${config.dashboardUrl}/wp-json/wp-abilities/v1`;
387
+ }
388
+ /**
389
+ * Get authorization headers for API requests
390
+ */
391
+ export function getAuthHeaders(config) {
392
+ const headers = {
393
+ 'Content-Type': 'application/json',
394
+ };
395
+ if (config.authType === 'basic' && config.username && config.appPassword) {
396
+ // WordPress Application Password uses Basic Auth
397
+ const credentials = Buffer.from(`${config.username}:${config.appPassword}`).toString('base64');
398
+ headers['Authorization'] = `Basic ${credentials}`;
399
+ }
400
+ else if (config.authType === 'bearer' && config.apiToken) {
401
+ headers['Authorization'] = `Bearer ${config.apiToken}`;
402
+ }
403
+ return headers;
404
+ }
405
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Confirmation Flow Response Builders
3
+ *
4
+ * Centralized construction of domain-level JSON payloads for the two-phase
5
+ * confirmation flow. These are workflow responses returned as successful
6
+ * tool results to guide the AI's next action - distinct from protocol-level
7
+ * MCP errors in errors.ts.
8
+ */
9
+ /**
10
+ * Common context for confirmation-related responses
11
+ */
12
+ export interface ConfirmationContext {
13
+ tool: string;
14
+ ability: string;
15
+ }
16
+ /**
17
+ * Response when safe mode blocks a destructive operation
18
+ */
19
+ export declare function buildSafeModeBlockedResponse(ctx: ConfirmationContext): object;
20
+ /**
21
+ * Response when user_confirmed is used on a tool without confirm parameter support
22
+ */
23
+ export declare function buildInvalidParameterResponse(ctx: ConfirmationContext): object;
24
+ /**
25
+ * Response when user_confirmed and dry_run are both set (conflicting intent)
26
+ */
27
+ export declare function buildConflictingParametersResponse(ctx: ConfirmationContext): object;
28
+ /**
29
+ * Response when a preview is generated and confirmation is required
30
+ */
31
+ export declare function buildConfirmationRequiredResponse(ctx: ConfirmationContext, preview: unknown, token: string): object;
32
+ /**
33
+ * Response when user_confirmed is set but no preview was requested first
34
+ */
35
+ export declare function buildPreviewRequiredResponse(ctx: ConfirmationContext): object;
36
+ /**
37
+ * Response when the preview has expired (older than 5 minutes)
38
+ */
39
+ export declare function buildPreviewExpiredResponse(ctx: ConfirmationContext): object;
40
+ /**
41
+ * Response when an idempotent operation had no effect (already in desired state)
42
+ */
43
+ export declare function buildNoChangeResponse(ctx: ConfirmationContext, code: string, reason: string): object;
44
+ //# sourceMappingURL=confirmation-responses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation-responses.d.ts","sourceRoot":"","sources":["../src/confirmation-responses.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAY7E;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAW9E;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAYnF;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAa7E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAY5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAWR"}