mcp-wordpress 2.9.2 → 2.9.3

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.
@@ -75,49 +75,49 @@ export declare class PostTools {
75
75
  * Lists WordPress posts with advanced filtering capabilities.
76
76
  *
77
77
  * @param client - WordPress client instance
78
- * @param params - Query parameters for filtering posts
78
+ * @param params - Query parameters for filtering posts (may include MCP fields)
79
79
  * @returns Formatted list of posts or error message
80
80
  */
81
- handleListPosts(client: WordPressClient, params: PostQueryParams): Promise<WordPressPost[] | string>;
81
+ handleListPosts(client: WordPressClient, params: PostQueryParams | Record<string, unknown>): Promise<WordPressPost[] | string>;
82
82
  /**
83
83
  * Retrieves a single WordPress post with detailed information.
84
84
  *
85
85
  * @param client - WordPress client instance
86
- * @param params - Parameters including post ID
86
+ * @param params - Parameters including post ID (may include MCP fields)
87
87
  * @returns Detailed post information or error message
88
88
  */
89
89
  handleGetPost(client: WordPressClient, params: {
90
90
  id: number;
91
- }): Promise<WordPressPost | string>;
91
+ } | Record<string, unknown>): Promise<WordPressPost | string>;
92
92
  /**
93
93
  * Creates a new WordPress post with validation and feedback.
94
94
  *
95
95
  * @param client - WordPress client instance
96
- * @param params - Post creation parameters
96
+ * @param params - Post creation parameters (may include additional MCP fields like 'site')
97
97
  * @returns Created post information or error message
98
98
  */
99
- handleCreatePost(client: WordPressClient, params: CreatePostRequest): Promise<WordPressPost | string>;
99
+ handleCreatePost(client: WordPressClient, params: CreatePostRequest | Record<string, unknown>): Promise<WordPressPost | string>;
100
100
  /**
101
101
  * Updates an existing WordPress post with change tracking.
102
102
  *
103
103
  * @param client - WordPress client instance
104
- * @param params - Post update parameters including ID
104
+ * @param params - Post update parameters including ID (may include MCP fields)
105
105
  * @returns Updated post information or error message
106
106
  */
107
- handleUpdatePost(client: WordPressClient, params: UpdatePostRequest & {
107
+ handleUpdatePost(client: WordPressClient, params: (UpdatePostRequest & {
108
108
  id: number;
109
- }): Promise<WordPressPost | string>;
109
+ }) | Record<string, unknown>): Promise<WordPressPost | string>;
110
110
  /**
111
111
  * Deletes a WordPress post with options for trash or permanent deletion.
112
112
  *
113
113
  * @param client - WordPress client instance
114
- * @param params - Deletion parameters including ID and force option
114
+ * @param params - Deletion parameters including ID and force option (may include MCP fields)
115
115
  * @returns Deletion result or error message
116
116
  */
117
117
  handleDeletePost(client: WordPressClient, params: {
118
118
  id: number;
119
119
  force?: boolean;
120
- }): Promise<{
120
+ } | Record<string, unknown>): Promise<{
121
121
  deleted: boolean;
122
122
  previous?: WordPressPost;
123
123
  } | string>;
@@ -125,12 +125,12 @@ export declare class PostTools {
125
125
  * Retrieves revision history for a WordPress post.
126
126
  *
127
127
  * @param client - WordPress client instance
128
- * @param params - Parameters including post ID
128
+ * @param params - Parameters including post ID (may include MCP fields)
129
129
  * @returns Post revisions or error message
130
130
  */
131
131
  handleGetPostRevisions(client: WordPressClient, params: {
132
132
  id: number;
133
- }): Promise<WordPressPost[] | string>;
133
+ } | Record<string, unknown>): Promise<WordPressPost[] | string>;
134
134
  }
135
135
  export { postToolDefinitions } from "./PostToolDefinitions.js";
