@mainwp/mcp 1.0.0-beta.1 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/abilities.d.ts +3 -65
- package/dist/abilities.d.ts.map +1 -1
- package/dist/abilities.js +59 -249
- package/dist/abilities.js.map +1 -1
- package/dist/config.d.ts +0 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +28 -36
- package/dist/config.js.map +1 -1
- package/dist/confirmation.d.ts +55 -0
- package/dist/confirmation.d.ts.map +1 -0
- package/dist/confirmation.js +229 -0
- package/dist/confirmation.js.map +1 -0
- package/dist/errors.d.ts +4 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +7 -1
- package/dist/errors.js.map +1 -1
- package/dist/help.d.ts +58 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +75 -0
- package/dist/help.js.map +1 -0
- package/dist/http-client.d.ts +40 -0
- package/dist/http-client.d.ts.map +1 -0
- package/dist/http-client.js +167 -0
- package/dist/http-client.js.map +1 -0
- package/dist/index.js +32 -96
- package/dist/index.js.map +1 -1
- package/dist/logging.d.ts.map +1 -1
- package/dist/logging.js +21 -29
- package/dist/logging.js.map +1 -1
- package/dist/prompts.js +2 -2
- package/dist/prompts.js.map +1 -1
- package/dist/security.d.ts +3 -1
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +26 -1
- package/dist/security.js.map +1 -1
- package/dist/session.d.ts +44 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +87 -0
- package/dist/session.js.map +1 -0
- package/dist/tool-schema.d.ts +40 -0
- package/dist/tool-schema.d.ts.map +1 -0
- package/dist/tool-schema.js +309 -0
- package/dist/tool-schema.js.map +1 -0
- package/dist/tools.d.ts +1 -42
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +30 -647
- package/dist/tools.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
# MainWP MCP Server
|
|
12
12
|
|
|
13
|
+
[MainWP MCP Server](https://github.com/mainwp/mainwp-mcp) is for conversational AI management inside Claude, Cursor, or any MCP-compatible client.
|
|
14
|
+
|
|
15
|
+
**Looking for the MainWP Control CLI instead?** [MainWP Control](https://github.com/mainwp/mainwp-control) is a CLI for managing your MainWP Dashboard from the terminal. List sites, push updates, sync data, run batch operations across dozens of sites. MainWP Control is for automation: AI automation, cron jobs, CI/CD pipelines, monitoring scripts, and batch operations. Both talk to the same Abilities API with the same safety model.
|
|
16
|
+
|
|
13
17
|
**Beta Release** — This project is under active development. APIs may change between versions.
|
|
14
18
|
|
|
15
19
|
An MCP (Model Context Protocol) server that connects AI assistants to your MainWP Dashboard. This lets Cursor, Claude, OpenAI Codex, VS Code Copilot, and other AI tools manage your WordPress network through natural conversation.
|
package/dist/abilities.d.ts
CHANGED
|
@@ -51,20 +51,6 @@ type CacheRefreshCallback = () => void;
|
|
|
51
51
|
* Register a callback to be called when the abilities cache is refreshed
|
|
52
52
|
*/
|
|
53
53
|
export declare function onCacheRefresh(callback: CacheRefreshCallback): void;
|
|
54
|
-
/**
|
|
55
|
-
* Read a response body with streaming size enforcement.
|
|
56
|
-
* Prevents unbounded memory consumption from chunked responses without Content-Length.
|
|
57
|
-
*
|
|
58
|
-
* The fallback path (no ReadableStream) buffers the full body before checking size.
|
|
59
|
-
* In production Node.js 18+, fetch responses always have a ReadableStream body,
|
|
60
|
-
* so the fallback only executes in test mocks with minimal Response objects.
|
|
61
|
-
*
|
|
62
|
-
* @internal Exported for testing
|
|
63
|
-
* @param response - The HTTP response to read
|
|
64
|
-
* @param maxBytes - Maximum allowed body size in bytes
|
|
65
|
-
* @returns The response body as a string
|
|
66
|
-
*/
|
|
67
|
-
export declare function readLimitedBody(response: Response, maxBytes: number): Promise<string>;
|
|
68
54
|
/**
|
|
69
55
|
* Fetch all abilities from the MainWP Dashboard
|
|
70
56
|
*/
|
|
@@ -84,61 +70,13 @@ export declare function getAbility(config: Config, name: string, logger?: Logger
|
|
|
84
70
|
* @param abilityName - Name of the ability to execute
|
|
85
71
|
* @param input - Optional input parameters
|
|
86
72
|
* @param logger - Optional logger for retry logging
|
|
73
|
+
* @param prefetchedAbility - Pre-fetched ability metadata to avoid redundant lookup
|
|
74
|
+
* @param signal - Optional AbortSignal for caller-initiated cancellation
|
|
87
75
|
*/
|
|
88
|
-
export declare function executeAbility(config: Config, abilityName: string, input?: Record<string, unknown>, logger?: Logger): Promise<unknown>;
|
|
76
|
+
export declare function executeAbility(config: Config, abilityName: string, input?: Record<string, unknown>, logger?: Logger, prefetchedAbility?: Ability, signal?: AbortSignal): Promise<unknown>;
|
|
89
77
|
/**
|
|
90
78
|
* Clear the abilities cache
|
|
91
79
|
*/
|
|
92
80
|
export declare function clearCache(): void;
|
|
93
|
-
/**
|
|
94
|
-
* Help documentation for a single tool
|
|
95
|
-
*/
|
|
96
|
-
export interface ToolHelp {
|
|
97
|
-
toolName: string;
|
|
98
|
-
abilityName: string;
|
|
99
|
-
label: string;
|
|
100
|
-
description: string;
|
|
101
|
-
category: string;
|
|
102
|
-
annotations: {
|
|
103
|
-
readonly: boolean;
|
|
104
|
-
destructive: boolean;
|
|
105
|
-
idempotent: boolean;
|
|
106
|
-
instructions?: string;
|
|
107
|
-
};
|
|
108
|
-
safetyFeatures: {
|
|
109
|
-
supportsDryRun: boolean;
|
|
110
|
-
requiresConfirm: boolean;
|
|
111
|
-
};
|
|
112
|
-
parameters: Array<{
|
|
113
|
-
name: string;
|
|
114
|
-
type: string;
|
|
115
|
-
required: boolean;
|
|
116
|
-
description?: string;
|
|
117
|
-
}>;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Complete help document structure
|
|
121
|
-
*/
|
|
122
|
-
export interface HelpDocument {
|
|
123
|
-
version: string;
|
|
124
|
-
generated: string;
|
|
125
|
-
overview: {
|
|
126
|
-
totalTools: number;
|
|
127
|
-
categories: string[];
|
|
128
|
-
safetyConventions: Record<string, string>;
|
|
129
|
-
};
|
|
130
|
-
destructiveTools: string[];
|
|
131
|
-
toolsWithDryRun: string[];
|
|
132
|
-
toolsRequiringConfirm: string[];
|
|
133
|
-
toolsByCategory: Record<string, ToolHelp[]>;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Generate help documentation for a single ability
|
|
137
|
-
*/
|
|
138
|
-
export declare function generateToolHelp(ability: Ability): ToolHelp;
|
|
139
|
-
/**
|
|
140
|
-
* Generate complete help document from all abilities
|
|
141
|
-
*/
|
|
142
|
-
export declare function generateHelpDocument(abilities: Ability[]): HelpDocument;
|
|
143
81
|
export {};
|
|
144
82
|
//# sourceMappingURL=abilities.d.ts.map
|
package/dist/abilities.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abilities.d.ts","sourceRoot":"","sources":["../src/abilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"abilities.d.ts","sourceRoot":"","sources":["../src/abilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AAWzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAa3C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,kBAAkB,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAmBD;;GAEG;AACH,KAAK,oBAAoB,GAAG,MAAM,IAAI,CAAC;AAGvC;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAEnE;AAeD;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,YAAY,UAAQ,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,EAAE,CAAC,CAoEpB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,YAAY,UAAQ,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,EAAE,CAAC,CA2CrB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAG9B;AA+CD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,CAAC,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,OAAO,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CA+HlB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAMjC"}
|
package/dist/abilities.js
CHANGED
|
@@ -4,17 +4,15 @@
|
|
|
4
4
|
* Fetches and caches ability definitions from the MainWP Dashboard's
|
|
5
5
|
* Abilities API REST endpoints.
|
|
6
6
|
*/
|
|
7
|
-
import { getAbilitiesApiUrl
|
|
7
|
+
import { getAbilitiesApiUrl } from './config.js';
|
|
8
8
|
import { McpErrorFactory } from './errors.js';
|
|
9
9
|
import { RateLimiter, sanitizeError } from './security.js';
|
|
10
|
-
import { abilityNameToToolName } from './naming.js';
|
|
11
10
|
import { withRetry } from './retry.js';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const MAX_PAGES = 50;
|
|
11
|
+
import { createFetch, readLimitedBody, paginateApi, MAX_ERROR_BODY_BYTES, MAX_URL_LENGTH, } from './http-client.js';
|
|
12
|
+
/** Maximum age of stale cache before hard-failing (30 minutes) */
|
|
13
|
+
const MAX_STALE_AGE_MS = 30 * 60 * 1000;
|
|
14
|
+
/** Strict format for ability names — prevents path traversal in URL construction */
|
|
15
|
+
const ABILITY_NAME_RE = /^[a-z0-9]+\/[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;
|
|
18
16
|
/**
|
|
19
17
|
* Rate limiter instance (initialized via initRateLimiter)
|
|
20
18
|
*/
|
|
@@ -35,7 +33,6 @@ let cachedCategories = null;
|
|
|
35
33
|
let abilitiesCacheTimestamp = 0;
|
|
36
34
|
let categoriesCacheTimestamp = 0;
|
|
37
35
|
const CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
38
|
-
let sslVerifyDisabled = false;
|
|
39
36
|
/**
|
|
40
37
|
* Hardcoded namespace filter for MainWP abilities.
|
|
41
38
|
* This server only supports MainWP abilities (mainwp/* namespace).
|
|
@@ -62,110 +59,6 @@ function notifyCacheRefresh() {
|
|
|
62
59
|
}
|
|
63
60
|
}
|
|
64
61
|
}
|
|
65
|
-
/**
|
|
66
|
-
* Create a fetch function that handles SSL verification, request timeout, and response size limits.
|
|
67
|
-
* Wraps any caller-provided AbortSignal to enforce timeout while preserving external cancellation.
|
|
68
|
-
*
|
|
69
|
-
* @param config - Server configuration
|
|
70
|
-
* @param perCallTimeout - Optional per-call timeout override (for retry budget enforcement)
|
|
71
|
-
*/
|
|
72
|
-
function createFetch(config, perCallTimeout) {
|
|
73
|
-
if (config.skipSslVerify && !sslVerifyDisabled) {
|
|
74
|
-
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
|
|
75
|
-
sslVerifyDisabled = true;
|
|
76
|
-
}
|
|
77
|
-
const effectiveTimeout = perCallTimeout ?? config.requestTimeout;
|
|
78
|
-
return async (url, options = {}) => {
|
|
79
|
-
const controller = new AbortController();
|
|
80
|
-
const timeoutId = setTimeout(() => controller.abort(), effectiveTimeout);
|
|
81
|
-
// Forward external signal abort to our controller (preserves caller cancellation)
|
|
82
|
-
const externalSignal = options.signal;
|
|
83
|
-
if (externalSignal) {
|
|
84
|
-
if (externalSignal.aborted) {
|
|
85
|
-
controller.abort();
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
externalSignal.addEventListener('abort', () => controller.abort(), { once: true });
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
try {
|
|
92
|
-
const fetchOptions = {
|
|
93
|
-
...options,
|
|
94
|
-
signal: controller.signal,
|
|
95
|
-
headers: {
|
|
96
|
-
...getAuthHeaders(config),
|
|
97
|
-
...options.headers,
|
|
98
|
-
},
|
|
99
|
-
};
|
|
100
|
-
const response = await fetch(url, fetchOptions);
|
|
101
|
-
clearTimeout(timeoutId);
|
|
102
|
-
// Check response size before parsing (if content-length is provided)
|
|
103
|
-
const contentLength = response.headers.get('content-length');
|
|
104
|
-
if (contentLength) {
|
|
105
|
-
const size = parseInt(contentLength, 10);
|
|
106
|
-
if (size > config.maxResponseSize) {
|
|
107
|
-
throw new Error(`Response size ${size} bytes exceeds maximum allowed ${config.maxResponseSize} bytes`);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return response;
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
clearTimeout(timeoutId);
|
|
114
|
-
if (error.name === 'AbortError') {
|
|
115
|
-
// Create timeout error with ETIMEDOUT code for retry detection
|
|
116
|
-
const timeoutError = new Error(`Request timeout after ${effectiveTimeout}ms: ${url}`);
|
|
117
|
-
timeoutError.code = 'ETIMEDOUT';
|
|
118
|
-
throw timeoutError;
|
|
119
|
-
}
|
|
120
|
-
throw error;
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Read a response body with streaming size enforcement.
|
|
126
|
-
* Prevents unbounded memory consumption from chunked responses without Content-Length.
|
|
127
|
-
*
|
|
128
|
-
* The fallback path (no ReadableStream) buffers the full body before checking size.
|
|
129
|
-
* In production Node.js 18+, fetch responses always have a ReadableStream body,
|
|
130
|
-
* so the fallback only executes in test mocks with minimal Response objects.
|
|
131
|
-
*
|
|
132
|
-
* @internal Exported for testing
|
|
133
|
-
* @param response - The HTTP response to read
|
|
134
|
-
* @param maxBytes - Maximum allowed body size in bytes
|
|
135
|
-
* @returns The response body as a string
|
|
136
|
-
*/
|
|
137
|
-
export async function readLimitedBody(response, maxBytes) {
|
|
138
|
-
const reader = response.body?.getReader();
|
|
139
|
-
if (!reader) {
|
|
140
|
-
// Fallback for test mocks without ReadableStream body
|
|
141
|
-
let text;
|
|
142
|
-
if (typeof response.text === 'function') {
|
|
143
|
-
text = await response.text();
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
// Last resort: json() + stringify (handles minimal mock objects)
|
|
147
|
-
text = JSON.stringify(await response.json());
|
|
148
|
-
}
|
|
149
|
-
if (Buffer.byteLength(text, 'utf8') > maxBytes) {
|
|
150
|
-
throw new Error(`Response body exceeds ${maxBytes} bytes limit`);
|
|
151
|
-
}
|
|
152
|
-
return text;
|
|
153
|
-
}
|
|
154
|
-
const chunks = [];
|
|
155
|
-
let totalBytes = 0;
|
|
156
|
-
while (true) {
|
|
157
|
-
const { done, value } = await reader.read();
|
|
158
|
-
if (done)
|
|
159
|
-
break;
|
|
160
|
-
totalBytes += value.byteLength;
|
|
161
|
-
if (totalBytes > maxBytes) {
|
|
162
|
-
reader.cancel();
|
|
163
|
-
throw new Error(`Response body exceeds ${maxBytes} bytes limit`);
|
|
164
|
-
}
|
|
165
|
-
chunks.push(value);
|
|
166
|
-
}
|
|
167
|
-
return new TextDecoder().decode(Buffer.concat(chunks));
|
|
168
|
-
}
|
|
169
62
|
/**
|
|
170
63
|
* Fetch all abilities from the MainWP Dashboard
|
|
171
64
|
*/
|
|
@@ -177,30 +70,7 @@ export async function fetchAbilities(config, forceRefresh = false, logger) {
|
|
|
177
70
|
const baseUrl = getAbilitiesApiUrl(config);
|
|
178
71
|
const customFetch = createFetch(config);
|
|
179
72
|
try {
|
|
180
|
-
|
|
181
|
-
let page = 1;
|
|
182
|
-
const allAbilities = [];
|
|
183
|
-
while (true) {
|
|
184
|
-
const response = await customFetch(`${baseUrl}/abilities?per_page=100&page=${page}`);
|
|
185
|
-
if (!response.ok) {
|
|
186
|
-
const errorText = await readLimitedBody(response, MAX_ERROR_BODY_BYTES);
|
|
187
|
-
throw new Error(`Failed to fetch abilities: ${response.status} ${response.statusText} - ${sanitizeError(errorText)}`);
|
|
188
|
-
}
|
|
189
|
-
const body = await readLimitedBody(response, config.maxResponseSize);
|
|
190
|
-
const batch = JSON.parse(body);
|
|
191
|
-
allAbilities.push(...batch);
|
|
192
|
-
const totalPages = parseInt(response.headers.get('X-WP-TotalPages') || '1', 10);
|
|
193
|
-
if (page >= totalPages || page >= MAX_PAGES)
|
|
194
|
-
break;
|
|
195
|
-
page++;
|
|
196
|
-
}
|
|
197
|
-
if (page >= MAX_PAGES) {
|
|
198
|
-
logger?.warning(`Pagination capped at ${MAX_PAGES} pages (fetched ${allAbilities.length} abilities) — some may be missing`);
|
|
199
|
-
}
|
|
200
|
-
else if (page > 1) {
|
|
201
|
-
logger?.info(`Fetched ${allAbilities.length} abilities across ${page} pages`);
|
|
202
|
-
}
|
|
203
|
-
// Filter abilities to only MainWP namespace
|
|
73
|
+
const allAbilities = await paginateApi(customFetch, `${baseUrl}/abilities`, 'abilities', config.maxResponseSize, logger);
|
|
204
74
|
const newAbilities = allAbilities.filter(a => a.name.startsWith(NAMESPACE_FILTER));
|
|
205
75
|
// Check if abilities have changed (compare names)
|
|
206
76
|
const oldNames = cachedAbilities
|
|
@@ -225,9 +95,20 @@ export async function fetchAbilities(config, forceRefresh = false, logger) {
|
|
|
225
95
|
return cachedAbilities;
|
|
226
96
|
}
|
|
227
97
|
catch (error) {
|
|
228
|
-
//
|
|
98
|
+
// Serve stale cache on transient failures, but only up to MAX_STALE_AGE_MS.
|
|
99
|
+
// Beyond that, the cache may be dangerously outdated (e.g., poisoned abilities).
|
|
229
100
|
if (cachedAbilities) {
|
|
230
|
-
const
|
|
101
|
+
const cacheAgeMs = Date.now() - abilitiesCacheTimestamp;
|
|
102
|
+
const cacheAgeMinutes = Math.round(cacheAgeMs / 60000);
|
|
103
|
+
if (cacheAgeMs > MAX_STALE_AGE_MS) {
|
|
104
|
+
logger?.error('Stale cache exceeded max age, discarding', {
|
|
105
|
+
cacheAgeMinutes,
|
|
106
|
+
maxStaleMinutes: MAX_STALE_AGE_MS / 60000,
|
|
107
|
+
});
|
|
108
|
+
cachedAbilities = null;
|
|
109
|
+
abilitiesIndex = null;
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
231
112
|
logger?.warning('Failed to refresh abilities, using cached data', {
|
|
232
113
|
error: sanitizeError(String(error)),
|
|
233
114
|
cacheAgeMinutes,
|
|
@@ -248,26 +129,7 @@ export async function fetchCategories(config, forceRefresh = false, logger) {
|
|
|
248
129
|
const baseUrl = getAbilitiesApiUrl(config);
|
|
249
130
|
const customFetch = createFetch(config);
|
|
250
131
|
try {
|
|
251
|
-
|
|
252
|
-
let page = 1;
|
|
253
|
-
const allCategories = [];
|
|
254
|
-
while (true) {
|
|
255
|
-
const response = await customFetch(`${baseUrl}/categories?per_page=100&page=${page}`);
|
|
256
|
-
if (!response.ok) {
|
|
257
|
-
const errorText = await readLimitedBody(response, MAX_ERROR_BODY_BYTES);
|
|
258
|
-
throw new Error(`Failed to fetch categories: ${response.status} ${response.statusText} - ${sanitizeError(errorText)}`);
|
|
259
|
-
}
|
|
260
|
-
const body = await readLimitedBody(response, config.maxResponseSize);
|
|
261
|
-
const batch = JSON.parse(body);
|
|
262
|
-
allCategories.push(...batch);
|
|
263
|
-
const totalPages = parseInt(response.headers.get('X-WP-TotalPages') || '1', 10);
|
|
264
|
-
if (page >= totalPages || page >= MAX_PAGES)
|
|
265
|
-
break;
|
|
266
|
-
page++;
|
|
267
|
-
}
|
|
268
|
-
if (page >= MAX_PAGES) {
|
|
269
|
-
logger?.warning(`Pagination capped at ${MAX_PAGES} pages (fetched ${allCategories.length} categories) — some may be missing`);
|
|
270
|
-
}
|
|
132
|
+
const allCategories = await paginateApi(customFetch, `${baseUrl}/categories`, 'categories', config.maxResponseSize, logger);
|
|
271
133
|
// Filter categories to only MainWP namespace
|
|
272
134
|
cachedCategories = allCategories.filter(c => c.slug.startsWith(CATEGORY_FILTER));
|
|
273
135
|
categoriesCacheTimestamp = Date.now();
|
|
@@ -275,7 +137,16 @@ export async function fetchCategories(config, forceRefresh = false, logger) {
|
|
|
275
137
|
}
|
|
276
138
|
catch (error) {
|
|
277
139
|
if (cachedCategories) {
|
|
278
|
-
const
|
|
140
|
+
const cacheAgeMs = Date.now() - categoriesCacheTimestamp;
|
|
141
|
+
const cacheAgeMinutes = Math.round(cacheAgeMs / 60000);
|
|
142
|
+
if (cacheAgeMs > MAX_STALE_AGE_MS) {
|
|
143
|
+
logger?.error('Stale categories cache exceeded max age, discarding', {
|
|
144
|
+
cacheAgeMinutes,
|
|
145
|
+
maxStaleMinutes: MAX_STALE_AGE_MS / 60000,
|
|
146
|
+
});
|
|
147
|
+
cachedCategories = null;
|
|
148
|
+
throw error;
|
|
149
|
+
}
|
|
279
150
|
logger?.warning('Failed to refresh categories, using cached data', {
|
|
280
151
|
error: sanitizeError(String(error)),
|
|
281
152
|
cacheAgeMinutes,
|
|
@@ -340,16 +211,21 @@ function createHttpError(status, errorCode, message) {
|
|
|
340
211
|
* @param abilityName - Name of the ability to execute
|
|
341
212
|
* @param input - Optional input parameters
|
|
342
213
|
* @param logger - Optional logger for retry logging
|
|
214
|
+
* @param prefetchedAbility - Pre-fetched ability metadata to avoid redundant lookup
|
|
215
|
+
* @param signal - Optional AbortSignal for caller-initiated cancellation
|
|
343
216
|
*/
|
|
344
|
-
export async function executeAbility(config, abilityName, input, logger) {
|
|
345
|
-
// Apply rate limiting BEFORE retry logic
|
|
346
|
-
// This ensures retries bypass the rate limiter to avoid deadlocks
|
|
217
|
+
export async function executeAbility(config, abilityName, input, logger, prefetchedAbility, signal) {
|
|
347
218
|
if (rateLimiter) {
|
|
348
|
-
await rateLimiter.acquire();
|
|
219
|
+
await rateLimiter.acquire(signal);
|
|
220
|
+
}
|
|
221
|
+
// Validate ability name format to prevent path traversal in URL construction.
|
|
222
|
+
// A compromised dashboard could return names like "mainwp/../../admin" which
|
|
223
|
+
// pass the namespace filter but create traversal URLs.
|
|
224
|
+
if (!ABILITY_NAME_RE.test(abilityName)) {
|
|
225
|
+
throw McpErrorFactory.invalidParams(`Invalid ability name format: ${sanitizeError(abilityName)}`);
|
|
349
226
|
}
|
|
350
227
|
const baseUrl = getAbilitiesApiUrl(config);
|
|
351
|
-
|
|
352
|
-
const ability = await getAbility(config, abilityName, logger);
|
|
228
|
+
const ability = prefetchedAbility ?? (await getAbility(config, abilityName, logger));
|
|
353
229
|
if (!ability) {
|
|
354
230
|
throw McpErrorFactory.abilityNotFound(abilityName);
|
|
355
231
|
}
|
|
@@ -372,33 +248,27 @@ export async function executeAbility(config, abilityName, input, logger) {
|
|
|
372
248
|
// Use remaining budget as timeout
|
|
373
249
|
const timeout = Math.max(1, context.remainingBudget);
|
|
374
250
|
const customFetch = createFetch(config, timeout);
|
|
251
|
+
const fetchStart = performance.now();
|
|
375
252
|
let response;
|
|
376
|
-
if (isReadonly) {
|
|
377
|
-
// GET
|
|
253
|
+
if (isReadonly || (isDestructive && isIdempotent)) {
|
|
254
|
+
// GET or DELETE — both use query string params (WP Abilities API doesn't parse DELETE bodies)
|
|
255
|
+
const method = isReadonly ? 'GET' : 'DELETE';
|
|
378
256
|
const queryString = hasInput ? serializeToPhpQueryString(input) : '';
|
|
379
257
|
const fullUrl = url + queryString;
|
|
380
258
|
if (fullUrl.length > MAX_URL_LENGTH) {
|
|
381
259
|
throw new Error(`Request URL exceeds ${MAX_URL_LENGTH} characters (${fullUrl.length}); reduce input parameters`);
|
|
382
260
|
}
|
|
383
|
-
response = await customFetch(fullUrl, { method
|
|
384
|
-
}
|
|
385
|
-
else if (isDestructive && isIdempotent) {
|
|
386
|
-
// DELETE request for destructive + idempotent abilities
|
|
387
|
-
// Uses query string parameters like GET - WP Abilities API doesn't parse DELETE bodies
|
|
388
|
-
const queryString = hasInput ? serializeToPhpQueryString(input) : '';
|
|
389
|
-
const fullUrl = url + queryString;
|
|
390
|
-
if (fullUrl.length > MAX_URL_LENGTH) {
|
|
391
|
-
throw new Error(`Request URL exceeds ${MAX_URL_LENGTH} characters (${fullUrl.length}); reduce input parameters`);
|
|
392
|
-
}
|
|
393
|
-
response = await customFetch(fullUrl, { method: 'DELETE' });
|
|
261
|
+
response = await customFetch(fullUrl, { method, signal });
|
|
394
262
|
}
|
|
395
263
|
else {
|
|
396
264
|
// POST request for non-destructive write operations
|
|
397
265
|
response = await customFetch(url, {
|
|
398
266
|
method: 'POST',
|
|
399
267
|
body: JSON.stringify({ input: input ?? {} }),
|
|
268
|
+
signal,
|
|
400
269
|
});
|
|
401
270
|
}
|
|
271
|
+
const upstreamLatencyMs = Math.round(performance.now() - fetchStart);
|
|
402
272
|
// Validate response - throw HTTP error for non-ok status
|
|
403
273
|
// This allows isRetryableError() to detect 5xx/429 and trigger retries
|
|
404
274
|
if (!response.ok) {
|
|
@@ -422,10 +292,20 @@ export async function executeAbility(config, abilityName, input, logger) {
|
|
|
422
292
|
// Non-JSON response body - use as error message
|
|
423
293
|
errorMsg = bodyText;
|
|
424
294
|
}
|
|
295
|
+
logger?.warning('Upstream request failed', {
|
|
296
|
+
abilityName,
|
|
297
|
+
httpStatus: response.status,
|
|
298
|
+
upstreamLatencyMs,
|
|
299
|
+
});
|
|
425
300
|
throw createHttpError(response.status, errorCode, sanitizeError(errorMsg));
|
|
426
301
|
}
|
|
427
302
|
// Read response body with streaming size enforcement
|
|
428
303
|
const responseBody = await readLimitedBody(response, config.maxResponseSize);
|
|
304
|
+
logger?.debug('Upstream request succeeded', {
|
|
305
|
+
abilityName,
|
|
306
|
+
httpStatus: response.status,
|
|
307
|
+
upstreamLatencyMs,
|
|
308
|
+
});
|
|
429
309
|
return JSON.parse(responseBody);
|
|
430
310
|
};
|
|
431
311
|
// Apply retry logic only for read-only operations when enabled
|
|
@@ -456,74 +336,4 @@ export function clearCache() {
|
|
|
456
336
|
abilitiesCacheTimestamp = 0;
|
|
457
337
|
categoriesCacheTimestamp = 0;
|
|
458
338
|
}
|
|
459
|
-
/**
|
|
460
|
-
* Generate help documentation for a single ability
|
|
461
|
-
*/
|
|
462
|
-
export function generateToolHelp(ability) {
|
|
463
|
-
const toolName = abilityNameToToolName(ability.name);
|
|
464
|
-
const props = (ability.input_schema?.properties || {});
|
|
465
|
-
const required = ability.input_schema?.required || [];
|
|
466
|
-
const parameters = Object.entries(props).map(([name, prop]) => ({
|
|
467
|
-
name,
|
|
468
|
-
type: String(prop.type || 'unknown'),
|
|
469
|
-
required: required.includes(name),
|
|
470
|
-
description: prop.description,
|
|
471
|
-
}));
|
|
472
|
-
return {
|
|
473
|
-
toolName,
|
|
474
|
-
abilityName: ability.name,
|
|
475
|
-
label: ability.label,
|
|
476
|
-
description: ability.description,
|
|
477
|
-
category: ability.category,
|
|
478
|
-
annotations: {
|
|
479
|
-
readonly: ability.meta?.annotations?.readonly ?? false,
|
|
480
|
-
destructive: ability.meta?.annotations?.destructive ?? true,
|
|
481
|
-
idempotent: ability.meta?.annotations?.idempotent ?? false,
|
|
482
|
-
instructions: ability.meta?.annotations?.instructions,
|
|
483
|
-
},
|
|
484
|
-
safetyFeatures: {
|
|
485
|
-
supportsDryRun: 'dry_run' in props,
|
|
486
|
-
requiresConfirm: 'confirm' in props,
|
|
487
|
-
},
|
|
488
|
-
parameters,
|
|
489
|
-
};
|
|
490
|
-
}
|
|
491
|
-
/**
|
|
492
|
-
* Generate complete help document from all abilities
|
|
493
|
-
*/
|
|
494
|
-
export function generateHelpDocument(abilities) {
|
|
495
|
-
const toolHelps = abilities.map(generateToolHelp);
|
|
496
|
-
// Use normalized categories matching toolsByCategory grouping logic
|
|
497
|
-
const categories = [
|
|
498
|
-
...new Set(toolHelps.map(h => (h.category && h.category.trim()) || 'uncategorized')),
|
|
499
|
-
].sort();
|
|
500
|
-
const toolsByCategory = {};
|
|
501
|
-
for (const help of toolHelps) {
|
|
502
|
-
// Handle empty string, null, undefined as 'uncategorized'
|
|
503
|
-
const cat = (help.category && help.category.trim()) || 'uncategorized';
|
|
504
|
-
if (!toolsByCategory[cat])
|
|
505
|
-
toolsByCategory[cat] = [];
|
|
506
|
-
toolsByCategory[cat].push(help);
|
|
507
|
-
}
|
|
508
|
-
return {
|
|
509
|
-
version: '1.0',
|
|
510
|
-
generated: new Date().toISOString(),
|
|
511
|
-
overview: {
|
|
512
|
-
totalTools: abilities.length,
|
|
513
|
-
categories,
|
|
514
|
-
safetyConventions: {
|
|
515
|
-
dryRun: 'Pass dry_run: true to preview the operation without making changes',
|
|
516
|
-
confirm: 'Pass confirm: true to execute destructive operations',
|
|
517
|
-
destructive: 'These tools can permanently delete or modify data',
|
|
518
|
-
readonly: 'These tools only read data and never modify anything',
|
|
519
|
-
},
|
|
520
|
-
},
|
|
521
|
-
destructiveTools: toolHelps.filter(h => h.annotations.destructive).map(h => h.toolName),
|
|
522
|
-
toolsWithDryRun: toolHelps.filter(h => h.safetyFeatures.supportsDryRun).map(h => h.toolName),
|
|
523
|
-
toolsRequiringConfirm: toolHelps
|
|
524
|
-
.filter(h => h.safetyFeatures.requiresConfirm)
|
|
525
|
-
.map(h => h.toolName),
|
|
526
|
-
toolsByCategory,
|
|
527
|
-
};
|
|
528
|
-
}
|
|
529
339
|
//# sourceMappingURL=abilities.js.map
|
package/dist/abilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abilities.js","sourceRoot":"","sources":["../src/abilities.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abilities.js","sourceRoot":"","sources":["../src/abilities.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -128,8 +128,5 @@ export declare function formatJson(config: Pick<Config, 'responseFormat'>, data:
|
|
|
128
128
|
* Build the Abilities API base URL
|
|
129
129
|
*/
|
|
130
130
|
export declare function getAbilitiesApiUrl(config: Config): string;
|
|
131
|
-
/**
|
|
132
|
-
* Get authorization headers for API requests
|
|
133
|
-
*/
|
|
134
131
|
export declare function getAuthHeaders(config: Config): Record<string, string>;
|
|
135
132
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|