mcp-wordpress 3.1.8 → 3.1.10

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 (45) hide show
  1. package/dist/client/api.d.ts.map +1 -1
  2. package/dist/client/api.js +6 -3
  3. package/dist/client/api.js.map +1 -1
  4. package/dist/config/ServerConfiguration.d.ts.map +1 -1
  5. package/dist/config/ServerConfiguration.js +3 -5
  6. package/dist/config/ServerConfiguration.js.map +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +6 -16
  9. package/dist/index.js.map +1 -1
  10. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
  11. package/dist/performance/PerformanceAnalytics.js +9 -11
  12. package/dist/performance/PerformanceAnalytics.js.map +1 -1
  13. package/dist/security/SecurityGateExecutor.js +2 -2
  14. package/dist/security/SecurityGateExecutor.js.map +1 -1
  15. package/dist/tools/comments.d.ts.map +1 -1
  16. package/dist/tools/comments.js +3 -2
  17. package/dist/tools/comments.js.map +1 -1
  18. package/dist/tools/media.d.ts.map +1 -1
  19. package/dist/tools/media.js +3 -2
  20. package/dist/tools/media.js.map +1 -1
  21. package/dist/tools/pages.d.ts.map +1 -1
  22. package/dist/tools/pages.js +4 -3
  23. package/dist/tools/pages.js.map +1 -1
  24. package/dist/tools/params.d.ts +13 -0
  25. package/dist/tools/params.d.ts.map +1 -0
  26. package/dist/tools/params.js +15 -0
  27. package/dist/tools/params.js.map +1 -0
  28. package/dist/tools/taxonomies.d.ts.map +1 -1
  29. package/dist/tools/taxonomies.js +5 -4
  30. package/dist/tools/taxonomies.js.map +1 -1
  31. package/dist/tools/users.d.ts.map +1 -1
  32. package/dist/tools/users.js +3 -2
  33. package/dist/tools/users.js.map +1 -1
  34. package/package.json +25 -27
  35. package/src/client/api.ts +6 -3
  36. package/src/config/ServerConfiguration.ts +3 -5
  37. package/src/index.ts +6 -17
  38. package/src/performance/PerformanceAnalytics.ts +1 -2
  39. package/src/security/SecurityGateExecutor.ts +2 -2
  40. package/src/tools/comments.ts +3 -2
  41. package/src/tools/media.ts +3 -2
  42. package/src/tools/pages.ts +4 -3
  43. package/src/tools/params.ts +14 -0
  44. package/src/tools/taxonomies.ts +6 -10
  45. package/src/tools/users.ts +3 -2
@@ -2,6 +2,7 @@ import * as fs from "fs";
2
2
  import { WordPressClient } from "@/client/api.js";
3
3
  import { MediaQueryParams, UpdateMediaRequest, UploadMediaRequest } from "@/types/wordpress.js";
4
4
  import { getErrorMessage } from "@/utils/error.js";
5
+ import { toolParams } from "./params.js";
5
6
 
6
7
  /**
7
8
  * Comprehensive media management tools for WordPress sites.
@@ -228,7 +229,7 @@ export class MediaTools {
228
229
  }
229
230
 
230
231
  public async handleUploadMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
231
- const uploadParams = params as unknown as UploadMediaRequest & { file_path: string };
232
+ const uploadParams = toolParams<UploadMediaRequest & { file_path: string }>(params);
232
233
  try {
233
234
  try {
234
235
  await fs.promises.access(uploadParams.file_path);
@@ -244,7 +245,7 @@ export class MediaTools {
244
245
  }
245
246
 
246
247
  public async handleUpdateMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
247
- const updateParams = params as unknown as UpdateMediaRequest & { id: number };
248
+ const updateParams = toolParams<UpdateMediaRequest & { id: number }>(params);
248
249
  try {
249
250
  const media = await client.updateMedia(updateParams);
250
251
  return `✅ Media ${media.id} updated successfully.`;
@@ -1,6 +1,7 @@
1
1
  import { WordPressClient } from "@/client/api.js";
2
2
  import { CreatePageRequest, PostQueryParams as PageQueryParams, UpdatePageRequest } from "@/types/wordpress.js";
3
3
  import { getErrorMessage } from "@/utils/error.js";
4
+ import { toolParams } from "./params.js";
4
5
 
5
6
  /**
6
7
  * Provides tools for managing pages on a WordPress site.
@@ -154,7 +155,7 @@ export class PageTools {
154
155
  }
155
156
 
156
157
  public async handleListPages(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
157
- const queryParams = params as unknown as PageQueryParams;
158
+ const queryParams = toolParams<PageQueryParams>(params);
158
159
  try {
159
160
  const pages = await client.getPages(queryParams);
160
161
  if (pages.length === 0) {
@@ -191,7 +192,7 @@ export class PageTools {
191
192
  }
192
193
 
193
194
  public async handleCreatePage(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
194
- const createParams = params as unknown as CreatePageRequest;
195
+ const createParams = toolParams<CreatePageRequest>(params);
195
196
  try {
196
197
  const page = await client.createPage(createParams);
197
198
  return `✅ Page created successfully!\n- ID: ${page.id}\n- Title: ${page.title.rendered}\n- Link: ${page.link}`;
@@ -201,7 +202,7 @@ export class PageTools {
201
202
  }
202
203
 
203
204
  public async handleUpdatePage(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
204
- const updateParams = params as unknown as UpdatePageRequest & { id: number };
205
+ const updateParams = toolParams<UpdatePageRequest & { id: number }>(params);
205
206
  try {
206
207
  const page = await client.updatePage(updateParams);
207
208
  return `✅ Page ${page.id} updated successfully.`;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Type-safe parameter casting for tool handlers.
3
+ *
4
+ * Tool handler parameters arrive as Record<string, unknown> but have already
5
+ * been validated by Zod in ToolRegistry.registerTool(). This utility provides
6
+ * a centralized, documented assertion that replaces scattered `as unknown as T`
7
+ * casts throughout tool handlers.
8
+ *
9
+ * @example
10
+ * const data = toolParams<CreatePostRequest>(params);
11
+ */
12
+ export function toolParams<T>(params: Record<string, unknown>): T {
13
+ return params as T;
14
+ }
@@ -1,11 +1,7 @@
1
1
  import { WordPressClient } from "@/client/api.js";