136
136
  export * from "./PostHandlers.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/posts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAW5G;;;;;;;;;;;;;GAaG;AACH,qBAAa,SAAS;IACpB;;;;;;;;;;;;;;;OAeG;IACI,QAAQ,IAAI,OAAO,EAAE;IAO5B;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;;;;;OAMG;IACU,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC;IAIjH;;;;;;OAMG;IACU,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;IAI5G;;;;;;OAMG;IACU,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;IAIlH;;;;;;OAMG;IACU,gBAAgB,CAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,iBAAiB,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GACzC,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;IAIlC;;;;;;OAMG;IACU,gBAAgB,CAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;KAAE,GAAG,MAAM,CAAC;IAInE;;;;;;OAMG;IACU,sBAAsB,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GACrB,OAAO,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC;CAGrC;AAGD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,cAAc,mBAAmB,CAAC;AAGlC,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/posts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAc,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWxH;;;;;;;;;;;;;GAaG;AACH,qBAAa,SAAS;IACpB;;;;;;;;;;;;;;;OAeG;IACI,QAAQ,IAAI,OAAO,EAAE;IAO5B;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;;;;;OAMG;IACU,eAAe,CAC1B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChD,OAAO,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC;IAyBpC;;;;;;OAMG;IACU,aAAa,CACxB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;IASlC;;;;;;OAMG;IACU,gBAAgB,CAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClD,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;IAiBlC;;;;;;OAMG;IACU,gBAAgB,CAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,iBAAiB,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrE,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;IAkBlC;;;;;;OAMG;IACU,gBAAgB,CAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChE,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;KAAE,GAAG,MAAM,CAAC;IAanE;;;;;;OAMG;IACU,sBAAsB,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,OAAO,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC;CAQrC;AAGD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,cAAc,mBAAmB,CAAC;AAGlC,eAAe,SAAS,CAAC"}
