@adsim/wordpress-mcp-server 1.0.0 → 3.1.0

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 (67) hide show
  1. package/.env.example +8 -0
  2. package/.github/workflows/ci.yml +20 -0
  3. package/LICENSE +1 -1
  4. package/README.md +596 -135
  5. package/dxt/build-mcpb.sh +7 -0
  6. package/dxt/manifest.json +112 -0
  7. package/index.js +1367 -0
  8. package/package.json +22 -33
  9. package/src/auth/bearer.js +72 -0
  10. package/src/transport/http.js +264 -0
  11. package/tests/helpers/mockWpRequest.js +135 -0
  12. package/tests/unit/dxt/manifest.test.js +78 -0
  13. package/tests/unit/governance.test.js +260 -0
  14. package/tests/unit/tools/comments.test.js +170 -0
  15. package/tests/unit/tools/media.test.js +279 -0
  16. package/tests/unit/tools/pages.test.js +222 -0
  17. package/tests/unit/tools/plugins.test.js +268 -0
  18. package/tests/unit/tools/posts.test.js +310 -0
  19. package/tests/unit/tools/revisions.test.js +299 -0
  20. package/tests/unit/tools/search.test.js +190 -0
  21. package/tests/unit/tools/seo.test.js +248 -0
  22. package/tests/unit/tools/site.test.js +133 -0
  23. package/tests/unit/tools/taxonomies.test.js +220 -0
  24. package/tests/unit/tools/themes.test.js +163 -0
  25. package/tests/unit/tools/users.test.js +113 -0
  26. package/tests/unit/transport/http.test.js +300 -0
  27. package/vitest.config.js +12 -0
  28. package/dist/constants.d.ts +0 -13
  29. package/dist/constants.d.ts.map +0 -1
  30. package/dist/constants.js +0 -10
  31. package/dist/constants.js.map +0 -1
  32. package/dist/index.d.ts +0 -3
  33. package/dist/index.d.ts.map +0 -1
  34. package/dist/index.js +0 -33
  35. package/dist/index.js.map +0 -1
  36. package/dist/schemas/index.d.ts +0 -308
  37. package/dist/schemas/index.d.ts.map +0 -1
  38. package/dist/schemas/index.js +0 -191
  39. package/dist/schemas/index.js.map +0 -1
  40. package/dist/services/formatters.d.ts +0 -22
  41. package/dist/services/formatters.d.ts.map +0 -1
  42. package/dist/services/formatters.js +0 -52
  43. package/dist/services/formatters.js.map +0 -1
  44. package/dist/services/wp-client.d.ts +0 -38
  45. package/dist/services/wp-client.d.ts.map +0 -1
  46. package/dist/services/wp-client.js +0 -102
  47. package/dist/services/wp-client.js.map +0 -1
  48. package/dist/tools/content.d.ts +0 -4
  49. package/dist/tools/content.d.ts.map +0 -1
  50. package/dist/tools/content.js +0 -196
  51. package/dist/tools/content.js.map +0 -1
  52. package/dist/tools/posts.d.ts +0 -4
  53. package/dist/tools/posts.d.ts.map +0 -1
  54. package/dist/tools/posts.js +0 -179
  55. package/dist/tools/posts.js.map +0 -1
  56. package/dist/tools/seo.d.ts +0 -4
  57. package/dist/tools/seo.d.ts.map +0 -1
  58. package/dist/tools/seo.js +0 -241
  59. package/dist/tools/seo.js.map +0 -1
  60. package/dist/tools/taxonomy.d.ts +0 -4
  61. package/dist/tools/taxonomy.d.ts.map +0 -1
  62. package/dist/tools/taxonomy.js +0 -82
  63. package/dist/tools/taxonomy.js.map +0 -1
  64. package/dist/types.d.ts +0 -160
  65. package/dist/types.d.ts.map +0 -1
  66. package/dist/types.js +0 -3
  67. package/dist/types.js.map +0 -1