2
- import {
3
- CreateCategoryRequest,
4
- CreateTagRequest,
5
- UpdateCategoryRequest,
6
- UpdateTagRequest,
7
- } from "@/types/wordpress.js";
2
+ import { CreateCategoryRequest, CreateTagRequest, UpdateCategoryRequest, UpdateTagRequest } from "@/types/wordpress.js";
8
3
  import { getErrorMessage } from "@/utils/error.js";
4
+ import { toolParams } from "./params.js";
9
5
 
10
6
  /**
11
7
  * Provides tools for managing taxonomies (categories and tags) on a WordPress site.
@@ -216,7 +212,7 @@ export class TaxonomyTools {
216
212
  }
217
213
 
218
214
  public async handleCreateCategory(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
219
- const createParams = params as unknown as CreateCategoryRequest;
215
+ const createParams = toolParams<CreateCategoryRequest>(params);
220
216
  try {
221
217
  const category = await client.createCategory(createParams);
222
218
  return `✅ Category "${category.name}" created successfully with ID: ${category.id}.`;
@@ -226,7 +222,7 @@ export class TaxonomyTools {
226
222
  }
227
223
 
228
224
  public async handleUpdateCategory(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
229
- const updateParams = params as unknown as UpdateCategoryRequest;
225
+ const updateParams = toolParams<UpdateCategoryRequest>(params);
230
226
  try {
231
227
  const category = await client.updateCategory(updateParams);
232
228
  return `✅ Category ${category.id} updated successfully.`;
@@ -277,7 +273,7 @@ export class TaxonomyTools {
277
273
  }
278
274
 
279
275
  public async handleCreateTag(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
280
- const createParams = params as unknown as CreateTagRequest;
276
+ const createParams = toolParams<CreateTagRequest>(params);
281
277
  try {
282
278
  const tag = await client.createTag(createParams);
283
279
  return `✅ Tag "${tag.name}" created successfully with ID: ${tag.id}.`;
@@ -287,7 +283,7 @@ export class TaxonomyTools {
287
283
  }
288
284
 
289
285
  public async handleUpdateTag(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
290
- const updateParams = params as unknown as UpdateTagRequest;
286
+ const updateParams = toolParams<UpdateTagRequest>(params);
291
287
  try {
292
288
  const tag = await client.updateTag(updateParams);
293
289
  return `✅ Tag ${tag.id} updated successfully.`;
@@ -2,6 +2,7 @@ import { WordPressClient } from "@/client/api.js";
2
2
  import { CreateUserRequest, UpdateUserRequest, UserQueryParams } from "@/types/wordpress.js";
3
3
  import { getErrorMessage } from "@/utils/error.js";
4
4
  import { WordPressDataStreamer, StreamingUtils, StreamingResult } from "@/utils/streaming.js";
5
+ import { toolParams } from "./params.js";
5
6
 
6
7
  /**
7
8
  * Provides tools for managing users on a WordPress site.
@@ -313,7 +314,7 @@ export class UserTools {
313
314
  }
314
315
 
315
316
  public async handleCreateUser(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
316
- const createParams = params as unknown as CreateUserRequest;
317
+ const createParams = toolParams<CreateUserRequest>(params);
317
318
  try {
318
319
  const user = await client.createUser(createParams);
319
320
  return `✅ User "${user.name}" created successfully with ID: ${user.id}.`;
@@ -323,7 +324,7 @@ export class UserTools {
323
324
  }
324
325
 
325
326
  public async handleUpdateUser(client: WordPressClient, params: Record<string, unknown>): Promise<unknown> {
326
- const updateParams = params as unknown as UpdateUserRequest;
327
+ const updateParams = toolParams<UpdateUserRequest>(params);
327
328
  try {
328
329
  const user = await client.updateUser(updateParams);
329
330
  return `✅ User ${user.id} updated successfully.`;