@@ -98,61 +98,142 @@ export class PostTools {
98
98
  * Lists WordPress posts with advanced filtering capabilities.
99
99
  *
100
100
  * @param client - WordPress client instance
101
- * @param params - Query parameters for filtering posts
101
+ * @param params - Query parameters for filtering posts (may include MCP fields)
102
102
  * @returns Formatted list of posts or error message
103
103
  */
104
104
  async handleListPosts(client, params) {
105
- return handleListPosts(client, params);
105
+ // Extract only the relevant query parameters, excluding MCP-specific fields
106
+ const queryParams = {};
107
+ if (params.page !== undefined)
108
+ queryParams.page = params.page;
109
+ if (params.per_page !== undefined)
110
+ queryParams.per_page = params.per_page;
111
+ if (params.search !== undefined)
112
+ queryParams.search = params.search;
113
+ if (params.orderby !== undefined)
114
+ queryParams.orderby = params.orderby;
115
+ if (params.order !== undefined)
116
+ queryParams.order = params.order;
117
+ if (params.status !== undefined) {
118
+ // Handle both string and array forms
119
+ const statusValue = params.status;
120
+ if (Array.isArray(statusValue)) {
121
+ queryParams.status = statusValue;
122
+ }
123
+ else {
124
+ queryParams.status = [statusValue];
125
+ }
126
+ }
127
+ if (params.categories !== undefined)
128
+ queryParams.categories = params.categories;
129
+ if (params.tags !== undefined)
130
+ queryParams.tags = params.tags;
131
+ if (params.offset !== undefined)
132
+ queryParams.offset = params.offset;
133
+ return handleListPosts(client, queryParams);
106
134
  }
107
135
  /**
108
136
  * Retrieves a single WordPress post with detailed information.
109
137
  *
110
138
  * @param client - WordPress client instance
111
- * @param params - Parameters including post ID
139
+ * @param params - Parameters including post ID (may include MCP fields)
112
140
  * @returns Detailed post information or error message
113
141
  */
114
142
  async handleGetPost(client, params) {
115
- return handleGetPost(client, params);
143
+ // Extract only the relevant parameters
144
+ const postParams = {
145
+ id: params.id,
146
+ };
147
+ return handleGetPost(client, postParams);
116
148
  }
117
149
  /**
118
150
  * Creates a new WordPress post with validation and feedback.
119
151
  *
120
152
  * @param client - WordPress client instance
121
- * @param params - Post creation parameters
153
+ * @param params - Post creation parameters (may include additional MCP fields like 'site')
122
154
  * @returns Created post information or error message
123
155
  */
124
156
  async handleCreatePost(client, params) {
125
- return handleCreatePost(client, params);
157
+ // Extract only the relevant post creation parameters, excluding MCP-specific fields like 'site'
158
+ const postParams = {
159
+ title: params.title,
160
+ };
161
+ if (params.content !== undefined)
162
+ postParams.content = params.content;
163
+ if (params.status !== undefined)
164
+ postParams.status = params.status;
165
+ if (params.excerpt !== undefined)
166
+ postParams.excerpt = params.excerpt;
167
+ if (params.categories !== undefined)
168
+ postParams.categories = params.categories;
169
+ if (params.tags !== undefined)
170
+ postParams.tags = params.tags;
171
+ if (params.featured_media !== undefined)
172
+ postParams.featured_media = params.featured_media;
173
+ if (params.date !== undefined)
174
+ postParams.date = params.date;
175
+ return handleCreatePost(client, postParams);
126
176
  }
127
177
  /**
128
178
  * Updates an existing WordPress post with change tracking.
129
179
  *
130
180
  * @param client - WordPress client instance
131
- * @param params - Post update parameters including ID
181
+ * @param params - Post update parameters including ID (may include MCP fields)
132
182
  * @returns Updated post information or error message
133
183
  */
134
184
  async handleUpdatePost(client, params) {
135
- return handleUpdatePost(client, params);
185
+ // Extract only the relevant update parameters
186
+ const updateParams = {
187
+ id: params.id,
188
+ };
189
+ if (params.title !== undefined)
190
+ updateParams.title = params.title;
191
+ if (params.content !== undefined)
192
+ updateParams.content = params.content;
193
+ if (params.status !== undefined)
194
+ updateParams.status = params.status;
195
+ if (params.excerpt !== undefined)
196
+ updateParams.excerpt = params.excerpt;
197
+ if (params.categories !== undefined)
198
+ updateParams.categories = params.categories;
199
+ if (params.tags !== undefined)
200
+ updateParams.tags = params.tags;
201
+ if (params.featured_media !== undefined)
202
+ updateParams.featured_media = params.featured_media;
203
+ if (params.date !== undefined)
204
+ updateParams.date = params.date;
205
+ return handleUpdatePost(client, updateParams);
136
206
  }
137
207
  /**
138
208
  * Deletes a WordPress post with options for trash or permanent deletion.
139
209
  *
140
210
  * @param client - WordPress client instance
141
- * @param params - Deletion parameters including ID and force option
211
+ * @param params - Deletion parameters including ID and force option (may include MCP fields)
142
212
  * @returns Deletion result or error message
143
213
  */
144
214
  async handleDeletePost(client, params) {
145
- return handleDeletePost(client, params);
215
+ // Extract only the relevant parameters
216
+ const deleteParams = {
217
+ id: params.id,
218
+ };
219
+ if (params.force !== undefined) {
220
+ deleteParams.force = params.force;
221
+ }
222
+ return handleDeletePost(client, deleteParams);
146
223
  }
147
224
  /**
148
225
  * Retrieves revision history for a WordPress post.
149
226
  *
150
227
  * @param client - WordPress client instance
151
- * @param params - Parameters including post ID
228
+ * @param params - Parameters including post ID (may include MCP fields)
152
229
  * @returns Post revisions or error message
153
230
  */
154
231
  async handleGetPostRevisions(client, params) {
155
- return handleGetPostRevisions(client, params);
232
+ // Extract only the relevant parameters
233
+ const revisionParams = {
234
+ id: params.id,
235
+ };
236
+ return handleGetPostRevisions(client, revisionParams);
156
237
  }
157
238
  }
