mcp-wordpress 2.5.1 → 2.5.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 (289) hide show
  1. package/package.json +1 -1
  2. package/dist/src/cache/CacheInvalidation.d.ts +0 -120
  3. package/dist/src/cache/CacheInvalidation.d.ts.map +0 -1
  4. package/dist/src/cache/CacheInvalidation.js +0 -355
  5. package/dist/src/cache/CacheInvalidation.js.map +0 -1
  6. package/dist/src/cache/CacheManager.d.ts +0 -149
  7. package/dist/src/cache/CacheManager.d.ts.map +0 -1
  8. package/dist/src/cache/CacheManager.js +0 -326
  9. package/dist/src/cache/CacheManager.js.map +0 -1
  10. package/dist/src/cache/HttpCacheWrapper.d.ts +0 -122
  11. package/dist/src/cache/HttpCacheWrapper.d.ts.map +0 -1
  12. package/dist/src/cache/HttpCacheWrapper.js +0 -283
  13. package/dist/src/cache/HttpCacheWrapper.js.map +0 -1
  14. package/dist/src/cache/index.d.ts +0 -12
  15. package/dist/src/cache/index.d.ts.map +0 -1
  16. package/dist/src/cache/index.js +0 -9
  17. package/dist/src/cache/index.js.map +0 -1
  18. package/dist/src/client/CachedWordPressClient.d.ts +0 -174
  19. package/dist/src/client/CachedWordPressClient.d.ts.map +0 -1
  20. package/dist/src/client/CachedWordPressClient.js +0 -345
  21. package/dist/src/client/CachedWordPressClient.js.map +0 -1
  22. package/dist/src/client/MockWordPressClient.d.ts +0 -56
  23. package/dist/src/client/MockWordPressClient.d.ts.map +0 -1
  24. package/dist/src/client/MockWordPressClient.js +0 -371
  25. package/dist/src/client/MockWordPressClient.js.map +0 -1
  26. package/dist/src/client/api.d.ts +0 -235
  27. package/dist/src/client/api.d.ts.map +0 -1
  28. package/dist/src/client/api.js +0 -896
  29. package/dist/src/client/api.js.map +0 -1
  30. package/dist/src/client/auth.d.ts +0 -121
  31. package/dist/src/client/auth.d.ts.map +0 -1
  32. package/dist/src/client/auth.js +0 -429
  33. package/dist/src/client/auth.js.map +0 -1
  34. package/dist/src/client/managers/AuthenticationManager.d.ts +0 -92
  35. package/dist/src/client/managers/AuthenticationManager.d.ts.map +0 -1
  36. package/dist/src/client/managers/AuthenticationManager.js +0 -369
  37. package/dist/src/client/managers/AuthenticationManager.js.map +0 -1
  38. package/dist/src/client/managers/BaseManager.d.ts +0 -22
  39. package/dist/src/client/managers/BaseManager.d.ts.map +0 -1
  40. package/dist/src/client/managers/BaseManager.js +0 -53
  41. package/dist/src/client/managers/BaseManager.js.map +0 -1
  42. package/dist/src/client/managers/RequestManager.d.ts +0 -47
  43. package/dist/src/client/managers/RequestManager.d.ts.map +0 -1
  44. package/dist/src/client/managers/RequestManager.js +0 -193
  45. package/dist/src/client/managers/RequestManager.js.map +0 -1
  46. package/dist/src/client/managers/index.d.ts +0 -8
  47. package/dist/src/client/managers/index.d.ts.map +0 -1
  48. package/dist/src/client/managers/index.js +0 -8
  49. package/dist/src/client/managers/index.js.map +0 -1
  50. package/dist/src/config/Config.d.ts +0 -155
  51. package/dist/src/config/Config.d.ts.map +0 -1
  52. package/dist/src/config/Config.js +0 -215
  53. package/dist/src/config/Config.js.map +0 -1
  54. package/dist/src/config/ConfigurationSchema.d.ts +0 -281
  55. package/dist/src/config/ConfigurationSchema.d.ts.map +0 -1
  56. package/dist/src/config/ConfigurationSchema.js +0 -205
  57. package/dist/src/config/ConfigurationSchema.js.map +0 -1
  58. package/dist/src/config/ServerConfiguration.d.ts +0 -47
  59. package/dist/src/config/ServerConfiguration.d.ts.map +0 -1
  60. package/dist/src/config/ServerConfiguration.js +0 -255
  61. package/dist/src/config/ServerConfiguration.js.map +0 -1
  62. package/dist/src/docs/DocumentationGenerator.d.ts +0 -185
  63. package/dist/src/docs/DocumentationGenerator.d.ts.map +0 -1
  64. package/dist/src/docs/DocumentationGenerator.js +0 -777
  65. package/dist/src/docs/DocumentationGenerator.js.map +0 -1
  66. package/dist/src/docs/MarkdownFormatter.d.ts +0 -84
  67. package/dist/src/docs/MarkdownFormatter.d.ts.map +0 -1
  68. package/dist/src/docs/MarkdownFormatter.js +0 -458
  69. package/dist/src/docs/MarkdownFormatter.js.map +0 -1
  70. package/dist/src/docs/index.d.ts +0 -8
  71. package/dist/src/docs/index.d.ts.map +0 -1
  72. package/dist/src/docs/index.js +0 -7
  73. package/dist/src/docs/index.js.map +0 -1
  74. package/dist/src/dxt-entry.d.ts +0 -6
  75. package/dist/src/dxt-entry.d.ts.map +0 -1
  76. package/dist/src/dxt-entry.js +0 -39
  77. package/dist/src/dxt-entry.js.map +0 -1
  78. package/dist/src/index.d.ts +0 -18
  79. package/dist/src/index.d.ts.map +0 -1
  80. package/dist/src/index.js +0 -143
  81. package/dist/src/index.js.map +0 -1
  82. package/dist/src/performance/MetricsCollector.d.ts +0 -145
  83. package/dist/src/performance/MetricsCollector.d.ts.map +0 -1
  84. package/dist/src/performance/MetricsCollector.js +0 -368
  85. package/dist/src/performance/MetricsCollector.js.map +0 -1
  86. package/dist/src/performance/PerformanceAnalytics.d.ts +0 -168
  87. package/dist/src/performance/PerformanceAnalytics.d.ts.map +0 -1
  88. package/dist/src/performance/PerformanceAnalytics.js +0 -570
  89. package/dist/src/performance/PerformanceAnalytics.js.map +0 -1
  90. package/dist/src/performance/PerformanceMonitor.d.ts +0 -203
  91. package/dist/src/performance/PerformanceMonitor.d.ts.map +0 -1
  92. package/dist/src/performance/PerformanceMonitor.js +0 -478
  93. package/dist/src/performance/PerformanceMonitor.js.map +0 -1
  94. package/dist/src/performance/index.d.ts +0 -11
  95. package/dist/src/performance/index.d.ts.map +0 -1
  96. package/dist/src/performance/index.js +0 -8
  97. package/dist/src/performance/index.js.map +0 -1
  98. package/dist/src/security/AISecurityScanner.d.ts +0 -176
  99. package/dist/src/security/AISecurityScanner.d.ts.map +0 -1
  100. package/dist/src/security/AISecurityScanner.js +0 -655
  101. package/dist/src/security/AISecurityScanner.js.map +0 -1
  102. package/dist/src/security/AutomatedRemediation.d.ts +0 -146
  103. package/dist/src/security/AutomatedRemediation.d.ts.map +0 -1
  104. package/dist/src/security/AutomatedRemediation.js +0 -566
  105. package/dist/src/security/AutomatedRemediation.js.map +0 -1
  106. package/dist/src/security/InputValidator.d.ts +0 -219
  107. package/dist/src/security/InputValidator.d.ts.map +0 -1
  108. package/dist/src/security/InputValidator.js +0 -295
  109. package/dist/src/security/InputValidator.js.map +0 -1
  110. package/dist/src/security/SecurityCIPipeline.d.ts +0 -213
  111. package/dist/src/security/SecurityCIPipeline.d.ts.map +0 -1
  112. package/dist/src/security/SecurityCIPipeline.js +0 -693
  113. package/dist/src/security/SecurityCIPipeline.js.map +0 -1
  114. package/dist/src/security/SecurityConfig.d.ts +0 -129
  115. package/dist/src/security/SecurityConfig.d.ts.map +0 -1
  116. package/dist/src/security/SecurityConfig.js +0 -266
  117. package/dist/src/security/SecurityConfig.js.map +0 -1
  118. package/dist/src/security/SecurityConfigManager.d.ts +0 -294
  119. package/dist/src/security/SecurityConfigManager.d.ts.map +0 -1
  120. package/dist/src/security/SecurityConfigManager.js +0 -558
  121. package/dist/src/security/SecurityConfigManager.js.map +0 -1
  122. package/dist/src/security/SecurityMonitoring.d.ts +0 -245
  123. package/dist/src/security/SecurityMonitoring.d.ts.map +0 -1
  124. package/dist/src/security/SecurityMonitoring.js +0 -598
  125. package/dist/src/security/SecurityMonitoring.js.map +0 -1
  126. package/dist/src/security/SecurityReviewer.d.ts +0 -168
  127. package/dist/src/security/SecurityReviewer.d.ts.map +0 -1
  128. package/dist/src/security/SecurityReviewer.js +0 -686
  129. package/dist/src/security/SecurityReviewer.js.map +0 -1
  130. package/dist/src/security/index.d.ts +0 -183
  131. package/dist/src/security/index.d.ts.map +0 -1
  132. package/dist/src/security/index.js +0 -218
  133. package/dist/src/security/index.js.map +0 -1
  134. package/dist/src/server/ConnectionTester.d.ts +0 -32
  135. package/dist/src/server/ConnectionTester.d.ts.map +0 -1
  136. package/dist/src/server/ConnectionTester.js +0 -135
  137. package/dist/src/server/ConnectionTester.js.map +0 -1
  138. package/dist/src/server/ToolRegistry.d.ts +0 -50
  139. package/dist/src/server/ToolRegistry.d.ts.map +0 -1
  140. package/dist/src/server/ToolRegistry.js +0 -219
  141. package/dist/src/server/ToolRegistry.js.map +0 -1
  142. package/dist/src/server.d.ts +0 -7
  143. package/dist/src/server.d.ts.map +0 -1
  144. package/dist/src/server.js +0 -7
  145. package/dist/src/server.js.map +0 -1
  146. package/dist/src/tools/BaseToolManager.d.ts +0 -62
  147. package/dist/src/tools/BaseToolManager.d.ts.map +0 -1
  148. package/dist/src/tools/BaseToolManager.js +0 -195
  149. package/dist/src/tools/BaseToolManager.js.map +0 -1
  150. package/dist/src/tools/auth.d.ts +0 -50
  151. package/dist/src/tools/auth.d.ts.map +0 -1
  152. package/dist/src/tools/auth.js +0 -133
  153. package/dist/src/tools/auth.js.map +0 -1
  154. package/dist/src/tools/cache.d.ts +0 -260
  155. package/dist/src/tools/cache.d.ts.map +0 -1
  156. package/dist/src/tools/cache.js +0 -232
  157. package/dist/src/tools/cache.js.map +0 -1
  158. package/dist/src/tools/comments.d.ts +0 -33
  159. package/dist/src/tools/comments.d.ts.map +0 -1
  160. package/dist/src/tools/comments.js +0 -235
  161. package/dist/src/tools/comments.js.map +0 -1
  162. package/dist/src/tools/index.d.ts +0 -11
  163. package/dist/src/tools/index.d.ts.map +0 -1
  164. package/dist/src/tools/index.js +0 -11
  165. package/dist/src/tools/index.js.map +0 -1
  166. package/dist/src/tools/media.d.ts +0 -70
  167. package/dist/src/tools/media.d.ts.map +0 -1
  168. package/dist/src/tools/media.js +0 -248
  169. package/dist/src/tools/media.js.map +0 -1
  170. package/dist/src/tools/pages.d.ts +0 -32
  171. package/dist/src/tools/pages.d.ts.map +0 -1
  172. package/dist/src/tools/pages.js +0 -215
  173. package/dist/src/tools/pages.js.map +0 -1
  174. package/dist/src/tools/performance.d.ts +0 -73
  175. package/dist/src/tools/performance.d.ts.map +0 -1
  176. package/dist/src/tools/performance.js +0 -922
  177. package/dist/src/tools/performance.js.map +0 -1
  178. package/dist/src/tools/posts/PostHandlers.d.ts +0 -46
  179. package/dist/src/tools/posts/PostHandlers.d.ts.map +0 -1
  180. package/dist/src/tools/posts/PostHandlers.js +0 -400
  181. package/dist/src/tools/posts/PostHandlers.js.map +0 -1
  182. package/dist/src/tools/posts/PostToolDefinitions.d.ts +0 -37
  183. package/dist/src/tools/posts/PostToolDefinitions.d.ts.map +0 -1
  184. package/dist/src/tools/posts/PostToolDefinitions.js +0 -236
  185. package/dist/src/tools/posts/PostToolDefinitions.js.map +0 -1
  186. package/dist/src/tools/posts/index.d.ts +0 -138
  187. package/dist/src/tools/posts/index.d.ts.map +0 -1
  188. package/dist/src/tools/posts/index.js +0 -163
  189. package/dist/src/tools/posts/index.js.map +0 -1
  190. package/dist/src/tools/posts.d.ts +0 -15
  191. package/dist/src/tools/posts.d.ts.map +0 -1
  192. package/dist/src/tools/posts.js +0 -16
  193. package/dist/src/tools/posts.js.map +0 -1
  194. package/dist/src/tools/site.d.ts +0 -32
  195. package/dist/src/tools/site.d.ts.map +0 -1
  196. package/dist/src/tools/site.js +0 -234
  197. package/dist/src/tools/site.js.map +0 -1
  198. package/dist/src/tools/taxonomies.d.ts +0 -36
  199. package/dist/src/tools/taxonomies.d.ts.map +0 -1
  200. package/dist/src/tools/taxonomies.js +0 -286
  201. package/dist/src/tools/taxonomies.js.map +0 -1
  202. package/dist/src/tools/users.d.ts +0 -33
  203. package/dist/src/tools/users.d.ts.map +0 -1
  204. package/dist/src/tools/users.js +0 -308
  205. package/dist/src/tools/users.js.map +0 -1
  206. package/dist/src/types/client.d.ts +0 -223
  207. package/dist/src/types/client.d.ts.map +0 -1
  208. package/dist/src/types/client.js +0 -97
  209. package/dist/src/types/client.js.map +0 -1
  210. package/dist/src/types/enhanced.d.ts +0 -237
  211. package/dist/src/types/enhanced.d.ts.map +0 -1
  212. package/dist/src/types/enhanced.js +0 -49
  213. package/dist/src/types/enhanced.js.map +0 -1
  214. package/dist/src/types/index.d.ts +0 -160
  215. package/dist/src/types/index.d.ts.map +0 -1
  216. package/dist/src/types/index.js +0 -14
  217. package/dist/src/types/index.js.map +0 -1
  218. package/dist/src/types/mcp.d.ts +0 -178
  219. package/dist/src/types/mcp.d.ts.map +0 -1
  220. package/dist/src/types/mcp.js +0 -7
  221. package/dist/src/types/mcp.js.map +0 -1
  222. package/dist/src/types/requests.d.ts +0 -322
  223. package/dist/src/types/requests.d.ts.map +0 -1
  224. package/dist/src/types/requests.js +0 -8
  225. package/dist/src/types/requests.js.map +0 -1
  226. package/dist/src/types/tools.d.ts +0 -506
  227. package/dist/src/types/tools.d.ts.map +0 -1
  228. package/dist/src/types/tools.js +0 -8
  229. package/dist/src/types/tools.js.map +0 -1
  230. package/dist/src/types/wordpress.d.ts +0 -471
  231. package/dist/src/types/wordpress.d.ts.map +0 -1
  232. package/dist/src/types/wordpress.js +0 -14
  233. package/dist/src/types/wordpress.js.map +0 -1
  234. package/dist/src/utils/debug.d.ts +0 -71
  235. package/dist/src/utils/debug.d.ts.map +0 -1
  236. package/dist/src/utils/debug.js +0 -235
  237. package/dist/src/utils/debug.js.map +0 -1
  238. package/dist/src/utils/enhancedError.d.ts +0 -61
  239. package/dist/src/utils/enhancedError.d.ts.map +0 -1
  240. package/dist/src/utils/enhancedError.js +0 -221
  241. package/dist/src/utils/enhancedError.js.map +0 -1
  242. package/dist/src/utils/error.d.ts +0 -17
  243. package/dist/src/utils/error.d.ts.map +0 -1
  244. package/dist/src/utils/error.js +0 -108
  245. package/dist/src/utils/error.js.map +0 -1
  246. package/dist/src/utils/logger.d.ts +0 -106
  247. package/dist/src/utils/logger.d.ts.map +0 -1
  248. package/dist/src/utils/logger.js +0 -280
  249. package/dist/src/utils/logger.js.map +0 -1
  250. package/dist/src/utils/streaming.d.ts +0 -104
  251. package/dist/src/utils/streaming.d.ts.map +0 -1
  252. package/dist/src/utils/streaming.js +0 -331
  253. package/dist/src/utils/streaming.js.map +0 -1
  254. package/dist/src/utils/toolWrapper.d.ts +0 -42
  255. package/dist/src/utils/toolWrapper.d.ts.map +0 -1
  256. package/dist/src/utils/toolWrapper.js +0 -101
  257. package/dist/src/utils/toolWrapper.js.map +0 -1
  258. package/dist/src/utils/validation/core.d.ts +0 -21
  259. package/dist/src/utils/validation/core.d.ts.map +0 -1
  260. package/dist/src/utils/validation/core.js +0 -71
  261. package/dist/src/utils/validation/core.js.map +0 -1
  262. package/dist/src/utils/validation/index.d.ts +0 -25
  263. package/dist/src/utils/validation/index.d.ts.map +0 -1
  264. package/dist/src/utils/validation/index.js +0 -29
  265. package/dist/src/utils/validation/index.js.map +0 -1
  266. package/dist/src/utils/validation/network.d.ts +0 -19
  267. package/dist/src/utils/validation/network.d.ts.map +0 -1
  268. package/dist/src/utils/validation/network.js +0 -93
  269. package/dist/src/utils/validation/network.js.map +0 -1
  270. package/dist/src/utils/validation/rateLimit.d.ts +0 -21
  271. package/dist/src/utils/validation/rateLimit.d.ts.map +0 -1
  272. package/dist/src/utils/validation/rateLimit.js +0 -43
  273. package/dist/src/utils/validation/rateLimit.js.map +0 -1
  274. package/dist/src/utils/validation/security.d.ts +0 -29
  275. package/dist/src/utils/validation/security.d.ts.map +0 -1
  276. package/dist/src/utils/validation/security.js +0 -327
  277. package/dist/src/utils/validation/security.js.map +0 -1
  278. package/dist/src/utils/validation/wordpress.d.ts +0 -31
  279. package/dist/src/utils/validation/wordpress.d.ts.map +0 -1
  280. package/dist/src/utils/validation/wordpress.js +0 -146
  281. package/dist/src/utils/validation/wordpress.js.map +0 -1
  282. package/dist/src/utils/validation.d.ts +0 -15
  283. package/dist/src/utils/validation.d.ts.map +0 -1
  284. package/dist/src/utils/validation.js +0 -27
  285. package/dist/src/utils/validation.js.map +0 -1
  286. package/dist/tests/vitest.setup.d.ts +0 -6
  287. package/dist/tests/vitest.setup.d.ts.map +0 -1
  288. package/dist/tests/vitest.setup.js +0 -39
  289. package/dist/tests/vitest.setup.js.map +0 -1
