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,211 @@
1
+ import { getErrorMessage } from "../utils/error.js";
2
+ /**
3
+ * Provides tools for managing pages on a WordPress site.
4
+ * This class encapsulates tool definitions and their corresponding handlers.
5
+ */
6
+ export class PageTools {
7
+ /**
8
+ * Retrieves the list of page management tools.
9
+ * @returns An array of MCPTool definitions.
10
+ */
11
+ getTools() {
12
+ return [
13
+ {
14
+ name: "wp_list_pages",
15
+ description: "Lists pages from a WordPress site, with filters.",
16
+ parameters: [
17
+ {
18
+ name: "per_page",
19
+ type: "number",
20
+ description: "Number of items to return per page (max 100).",
21
+ },
22
+ {
23
+ name: "search",
24
+ type: "string",
25
+ description: "Limit results to those matching a search term.",
26
+ },
27
+ {
28
+ name: "status",
29
+ type: "string",
30
+ description: "Filter by page status.",
31
+ enum: ["publish", "future", "draft", "pending", "private"],
32
+ },
33
+ ],
34
+ handler: this.handleListPages.bind(this),
35
+ },
36
+ {
37
+ name: "wp_get_page",
38
+ description: "Retrieves a single page by its ID.",
39
+ parameters: [
40
+ {
41
+ name: "id",
42
+ type: "number",
43
+ required: true,
44
+ description: "The unique identifier for the page.",
45
+ },
46
+ ],
47
+ handler: this.handleGetPage.bind(this),
48
+ },
49
+ {
50
+ name: "wp_create_page",
51
+ description: "Creates a new page.",
52
+ parameters: [
53
+ {
54
+ name: "title",
55
+ type: "string",
56
+ required: true,
57
+ description: "The title for the page.",
58
+ },
59
+ {
60
+ name: "content",
61
+ type: "string",
62
+ description: "The content for the page, in HTML format.",
63
+ },
64
+ {
65
+ name: "status",
66
+ type: "string",
67
+ description: "The publishing status for the page.",
68
+ enum: ["publish", "draft", "pending", "private"],
69
+ },
70
+ ],
71
+ handler: this.handleCreatePage.bind(this),
72
+ },
73
+ {
74
+ name: "wp_update_page",
75
+ description: "Updates an existing page.",
76
+ parameters: [
77
+ {
78
+ name: "id",
79
+ type: "number",
80
+ required: true,
81
+ description: "The ID of the page to update.",
82
+ },
83
+ {
84
+ name: "title",
85
+ type: "string",
86
+ description: "The new title for the page.",
87
+ },
88
+ {
89
+ name: "content",
90
+ type: "string",
91
+ description: "The new content for the page, in HTML format.",
92
+ },
93
+ {
94
+ name: "status",
95
+ type: "string",
96
+ description: "The new status for the page.",
97
+ enum: ["publish", "draft", "pending", "private"],
98
+ },
99
+ ],
100
+ handler: this.handleUpdatePage.bind(this),
101
+ },
102
+ {
103
+ name: "wp_delete_page",
104
+ description: "Deletes a page.",
105
+ parameters: [
106
+ {
107
+ name: "id",
108
+ type: "number",
109
+ required: true,
110
+ description: "The ID of the page to delete.",
111
+ },
112
+ {
113
+ name: "force",
114
+ type: "boolean",
115
+ description: "If true, permanently delete. If false, move to trash. Defaults to false.",
116
+ },
117
+ ],
118
+ handler: this.handleDeletePage.bind(this),
119
+ },
120
+ {
121
+ name: "wp_get_page_revisions",
122
+ description: "Retrieves revisions for a specific page.",
123
+ parameters: [
124
+ {
125
+ name: "id",
126
+ type: "number",
127
+ required: true,
128
+ description: "The ID of the page to get revisions for.",
129
+ },
130
+ ],
131
+ handler: this.handleGetPageRevisions.bind(this),
132
+ },
133
+ ];
134
+ }
135
+ async handleListPages(client, params) {
136
+ try {
137
+ const pages = await client.getPages(params);
138
+ if (pages.length === 0) {
139
+ return "No pages found matching the criteria.";
140
+ }
141
+ const content = `Found ${pages.length} pages:\n\n` +
142
+ pages
143
+ .map((p) => `- ID ${p.id}: **${p.title.rendered}** (${p.status})\n Link: ${p.link}`)
144
+ .join("\n");
145
+ return content;
146
+ }
147
+ catch (error) {
148
+ throw new Error(`Failed to list pages: ${getErrorMessage(error)}`);
149
+ }
150
+ }
151
+ async handleGetPage(client, params) {
152
+ try {
153
+ const page = await client.getPage(params.id);
154
+ const content = `**Page Details (ID: ${page.id})**\n\n` +
155
+ `- **Title:** ${page.title.rendered}\n` +
156
+ `- **Status:** ${page.status}\n` +
157
+ `- **Link:** ${page.link}\n` +
158
+ `- **Date:** ${new Date(page.date).toLocaleString()}`;
159
+ return content;
160
+ }
161
+ catch (error) {
162
+ throw new Error(`Failed to get page: ${getErrorMessage(error)}`);
163
+ }
164
+ }
165
+ async handleCreatePage(client, params) {
166
+ try {
167
+ const page = await client.createPage(params);
168
+ return `✅ Page created successfully!\n- ID: ${page.id}\n- Title: ${page.title.rendered}\n- Link: ${page.link}`;
169
+ }
170
+ catch (error) {
171
+ throw new Error(`Failed to create page: ${getErrorMessage(error)}`);
172
+ }
173
+ }
174
+ async handleUpdatePage(client, params) {
175
+ try {
176
+ const page = await client.updatePage(params);
177
+ return `✅ Page ${page.id} updated successfully.`;
178
+ }
179
+ catch (error) {
180
+ throw new Error(`Failed to update page: ${getErrorMessage(error)}`);
181
+ }
182
+ }
183
+ async handleDeletePage(client, params) {
184
+ try {
185
+ await client.deletePage(params.id, params.force);
186
+ const action = params.force ? "permanently deleted" : "moved to trash";
187
+ return `✅ Page ${params.id} has been ${action}.`;
188
+ }
189
+ catch (error) {
190
+ throw new Error(`Failed to delete page: ${getErrorMessage(error)}`);
191
+ }
192
+ }
193
+ async handleGetPageRevisions(client, params) {
194
+ try {
195
+ const revisions = await client.getPageRevisions(params.id);
196
+ if (revisions.length === 0) {
197
+ return `No revisions found for page ${params.id}.`;
198
+ }
199
+ const content = `Found ${revisions.length} revisions for page ${params.id}:\n\n` +
200
+ revisions
201
+ .map((r) => `- Revision by user ID ${r.author} at ${new Date(r.modified).toLocaleString()}`)
202
+ .join("\n");
203
+ return content;
204
+ }
205
+ catch (error) {
206
+ throw new Error(`Failed to get page revisions: ${getErrorMessage(error)}`);
207
+ }
208
+ }
209
+ }
210
+ export default PageTools;
211
+ //# sourceMappingURL=pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/tools/pages.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 posts on a WordPress site.
5
+ * This class encapsulates tool definitions and their corresponding handlers.
6
+ */
7
+ export declare class PostTools {
8
+ /**
9
+ * Retrieves the list of post management tools.
10
+ * @returns An array of MCPTool definitions.
11
+ */
12
+ getTools(): any[];
13
+ handleListPosts(client: WordPressClient, params: PostQueryParams): Promise<any>;
14
+ handleGetPost(client: WordPressClient, params: {
15
+ id: number;
16
+ }): Promise<any>;
17
+ handleCreatePost(client: WordPressClient, params: CreatePostRequest): Promise<any>;
18
+ handleUpdatePost(client: WordPressClient, params: UpdatePostRequest & {
19
+ id: number;
20
+ }): Promise<any>;
21
+ handleDeletePost(client: WordPressClient, params: {
22
+ id: number;
23
+ force?: boolean;
24
+ }): Promise<any>;
25
+ handleGetPostRevisions(client: WordPressClient, params: {
26
+ id: number;
27
+ }): Promise<any>;
28
+ }
29
+ export default PostTools;
30
+ //# sourceMappingURL=posts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posts.d.ts","sourceRoot":"","sources":["../../src/tools/posts.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;IA2JX,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;CAqBhB;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,240 @@
1
+ import { getErrorMessage } from "../utils/error.js";
2
+ /**
3
+ * Provides tools for managing posts on a WordPress site.
4
+ * This class encapsulates tool definitions and their corresponding handlers.
5
+ */
6
+ export class PostTools {
7
+ /**
8
+ * Retrieves the list of post management tools.
9
+ * @returns An array of MCPTool definitions.
10
+ */
11
+ getTools() {
12
+ return [
13
+ {
14
+ name: "wp_list_posts",
15
+ description: "Lists posts from a WordPress site, with filters.",
16
+ parameters: [
17
+ {
18
+ name: "per_page",
19
+ type: "number",
20
+ description: "Number of items to return per page (max 100).",
21
+ },
22
+ {
23
+ name: "search",
24
+ type: "string",
25
+ description: "Limit results to those matching a search term.",
26
+ },
27
+ {
28
+ name: "status",
29
+ type: "string",
30
+ description: "Filter by post status.",
31
+ enum: ["publish", "future", "draft", "pending", "private"],
32
+ },
33
+ {
34
+ name: "categories",
35
+ type: "array",
36
+ items: { type: "number" },
37
+ description: "Limit results to posts in specific category IDs.",
38
+ },
39
+ {
40
+ name: "tags",
41
+ type: "array",
42
+ items: { type: "number" },
43
+ description: "Limit results to posts with specific tag IDs.",
44
+ },
45
+ ],
46
+ handler: this.handleListPosts.bind(this),
47
+ },
48
+ {
49
+ name: "wp_get_post",
50
+ description: "Retrieves a single post by its ID.",
51
+ parameters: [
52
+ {
53
+ name: "id",
54
+ type: "number",
55
+ required: true,
56
+ description: "The unique identifier for the post.",
57
+ },
58
+ ],
59
+ handler: this.handleGetPost.bind(this),
60
+ },
61
+ {
62
+ name: "wp_create_post",
63
+ description: "Creates a new post.",
64
+ parameters: [
65
+ {
66
+ name: "title",
67
+ type: "string",
68
+ required: true,
69
+ description: "The title for the post.",
70
+ },
71
+ {
72
+ name: "content",
73
+ type: "string",
74
+ description: "The content for the post, in HTML format.",
75
+ },
76
+ {
77
+ name: "status",
78
+ type: "string",
79
+ description: "The publishing status for the post.",
80
+ enum: ["publish", "draft", "pending", "private"],
81
+ },
82
+ {
83
+ name: "excerpt",
84
+ type: "string",
85
+ description: "The excerpt for the post.",
86
+ },
87
+ {
88
+ name: "categories",
89
+ type: "array",
90
+ items: { type: "number" },
91
+ description: "An array of category IDs to assign to the post.",
92
+ },
93
+ {
94
+ name: "tags",
95
+ type: "array",
96
+ items: { type: "number" },
97
+ description: "An array of tag IDs to assign to the post.",
98
+ },
99
+ ],
100
+ handler: this.handleCreatePost.bind(this),
101
+ },
102
+ {
103
+ name: "wp_update_post",
104
+ description: "Updates an existing post.",
105
+ parameters: [
106
+ {
107
+ name: "id",
108
+ type: "number",
109
+ required: true,
110
+ description: "The ID of the post to update.",
111
+ },
112
+ {
113
+ name: "title",
114
+ type: "string",
115
+ description: "The new title for the post.",
116
+ },
117
+ {
118
+ name: "content",
119
+ type: "string",
120
+ description: "The new content for the post, in HTML format.",
121
+ },
122
+ {
123
+ name: "status",
124
+ type: "string",
125
+ description: "The new status for the post.",
126
+ enum: ["publish", "draft", "pending", "private"],
127
+ },
128
+ ],
129
+ handler: this.handleUpdatePost.bind(this),
130
+ },
131
+ {
132
+ name: "wp_delete_post",
133
+ description: "Deletes a post.",
134
+ parameters: [
135
+ {
136
+ name: "id",
137
+ type: "number",
138
+ required: true,
139
+ description: "The ID of the post to delete.",
140
+ },
141
+ {
142
+ name: "force",
143
+ type: "boolean",
144
+ description: "If true, permanently delete. If false, move to trash. Defaults to false.",
145
+ },
146
+ ],
147
+ handler: this.handleDeletePost.bind(this),
148
+ },
149
+ {
150
+ name: "wp_get_post_revisions",
151
+ description: "Retrieves revisions for a specific post.",
152
+ parameters: [
153
+ {
154
+ name: "id",
155
+ type: "number",
156
+ required: true,
157
+ description: "The ID of the post to get revisions for.",
158
+ },
159
+ ],
160
+ handler: this.handleGetPostRevisions.bind(this),
161
+ },
162
+ ];
163
+ }
164
+ async handleListPosts(client, params) {
165
+ try {
166
+ const posts = await client.getPosts(params);
167
+ if (posts.length === 0) {
168
+ return "No posts found matching the criteria.";
169
+ }
170
+ const content = `Found ${posts.length} posts:\n\n` +
171
+ posts
172
+ .map((p) => `- ID ${p.id}: **${p.title.rendered}** (${p.status})\n Link: ${p.link}`)
173
+ .join("\n");
174
+ return content;
175
+ }
176
+ catch (error) {
177
+ throw new Error(`Failed to list posts: ${getErrorMessage(error)}`);
178
+ }
179
+ }
180
+ async handleGetPost(client, params) {
181
+ try {
182
+ const post = await client.getPost(params.id);
183
+ const content = `**Post Details (ID: ${post.id})**\n\n` +
184
+ `- **Title:** ${post.title.rendered}\n` +
185
+ `- **Status:** ${post.status}\n` +
186
+ `- **Link:** ${post.link}\n` +
187
+ `- **Date:** ${new Date(post.date).toLocaleString()}`;
188
+ return content;
189
+ }
190
+ catch (error) {
191
+ throw new Error(`Failed to get post: ${getErrorMessage(error)}`);
192
+ }
193
+ }
194
+ async handleCreatePost(client, params) {
195
+ try {
196
+ const post = await client.createPost(params);
197
+ return `✅ Post created successfully!\n- ID: ${post.id}\n- Title: ${post.title.rendered}\n- Link: ${post.link}`;
198
+ }
199
+ catch (error) {
200
+ throw new Error(`Failed to create post: ${getErrorMessage(error)}`);
201
+ }
202
+ }
203
+ async handleUpdatePost(client, params) {
204
+ try {
205
+ const post = await client.updatePost(params);
206
+ return `✅ Post ${post.id} updated successfully.`;
207
+ }
208
+ catch (error) {
209
+ throw new Error(`Failed to update post: ${getErrorMessage(error)}`);
210
+ }
211
+ }
212
+ async handleDeletePost(client, params) {
213
+ try {
214
+ await client.deletePost(params.id, params.force);
215
+ const action = params.force ? "permanently deleted" : "moved to trash";
216
+ return `✅ Post ${params.id} has been ${action}.`;
217
+ }
218
+ catch (error) {
219
+ throw new Error(`Failed to delete post: ${getErrorMessage(error)}`);
220
+ }
221
+ }
222
+ async handleGetPostRevisions(client, params) {
223
+ try {
224
+ const revisions = await client.getPostRevisions(params.id);
225
+ if (revisions.length === 0) {
226
+ return `No revisions found for post ${params.id}.`;
227
+ }
228
+ const content = `Found ${revisions.length} revisions for post ${params.id}:\n\n` +
229
+ revisions
230
+ .map((r) => `- Revision by user ID ${r.author} at ${new Date(r.modified).toLocaleString()}`)
231
+ .join("\n");
232
+ return content;
233
+ }
234
+ catch (error) {
235
+ throw new Error(`Failed to get post revisions: ${getErrorMessage(error)}`);
236
+ }
237
+ }
238
+ }
239
+ export default PostTools;
240
+ //# sourceMappingURL=posts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../src/tools/posts.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,SAAS;IACpB;;;OAGG;IACI,QAAQ;QACb,OAAO;YACL;gBACE,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,kDAAkD;gBAC/D,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+CAA+C;qBAC7D;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,gDAAgD;qBAC9D;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wBAAwB;wBACrC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;qBAC3D;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,kDAAkD;qBAChE;oBACD;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,+CAA+C;qBAC7D;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;aACzC;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,oCAAoC;gBACjD,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,IAAI;wBACV,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,qCAAqC;qBACnD;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;aACvC;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,qBAAqB;gBAClC,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,yBAAyB;qBACvC;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2CAA2C;qBACzD;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,qCAAqC;wBAClD,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;qBACjD;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2BAA2B;qBACzC;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,iDAAiD;qBAC/D;oBACD;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,4CAA4C;qBAC1D;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1C;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,2BAA2B;gBACxC,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,IAAI;wBACV,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6BAA6B;qBAC3C;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+CAA+C;qBAC7D;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8BAA8B;wBAC3C,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;qBACjD;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1C;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,iBAAiB;gBAC9B,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,IAAI;wBACV,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,0EAA0E;qBAC7E;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1C;YACD;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,0CAA0C;gBACvD,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,IAAI;wBACV,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,0CAA0C;qBACxD;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;aAChD;SACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,MAAuB,EACvB,MAAuB;QAEvB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,uCAAuC,CAAC;YACjD,CAAC;YACD,MAAM,OAAO,GACX,SAAS,KAAK,CAAC,MAAM,aAAa;gBAClC,KAAK;qBACF,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC,IAAI,EAAE,CAC3E;qBACA,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,MAAuB,EACvB,MAAsB;QAEtB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,OAAO,GACX,uBAAuB,IAAI,CAAC,EAAE,SAAS;gBACvC,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI;gBACvC,iBAAiB,IAAI,CAAC,MAAM,IAAI;gBAChC,eAAe,IAAI,CAAC,IAAI,IAAI;gBAC5B,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YACxD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,MAAuB,EACvB,MAAyB;QAEzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7C,OAAO,uCAAuC,IAAI,CAAC,EAAE,cAAc,IAAI,CAAC,KAAK,CAAC,QAAQ,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC;QACjH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,MAAuB,EACvB,MAA0C;QAE1C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7C,OAAO,UAAU,IAAI,CAAC,EAAE,wBAAwB,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,MAAuB,EACvB,MAAuC;QAEvC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACvE,OAAO,UAAU,MAAM,CAAC,EAAE,aAAa,MAAM,GAAG,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,sBAAsB,CACjC,MAAuB,EACvB,MAAsB;QAEtB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,+BAA+B,MAAM,CAAC,EAAE,GAAG,CAAC;YACrD,CAAC;YACD,MAAM,OAAO,GACX,SAAS,SAAS,CAAC,MAAM,uBAAuB,MAAM,CAAC,EAAE,OAAO;gBAChE,SAAS;qBACN,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,yBAAyB,CAAC,CAAC,MAAM,OAAO,IAAI,IAAI,CAC9C,CAAC,CAAC,QAAQ,CACX,CAAC,cAAc,EAAE,EAAE,CACvB;qBACA,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;CACF;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { WordPressClient } from "../client/api.js";
2
+ /**
3
+ * Provides tools for managing general site settings and operations on a WordPress site.
4
+ * This class encapsulates tool definitions and their corresponding handlers.
5
+ */
6
+ export declare class SiteTools {
7
+ /**
8
+ * Retrieves the list of site management tools.
9
+ * @returns An array of MCPTool definitions.
10
+ */
11
+ getTools(): any[];
12
+ handleGetSiteSettings(client: WordPressClient, params: any): Promise<any>;
13
+ handleUpdateSiteSettings(client: WordPressClient, params: any): Promise<any>;
14
+ handleSearchSite(client: WordPressClient, params: {
15
+ term: string;
16
+ type?: "posts" | "pages" | "media";
17
+ }): Promise<any>;
18
+ handleGetApplicationPasswords(client: WordPressClient, params: {
19
+ user_id: number;
20
+ }): Promise<any>;
21
+ handleCreateApplicationPassword(client: WordPressClient, params: {
22
+ user_id: number;
23
+ app_name: string;
24
+ }): Promise<any>;
25
+ handleDeleteApplicationPassword(client: WordPressClient, params: {
26
+ user_id: number;
27
+ uuid: string;
28
+ }): Promise<any>;
29
+ }
30
+ export default SiteTools;
31
+ //# sourceMappingURL=site.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../src/tools/site.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMnD;;;GAGG;AACH,qBAAa,SAAS;IACpB;;;OAGG;IACI,QAAQ,IAAI,GAAG,EAAE;IAyGX,qBAAqB,CAChC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,GAAG,CAAC;IAeF,wBAAwB,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,GAAG,CAAC;IASF,gBAAgB,CAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;KAAE,GAC3D,OAAO,CAAC,GAAG,CAAC;IAiBF,6BAA6B,CACxC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAC1B,OAAO,CAAC,GAAG,CAAC;IAoBF,+BAA+B,CAC1C,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,GAAG,CAAC;IAiBF,+BAA+B,CAC1C,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,GAAG,CAAC;CAQhB;AAED,eAAe,SAAS,CAAC"}