158
239
  // Export everything for easy imports
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/posts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,SAAS;IACpB;;;;;;;;;;;;;;;OAeG;IACI,QAAQ;QACb,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3C,GAAG,OAAO;YACV,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;SAC9C,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;;;;OASG;IACK,iBAAiB,CAAC,QAAgB;QACxC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,qDAAqD;IAErD;;;;;;OAMG;IACI,KAAK,CAAC,eAAe,CAAC,MAAuB,EAAE,MAAuB;QAC3E,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CAAC,MAAuB,EAAE,MAAsB;QACxE,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,gBAAgB,CAAC,MAAuB,EAAE,MAAyB;QAC9E,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,gBAAgB,CAC3B,MAAuB,EACvB,MAA0C;QAE1C,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,gBAAgB,CAC3B,MAAuB,EACvB,MAAuC;QAEvC,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,sBAAsB,CACjC,MAAuB,EACvB,MAAsB;QAEtB,OAAO,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;CACF;AAED,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,cAAc,mBAAmB,CAAC;AAElC,6CAA6C;AAC7C,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/posts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,SAAS;IACpB;;;;;;;;;;;;;;;OAeG;IACI,QAAQ;QACb,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3C,GAAG,OAAO;YACV,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;SAC9C,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;;;;OASG;IACK,iBAAiB,CAAC,QAAgB;QACxC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,qDAAqD;IAErD;;;;;;OAMG;IACI,KAAK,CAAC,eAAe,CAC1B,MAAuB,EACvB,MAAiD;QAEjD,4EAA4E;QAC5E,MAAM,WAAW,GAAoB,EAAE,CAAC;QAExC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;QACxE,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAkB,CAAC;QACpF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAC;QAC9E,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,OAAiB,CAAC;QACjF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAuB,CAAC;QACnF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,qCAAqC;YACrC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,WAAW,CAAC,MAAM,GAAG,WAA2B,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,MAAM,GAAG,CAAC,WAAyB,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAsB,CAAC;QAC5F,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAgB,CAAC;QAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAC;QAE9E,OAAO,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CACxB,MAAuB,EACvB,MAAgD;QAEhD,uCAAuC;QACvC,MAAM,UAAU,GAAG;YACjB,EAAE,EAAE,MAAM,CAAC,EAAY;SACxB,CAAC;QAEF,OAAO,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,gBAAgB,CAC3B,MAAuB,EACvB,MAAmD;QAEnD,gGAAgG;QAChG,MAAM,UAAU,GAAsB;YACpC,KAAK,EAAE,MAAM,CAAC,KAAe;SAC9B,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,OAAiB,CAAC;QAChF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAoB,CAAC;QACjF,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,OAAiB,CAAC;QAChF,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,UAAsB,CAAC;QAC3F,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,IAAgB,CAAC;QACzE,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;YAAE,UAAU,CAAC,cAAc,GAAG,MAAM,CAAC,cAAwB,CAAC;QACrG,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;QAEvE,OAAO,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,gBAAgB,CAC3B,MAAuB,EACvB,MAAsE;QAEtE,8CAA8C;QAC9C,MAAM,YAAY,GAAuC;YACvD,EAAE,EAAE,MAAM,CAAC,EAAY;SACxB,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,KAAe,CAAC;QAC5E,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,OAAiB,CAAC;QAClF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAoB,CAAC;QACnF,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,OAAiB,CAAC;QAClF,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC,UAAsB,CAAC;QAC7F,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,IAAgB,CAAC;QAC3E,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;YAAE,YAAY,CAAC,cAAc,GAAG,MAAM,CAAC,cAAwB,CAAC;QACvG,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;QAEzE,OAAO,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,gBAAgB,CAC3B,MAAuB,EACvB,MAAiE;QAEjE,uCAAuC;QACvC,MAAM,YAAY,GAAoC;YACpD,EAAE,EAAE,MAAM,CAAC,EAAY;SACxB,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,KAAgB,CAAC;QAC/C,CAAC;QAED,OAAO,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,sBAAsB,CACjC,MAAuB,EACvB,MAAgD;QAEhD,uCAAuC;QACvC,MAAM,cAAc,GAAG;YACrB,EAAE,EAAE,MAAM,CAAC,EAAY;SACxB,CAAC;QAEF,OAAO,sBAAsB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACxD,CAAC;CACF;AAED,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,cAAc,mBAAmB,CAAC;AAElC,6CAA6C;AAC7C,eAAe,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-wordpress",
3
- "version": "2.9.2",
3
+ "version": "2.9.3",
4
4
  "description": "Comprehensive Model Context Protocol server for WordPress management with composition-based architecture, 59 tools, SEO toolkit, performance monitoring, intelligent caching, and production-ready authentication",