@@ -1,235 +0,0 @@
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
- const queryParams = params;
145
- try {
146
- const comments = await client.getComments(queryParams);
147
- if (comments.length === 0) {
148
- return "No comments found matching the criteria.";
149
- }
150
- const content = `Found ${comments.length} comments:\n\n` +
151
- comments
152
- .map((c) => `- ID ${c.id}: By **${c.author_name}** on Post ${c.post} (${c.status})\n > ${c.content.rendered.substring(0, 100)}...`)
153
- .join("\n");
154
- return content;
155
- }
156
- catch (error) {
157
- throw new Error(`Failed to list comments: ${getErrorMessage(error)}`);
158
- }
159
- }
160
- async handleGetComment(client, params) {
161
- try {
162
- const { id } = params;
163
- const comment = await client.getComment(id);
164
- const content = `**Comment Details (ID: ${comment.id})**\n\n` +
165
- `- **Author:** ${comment.author_name}\n` +
166
- `- **Post ID:** ${comment.post}\n` +
167
- `- **Date:** ${new Date(comment.date).toLocaleString()}\n` +
168
- `- **Status:** ${comment.status}\n` +
169
- `- **Content:** ${comment.content.rendered}`;
170
- return content;
171
- }
172
- catch (error) {
173
- throw new Error(`Failed to get comment: ${getErrorMessage(error)}`);
174
- }
175
- }
176
- async handleCreateComment(client, params) {
177
- const createParams = params;
178
- try {
179
- const comment = await client.createComment(createParams);
180
- return `✅ Comment created successfully with ID: ${comment.id}`;
181
- }
182
- catch (error) {
183
- throw new Error(`Failed to create comment: ${getErrorMessage(error)}`);
184
- }
185
- }
186
- async handleUpdateComment(client, params) {
187
- try {
188
- const updateParams = params;
189
- const comment = await client.updateComment(updateParams);
190
- return `✅ Comment ${comment.id} updated successfully. New status: ${comment.status}.`;
191
- }
192
- catch (error) {
193
- throw new Error(`Failed to update comment: ${getErrorMessage(error)}`);
194
- }
195
- }
196
- async handleDeleteComment(client, params) {
197
- const { id, force } = params;
198
- try {
199
- await client.deleteComment(id, force);
200
- const action = force ? "permanently deleted" : "moved to trash";
201
- return `✅ Comment ${id} has been ${action}`;
202
- }
203
- catch (error) {
204
- throw new Error(`Failed to delete comment: ${getErrorMessage(error)}`);
205
- }
206
- }
207
- async handleApproveComment(client, params) {
208
- const { id } = params;
209
- try {
210
- const comment = await client.updateComment({
211
- id,
212
- status: "approved",
213
- });
214
- return `✅ Comment ${comment.id} has been approved.`;
215
- }
216
- catch (error) {
217
- throw new Error(`Failed to approve comment: ${getErrorMessage(error)}`);
218
- }
219
- }
220
- async handleSpamComment(client, params) {
221
- const { id } = params;
222
- try {
223
- const comment = await client.updateComment({
224
- id,
225
- status: "spam",
226
- });
227
- return `✅ Comment ${comment.id} has been marked as spam.`;
228
- }
229
- catch (error) {
230
- throw new Error(`Failed to mark comment as spam: ${getErrorMessage(error)}`);
231
- }
232
- }
233
- }
234
- export default CommentTools;
235
- //# sourceMappingURL=comments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../../src/tools/comments.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export { default as AuthTools } from "./auth.js";
2
- export { default as CacheTools } from "./cache.js";
3
- export { default as CommentTools } from "./comments.js";
4
- export { default as MediaTools } from "./media.js";
5
- export { default as PageTools } from "./pages.js";
6
- export { default as PerformanceTools } from "./performance.js";
7
- export { default as PostTools } from "./posts.js";
8
- export { default as SiteTools } from "./site.js";
9
- export { default as TaxonomyTools } from "./taxonomies.js";
10
- export { default as UserTools } from "./users.js";
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,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,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,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"}
@@ -1,11 +0,0 @@
1
- export { default as AuthTools } from "./auth.js";
2
- export { default as CacheTools } from "./cache.js";
3
- export { default as CommentTools } from "./comments.js";
4
- export { default as MediaTools } from "./media.js";
5
- export { default as PageTools } from "./pages.js";
6
- export { default as PerformanceTools } from "./performance.js";
7
- export { default as PostTools } from "./posts.js";
8
- export { default as SiteTools } from "./site.js";
9
- export { default as TaxonomyTools } from "./taxonomies.js";
10
- export { default as UserTools } from "./users.js";
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,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,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,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"}
@@ -1,70 +0,0 @@
1
- import { WordPressClient } from "../client/api.js";
2
- /**
3
- * Comprehensive media management tools for WordPress sites.
4
- *
5
- * This class provides complete media library functionality including:
6
- * - Listing media items with advanced filtering and search
7
- * - Uploading new media files with validation and optimization
8
- * - Retrieving detailed media information and metadata
9
- * - Updating media properties like title, description, and alt text
10
- * - Deleting media items with safety checks
11
- *
12
- * Supports all WordPress media types including images, videos, audio files,
13
- * and documents with proper MIME type validation and security checks.
14
- *
15
- * @example
16
- * ```typescript
17
- * const mediaTools = new MediaTools();
18
- * const tools = mediaTools.getTools();
19
- *
20
- * // Upload an image
21
- * const client = new WordPressClient(config);
22
- * const result = await mediaTools.handleUploadMedia(client, {
23
- * file_path: "/path/to/image.jpg",
24
- * title: "My Image",
25
- * alt_text: "Description of the image"
26
- * });
27
- * ```
28
- *
29
- * @since 1.0.0
30
- * @author MCP WordPress Team
31
- */
32
- export declare class MediaTools {
33
- /**
34
- * Retrieves the complete list of media management tools available for MCP.
35
- *
36
- * Returns an array of tool definitions for comprehensive media library management.
37
- * Each tool includes parameter validation, security checks, and detailed error handling.
38
- *
39
- * @returns {Array<MCPTool>} Array of MCPTool definitions for media management
40
- *
41
- * @example
42
- * ```typescript
43
- * const mediaTools = new MediaTools();
44
- * const tools = mediaTools.getTools();
45
- * console.log(tools.length); // 5 tools: list, get, upload, update, delete
46
- * ```
47
- *
48
- * @since 1.0.0
49
- */
50
- getTools(): Array<{
51
- name: string;
52
- description: string;
53
- parameters?: Array<{
54
- name: string;
55
- type?: string;
56
- description?: string;
57
- required?: boolean;
58
- enum?: string[];
59
- items?: unknown;
60
- }>;
61
- handler: (client: WordPressClient, params: Record<string, unknown>) => Promise<unknown>;
62
- }>;
63
- handleListMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
64
- handleGetMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
65
- handleUploadMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
66
- handleUpdateMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
67
- handleDeleteMedia(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
68
- }
69
- export default MediaTools;
70
- //# sourceMappingURL=media.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/tools/media.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,UAAU;IACrB;;;;;;;;;;;;;;;;OAgBG;IACI,QAAQ,IAAI,KAAK,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QAChI,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACzF,CAAC;IAkIW,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB3F,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB1F,iBAAiB,CAC5B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC;IAcN,iBAAiB,CAC5B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC;IAUN,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAU3G;AAED,eAAe,UAAU,CAAC"}
@@ -1,248 +0,0 @@
1
- import * as fs from "fs";
2
- import { getErrorMessage } from "../utils/error.js";
3
- /**
4
- * Comprehensive media management tools for WordPress sites.
5
- *
6
- * This class provides complete media library functionality including:
7
- * - Listing media items with advanced filtering and search
8
- * - Uploading new media files with validation and optimization
9
- * - Retrieving detailed media information and metadata
10
- * - Updating media properties like title, description, and alt text
11
- * - Deleting media items with safety checks
12
- *
13
- * Supports all WordPress media types including images, videos, audio files,
14
- * and documents with proper MIME type validation and security checks.
15
- *
16
- * @example
17
- * ```typescript
18
- * const mediaTools = new MediaTools();
19
- * const tools = mediaTools.getTools();
20
- *
21
- * // Upload an image
22
- * const client = new WordPressClient(config);
23
- * const result = await mediaTools.handleUploadMedia(client, {
24
- * file_path: "/path/to/image.jpg",
25
- * title: "My Image",
26
- * alt_text: "Description of the image"
27
- * });
28
- * ```
29
- *
30
- * @since 1.0.0
31
- * @author MCP WordPress Team
32
- */
33
- export class MediaTools {
34
- /**
35
- * Retrieves the complete list of media management tools available for MCP.
36
- *
37
- * Returns an array of tool definitions for comprehensive media library management.
38
- * Each tool includes parameter validation, security checks, and detailed error handling.
39
- *
40
- * @returns {Array<MCPTool>} Array of MCPTool definitions for media management
41
- *
42
- * @example
43
- * ```typescript
44
- * const mediaTools = new MediaTools();
45
- * const tools = mediaTools.getTools();
46
- * console.log(tools.length); // 5 tools: list, get, upload, update, delete
47
- * ```
48
- *
49
- * @since 1.0.0
50
- */
51
- getTools() {
52
- return [
53
- {
54
- name: "wp_list_media",
55
- description: "Lists media items from a WordPress site, with filters.",
56
- parameters: [
57
- {
58
- name: "per_page",
59
- type: "number",
60
- description: "Number of items to return per page (max 100).",
61
- },
62
- {
63
- name: "search",
64
- type: "string",
65
- description: "Limit results to those matching a search term.",
66
- },
67
- {
68
- name: "media_type",
69
- type: "string",
70
- description: "Limit results to a specific media type.",
71
- enum: ["image", "video", "audio", "application"],
72
- },
73
- ],
74
- handler: this.handleListMedia.bind(this),
75
- },
76
- {
77
- name: "wp_get_media",
78
- description: "Retrieves a single media item by its ID.",
79
- parameters: [
80
- {
81
- name: "id",
82
- type: "number",
83
- required: true,
84
- description: "The unique identifier for the media item.",
85
- },
86
- ],
87
- handler: this.handleGetMedia.bind(this),
88
- },
89
- {
90
- name: "wp_upload_media",
91
- description: "Uploads a file to the WordPress media library.",
92
- parameters: [
93
- {
94
- name: "file_path",
95
- type: "string",
96
- required: true,
97
- description: "The local, absolute path to the file to upload.",
98
- },
99
- {
100
- name: "title",
101
- type: "string",
102
- description: "The title for the media item.",
103
- },
104
- {
105
- name: "alt_text",
106
- type: "string",
107
- description: "Alternative text for the media item (for accessibility).",
108
- },
109
- {
110
- name: "caption",
111
- type: "string",
112
- description: "The caption for the media item.",
113
- },
114
- {
115
- name: "description",
116
- type: "string",
117
- description: "The description for the media item.",
118
- },
119
- {
120
- name: "post",
121
- type: "number",
122
- description: "The ID of a post to attach this media to.",
123
- },
124
- ],
125
- handler: this.handleUploadMedia.bind(this),
126
- },
127
- {
128
- name: "wp_update_media",
129
- description: "Updates the metadata of an existing media item.",
130
- parameters: [
131
- {
132
- name: "id",
133
- type: "number",
134
- required: true,
135
- description: "The ID of the media item to update.",
136
- },
137
- {
138
- name: "title",
139
- type: "string",
140
- description: "The new title for the media item.",
141
- },
142
- {
143
- name: "alt_text",
144
- type: "string",
145
- description: "The new alternative text.",
146
- },
147
- {
148
- name: "caption",
149
- type: "string",
150
- description: "The new caption.",
151
- },
152
- {
153
- name: "description",
154
- type: "string",
155
- description: "The new description.",
156
- },
157
- ],
158
- handler: this.handleUpdateMedia.bind(this),
159
- },
160
- {
161
- name: "wp_delete_media",
162
- description: "Deletes a media item.",
163
- parameters: [
164
- {
165
- name: "id",
166
- type: "number",
167
- required: true,
168
- description: "The ID of the media item to delete.",
169
- },
170
- {
171
- name: "force",
172
- type: "boolean",
173
- description: "If true, permanently delete. If false, move to trash. Defaults to false.",
174
- },
175
- ],
176
- handler: this.handleDeleteMedia.bind(this),
177
- },
178
- ];
179
- }
180
- async handleListMedia(client, params) {
181
- const queryParams = params;
182
- try {
183
- const media = await client.getMedia(queryParams);
184
- if (media.length === 0) {
185
- return "No media items found matching the criteria.";
186
- }
187
- const content = `Found ${media.length} media items:\n\n` +
188
- media.map((m) => `- ID ${m.id}: **${m.title.rendered}** (${m.mime_type})\n Link: ${m.source_url}`).join("\n");
189
- return content;
190
- }
191
- catch (error) {
192
- throw new Error(`Failed to list media: ${getErrorMessage(error)}`);
193
- }
194
- }
195
- async handleGetMedia(client, params) {
196
- const { id } = params;
197
- try {
198
- const media = await client.getMediaItem(id);
199
- const content = `**Media Details (ID: ${media.id})**\n\n` +
200
- `- **Title:** ${media.title.rendered}\n` +
201
- `- **URL:** ${media.source_url}\n` +
202
- `- **Type:** ${media.media_type} (${media.mime_type})\n` +
203
- `- **Date:** ${new Date(media.date).toLocaleString()}\n` +
204
- (media.alt_text ? `- **Alt Text:** ${media.alt_text}\n` : "") +
205
- (media.caption.rendered ? `- **Caption:** ${media.caption.rendered}\n` : "");
206
- return content;
207
- }
208
- catch (error) {
209
- throw new Error(`Failed to get media item: ${getErrorMessage(error)}`);
210
- }
211
- }
212
- async handleUploadMedia(client, params) {
213
- const uploadParams = params;
214
- try {
215
- if (!fs.existsSync(uploadParams.file_path)) {
216
- throw new Error(`File not found at path: ${uploadParams.file_path}`);
217
- }
218
- const media = await client.uploadMedia(uploadParams);
219
- return `✅ Media uploaded successfully!\n- ID: ${media.id}\n- Title: ${media.title.rendered}\n- URL: ${media.source_url}`;
220
- }
221
- catch (error) {
222
- throw new Error(`Failed to upload media: ${getErrorMessage(error)}`);
223
- }
224
- }
225
- async handleUpdateMedia(client, params) {
226
- const updateParams = params;
227
- try {
228
- const media = await client.updateMedia(updateParams);
229
- return `✅ Media ${media.id} updated successfully.`;
230
- }
231
- catch (error) {
232
- throw new Error(`Failed to update media: ${getErrorMessage(error)}`);
233
- }
234
- }
235
- async handleDeleteMedia(client, params) {
236
- const { id, force } = params;
237
- try {
238
- await client.deleteMedia(id, force);
239
- const action = force ? "permanently deleted" : "moved to trash";
240
- return `✅ Media item ${id} has been ${action}`;
241
- }
242
- catch (error) {
243
- throw new Error(`Failed to delete media: ${getErrorMessage(error)}`);
244
- }
245
- }
246
- }
247
- export default MediaTools;
248
- //# sourceMappingURL=media.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/tools/media.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import { WordPressClient } from "../client/api.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 declare class PageTools {
7
- /**
8
- * Retrieves the list of page management tools.
9
- * @returns An array of MCPTool definitions.
10
- */
11
- getTools(): Array<{
12
- name: string;
13
- description: string;
14
- parameters?: Array<{
15
- name: string;
16
- type?: string;
17
- description?: string;
18
- required?: boolean;
19
- enum?: string[];
20
- items?: unknown;
21
- }>;
22
- handler: (client: WordPressClient, params: Record<string, unknown>) => Promise<unknown>;
23
- }>;
24
- handleListPages(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
25
- handleGetPage(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
26
- handleCreatePage(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
27
- handleUpdatePage(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
28
- handleDeletePage(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
29
- handleGetPageRevisions(client: WordPressClient, params: Record<string, unknown>): Promise<unknown>;
30
- }
31
- export default PageTools;
32
- //# sourceMappingURL=pages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../src/tools/pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD;;;GAGG;AACH,qBAAa,SAAS;IACpB;;;OAGG;IACI,QAAQ,IAAI,KAAK,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QAChI,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACzF,CAAC;IA6HW,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB3F,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBzF,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5F,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5F,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAW5F,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAiBhH;AAED,eAAe,SAAS,CAAC"}