mcp-wordpress 3.1.13 → 3.1.15
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/dist/client/api.d.ts.map +1 -1
- package/dist/client/api.js +6 -4
- package/dist/client/api.js.map +1 -1
- package/dist/client/auth.d.ts.map +1 -1
- package/dist/client/auth.js +4 -6
- package/dist/client/auth.js.map +1 -1
- package/dist/client/operations/media.d.ts +5 -0
- package/dist/client/operations/media.d.ts.map +1 -1
- package/dist/client/operations/media.js +25 -1
- package/dist/client/operations/media.js.map +1 -1
- package/dist/tools/comments.js +5 -5
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/media.d.ts.map +1 -1
- package/dist/tools/media.js +11 -5
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/pages.d.ts.map +1 -1
- package/dist/tools/pages.js +5 -4
- package/dist/tools/pages.js.map +1 -1
- package/dist/tools/params.d.ts +12 -0
- package/dist/tools/params.d.ts.map +1 -1
- package/dist/tools/params.js +20 -0
- package/dist/tools/params.js.map +1 -1
- package/dist/tools/taxonomies.js +5 -5
- package/dist/tools/taxonomies.js.map +1 -1
- package/dist/tools/users.d.ts.map +1 -1
- package/dist/tools/users.js +4 -3
- package/dist/tools/users.js.map +1 -1
- package/package.json +5 -4
- package/src/client/api.ts +6 -4
- package/src/client/auth.ts +4 -6
- package/src/client/operations/media.ts +30 -1
- package/src/tools/comments.ts +5 -5
- package/src/tools/media.ts +12 -5
- package/src/tools/pages.ts +5 -4
- package/src/tools/params.ts +25 -0
- package/src/tools/taxonomies.ts +5 -5
- package/src/tools/users.ts +4 -3
package/dist/tools/pages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/tools/pages.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/tools/pages.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/params.d.ts
CHANGED
|
@@ -10,4 +10,16 @@
|
|
|
10
10
|
* const data = toolParams<CreatePostRequest>(params);
|
|
11
11
|
*/
|
|
12
12
|
export declare function toolParams<T>(params: Record<string, unknown>): T;
|
|
13
|
+
/**
|
|
14
|
+
* Validates and returns a positive integer `id` from params.
|
|
15
|
+
* Throws a ZodError with a clear message if the value is missing, not a number, or not a positive integer.
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseId(params: Record<string, unknown>): number;
|
|
18
|
+
/**
|
|
19
|
+
* Validates and returns `id` (positive integer) and optional `force` (boolean | undefined) from params.
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseIdAndForce(params: Record<string, unknown>): {
|
|
22
|
+
id: number;
|
|
23
|
+
force?: boolean | undefined;
|
|
24
|
+
};
|
|
13
25
|
//# sourceMappingURL=params.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/tools/params.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/tools/params.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAEhE;AAUD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAE5G"}
|
package/dist/tools/params.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
/**
|
|
2
3
|
* Type-safe parameter casting for tool handlers.
|
|
3
4
|
*
|
|
@@ -12,4 +13,23 @@
|
|
|
12
13
|
export function toolParams(params) {
|
|
13
14
|
return params;
|
|
14
15
|
}
|
|
16
|
+
const IdSchema = z.object({
|
|
17
|
+
id: z.number().int().positive("ID must be a positive integer"),
|
|
18
|
+
});
|
|
19
|
+
const IdForceSchema = IdSchema.extend({
|
|
20
|
+
force: z.boolean().optional(),
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Validates and returns a positive integer `id` from params.
|
|
24
|
+
* Throws a ZodError with a clear message if the value is missing, not a number, or not a positive integer.
|
|
25
|
+
*/
|
|
26
|
+
export function parseId(params) {
|
|
27
|
+
return IdSchema.parse(params).id;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validates and returns `id` (positive integer) and optional `force` (boolean | undefined) from params.
|
|
31
|
+
*/
|
|
32
|
+
export function parseIdAndForce(params) {
|
|
33
|
+
return IdForceSchema.parse(params);
|
|
34
|
+
}
|
|
15
35
|
//# sourceMappingURL=params.js.map
|
package/dist/tools/params.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/tools/params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAI,MAA+B;IAC3D,OAAO,MAAW,CAAC;AACrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/tools/params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAI,MAA+B;IAC3D,OAAO,MAAW,CAAC;AACrB,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,MAA+B;IACrD,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,OAAO,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
|
package/dist/tools/taxonomies.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getErrorMessage } from "../utils/error.js";
|
|
2
|
-
import { toolParams } from "./params.js";
|
|
2
|
+
import { parseId, toolParams } from "./params.js";
|
|
3
3
|
/**
|
|
4
4
|
* Provides tools for managing taxonomies (categories and tags) on a WordPress site.
|
|
5
5
|
* This class encapsulates tool definitions and their corresponding handlers.
|
|
@@ -195,7 +195,7 @@ export class TaxonomyTools {
|
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
async handleGetCategory(client, params) {
|
|
198
|
-
const
|
|
198
|
+
const id = parseId(params);
|
|
199
199
|
try {
|
|
200
200
|
const category = await client.getCategory(id);
|
|
201
201
|
const content = `**Category Details (ID: ${category.id})**\n\n` +
|
|
@@ -230,7 +230,7 @@ export class TaxonomyTools {
|
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
async handleDeleteCategory(client, params) {
|
|
233
|
-
const
|
|
233
|
+
const id = parseId(params);
|
|
234
234
|
try {
|
|
235
235
|
await client.deleteCategory(id);
|
|
236
236
|
return `✅ Category ${id} has been deleted.`;
|
|
@@ -255,7 +255,7 @@ export class TaxonomyTools {
|
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
async handleGetTag(client, params) {
|
|
258
|
-
const
|
|
258
|
+
const id = parseId(params);
|
|
259
259
|
try {
|
|
260
260
|
const tag = await client.getTag(id);
|
|
261
261
|
const content = `**Tag Details (ID: ${tag.id})**\n\n` +
|
|
@@ -289,7 +289,7 @@ export class TaxonomyTools {
|
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
async handleDeleteTag(client, params) {
|
|
292
|
-
const
|
|
292
|
+
const id = parseId(params);
|
|
293
293
|
try {
|
|
294
294
|
await client.deleteTag(id);
|
|
295
295
|
return `✅ Tag ${id} has been deleted.`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taxonomies.js","sourceRoot":"","sources":["../../src/tools/taxonomies.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"taxonomies.js","sourceRoot":"","sources":["../../src/tools/taxonomies.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAwC,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAK7F;;;GAGG;AACH,qBAAa,SAAS;IACpB;;;OAGG;IACI,QAAQ,IAAI,KAAK,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,aAAa,CAAC;QAC5B,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACzF,CAAC;IAqIW,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IA+EnF,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBzF,oBAAoB,CAC/B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA+DtB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5F,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5F,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAwC,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAK7F;;;GAGG;AACH,qBAAa,SAAS;IACpB;;;OAGG;IACI,QAAQ,IAAI,KAAK,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,aAAa,CAAC;QAC5B,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACzF,CAAC;IAqIW,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IA+EnF,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBzF,oBAAoB,CAC/B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA+DtB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5F,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5F,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAc1G;AAED,eAAe,SAAS,CAAC"}
|
package/dist/tools/users.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getErrorMessage } from "../utils/error.js";
|
|
2
2
|
import { WordPressDataStreamer, StreamingUtils } from "../utils/streaming.js";
|
|
3
|
-
import { toolParams } from "./params.js";
|
|
3
|
+
import { parseId, toolParams } from "./params.js";
|
|
4
4
|
/**
|
|
5
5
|
* Provides tools for managing users on a WordPress site.
|
|
6
6
|
* This class encapsulates tool definitions and their corresponding handlers.
|
|
@@ -206,7 +206,7 @@ export class UserTools {
|
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
async handleGetUser(client, params) {
|
|
209
|
-
const
|
|
209
|
+
const id = parseId(params);
|
|
210
210
|
try {
|
|
211
211
|
const user = await client.getUser(id);
|
|
212
212
|
const content = `**User Details (ID: ${user.id})**\n\n` +
|
|
@@ -297,7 +297,8 @@ export class UserTools {
|
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
async handleDeleteUser(client, params) {
|
|
300
|
-
const
|
|
300
|
+
const id = parseId(params);
|
|
301
|
+
const { reassign } = params;
|
|
301
302
|
try {
|
|
302
303
|
await client.deleteUser(id, reassign);
|
|
303
304
|
let content = `✅ User ${id} has been deleted.`;
|
package/dist/tools/users.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-wordpress",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.15",
|
|
4
4
|
"description": "Comprehensive Model Context Protocol server for WordPress management with composition-based architecture, 59 tools, SEO toolkit, performance monitoring, intelligent caching, and production-ready authentication",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -127,6 +127,7 @@
|
|
|
127
127
|
"form-data": "^4.0.3"
|
|
128
128
|
}
|
|
129
129
|
},
|
|
130
|
+
"flatted": ">=3.4.2",
|
|
130
131
|
"minimatch": "10.2.3",
|
|
131
132
|
"tar": "7.5.11",
|
|
132
133
|
"underscore": "1.13.8"
|
|
@@ -146,8 +147,8 @@
|
|
|
146
147
|
"@types/node": "^25.3.3",
|
|
147
148
|
"@typescript-eslint/eslint-plugin": "^8.56.1",
|
|
148
149
|
"@typescript-eslint/parser": "^8.56.1",
|
|
149
|
-
"@vitest/coverage-v8": "^4.
|
|
150
|
-
"@vitest/ui": "^4.
|
|
150
|
+
"@vitest/coverage-v8": "^4.1.1",
|
|
151
|
+
"@vitest/ui": "^4.1.1",
|
|
151
152
|
"archiver": "^7.0.1",
|
|
152
153
|
"conventional-changelog-conventionalcommits": "^9.2.0",
|
|
153
154
|
"eslint": "^10.0.2",
|
|
@@ -166,7 +167,7 @@
|
|
|
166
167
|
"tsc-alias": "^1.8.16",
|
|
167
168
|
"typescript": "^5.9.3",
|
|
168
169
|
"vite-tsconfig-paths": "^6.1.1",
|
|
169
|
-
"vitest": "^4.
|
|
170
|
+
"vitest": "^4.1.1"
|
|
170
171
|
},
|
|
171
172
|
"engines": {
|
|
172
173
|
"node": ">=20.8.1"
|
package/src/client/api.ts
CHANGED
|
@@ -256,8 +256,9 @@ export class WordPressClient implements IWordPressClient {
|
|
|
256
256
|
throw new Error("Only HTTP and HTTPS protocols are allowed");
|
|
257
257
|
}
|
|
258
258
|
|
|
259
|
-
// Prevent localhost/private IP access
|
|
260
|
-
|
|
259
|
+
// Prevent localhost/private IP access unless explicitly allowed
|
|
260
|
+
// Set ALLOW_PRIVATE_URLS=true for local development with a local WordPress
|
|
261
|
+
if (process.env.ALLOW_PRIVATE_URLS !== "true") {
|
|
261
262
|
const hostname = parsed.hostname.toLowerCase();
|
|
262
263
|
if (
|
|
263
264
|
hostname === "localhost" ||
|
|
@@ -267,7 +268,7 @@ export class WordPressClient implements IWordPressClient {
|
|
|
267
268
|
hostname.match(/^172\.(1[6-9]|2[0-9]|3[01])\./) ||
|
|
268
269
|
hostname.match(/^192\.168\./)
|
|
269
270
|
) {
|
|
270
|
-
throw new Error("Private/localhost URLs not allowed
|
|
271
|
+
throw new Error("Private/localhost URLs not allowed. Set ALLOW_PRIVATE_URLS=true for local development.");
|
|
271
272
|
}
|
|
272
273
|
}
|
|
273
274
|
|
|
@@ -537,7 +538,8 @@ export class WordPressClient implements IWordPressClient {
|
|
|
537
538
|
this._stats.totalRequests++;
|
|
538
539
|
|
|
539
540
|
const cleanEndpoint = endpoint.replace(/^\/+/, "");
|
|
540
|
-
|
|
541
|
+
// Validate absolute URLs through the same SSRF guard as the site URL
|
|
542
|
+
const url = endpoint.startsWith("http") ? this.validateAndSanitizeUrl(endpoint) : `${this.apiUrl}/${cleanEndpoint}`;
|
|
541
543
|
|
|
542
544
|
const { headers: customHeaders, retries: retryOverride, params: _unusedParams, ...restOptions } = options;
|
|
543
545
|
const baseHeaders: Record<string, string> = {
|
package/src/client/auth.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Manages different authentication methods for WordPress REST API
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { randomBytes } from "crypto";
|
|
6
7
|
import { LoggerFactory } from "@/utils/logger.js";
|
|
7
8
|
|
|
8
9
|
const log = LoggerFactory.client("AUTH");
|
|
@@ -282,12 +283,9 @@ export class WordPressAuth {
|
|
|
282
283
|
* Generate random state for OAuth
|
|
283
284
|
*/
|
|
284
285
|
private generateRandomState(length = 32): string {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
289
|
-
}
|
|
290
|
-
return result;
|
|
286
|
+
return randomBytes(Math.ceil((length * 3) / 4))
|
|
287
|
+
.toString("base64url")
|
|
288
|
+
.slice(0, length);
|
|
291
289
|
}
|
|
292
290
|
|
|
293
291
|
/**
|
|
@@ -75,7 +75,10 @@ export class MediaOperations {
|
|
|
75
75
|
|
|
76
76
|
log.debug(`Uploading file: ${filename} (${(stats.size / 1024).toFixed(2)}KB)`);
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
const mimeType = this.getMimeType(data.file_path);
|
|
79
|
+
this.validateMagicBytes(fileBuffer, mimeType, data.file_path);
|
|
80
|
+
|
|
81
|
+
return this.uploadFile(fileBuffer, filename, mimeType, data);
|
|
79
82
|
} finally {
|
|
80
83
|
await fileHandle.close();
|
|
81
84
|
}
|
|
@@ -138,6 +141,32 @@ export class MediaOperations {
|
|
|
138
141
|
return this.client.delete(`media/${id}?force=${force}`);
|
|
139
142
|
}
|
|
140
143
|
|
|
144
|
+
/**
|
|
145
|
+
* Validates that a file's magic bytes match its declared MIME type.
|
|
146
|
+
* Prevents disguised uploads (e.g. a PHP script renamed to .jpg).
|
|
147
|
+
*/
|
|
148
|
+
private validateMagicBytes(buffer: Buffer, mimeType: string, filePath: string): void {
|
|
149
|
+
// Magic byte signatures for image types that could be dangerous if spoofed
|
|
150
|
+
const signatures: Array<{ mime: string; bytes: number[]; offset?: number }> = [
|
|
151
|
+
{ mime: "image/jpeg", bytes: [0xff, 0xd8, 0xff] },
|
|
152
|
+
{ mime: "image/png", bytes: [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a] },
|
|
153
|
+
{ mime: "image/gif", bytes: [0x47, 0x49, 0x46, 0x38] }, // GIF8
|
|
154
|
+
{ mime: "image/webp", bytes: [0x52, 0x49, 0x46, 0x46], offset: 0 }, // RIFF header
|
|
155
|
+
{ mime: "application/pdf", bytes: [0x25, 0x50, 0x44, 0x46] }, // %PDF
|
|
156
|
+
];
|
|
157
|
+
|
|
158
|
+
const sig = signatures.find((s) => s.mime === mimeType);
|
|
159
|
+
if (!sig) return; // No magic bytes check for unrecognised types
|
|
160
|
+
|
|
161
|
+
const offset = sig.offset ?? 0;
|
|
162
|
+
const matches = sig.bytes.every((byte, i) => buffer[offset + i] === byte);
|
|
163
|
+
if (!matches) {
|
|
164
|
+
throw new Error(
|
|
165
|
+
`File content does not match declared type ${mimeType} for: ${path.basename(filePath)}. Upload rejected.`,
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
141
170
|
/**
|
|
142
171
|
* Get MIME type from file extension
|
|
143
172
|
*/
|
package/src/tools/comments.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { WordPressClient } from "@/client/api.js";
|
|
|
2
2
|
import { MCPToolSchema } from "@/types/mcp.js";
|
|
3
3
|
import { CommentQueryParams, CreateCommentRequest, UpdateCommentRequest } from "@/types/wordpress.js";
|
|
4
4
|
import { getErrorMessage } from "@/utils/error.js";
|
|
5
|
-
import { toolParams } from "./params.js";
|
|
5
|
+
import { parseId, parseIdAndForce, toolParams } from "./params.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Provides tools for managing comments on a WordPress site.
|
|
@@ -182,7 +182,7 @@ export class CommentTools {
|
|
|
182
182
|
|
|
183
183
|
public async handleGetComment(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
184
184
|
try {
|
|
185
|
-
const
|
|
185
|
+
const id = parseId(params);
|
|
186
186
|
const comment = await client.getComment(id);
|
|
187
187
|
const content =
|
|
188
188
|
`**Comment Details (ID: ${comment.id})**\n\n` +
|
|
@@ -218,7 +218,7 @@ export class CommentTools {
|
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
public async handleDeleteComment(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
221
|
-
const { id, force } = params
|
|
221
|
+
const { id, force } = parseIdAndForce(params);
|
|
222
222
|
try {
|
|
223
223
|
await client.deleteComment(id, force);
|
|
224
224
|
const action = force ? "permanently deleted" : "moved to trash";
|
|
@@ -229,7 +229,7 @@ export class CommentTools {
|
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
public async handleApproveComment(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
232
|
-
const
|
|
232
|
+
const id = parseId(params);
|
|
233
233
|
try {
|
|
234
234
|
const comment = await client.updateComment({
|
|
235
235
|
id,
|
|
@@ -242,7 +242,7 @@ export class CommentTools {
|
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
public async handleSpamComment(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
245
|
-
const
|
|
245
|
+
const id = parseId(params);
|
|
246
246
|
try {
|
|
247
247
|
const comment = await client.updateComment({
|
|
248
248
|
id,
|
package/src/tools/media.ts
CHANGED
|
@@ -3,7 +3,8 @@ import { WordPressClient } from "@/client/api.js";
|
|
|
3
3
|
import type { MCPToolSchema } from "@/types/mcp.js";
|
|
4
4
|
import { MediaQueryParams, UpdateMediaRequest, UploadMediaRequest } from "@/types/wordpress.js";
|
|
5
5
|
import { getErrorMessage } from "@/utils/error.js";
|
|
6
|
-
import {
|
|
6
|
+
import { validateFilePath } from "@/utils/validation/security.js";
|
|
7
|
+
import { parseId, parseIdAndForce, toolParams } from "./params.js";
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Comprehensive media management tools for WordPress sites.
|
|
@@ -203,7 +204,7 @@ export class MediaTools {
|
|
|
203
204
|
}
|
|
204
205
|
|
|
205
206
|
public async handleGetMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
206
|
-
const
|
|
207
|
+
const id = parseId(params);
|
|
207
208
|
try {
|
|
208
209
|
const media = await client.getMediaItem(id);
|
|
209
210
|
const content =
|
|
@@ -223,10 +224,16 @@ export class MediaTools {
|
|
|
223
224
|
public async handleUploadMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
224
225
|
const uploadParams = toolParams<UploadMediaRequest & { file_path: string }>(params);
|
|
225
226
|
try {
|
|
227
|
+
// Validate file path to prevent path traversal attacks
|
|
228
|
+
// Set MCP_UPLOAD_BASE_DIR to restrict uploads to a specific directory (recommended in Docker)
|
|
229
|
+
const allowedBasePath = process.env.MCP_UPLOAD_BASE_DIR || "/";
|
|
230
|
+
const safePath = validateFilePath(uploadParams.file_path, allowedBasePath);
|
|
231
|
+
uploadParams.file_path = safePath;
|
|
232
|
+
|
|
226
233
|
try {
|
|
227
|
-
await fs.promises.access(
|
|
234
|
+
await fs.promises.access(safePath);
|
|
228
235
|
} catch (_error) {
|
|
229
|
-
throw new Error(`File not found at path: ${
|
|
236
|
+
throw new Error(`File not found at path: ${safePath}`);
|
|
230
237
|
}
|
|
231
238
|
|
|
232
239
|
const media = await client.uploadMedia(uploadParams);
|
|
@@ -247,7 +254,7 @@ export class MediaTools {
|
|
|
247
254
|
}
|
|
248
255
|
|
|
249
256
|
public async handleDeleteMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
250
|
-
const { id, force } = params
|
|
257
|
+
const { id, force } = parseIdAndForce(params);
|
|
251
258
|
try {
|
|
252
259
|
await client.deleteMedia(id, force);
|
|
253
260
|
const action = force ? "permanently deleted" : "moved to trash";
|
package/src/tools/pages.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { WordPressClient } from "@/client/api.js";
|
|
|
2
2
|
import type { MCPToolSchema } from "@/types/mcp.js";
|
|
3
3
|
import { CreatePageRequest, PostQueryParams as PageQueryParams, UpdatePageRequest } from "@/types/wordpress.js";
|
|
4
4
|
import { getErrorMessage } from "@/utils/error.js";
|
|
5
|
-
import { toolParams } from "./params.js";
|
|
5
|
+
import { parseId, parseIdAndForce, toolParams } from "./params.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Provides tools for managing pages on a WordPress site.
|
|
@@ -169,7 +169,8 @@ export class PageTools {
|
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
public async handleGetPage(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
172
|
-
const
|
|
172
|
+
const id = parseId(params);
|
|
173
|
+
const { include_content = false } = params as { include_content?: boolean };
|
|
173
174
|
try {
|
|
174
175
|
const page = await client.getPage(id);
|
|
175
176
|
let content =
|
|
@@ -210,7 +211,7 @@ export class PageTools {
|
|
|
210
211
|
}
|
|
211
212
|
|
|
212
213
|
public async handleDeletePage(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
213
|
-
const { id, force } = params
|
|
214
|
+
const { id, force } = parseIdAndForce(params);
|
|
214
215
|
try {
|
|
215
216
|
const result = await client.deletePage(id, force);
|
|
216
217
|
const action = force ? "permanently deleted" : "moved to trash";
|
|
@@ -234,7 +235,7 @@ export class PageTools {
|
|
|
234
235
|
}
|
|
235
236
|
|
|
236
237
|
public async handleGetPageRevisions(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
237
|
-
const
|
|
238
|
+
const id = parseId(params);
|
|
238
239
|
try {
|
|
239
240
|
const revisions = await client.getPageRevisions(id);
|
|
240
241
|
if (revisions.length === 0) {
|
package/src/tools/params.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Type-safe parameter casting for tool handlers.
|
|
3
5
|
*
|
|
@@ -12,3 +14,26 @@
|
|
|
12
14
|
export function toolParams<T>(params: Record<string, unknown>): T {
|
|
13
15
|
return params as T;
|
|
14
16
|
}
|
|
17
|
+
|
|
18
|
+
const IdSchema = z.object({
|
|
19
|
+
id: z.number().int().positive("ID must be a positive integer"),
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const IdForceSchema = IdSchema.extend({
|
|
23
|
+
force: z.boolean().optional(),
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Validates and returns a positive integer `id` from params.
|
|
28
|
+
* Throws a ZodError with a clear message if the value is missing, not a number, or not a positive integer.
|
|
29
|
+
*/
|
|
30
|
+
export function parseId(params: Record<string, unknown>): number {
|
|
31
|
+
return IdSchema.parse(params).id;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Validates and returns `id` (positive integer) and optional `force` (boolean | undefined) from params.
|
|
36
|
+
*/
|
|
37
|
+
export function parseIdAndForce(params: Record<string, unknown>): { id: number; force?: boolean | undefined } {
|
|
38
|
+
return IdForceSchema.parse(params);
|
|
39
|
+
}
|
package/src/tools/taxonomies.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { WordPressClient } from "@/client/api.js";
|
|
|
2
2
|
import type { MCPToolSchema } from "@/types/mcp.js";
|
|
3
3
|
import { CreateCategoryRequest, CreateTagRequest, UpdateCategoryRequest, UpdateTagRequest } from "@/types/wordpress.js";
|
|
4
4
|
import { getErrorMessage } from "@/utils/error.js";
|
|
5
|
-
import { toolParams } from "./params.js";
|
|
5
|
+
import { parseId, toolParams } from "./params.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Provides tools for managing taxonomies (categories and tags) on a WordPress site.
|
|
@@ -206,7 +206,7 @@ export class TaxonomyTools {
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
public async handleGetCategory(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
209
|
-
const
|
|
209
|
+
const id = parseId(params);
|
|
210
210
|
try {
|
|
211
211
|
const category = await client.getCategory(id);
|
|
212
212
|
const content =
|
|
@@ -242,7 +242,7 @@ export class TaxonomyTools {
|
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
public async handleDeleteCategory(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
245
|
-
const
|
|
245
|
+
const id = parseId(params);
|
|
246
246
|
try {
|
|
247
247
|
await client.deleteCategory(id);
|
|
248
248
|
return `✅ Category ${id} has been deleted.`;
|
|
@@ -268,7 +268,7 @@ export class TaxonomyTools {
|
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
public async handleGetTag(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
271
|
-
const
|
|
271
|
+
const id = parseId(params);
|
|
272
272
|
try {
|
|
273
273
|
const tag = await client.getTag(id);
|
|
274
274
|
const content =
|
|
@@ -303,7 +303,7 @@ export class TaxonomyTools {
|
|
|
303
303
|
}
|
|
304
304
|
|
|
305
305
|
public async handleDeleteTag(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
306
|
-
const
|
|
306
|
+
const id = parseId(params);
|
|
307
307
|
try {
|
|
308
308
|
await client.deleteTag(id);
|
|
309
309
|
return `✅ Tag ${id} has been deleted.`;
|
package/src/tools/users.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { MCPToolSchema } from "@/types/mcp.js";
|
|
|
3
3
|
import { CreateUserRequest, UpdateUserRequest, UserQueryParams } from "@/types/wordpress.js";
|
|
4
4
|
import { getErrorMessage } from "@/utils/error.js";
|
|
5
5
|
import { WordPressDataStreamer, StreamingUtils, StreamingResult } from "@/utils/streaming.js";
|
|
6
|
-
import { toolParams } from "./params.js";
|
|
6
|
+
import { parseId, toolParams } from "./params.js";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Provides tools for managing users on a WordPress site.
|
|
@@ -232,7 +232,7 @@ export class UserTools {
|
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
public async handleGetUser(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
235
|
-
const
|
|
235
|
+
const id = parseId(params);
|
|
236
236
|
try {
|
|
237
237
|
const user = await client.getUser(id);
|
|
238
238
|
const content =
|
|
@@ -334,7 +334,8 @@ export class UserTools {
|
|
|
334
334
|
}
|
|
335
335
|
|
|
336
336
|
public async handleDeleteUser(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
337
|
-
const
|
|
337
|
+
const id = parseId(params);
|
|
338
|
+
const { reassign } = params as { reassign?: number };
|
|
338
339
|
try {
|
|
339
340
|
await client.deleteUser(id, reassign);
|
|
340
341
|
let content = `✅ User ${id} has been deleted.`;
|