mcp-wordpress 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +568 -0
  3. package/bin/mcp-wordpress.js +12 -0
  4. package/bin/setup.js +302 -0
  5. package/bin/status.js +359 -0
  6. package/dist/client/WordPressClient.d.ts +81 -0
  7. package/dist/client/WordPressClient.d.ts.map +1 -0
  8. package/dist/client/WordPressClient.js +354 -0
  9. package/dist/client/WordPressClient.js.map +1 -0
  10. package/dist/client/api.d.ts +140 -0
  11. package/dist/client/api.d.ts.map +1 -0
  12. package/dist/client/api.js +727 -0
  13. package/dist/client/api.js.map +1 -0
  14. package/dist/client/auth.d.ts +121 -0
  15. package/dist/client/auth.d.ts.map +1 -0
  16. package/dist/client/auth.js +430 -0
  17. package/dist/client/auth.js.map +1 -0
  18. package/dist/client/managers/AuthenticationManager.d.ts +39 -0
  19. package/dist/client/managers/AuthenticationManager.d.ts.map +1 -0
  20. package/dist/client/managers/AuthenticationManager.js +159 -0
  21. package/dist/client/managers/AuthenticationManager.js.map +1 -0
  22. package/dist/client/managers/BaseManager.d.ts +22 -0
  23. package/dist/client/managers/BaseManager.d.ts.map +1 -0
  24. package/dist/client/managers/BaseManager.js +47 -0
  25. package/dist/client/managers/BaseManager.js.map +1 -0
  26. package/dist/client/managers/RequestManager.d.ts +45 -0
  27. package/dist/client/managers/RequestManager.d.ts.map +1 -0
  28. package/dist/client/managers/RequestManager.js +161 -0
  29. package/dist/client/managers/RequestManager.js.map +1 -0
  30. package/dist/client/managers/index.d.ts +8 -0
  31. package/dist/client/managers/index.d.ts.map +1 -0
  32. package/dist/client/managers/index.js +8 -0
  33. package/dist/client/managers/index.js.map +1 -0
  34. package/dist/index.d.ts +19 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +264 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/server.d.ts +7 -0
  39. package/dist/server.d.ts.map +1 -0
  40. package/dist/server.js +7 -0
  41. package/dist/server.js.map +1 -0
  42. package/dist/tools/auth.d.ts +44 -0
  43. package/dist/tools/auth.d.ts.map +1 -0
  44. package/dist/tools/auth.js +126 -0
  45. package/dist/tools/auth.js.map +1 -0
  46. package/dist/tools/base.d.ts +37 -0
  47. package/dist/tools/base.d.ts.map +1 -0
  48. package/dist/tools/base.js +60 -0
  49. package/dist/tools/base.js.map +1 -0
  50. package/dist/tools/comments.d.ts +33 -0
  51. package/dist/tools/comments.d.ts.map +1 -0
  52. package/dist/tools/comments.js +228 -0
  53. package/dist/tools/comments.js.map +1 -0
  54. package/dist/tools/index.d.ts +9 -0
  55. package/dist/tools/index.d.ts.map +1 -0
  56. package/dist/tools/index.js +9 -0
  57. package/dist/tools/index.js.map +1 -0
  58. package/dist/tools/media.d.ts +29 -0
  59. package/dist/tools/media.d.ts.map +1 -0
  60. package/dist/tools/media.js +208 -0
  61. package/dist/tools/media.js.map +1 -0
  62. package/dist/tools/pages.d.ts +30 -0
  63. package/dist/tools/pages.d.ts.map +1 -0
  64. package/dist/tools/pages.js +211 -0
  65. package/dist/tools/pages.js.map +1 -0
  66. package/dist/tools/posts.d.ts +30 -0
  67. package/dist/tools/posts.d.ts.map +1 -0
  68. package/dist/tools/posts.js +240 -0
  69. package/dist/tools/posts.js.map +1 -0
  70. package/dist/tools/site.d.ts +31 -0
  71. package/dist/tools/site.d.ts.map +1 -0
  72. package/dist/tools/site.js +192 -0
  73. package/dist/tools/site.js.map +1 -0
  74. package/dist/tools/taxonomies.d.ts +37 -0
  75. package/dist/tools/taxonomies.d.ts.map +1 -0
  76. package/dist/tools/taxonomies.js +280 -0
  77. package/dist/tools/taxonomies.js.map +1 -0
  78. package/dist/tools/users.d.ts +28 -0
  79. package/dist/tools/users.d.ts.map +1 -0
  80. package/dist/tools/users.js +201 -0
  81. package/dist/tools/users.js.map +1 -0
  82. package/dist/types/client.d.ts +215 -0
  83. package/dist/types/client.d.ts.map +1 -0
  84. package/dist/types/client.js +72 -0
  85. package/dist/types/client.js.map +1 -0
  86. package/dist/types/index.d.ts +157 -0
  87. package/dist/types/index.d.ts.map +1 -0
  88. package/dist/types/index.js +12 -0
  89. package/dist/types/index.js.map +1 -0
  90. package/dist/types/mcp.d.ts +178 -0
  91. package/dist/types/mcp.d.ts.map +1 -0
  92. package/dist/types/mcp.js +7 -0
  93. package/dist/types/mcp.js.map +1 -0
  94. package/dist/types/wordpress.d.ts +443 -0
  95. package/dist/types/wordpress.d.ts.map +1 -0
  96. package/dist/types/wordpress.js +7 -0
  97. package/dist/types/wordpress.js.map +1 -0
  98. package/dist/utils/debug.d.ts +63 -0
  99. package/dist/utils/debug.d.ts.map +1 -0
  100. package/dist/utils/debug.js +195 -0
  101. package/dist/utils/debug.js.map +1 -0
  102. package/dist/utils/error.d.ts +19 -0
  103. package/dist/utils/error.d.ts.map +1 -0
  104. package/dist/utils/error.js +71 -0
  105. package/dist/utils/error.js.map +1 -0
  106. package/dist/utils/toolWrapper.d.ts +36 -0
  107. package/dist/utils/toolWrapper.d.ts.map +1 -0
  108. package/dist/utils/toolWrapper.js +90 -0
  109. package/dist/utils/toolWrapper.js.map +1 -0
  110. package/package.json +115 -0
  111. package/src/client/api.ts +1043 -0
  112. package/src/client/auth.ts +527 -0
  113. package/src/client/managers/AuthenticationManager.ts +190 -0
  114. package/src/client/managers/BaseManager.ts +73 -0
  115. package/src/client/managers/RequestManager.ts +214 -0
  116. package/src/client/managers/index.ts +8 -0
  117. package/src/index.ts +337 -0
  118. package/src/server.ts +7 -0
  119. package/src/tools/auth.ts +153 -0
  120. package/src/tools/comments.ts +263 -0
  121. package/src/tools/index.ts +8 -0
  122. package/src/tools/media.ts +240 -0
  123. package/src/tools/pages.ts +246 -0
  124. package/src/tools/posts.ts +277 -0
  125. package/src/tools/site.ts +227 -0
  126. package/src/tools/taxonomies.ts +322 -0
  127. package/src/tools/users.ts +233 -0
  128. package/src/types/client.ts +304 -0
  129. package/src/types/index.ts +207 -0
  130. package/src/types/mcp.ts +247 -0
  131. package/src/types/wordpress.ts +491 -0
  132. package/src/utils/debug.ts +258 -0
  133. package/src/utils/error.ts +88 -0
  134. package/src/utils/toolWrapper.ts +105 -0
