mcp-wordpress 2.9.2 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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.
|
|
3
|
+
"version": "2.10.0",
|
|
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",
|
package/src/tools/posts/index.ts
CHANGED
|
@@ -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(
|
|
119
|
-
|
|
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(
|
|
130
|
-
|
|
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(
|
|
141
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|