mcp-wordpress 3.1.14 → 3.1.21
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 +2 -1
- 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/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/tools/comments.js +5 -5
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/media.js +3 -3
- 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 +7 -4
- package/src/client/api.ts +2 -1
- package/src/client/auth.ts +4 -6
- package/src/client/operations/media.ts +30 -1
- package/src/index.ts +10 -5
- package/src/tools/comments.ts +5 -5
- package/src/tools/media.ts +3 -3
- 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.21",
|
|
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,7 +127,10 @@
|
|
|
127
127
|
"form-data": "^4.0.3"
|
|
128
128
|
}
|
|
129
129
|
},
|
|
130
|
+
"brace-expansion": ">=5.0.5",
|
|
131
|
+
"flatted": ">=3.4.2",
|
|
130
132
|
"minimatch": "10.2.3",
|
|
133
|
+
"path-to-regexp": ">=8.4.0",
|
|
131
134
|
"tar": "7.5.11",
|
|
132
135
|
"underscore": "1.13.8"
|
|
133
136
|
},
|
|
@@ -146,8 +149,8 @@
|
|
|
146
149
|
"@types/node": "^25.3.3",
|
|
147
150
|
"@typescript-eslint/eslint-plugin": "^8.56.1",
|
|
148
151
|
"@typescript-eslint/parser": "^8.56.1",
|
|
149
|
-
"@vitest/coverage-v8": "^4.
|
|
150
|
-
"@vitest/ui": "^4.
|
|
152
|
+
"@vitest/coverage-v8": "^4.1.1",
|
|
153
|
+
"@vitest/ui": "^4.1.1",
|
|
151
154
|
"archiver": "^7.0.1",
|
|
152
155
|
"conventional-changelog-conventionalcommits": "^9.2.0",
|
|
153
156
|
"eslint": "^10.0.2",
|
|
@@ -166,7 +169,7 @@
|
|
|
166
169
|
"tsc-alias": "^1.8.16",
|
|
167
170
|
"typescript": "^5.9.3",
|
|
168
171
|
"vite-tsconfig-paths": "^6.1.1",
|
|
169
|
-
"vitest": "^4.
|
|
172
|
+
"vitest": "^4.1.1"
|
|
170
173
|
},
|
|
171
174
|
"engines": {
|
|
172
175
|
"node": ">=20.8.1"
|
package/src/client/api.ts
CHANGED
|
@@ -538,7 +538,8 @@ export class WordPressClient implements IWordPressClient {
|
|
|
538
538
|
this._stats.totalRequests++;
|
|
539
539
|
|
|
540
540
|
const cleanEndpoint = endpoint.replace(/^\/+/, "");
|
|
541
|
-
|
|
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}`;
|
|
542
543
|
|
|
543
544
|
const { headers: customHeaders, retries: retryOverride, params: _unusedParams, ...restOptions } = options;
|
|
544
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/index.ts
CHANGED
|
@@ -140,12 +140,17 @@ async function main() {
|
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
// Check if running as main module - handle
|
|
143
|
+
// Check if running as main module - handle direct execution, DXT, and bin wrapper entry points
|
|
144
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
145
|
+
const callerFile = process.argv[1];
|
|
146
|
+
|
|
144
147
|
const isMainModule =
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
148
|
+
callerFile === currentFile ||
|
|
149
|
+
callerFile?.endsWith("/index.js") ||
|
|
150
|
+
callerFile?.endsWith("\\index.js") ||
|
|
151
|
+
callerFile?.endsWith("/mcp-wordpress.js") || // invoked via bin/mcp-wordpress.js wrapper
|
|
152
|
+
callerFile?.endsWith("\\mcp-wordpress.js") ||
|
|
153
|
+
!callerFile; // When run through DXT, process.argv[1] might be undefined
|
|
149
154
|
|
|
150
155
|
if (isMainModule) {
|
|
151
156
|
main();
|
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
|
@@ -4,7 +4,7 @@ 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
6
|
import { validateFilePath } from "@/utils/validation/security.js";
|
|
7
|
-
import { toolParams } from "./params.js";
|
|
7
|
+
import { parseId, parseIdAndForce, toolParams } from "./params.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Comprehensive media management tools for WordPress sites.
|
|
@@ -204,7 +204,7 @@ export class MediaTools {
|
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
public async handleGetMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
207
|
-
const
|
|
207
|
+
const id = parseId(params);
|
|
208
208
|
try {
|
|
209
209
|
const media = await client.getMediaItem(id);
|
|
210
210
|
const content =
|
|
@@ -254,7 +254,7 @@ export class MediaTools {
|
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
public async handleDeleteMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
|
|
257
|
-
const { id, force } = params
|
|
257
|
+
const { id, force } = parseIdAndForce(params);
|
|
258
258
|
try {
|
|
259
259
|
await client.deleteMedia(id, force);
|
|
260
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.`;
|