@@ -0,0 +1,228 @@
1
+ import { getErrorMessage } from "../utils/error.js";
2
+ /**
3
+ * Provides tools for managing comments on a WordPress site.
4
+ * This class encapsulates tool definitions and their corresponding handlers.
5
+ */
6
+ export class CommentTools {
7
+ /**
8
+ * Retrieves the list of comment management tools.
9
+ * @returns An array of MCPTool definitions.
10
+ */
11
+ getTools() {
12
+ return [
13
+ {
14
+ name: "wp_list_comments",
15
+ description: "Lists comments from a WordPress site, with filters.",
16
+ parameters: [
17
+ {
18
+ name: "post",
19
+ type: "number",
20
+ description: "Limit results to comments assigned to a specific post ID.",
21
+ },
22
+ {
23
+ name: "status",
24
+ type: "string",
25
+ description: "Filter by comment status.",
26
+ enum: ["hold", "approve", "spam", "trash"],
27
+ },
28
+ ],
29
+ handler: this.handleListComments.bind(this),
30
+ },
31
+ {
32
+ name: "wp_get_comment",
33
+ description: "Retrieves a single comment by its ID.",
34
+ parameters: [
35
+ {
36
+ name: "id",
37
+ type: "number",
38
+ required: true,
39
+ description: "The unique identifier for the comment.",
40
+ },
41
+ ],
42
+ handler: this.handleGetComment.bind(this),
43
+ },
44
+ {
45
+ name: "wp_create_comment",
46
+ description: "Creates a new comment on a post.",
47
+ parameters: [
48
+ {
49
+ name: "post",
50
+ type: "number",
51
+ required: true,
52
+ description: "The ID of the post to comment on.",
53
+ },
54
+ {
55
+ name: "content",
56
+ type: "string",
57
+ required: true,
58
+ description: "The content of the comment.",
59
+ },
60
+ {
61
+ name: "author_name",
62
+ type: "string",
63
+ description: "The name of the comment author.",
64
+ },
65
+ {
66
+ name: "author_email",
67
+ type: "string",
68
+ description: "The email of the comment author.",
69
+ },
70
+ ],
71
+ handler: this.handleCreateComment.bind(this),
72
+ },
73
+ {
74
+ name: "wp_update_comment",
75
+ description: "Updates an existing comment.",
76
+ parameters: [
77
+ {
78
+ name: "id",
79
+ type: "number",
80
+ required: true,
81
+ description: "The ID of the comment to update.",
82
+ },
83
+ {
84
+ name: "content",
85
+ type: "string",
86
+ description: "The updated content for the comment.",
87
+ },
88
+ {
89
+ name: "status",
90
+ type: "string",
91
+ description: "The new status for the comment.",
92
+ enum: ["hold", "approve", "spam", "trash"],
93
+ },
94
+ ],
95
+ handler: this.handleUpdateComment.bind(this),
96
+ },
97
+ {
98
+ name: "wp_delete_comment",
99
+ description: "Deletes a comment.",
100
+ parameters: [
101
+ {
102
+ name: "id",
103
+ type: "number",
104
+ required: true,
105
+ description: "The ID of the comment to delete.",
106
+ },
107
+ {
108
+ name: "force",
109
+ type: "boolean",
110
+ description: "If true, the comment will be permanently deleted. Defaults to false (moved to trash).",
111
+ },
112
+ ],
113
+ handler: this.handleDeleteComment.bind(this),
114
+ },
115
+ {
116
+ name: "wp_approve_comment",
117
+ description: "Approves a pending comment.",
118
+ parameters: [
119
+ {
120
+ name: "id",
121
+ type: "number",
122
+ required: true,
123
+ description: "The ID of the comment to approve.",
124
+ },
125
+ ],
126
+ handler: this.handleApproveComment.bind(this),
127
+ },
128
+ {
129
+ name: "wp_spam_comment",
130
+ description: "Marks a comment as spam.",
131
+ parameters: [
132
+ {
133
+ name: "id",
134
+ type: "number",
135
+ required: true,
136
+ description: "The ID of the comment to mark as spam.",
137
+ },
138
+ ],
139
+ handler: this.handleSpamComment.bind(this),
140
+ },
141
+ ];
142
+ }
143
+ async handleListComments(client, params) {
144
+ try {
145
+ const comments = await client.getComments(params);
146
+ if (comments.length === 0) {
147
+ return "No comments found matching the criteria.";
148
+ }
149
+ const content = `Found ${comments.length} comments:\n\n` +
150
+ comments
151
+ .map((c) => `- ID ${c.id}: By **${c.author_name}** on Post ${c.post} (${c.status})\n > ${c.content.rendered.substring(0, 100)}...`)
152
+ .join("\n");
153
+ return content;
154
+ }
155
+ catch (error) {
156
+ throw new Error(`Failed to list comments: ${getErrorMessage(error)}`);
157
+ }
158
+ }
159
+ async handleGetComment(client, params) {
160
+ try {
161
+ const comment = await client.getComment(params.id);
162
+ const content = `**Comment Details (ID: ${comment.id})**\n\n` +
163
+ `- **Author:** ${comment.author_name}\n` +
164
+ `- **Post ID:** ${comment.post}\n` +
165
+ `- **Date:** ${new Date(comment.date).toLocaleString()}\n` +
166
+ `- **Status:** ${comment.status}\n` +
167
+ `- **Content:** ${comment.content.rendered}`;
168
+ return content;
169
+ }
170
+ catch (error) {
171
+ throw new Error(`Failed to get comment: ${getErrorMessage(error)}`);
172
+ }
173
+ }
174
+ async handleCreateComment(client, params) {
175
+ try {
176
+ const comment = await client.createComment(params);
177
+ return `✅ Comment created successfully with ID: ${comment.id}`;
178
+ }
179
+ catch (error) {
180
+ throw new Error(`Failed to create comment: ${getErrorMessage(error)}`);
181
+ }
182
+ }
183
+ async handleUpdateComment(client, params) {
184
+ try {
185
+ const comment = await client.updateComment(params);
186
+ return `✅ Comment ${comment.id} updated successfully. New status: ${comment.status}.`;
187
+ }
188
+ catch (error) {
189
+ throw new Error(`Failed to update comment: ${getErrorMessage(error)}`);
190
+ }
191
+ }
192
+ async handleDeleteComment(client, params) {
193
+ try {
194
+ await client.deleteComment(params.id, params.force);
195
+ const action = params.force ? "permanently deleted" : "moved to trash";
196
+ return `✅ Comment ${params.id} has been ${action}.`;
197
+ }
198
+ catch (error) {
199
+ throw new Error(`Failed to delete comment: ${getErrorMessage(error)}`);
200
+ }
201
+ }
202
+ async handleApproveComment(client, params) {
203
+ try {
204
+ const comment = await client.updateComment({
205
+ id: params.id,
206
+ status: "approved",
207
+ });
208
+ return `✅ Comment ${comment.id} has been approved.`;
209
+ }
210
+ catch (error) {
211
+ throw new Error(`Failed to approve comment: ${getErrorMessage(error)}`);
212
+ }
213
+ }
214
+ async handleSpamComment(client, params) {
215
+ try {
216
+ const comment = await client.updateComment({
217
+ id: params.id,
218
+ status: "spam",
219
+ });
220
+ return `✅ Comment ${comment.id} has been marked as spam.`;
221
+ }
222
+ catch (error) {
223
+ throw new Error(`Failed to mark comment as spam: ${getErrorMessage(error)}`);
224
+ }
225
+ }
226
+ }
227
+ export default CommentTools;
228
+ //# sourceMappingURL=comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/tools/comments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { default as AuthTools } from './auth.js';
2
+ export { default as CommentTools } from './comments.js';
3
+ export { default as MediaTools } from './media.js';
4
+ export { default as PageTools } from './pages.js';
5
+ export { default as PostTools } from './posts.js';
6
+ export { default as SiteTools } from './site.js';
7
+ export { default as TaxonomyTools } from './taxonomies.js';
8
+ export { default as UserTools } from './users.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { default as AuthTools } from './auth.js';
2
+ export { default as CommentTools } from './comments.js';
3
+ export { default as MediaTools } from './media.js';
4
+ export { default as PageTools } from './pages.js';
5
+ export { default as PostTools } from './posts.js';
6
+ export { default as SiteTools } from './site.js';
7
+ export { default as TaxonomyTools } from './taxonomies.js';
8
+ export { default as UserTools } from './users.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { WordPressClient } from "../client/api.js";
2
+ import { MediaQueryParams, UpdateMediaRequest, UploadMediaRequest } from "../types/wordpress.js";
3
+ /**
4
+ * Provides tools for managing media on a WordPress site.
5
+ * This class encapsulates tool definitions and their corresponding handlers.
6
+ */
7
+ export declare class MediaTools {
8
+ /**
9
+ * Retrieves the list of media management tools.
10
+ * @returns An array of MCPTool definitions.
11
+ */
12
+ getTools(): any[];
13
+ handleListMedia(client: WordPressClient, params: MediaQueryParams): Promise<any>;
14
+ handleGetMedia(client: WordPressClient, params: {
15
+ id: number;
16
+ }): Promise<any>;
17
+ handleUploadMedia(client: WordPressClient, params: UploadMediaRequest & {
18
+ file_path: string;
19
+ }): Promise<any>;
20
+ handleUpdateMedia(client: WordPressClient, params: UpdateMediaRequest & {
21
+ id: number;
22
+ }): Promise<any>;
23
+ handleDeleteMedia(client: WordPressClient, params: {
24
+ id: number;
25
+ force?: boolean;
26
+ }): Promise<any>;
27
+ }
28
+ export default MediaTools;
29
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,qBAAa,UAAU;IACrB;;;OAGG;IACI,QAAQ,IAAI,GAAG,EAAE;IAoIX,eAAe,CAC1B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,GAAG,CAAC;IAoBF,cAAc,CACzB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GACrB,OAAO,CAAC,GAAG,CAAC;IAmBF,iBAAiB,CAC5B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,kBAAkB,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GACjD,OAAO,CAAC,GAAG,CAAC;IAaF,iBAAiB,CAC5B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,kBAAkB,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,GAAG,CAAC;IASF,iBAAiB,CAC5B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,GAAG,CAAC;CAShB;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,208 @@
1
+ import * as fs from "fs";
2
+ import { getErrorMessage } from "../utils/error.js";
3
+ /**
4
+ * Provides tools for managing media on a WordPress site.
5
+ * This class encapsulates tool definitions and their corresponding handlers.
6
+ */
7
+ export class MediaTools {
8
+ /**
9
+ * Retrieves the list of media management tools.
10
+ * @returns An array of MCPTool definitions.
11
+ */
12
+ getTools() {
13
+ return [
14
+ {
15
+ name: "wp_list_media",
16
+ description: "Lists media items from a WordPress site, with filters.",
17
+ parameters: [
18
+ {
19
+ name: "per_page",
20
+ type: "number",
21
+ description: "Number of items to return per page (max 100).",
22
+ },
23
+ {
24
+ name: "search",
25
+ type: "string",
26
+ description: "Limit results to those matching a search term.",
27
+ },
28
+ {
29
+ name: "media_type",
30
+ type: "string",
31
+ description: "Limit results to a specific media type.",
32
+ enum: ["image", "video", "audio", "application"],
33
+ },
34
+ ],
35
+ handler: this.handleListMedia.bind(this),
36
+ },
37
+ {
38
+ name: "wp_get_media",
39
+ description: "Retrieves a single media item by its ID.",
40
+ parameters: [
41
+ {
42
+ name: "id",
43
+ type: "number",
44
+ required: true,
45
+ description: "The unique identifier for the media item.",
46
+ },
47
+ ],
48
+ handler: this.handleGetMedia.bind(this),
49
+ },
50
+ {
51
+ name: "wp_upload_media",
52
+ description: "Uploads a file to the WordPress media library.",
53
+ parameters: [
54
+ {
55
+ name: "file_path",
56
+ type: "string",
57
+ required: true,
58
+ description: "The local, absolute path to the file to upload.",
59
+ },
60
+ {
61
+ name: "title",
62
+ type: "string",
63
+ description: "The title for the media item.",
64
+ },
65
+ {
66
+ name: "alt_text",
67
+ type: "string",
68
+ description: "Alternative text for the media item (for accessibility).",
69
+ },
70
+ {
71
+ name: "caption",
72
+ type: "string",
73
+ description: "The caption for the media item.",
74
+ },
75
+ {
76
+ name: "description",
77
+ type: "string",
78
+ description: "The description for the media item.",
79
+ },
80
+ {
81
+ name: "post",
82
+ type: "number",
83
+ description: "The ID of a post to attach this media to.",
84
+ },
85
+ ],
86
+ handler: this.handleUploadMedia.bind(this),
87
+ },
88
+ {
89
+ name: "wp_update_media",
90
+ description: "Updates the metadata of an existing media item.",
91
+ parameters: [
92
+ {
93
+ name: "id",
94
+ type: "number",
95
+ required: true,
96
+ description: "The ID of the media item to update.",
97
+ },
98
+ {
99
+ name: "title",
100
+ type: "string",
101
+ description: "The new title for the media item.",
102
+ },
103
+ {
104
+ name: "alt_text",
105
+ type: "string",
106
+ description: "The new alternative text.",
107
+ },
108
+ {
109
+ name: "caption",
110
+ type: "string",
111
+ description: "The new caption.",
112
+ },
113
+ {
114
+ name: "description",
115
+ type: "string",
116
+ description: "The new description.",
117
+ },
118
+ ],
119
+ handler: this.handleUpdateMedia.bind(this),
120
+ },
121
+ {
122
+ name: "wp_delete_media",
123
+ description: "Deletes a media item.",
124
+ parameters: [
125
+ {
126
+ name: "id",
127
+ type: "number",
128
+ required: true,
129
+ description: "The ID of the media item to delete.",
130
+ },
131
+ {
132
+ name: "force",
133
+ type: "boolean",
134
+ description: "If true, permanently delete. If false, move to trash. Defaults to false.",
135
+ },
136
+ ],
137
+ handler: this.handleDeleteMedia.bind(this),
138
+ },
139
+ ];
140
+ }
141
+ async handleListMedia(client, params) {
142
+ try {
143
+ const media = await client.getMedia(params);
144
+ if (media.length === 0) {
145
+ return "No media items found matching the criteria.";
146
+ }
147
+ const content = `Found ${media.length} media items:\n\n` +
148
+ media
149
+ .map((m) => `- ID ${m.id}: **${m.title.rendered}** (${m.mime_type})\n Link: ${m.source_url}`)
150
+ .join("\n");
151
+ return content;
152
+ }
153
+ catch (error) {
154
+ throw new Error(`Failed to list media: ${getErrorMessage(error)}`);
155
+ }
156
+ }
157
+ async handleGetMedia(client, params) {
158
+ try {
159
+ const media = await client.getMediaItem(params.id);
160
+ const content = `**Media Details (ID: ${media.id})**\n\n` +
161
+ `- **Title:** ${media.title.rendered}\n` +
162
+ `- **URL:** ${media.source_url}\n` +
163
+ `- **Type:** ${media.media_type} (${media.mime_type})\n` +
164
+ `- **Date:** ${new Date(media.date).toLocaleString()}\n` +
165
+ (media.alt_text ? `- **Alt Text:** ${media.alt_text}\n` : "") +
166
+ (media.caption.rendered
167
+ ? `- **Caption:** ${media.caption.rendered}\n`
168
+ : "");
169
+ return content;
170
+ }
171
+ catch (error) {
172
+ throw new Error(`Failed to get media item: ${getErrorMessage(error)}`);
173
+ }
174
+ }
175
+ async handleUploadMedia(client, params) {
176
+ try {
177
+ if (!fs.existsSync(params.file_path)) {
178
+ throw new Error(`File not found at path: ${params.file_path}`);
179
+ }
180
+ const media = await client.uploadMedia(params);
181
+ return `✅ Media uploaded successfully!\n- ID: ${media.id}\n- Title: ${media.title.rendered}\n- URL: ${media.source_url}`;
182
+ }
183
+ catch (error) {
184
+ throw new Error(`Failed to upload media: ${getErrorMessage(error)}`);
185
+ }
186
+ }
187
+ async handleUpdateMedia(client, params) {
188
+ try {
189
+ const media = await client.updateMedia(params);
190
+ return `✅ Media ${media.id} updated successfully.`;
191
+ }
192
+ catch (error) {
193
+ throw new Error(`Failed to update media: ${getErrorMessage(error)}`);
194
+ }
195
+ }
196
+ async handleDeleteMedia(client, params) {
197
+ try {
198
+ await client.deleteMedia(params.id, params.force);
199
+ const action = params.force ? "permanently deleted" : "moved to trash";
200
+ return `✅ Media item ${params.id} has been ${action}.`;
201
+ }
202
+ catch (error) {
203
+ throw new Error(`Failed to delete media: ${getErrorMessage(error)}`);
204
+ }
205
+ }
206
+ }
207
+ export default MediaTools;
208
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { WordPressClient } from "../client/api.js";
2
+ import { CreatePostRequest, PostQueryParams, UpdatePostRequest } from "../types/wordpress.js";
3
+ /**
4
+ * Provides tools for managing pages on a WordPress site.
5
+ * This class encapsulates tool definitions and their corresponding handlers.
6
+ */
7
+ export declare class PageTools {
8
+ /**
9
+ * Retrieves the list of page management tools.
10
+ * @returns An array of MCPTool definitions.
11
+ */
12
+ getTools(): any[];
13
+ handleListPages(client: WordPressClient, params: PostQueryParams): Promise<any>;
14
+ handleGetPage(client: WordPressClient, params: {
15
+ id: number;
16
+ }): Promise<any>;
17
+ handleCreatePage(client: WordPressClient, params: CreatePostRequest): Promise<any>;
18
+ handleUpdatePage(client: WordPressClient, params: UpdatePostRequest & {
19
+ id: number;
20
+ }): Promise<any>;
21
+ handleDeletePage(client: WordPressClient, params: {
22
+ id: number;
23
+ force?: boolean;
24
+ }): Promise<any>;
25
+ handleGetPageRevisions(client: WordPressClient, params: {
26
+ id: number;
27
+ }): Promise<any>;
28
+ }
29
+ export default PageTools;
30
+ //# sourceMappingURL=pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/tools/pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,qBAAa,SAAS;IACpB;;;OAGG;IACI,QAAQ,IAAI,GAAG,EAAE;IA8HX,eAAe,CAC1B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,GAAG,CAAC;IAoBF,aAAa,CACxB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GACrB,OAAO,CAAC,GAAG,CAAC;IAeF,gBAAgB,CAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,GAAG,CAAC;IASF,gBAAgB,CAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,iBAAiB,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GACzC,OAAO,CAAC,GAAG,CAAC;IASF,gBAAgB,CAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,GAAG,CAAC;IAUF,sBAAsB,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GACrB,OAAO,CAAC,GAAG,CAAC;CAmBhB;AAED,eAAe,SAAS,CAAC"}