@@ -1,308 +0,0 @@
1
- import { z } from "zod";
2
- export declare const PaginationSchema: z.ZodObject<{
3
- per_page: z.ZodDefault<z.ZodNumber>;
4
- page: z.ZodDefault<z.ZodNumber>;
5
- }, "strip", z.ZodTypeAny, {
6
- per_page: number;
7
- page: number;
8
- }, {
9
- per_page?: number | undefined;
10
- page?: number | undefined;
11
- }>;
12
- export declare const PostStatusSchema: z.ZodDefault<z.ZodEnum<["publish", "draft", "pending", "private", "future", "trash"]>>;
13
- export declare const OrderBySchema: z.ZodDefault<z.ZodEnum<["date", "id", "title", "slug", "modified", "author", "relevance"]>>;
14
- export declare const OrderSchema: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
15
- export declare const ListPostsSchema: z.ZodObject<{
16
- per_page: z.ZodDefault<z.ZodNumber>;
17
- page: z.ZodDefault<z.ZodNumber>;
18
- } & {
19
- status: z.ZodOptional<z.ZodDefault<z.ZodEnum<["publish", "draft", "pending", "private", "future", "trash"]>>>;
20
- orderby: z.ZodOptional<z.ZodDefault<z.ZodEnum<["date", "id", "title", "slug", "modified", "author", "relevance"]>>>;
21
- order: z.ZodOptional<z.ZodDefault<z.ZodEnum<["asc", "desc"]>>>;
22
- categories: z.ZodOptional<z.ZodString>;
23
- tags: z.ZodOptional<z.ZodString>;
24
- search: z.ZodOptional<z.ZodString>;
25
- }, "strip", z.ZodTypeAny, {
26
- per_page: number;
27
- page: number;
28
- status?: "publish" | "draft" | "pending" | "private" | "future" | "trash" | undefined;
29
- orderby?: "date" | "id" | "title" | "slug" | "modified" | "author" | "relevance" | undefined;
30
- order?: "asc" | "desc" | undefined;
31
- categories?: string | undefined;
32
- tags?: string | undefined;
33
- search?: string | undefined;
34
- }, {
35
- per_page?: number | undefined;
36
- page?: number | undefined;
37
- status?: "publish" | "draft" | "pending" | "private" | "future" | "trash" | undefined;
38
- orderby?: "date" | "id" | "title" | "slug" | "modified" | "author" | "relevance" | undefined;
39
- order?: "asc" | "desc" | undefined;
40
- categories?: string | undefined;
41
- tags?: string | undefined;
42
- search?: string | undefined;
43
- }>;
44
- export declare const GetPostSchema: z.ZodObject<{
45
- id: z.ZodNumber;
46
- }, "strip", z.ZodTypeAny, {
47
- id: number;
48
- }, {
49
- id: number;
50
- }>;
51
- export declare const CreatePostSchema: z.ZodObject<{
52
- title: z.ZodString;
53
- content: z.ZodString;
54
- status: z.ZodDefault<z.ZodEnum<["publish", "draft", "pending", "private", "future"]>>;
55
- excerpt: z.ZodOptional<z.ZodString>;
56
- categories: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
57
- tags: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
58
- featured_media: z.ZodOptional<z.ZodNumber>;
59
- slug: z.ZodOptional<z.ZodString>;
60
- }, "strip", z.ZodTypeAny, {
61
- title: string;
62
- status: "publish" | "draft" | "pending" | "private" | "future";
63
- content: string;
64
- slug?: string | undefined;
65
- categories?: number[] | undefined;
66
- tags?: number[] | undefined;
67
- excerpt?: string | undefined;
68
- featured_media?: number | undefined;
69
- }, {
70
- title: string;
71
- content: string;
72
- slug?: string | undefined;
73
- status?: "publish" | "draft" | "pending" | "private" | "future" | undefined;
74
- categories?: number[] | undefined;
75
- tags?: number[] | undefined;
76
- excerpt?: string | undefined;
77
- featured_media?: number | undefined;
78
- }>;
79
- export declare const UpdatePostSchema: z.ZodObject<{
80
- id: z.ZodNumber;
81
- title: z.ZodOptional<z.ZodString>;
82
- content: z.ZodOptional<z.ZodString>;
83
- status: z.ZodOptional<z.ZodEnum<["publish", "draft", "pending", "private", "future", "trash"]>>;
84
- excerpt: z.ZodOptional<z.ZodString>;
85
- categories: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
86
- tags: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
87
- featured_media: z.ZodOptional<z.ZodNumber>;
88
- slug: z.ZodOptional<z.ZodString>;
89
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
90
- }, "strip", z.ZodTypeAny, {
91
- id: number;
92
- title?: string | undefined;
93
- slug?: string | undefined;
94
- status?: "publish" | "draft" | "pending" | "private" | "future" | "trash" | undefined;
95
- categories?: number[] | undefined;
96
- tags?: number[] | undefined;
97
- content?: string | undefined;
98
- excerpt?: string | undefined;
99
- featured_media?: number | undefined;
100
- meta?: Record<string, unknown> | undefined;
101
- }, {
102
- id: number;
103
- title?: string | undefined;
104
- slug?: string | undefined;
105
- status?: "publish" | "draft" | "pending" | "private" | "future" | "trash" | undefined;
106
- categories?: number[] | undefined;
107
- tags?: number[] | undefined;
108
- content?: string | undefined;
109
- excerpt?: string | undefined;
110
- featured_media?: number | undefined;
111
- meta?: Record<string, unknown> | undefined;
112
- }>;
113
- export declare const DeletePostSchema: z.ZodObject<{
114
- id: z.ZodNumber;
115
- force: z.ZodDefault<z.ZodBoolean>;
116
- }, "strip", z.ZodTypeAny, {
117
- id: number;
118
- force: boolean;
119
- }, {
120
- id: number;
121
- force?: boolean | undefined;
122
- }>;
123
- export declare const ListPagesSchema: z.ZodObject<{
124
- per_page: z.ZodDefault<z.ZodNumber>;
125
- page: z.ZodDefault<z.ZodNumber>;
126
- } & {
127
- status: z.ZodOptional<z.ZodDefault<z.ZodEnum<["publish", "draft", "pending", "private", "future", "trash"]>>>;
128
- parent: z.ZodOptional<z.ZodNumber>;
129
- orderby: z.ZodOptional<z.ZodDefault<z.ZodEnum<["date", "id", "title", "slug", "modified", "author", "relevance"]>>>;
130
- order: z.ZodOptional<z.ZodDefault<z.ZodEnum<["asc", "desc"]>>>;
131
- search: z.ZodOptional<z.ZodString>;
132
- }, "strip", z.ZodTypeAny, {
133
- per_page: number;
134
- page: number;
135
- status?: "publish" | "draft" | "pending" | "private" | "future" | "trash" | undefined;
136
- orderby?: "date" | "id" | "title" | "slug" | "modified" | "author" | "relevance" | undefined;
137
- order?: "asc" | "desc" | undefined;
138
- search?: string | undefined;
139
- parent?: number | undefined;
140
- }, {
141
- per_page?: number | undefined;
142
- page?: number | undefined;
143
- status?: "publish" | "draft" | "pending" | "private" | "future" | "trash" | undefined;
144
- orderby?: "date" | "id" | "title" | "slug" | "modified" | "author" | "relevance" | undefined;
145
- order?: "asc" | "desc" | undefined;
146
- search?: string | undefined;
147
- parent?: number | undefined;
148
- }>;
149
- export declare const ListCategoriesSchema: z.ZodObject<{
150
- per_page: z.ZodDefault<z.ZodNumber>;
151
- page: z.ZodDefault<z.ZodNumber>;
152
- } & {
153
- search: z.ZodOptional<z.ZodString>;
154
- parent: z.ZodOptional<z.ZodNumber>;
155
- orderby: z.ZodDefault<z.ZodEnum<["id", "name", "slug", "count"]>>;
156
- order: z.ZodOptional<z.ZodDefault<z.ZodEnum<["asc", "desc"]>>>;
157
- hide_empty: z.ZodDefault<z.ZodBoolean>;
158
- }, "strip", z.ZodTypeAny, {
159
- per_page: number;
160
- page: number;
161
- orderby: "id" | "slug" | "name" | "count";
162
- hide_empty: boolean;
163
- order?: "asc" | "desc" | undefined;
164
- search?: string | undefined;
165
- parent?: number | undefined;
166
- }, {
167
- per_page?: number | undefined;
168
- page?: number | undefined;
169
- orderby?: "id" | "slug" | "name" | "count" | undefined;
170
- order?: "asc" | "desc" | undefined;
171
- search?: string | undefined;
172
- parent?: number | undefined;
173
- hide_empty?: boolean | undefined;
174
- }>;
175
- export declare const ListTagsSchema: z.ZodObject<{
176
- per_page: z.ZodDefault<z.ZodNumber>;
177
- page: z.ZodDefault<z.ZodNumber>;
178
- } & {
179
- search: z.ZodOptional<z.ZodString>;
180
- orderby: z.ZodDefault<z.ZodEnum<["id", "name", "slug", "count"]>>;
181
- order: z.ZodOptional<z.ZodDefault<z.ZodEnum<["asc", "desc"]>>>;
182
- hide_empty: z.ZodDefault<z.ZodBoolean>;
183
- }, "strip", z.ZodTypeAny, {
184
- per_page: number;
185
- page: number;
186
- orderby: "id" | "slug" | "name" | "count";
187
- hide_empty: boolean;
188
- order?: "asc" | "desc" | undefined;
189
- search?: string | undefined;
190
- }, {
191
- per_page?: number | undefined;
192
- page?: number | undefined;
193
- orderby?: "id" | "slug" | "name" | "count" | undefined;
194
- order?: "asc" | "desc" | undefined;
195
- search?: string | undefined;
196
- hide_empty?: boolean | undefined;
197
- }>;
198
- export declare const SearchSchema: z.ZodObject<{
199
- search: z.ZodString;
200
- per_page: z.ZodDefault<z.ZodNumber>;
201
- type: z.ZodOptional<z.ZodEnum<["post", "page", "category", "tag"]>>;
202
- subtype: z.ZodOptional<z.ZodString>;
203
- }, "strip", z.ZodTypeAny, {
204
- per_page: number;
205
- search: string;
206
- type?: "page" | "post" | "category" | "tag" | undefined;
207
- subtype?: string | undefined;
208
- }, {
209
- search: string;
210
- per_page?: number | undefined;
211
- type?: "page" | "post" | "category" | "tag" | undefined;
212
- subtype?: string | undefined;
213
- }>;
214
- export declare const GetSEOMetaSchema: z.ZodObject<{
215
- id: z.ZodNumber;
216
- post_type: z.ZodDefault<z.ZodEnum<["post", "page"]>>;
217
- }, "strip", z.ZodTypeAny, {
218
- id: number;
219
- post_type: "page" | "post";
220
- }, {
221
- id: number;
222
- post_type?: "page" | "post" | undefined;
223
- }>;
224
- export declare const UpdateSEOMetaSchema: z.ZodObject<{
225
- id: z.ZodNumber;
226
- post_type: z.ZodDefault<z.ZodEnum<["post", "page"]>>;
227
- rank_math_title: z.ZodOptional<z.ZodString>;
228
- rank_math_description: z.ZodOptional<z.ZodString>;
229
- rank_math_focus_keyword: z.ZodOptional<z.ZodString>;
230
- }, "strip", z.ZodTypeAny, {
231
- id: number;
232
- post_type: "page" | "post";
233
- rank_math_title?: string | undefined;
234
- rank_math_description?: string | undefined;
235
- rank_math_focus_keyword?: string | undefined;
236
- }, {
237
- id: number;
238
- post_type?: "page" | "post" | undefined;
239
- rank_math_title?: string | undefined;
240
- rank_math_description?: string | undefined;
241
- rank_math_focus_keyword?: string | undefined;
242
- }>;
243
- export declare const AuditSEOSchema: z.ZodObject<{
244
- post_type: z.ZodDefault<z.ZodEnum<["post", "page"]>>;
245
- per_page: z.ZodDefault<z.ZodNumber>;
246
- status: z.ZodOptional<z.ZodDefault<z.ZodEnum<["publish", "draft", "pending", "private", "future", "trash"]>>>;
247
- }, "strip", z.ZodTypeAny, {
248
- per_page: number;
249
- post_type: "page" | "post";
250
- status?: "publish" | "draft" | "pending" | "private" | "future" | "trash" | undefined;
251
- }, {
252
- per_page?: number | undefined;
253
- status?: "publish" | "draft" | "pending" | "private" | "future" | "trash" | undefined;
254
- post_type?: "page" | "post" | undefined;
255
- }>;
256
- export declare const SiteInfoSchema: z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>;
257
- export declare const ListMediaSchema: z.ZodObject<{
258
- per_page: z.ZodDefault<z.ZodNumber>;
259
- page: z.ZodDefault<z.ZodNumber>;
260
- } & {
261
- media_type: z.ZodOptional<z.ZodEnum<["image", "video", "audio", "application"]>>;
262
- search: z.ZodOptional<z.ZodString>;
263
- }, "strip", z.ZodTypeAny, {
264
- per_page: number;
265
- page: number;
266
- search?: string | undefined;
267
- media_type?: "image" | "video" | "audio" | "application" | undefined;
268
- }, {
269
- per_page?: number | undefined;
270
- page?: number | undefined;
271
- search?: string | undefined;
272
- media_type?: "image" | "video" | "audio" | "application" | undefined;
273
- }>;
274
- export declare const ListCommentsSchema: z.ZodObject<{
275
- per_page: z.ZodDefault<z.ZodNumber>;
276
- page: z.ZodDefault<z.ZodNumber>;
277
- } & {
278
- post: z.ZodOptional<z.ZodNumber>;
279
- status: z.ZodOptional<z.ZodEnum<["approve", "hold", "spam", "trash"]>>;
280
- }, "strip", z.ZodTypeAny, {
281
- per_page: number;
282
- page: number;
283
- status?: "trash" | "approve" | "hold" | "spam" | undefined;
284
- post?: number | undefined;
285
- }, {
286
- per_page?: number | undefined;
287
- page?: number | undefined;
288
- status?: "trash" | "approve" | "hold" | "spam" | undefined;
289
- post?: number | undefined;
290
- }>;
291
- export declare const ListUsersSchema: z.ZodObject<{
292
- per_page: z.ZodDefault<z.ZodNumber>;
293
- page: z.ZodDefault<z.ZodNumber>;
294
- } & {
295
- roles: z.ZodOptional<z.ZodString>;
296
- search: z.ZodOptional<z.ZodString>;
297
- }, "strip", z.ZodTypeAny, {
298
- per_page: number;
299
- page: number;
300
- search?: string | undefined;
301
- roles?: string | undefined;
302
- }, {
303
- per_page?: number | undefined;
304
- page?: number | undefined;
305
- search?: string | undefined;
306
- roles?: string | undefined;
307
- }>;
308
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB;;;;;;;;;EAc3B,CAAC;AAEH,eAAO,MAAM,gBAAgB,wFAGI,CAAC;AAElC,eAAO,MAAM,aAAa,6FAGc,CAAC;AAEzC,eAAO,MAAM,WAAW,0CAGK,CAAC;AAI9B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB1B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;EAExB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuB3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuB3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;EAS/B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;EAQzB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;EAQvB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAS9B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;EAazB,CAAC;AAEH,eAAO,MAAM,cAAc,iDAAwB,CAAC;AAEpD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;EAG1B,CAAC"}
@@ -1,191 +0,0 @@
1
- import { z } from "zod";
2
- // ---- Shared schemas ----
3
- export const PaginationSchema = z.object({
4
- per_page: z
5
- .number()
6
- .int()
7
- .min(1)
8
- .max(100)
9
- .default(10)
10
- .describe("Number of items per page (1-100, default: 10)"),
11
- page: z
12
- .number()
13
- .int()
14
- .min(1)
15
- .default(1)
16
- .describe("Page number (default: 1)"),
17
- });
18
- export const PostStatusSchema = z
19
- .enum(["publish", "draft", "pending", "private", "future", "trash"])
20
- .default("publish")
21
- .describe("Post status filter");
22
- export const OrderBySchema = z
23
- .enum(["date", "id", "title", "slug", "modified", "author", "relevance"])
24
- .default("date")
25
- .describe("Field to order results by");
26
- export const OrderSchema = z
27
- .enum(["asc", "desc"])
28
- .default("desc")
29
- .describe("Sort direction");
30
- // ---- Tool-specific schemas ----
31
- export const ListPostsSchema = PaginationSchema.extend({
32
- status: PostStatusSchema.optional(),
33
- orderby: OrderBySchema.optional(),
34
- order: OrderSchema.optional(),
35
- categories: z
36
- .string()
37
- .optional()
38
- .describe("Comma-separated category IDs to filter by"),
39
- tags: z
40
- .string()
41
- .optional()
42
- .describe("Comma-separated tag IDs to filter by"),
43
- search: z
44
- .string()
45
- .optional()
46
- .describe("Search keyword to filter posts"),
47
- });
48
- export const GetPostSchema = z.object({
49
- id: z.number().int().positive().describe("WordPress post ID"),
50
- });
51
- export const CreatePostSchema = z.object({
52
- title: z.string().min(1).describe("Post title"),
53
- content: z.string().describe("Post content (HTML supported)"),
54
- status: z
55
- .enum(["publish", "draft", "pending", "private", "future"])
56
- .default("draft")
57
- .describe("Post status (default: draft for safety)"),
58
- excerpt: z.string().optional().describe("Post excerpt/summary"),
59
- categories: z
60
- .array(z.number().int().positive())
61
- .optional()
62
- .describe("Array of category IDs"),
63
- tags: z
64
- .array(z.number().int().positive())
65
- .optional()
66
- .describe("Array of tag IDs"),
67
- featured_media: z
68
- .number()
69
- .int()
70
- .positive()
71
- .optional()
72
- .describe("Featured image media ID"),
73
- slug: z.string().optional().describe("URL slug for the post"),
74
- });
75
- export const UpdatePostSchema = z.object({
76
- id: z.number().int().positive().describe("Post ID to update"),
77
- title: z.string().optional().describe("New title"),
78
- content: z.string().optional().describe("New content (HTML supported)"),
79
- status: z
80
- .enum(["publish", "draft", "pending", "private", "future", "trash"])
81
- .optional()
82
- .describe("New status"),
83
- excerpt: z.string().optional().describe("New excerpt"),
84
- categories: z
85
- .array(z.number().int().positive())
86
- .optional()
87
- .describe("New category IDs"),
88
- tags: z
89
- .array(z.number().int().positive())
90
- .optional()
91
- .describe("New tag IDs"),
92
- featured_media: z.number().int().optional().describe("New featured image ID"),
93
- slug: z.string().optional().describe("New URL slug"),
94
- meta: z
95
- .record(z.unknown())
96
- .optional()
97
- .describe("Post meta fields to update (e.g., rank_math_title, rank_math_description)"),
98
- });
99
- export const DeletePostSchema = z.object({
100
- id: z.number().int().positive().describe("Post ID to delete"),
101
- force: z
102
- .boolean()
103
- .default(false)
104
- .describe("If true, permanently deletes. If false, moves to trash."),
105
- });
106
- export const ListPagesSchema = PaginationSchema.extend({
107
- status: PostStatusSchema.optional(),
108
- parent: z.number().int().optional().describe("Filter by parent page ID"),
109
- orderby: OrderBySchema.optional(),
110
- order: OrderSchema.optional(),
111
- search: z.string().optional().describe("Search keyword"),
112
- });
113
- export const ListCategoriesSchema = PaginationSchema.extend({
114
- search: z.string().optional().describe("Search keyword"),
115
- parent: z.number().int().optional().describe("Filter by parent category ID"),
116
- orderby: z
117
- .enum(["id", "name", "slug", "count"])
118
- .default("name")
119
- .describe("Order by field"),
120
- order: OrderSchema.optional(),
121
- hide_empty: z.boolean().default(false).describe("Hide categories with no posts"),
122
- });
123
- export const ListTagsSchema = PaginationSchema.extend({
124
- search: z.string().optional().describe("Search keyword"),
125
- orderby: z
126
- .enum(["id", "name", "slug", "count"])
127
- .default("name")
128
- .describe("Order by field"),
129
- order: OrderSchema.optional(),
130
- hide_empty: z.boolean().default(false).describe("Hide tags with no posts"),
131
- });
132
- export const SearchSchema = z.object({
133
- search: z.string().min(1).describe("Search term"),
134
- per_page: z.number().int().min(1).max(100).default(10).describe("Results per page"),
135
- type: z
136
- .enum(["post", "page", "category", "tag"])
137
- .optional()
138
- .describe("Filter by content type"),
139
- subtype: z.string().optional().describe("Filter by post subtype"),
140
- });
141
- export const GetSEOMetaSchema = z.object({
142
- id: z.number().int().positive().describe("Post or page ID"),
143
- post_type: z
144
- .enum(["post", "page"])
145
- .default("post")
146
- .describe("Content type: 'post' or 'page'"),
147
- });
148
- export const UpdateSEOMetaSchema = z.object({
149
- id: z.number().int().positive().describe("Post or page ID"),
150
- post_type: z
151
- .enum(["post", "page"])
152
- .default("post")
153
- .describe("Content type"),
154
- rank_math_title: z.string().optional().describe("SEO title (RankMath)"),
155
- rank_math_description: z.string().optional().describe("Meta description (RankMath)"),
156
- rank_math_focus_keyword: z.string().optional().describe("Focus keyword (RankMath)"),
157
- });
158
- export const AuditSEOSchema = z.object({
159
- post_type: z
160
- .enum(["post", "page"])
161
- .default("post")
162
- .describe("Content type to audit"),
163
- per_page: z
164
- .number()
165
- .int()
166
- .min(1)
167
- .max(50)
168
- .default(10)
169
- .describe("Number of items to audit"),
170
- status: PostStatusSchema.optional(),
171
- });
172
- export const SiteInfoSchema = z.object({}).strict();
173
- export const ListMediaSchema = PaginationSchema.extend({
174
- media_type: z
175
- .enum(["image", "video", "audio", "application"])
176
- .optional()
177
- .describe("Filter by media type"),
178
- search: z.string().optional().describe("Search keyword"),
179
- });
180
- export const ListCommentsSchema = PaginationSchema.extend({
181
- post: z.number().int().optional().describe("Filter by post ID"),
182
- status: z
183
- .enum(["approve", "hold", "spam", "trash"])
184
- .optional()
185
- .describe("Comment status filter"),
186
- });
187
- export const ListUsersSchema = PaginationSchema.extend({
188
- roles: z.string().optional().describe("Comma-separated roles to filter by"),
189
- search: z.string().optional().describe("Search keyword"),
190
- });
191
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /** Strip HTML tags from a string */
2
- export declare function stripHtml(html: string): string;
3
- /** Truncate text if it exceeds the character limit */
4
- export declare function truncateIfNeeded(text: string, limit?: number): string;
5
- /** Format a pagination message */
6
- export declare function paginationInfo(page: number, perPage: number, total?: number, totalPages?: number): string;
7
- /** Format a post summary for listing */
8
- export declare function formatPostSummary(post: {
9
- id: number;
10
- title: {
11
- rendered: string;
12
- };
13
- date: string;
14
- status: string;
15
- link: string;
16
- excerpt?: {
17
- rendered: string;
18
- };
19
- }): Record<string, unknown>;
20
- /** Format SEO score as emoji */
21
- export declare function seoScoreEmoji(score: number): string;
22
- //# sourceMappingURL=formatters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/services/formatters.ts"],"names":[],"mappings":"AAEA,oCAAoC;AACpC,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW9C;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAwB,GAAG,MAAM,CAGtF;AAED,kCAAkC;AAClC,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAQR;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAChC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS1B;AAED,gCAAgC;AAChC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAInD"}
@@ -1,52 +0,0 @@
1
- import { CHARACTER_LIMIT } from "../constants.js";
2
- /** Strip HTML tags from a string */
3
- export function stripHtml(html) {
4
- return html
5
- .replace(/<[^>]*>/g, "")
6
- .replace(/&nbsp;/g, " ")
7
- .replace(/&amp;/g, "&")
8
- .replace(/&lt;/g, "<")
9
- .replace(/&gt;/g, ">")
10
- .replace(/&quot;/g, '"')
11
- .replace(/&#039;/g, "'")
12
- .replace(/\s+/g, " ")
13
- .trim();
14
- }
15
- /** Truncate text if it exceeds the character limit */
16
- export function truncateIfNeeded(text, limit = CHARACTER_LIMIT) {
17
- if (text.length <= limit)
18
- return text;
19
- return text.substring(0, limit) + `\n\n[Truncated — response exceeded ${limit} characters]`;
20
- }
21
- /** Format a pagination message */
22
- export function paginationInfo(page, perPage, total, totalPages) {
23
- let info = `Page ${page}`;
24
- if (totalPages)
25
- info += ` of ${totalPages}`;
26
- if (total)
27
- info += ` (${total} total results)`;
28
- if (totalPages && page < totalPages) {
29
- info += ` — Use page=${page + 1} to see more`;
30
- }
31
- return info;
32
- }
33
- /** Format a post summary for listing */
34
- export function formatPostSummary(post) {
35
- return {
36
- id: post.id,
37
- title: stripHtml(post.title.rendered),
38
- date: post.date,
39
- status: post.status,
40
- link: post.link,
41
- ...(post.excerpt ? { excerpt: stripHtml(post.excerpt.rendered).substring(0, 200) } : {}),
42
- };
43
- }
44
- /** Format SEO score as emoji */
45
- export function seoScoreEmoji(score) {
46
- if (score >= 80)
47
- return "🟢";
48
- if (score >= 50)
49
- return "🟡";
50
- return "🔴";
51
- }
52
- //# sourceMappingURL=formatters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/services/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,oCAAoC;AACpC,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAgB,eAAe;IAC5E,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,sCAAsC,KAAK,cAAc,CAAC;AAC9F,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,OAAe,EACf,KAAc,EACd,UAAmB;IAEnB,IAAI,IAAI,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC1B,IAAI,UAAU;QAAE,IAAI,IAAI,OAAO,UAAU,EAAE,CAAC;IAC5C,IAAI,KAAK;QAAE,IAAI,IAAI,KAAK,KAAK,iBAAiB,CAAC;IAC/C,IAAI,UAAU,IAAI,IAAI,GAAG,UAAU,EAAE,CAAC;QACpC,IAAI,IAAI,eAAe,IAAI,GAAG,CAAC,cAAc,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,iBAAiB,CAAC,IAOjC;IACC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzF,CAAC;AACJ,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,38 +0,0 @@
1
- import type { WPApiConfig } from "../types.js";
2
- export declare class WordPressClient {
3
- private baseUrl;
4
- private authHeader;
5
- constructor(config: WPApiConfig);
6
- request<T>(endpoint: string, options?: {
7
- method?: string;
8
- body?: Record<string, unknown>;
9
- params?: Record<string, string | number | boolean | undefined>;
10
- }): Promise<{
11
- data: T;
12
- totalPages?: number;
13
- total?: number;
14
- }>;
15
- /** GET shorthand */
16
- get<T>(endpoint: string, params?: Record<string, string | number | boolean | undefined>): Promise<{
17
- data: T;
18
- totalPages?: number;
19
- total?: number;
20
- }>;
21
- /** POST shorthand */
22
- post<T>(endpoint: string, body: Record<string, unknown>, params?: Record<string, string | number | boolean | undefined>): Promise<{
23
- data: T;
24
- }>;
25
- /** PUT shorthand */
26
- put<T>(endpoint: string, body: Record<string, unknown>): Promise<{
27
- data: T;
28
- }>;
29
- /** DELETE shorthand */
30
- delete<T>(endpoint: string, params?: Record<string, string | number | boolean | undefined>): Promise<{
31
- data: T;
32
- }>;
33
- /** Test connection by fetching site info */
34
- testConnection(): Promise<boolean>;
35
- }
36
- /** Create a client from environment variables */
37
- export declare function createClientFromEnv(): WordPressClient;
38
- //# sourceMappingURL=wp-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wp-client.d.ts","sourceRoot":"","sources":["../../src/services/wp-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,WAAW;IAMzB,OAAO,CAAC,CAAC,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;KAC3D,GACL,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAmD5D,oBAAoB;IACd,GAAG,CAAC,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC7D,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5D,qBAAqB;IACf,IAAI,CAAC,CAAC,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC7D,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;IAIvB,oBAAoB;IACd,GAAG,CAAC,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;IAIvB,uBAAuB;IACjB,MAAM,CAAC,CAAC,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC7D,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;IAIvB,4CAA4C;IACtC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAWzC;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,IAAI,eAAe,CA0BrD"}