5
5
  "keywords": [
6
6
  "mcp",
@@ -28,7 +28,7 @@
28
28
  */
29
29
 
30
30
  import { WordPressClient } from "@/client/api.js";
31
- import { CreatePostRequest, PostQueryParams, UpdatePostRequest, WordPressPost } from "@/types/wordpress.js";
31
+ import { CreatePostRequest, PostQueryParams, PostStatus, UpdatePostRequest, WordPressPost } from "@/types/wordpress.js";
32
32
  import { postToolDefinitions } from "./PostToolDefinitions.js";
33
33
  import {
34
34
  handleListPosts,
@@ -112,75 +112,151 @@ export class PostTools {
112
112
  * Lists WordPress posts with advanced filtering capabilities.
113
113
  *
114
114
  * @param client - WordPress client instance
115
- * @param params - Query parameters for filtering posts
115
+ * @param params - Query parameters for filtering posts (may include MCP fields)
116
116
  * @returns Formatted list of posts or error message
117
117
  */
118
- public async handleListPosts(client: WordPressClient, params: PostQueryParams): Promise<WordPressPost[] | string> {
119
- return handleListPosts(client, params);
118
+ public async handleListPosts(
119
+ client: WordPressClient,
120
+ params: PostQueryParams | Record<string, unknown>,
121
+ ): Promise<WordPressPost[] | string> {
122
+ // Extract only the relevant query parameters, excluding MCP-specific fields
123
+ const queryParams: PostQueryParams = {};
124
+
125
+ if (params.page !== undefined) queryParams.page = params.page as number;
126
+ if (params.per_page !== undefined) queryParams.per_page = params.per_page as number;
127
+ if (params.search !== undefined) queryParams.search = params.search as string;
128
+ if (params.orderby !== undefined) queryParams.orderby = params.orderby as string;
129
+ if (params.order !== undefined) queryParams.order = params.order as "asc" | "desc";
130
+ if (params.status !== undefined) {
131
+ // Handle both string and array forms
132
+ const statusValue = params.status;
133
+ if (Array.isArray(statusValue)) {
134
+ queryParams.status = statusValue as PostStatus[];
135
+ } else {
136
+ queryParams.status = [statusValue as PostStatus];
137
+ }
138
+ }
139
+ if (params.categories !== undefined) queryParams.categories = params.categories as number[];
140
+ if (params.tags !== undefined) queryParams.tags = params.tags as number[];
141
+ if (params.offset !== undefined) queryParams.offset = params.offset as number;
142
+
143
+ return handleListPosts(client, queryParams);
120
144
  }
121
145
 
122
146
  /**
123
147
  * Retrieves a single WordPress post with detailed information.
124
148
  *
125
149
  * @param client - WordPress client instance
126
- * @param params - Parameters including post ID
150
+ * @param params - Parameters including post ID (may include MCP fields)
127
151
  * @returns Detailed post information or error message
128
152
  */
129
- public async handleGetPost(client: WordPressClient, params: { id: number }): Promise<WordPressPost | string> {
130
- return handleGetPost(client, params);
153
+ public async handleGetPost(
154
+ client: WordPressClient,
155
+ params: { id: number } | Record<string, unknown>,
156
+ ): Promise<WordPressPost | string> {
157
+ // Extract only the relevant parameters
158
+ const postParams = {
159
+ id: params.id as number,
160
+ };
161
+
162
+ return handleGetPost(client, postParams);
131
163
  }
132
164
 
133
165
  /**
134
166
  * Creates a new WordPress post with validation and feedback.
135
167
  *
136
168
  * @param client - WordPress client instance
137
- * @param params - Post creation parameters
169
+ * @param params - Post creation parameters (may include additional MCP fields like 'site')
138
170
  * @returns Created post information or error message
139
171
  */
140
- public async handleCreatePost(client: WordPressClient, params: CreatePostRequest): Promise<WordPressPost | string> {
141
- return handleCreatePost(client, params);
172
+ public async handleCreatePost(
173
+ client: WordPressClient,
174
+ params: CreatePostRequest | Record<string, unknown>,
175
+ ): Promise<WordPressPost | string> {
176
+ // Extract only the relevant post creation parameters, excluding MCP-specific fields like 'site'
177
+ const postParams: CreatePostRequest = {
178
+ title: params.title as string,
179
+ };
180
+
181
+ if (params.content !== undefined) postParams.content = params.content as string;
182
+ if (params.status !== undefined) postParams.status = params.status as PostStatus;
183
+ if (params.excerpt !== undefined) postParams.excerpt = params.excerpt as string;
184
+ if (params.categories !== undefined) postParams.categories = params.categories as number[];
185
+ if (params.tags !== undefined) postParams.tags = params.tags as number[];
186
+ if (params.featured_media !== undefined) postParams.featured_media = params.featured_media as number;
187
+ if (params.date !== undefined) postParams.date = params.date as string;
188
+
189
+ return handleCreatePost(client, postParams);
142
190
  }
143
191
 
144
192
  /**
145
193
  * Updates an existing WordPress post with change tracking.
146
194
  *
147
195
  * @param client - WordPress client instance
148
- * @param params - Post update parameters including ID
196
+ * @param params - Post update parameters including ID (may include MCP fields)
149
197
  * @returns Updated post information or error message
150
198
  */
151
199
  public async handleUpdatePost(
152
200
  client: WordPressClient,
153
- params: UpdatePostRequest & { id: number },
201
+ params: (UpdatePostRequest & { id: number }) | Record<string, unknown>,
154
202
  ): Promise<WordPressPost | string> {
155
- return handleUpdatePost(client, params);
203
+ // Extract only the relevant update parameters
204
+ const updateParams: UpdatePostRequest & { id: number } = {
205
+ id: params.id as number,
206
+ };
207
+
208
+ if (params.title !== undefined) updateParams.title = params.title as string;
209
+ if (params.content !== undefined) updateParams.content = params.content as string;
210
+ if (params.status !== undefined) updateParams.status = params.status as PostStatus;
211
+ if (params.excerpt !== undefined) updateParams.excerpt = params.excerpt as string;
212
+ if (params.categories !== undefined) updateParams.categories = params.categories as number[];
213
+ if (params.tags !== undefined) updateParams.tags = params.tags as number[];
214
+ if (params.featured_media !== undefined) updateParams.featured_media = params.featured_media as number;
215
+ if (params.date !== undefined) updateParams.date = params.date as string;
216
+
217
+ return handleUpdatePost(client, updateParams);
156
218
  }
157
219
 
158
220
  /**
159
221
  * Deletes a WordPress post with options for trash or permanent deletion.
160
222
  *
161
223
  * @param client - WordPress client instance
162
- * @param params - Deletion parameters including ID and force option
224
+ * @param params - Deletion parameters including ID and force option (may include MCP fields)
163
225
  * @returns Deletion result or error message
164
226
  */
165
227
  public async handleDeletePost(
166
228
  client: WordPressClient,
167
- params: { id: number; force?: boolean },
229
+ params: { id: number; force?: boolean } | Record<string, unknown>,
168
230
  ): Promise<{ deleted: boolean; previous?: WordPressPost } | string> {
169
- return handleDeletePost(client, params);
231
+ // Extract only the relevant parameters
232
+ const deleteParams: { id: number; force?: boolean } = {
233
+ id: params.id as number,
234
+ };
235
+
236
+ if (params.force !== undefined) {
237
+ deleteParams.force = params.force as boolean;
238
+ }
239
+
240
+ return handleDeletePost(client, deleteParams);
170
241
  }
171
242
 
172
243
  /**
173
244
  * Retrieves revision history for a WordPress post.
174
245
  *
175
246
  * @param client - WordPress client instance
176
- * @param params - Parameters including post ID
247
+ * @param params - Parameters including post ID (may include MCP fields)
177
248
  * @returns Post revisions or error message
178
249
  */
179
250
  public async handleGetPostRevisions(
180
251
  client: WordPressClient,
181
- params: { id: number },
252
+ params: { id: number } | Record<string, unknown>,
182
253
  ): Promise<WordPressPost[] | string> {
183
- return handleGetPostRevisions(client, params);
254
+ // Extract only the relevant parameters
255
+ const revisionParams = {
256
+ id: params.id as number,
257
+ };
258
+
259
+ return handleGetPostRevisions(client, revisionParams);
184
260
  }
185
261
  }
186
262