You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove standalone approve-comment and spam-comment tools. Status changes are now handled via the status param on save-comment, which accepts: approve, approved, hold, unapproved, spam, or trash.
Add normalize_comment_status() to map user-facing aliases to the values expected by wp_insert_comment and wp_set_comment_status. Update save_comment_tool to apply status via wp_set_comment_status when provided. Tool count updated from 55 to 53 in unit and integration tests.
$this->add_ability( self::INTERNAL_PREFIX . 'spam-comment', 'Spam Comment', 'Mark a WordPress comment as spam by ID', $id_schema, function ( $params ) {
assert_same( array( 'page' ), array_column( $public_hierarchical_post_types['message']['post_types'], 'slug' ), 'Post type list should pass filters through to get_post_types().' );
assert_same( 55, count( $wp_ability_names ), 'Expected all abilities to be available for the MCP adapter.' );
296
+
assert_same( 53, count( $wp_ability_names ), 'Expected all abilities to be available for the MCP adapter.' );
299
297
assert_true( in_array( 'wp-forge/search-content', $wp_ability_names, true ), 'Adapter ability list should use WordPress ability names.' );
300
298
301
299
$abilities->register_wordpress_abilities();
302
-
assert_same( 55, count( $registered_abilities ), 'Expected every ability to be registered with the WordPress Abilities API.' );
300
+
assert_same( 53, count( $registered_abilities ), 'Expected every ability to be registered with the WordPress Abilities API.' );
303
301
assert_true( isset( $registered_abilities['wp-forge/search-content'] ), 'Content search should be registered with the WordPress Abilities API.' );
304
302
assert_same( 'Search and filter content for any registered post type', $registered_abilities['wp-forge/search-content']['description'], 'Registered ability should preserve descriptions.' );
305
303
assert_same( true, $registered_abilities['wp-forge/search-content']['meta']['show_in_rest'], 'Registered abilities should be exposed through the Abilities REST API.' );
@@ -330,7 +328,7 @@ public function create_server() {
330
328
assert_same( 'mcp', $adapter->args[1], 'Adapter server should keep the existing REST namespace.' );
331
329
assert_same( 'wp-forge', $adapter->args[2], 'Adapter server should keep the existing REST route.' );
332
330
assert_same( 'WordPress MCP', $adapter->args[3], 'Adapter server should preserve the server name.' );
333
-
assert_same( 55, count( $adapter->args[9] ), 'Adapter server should expose every registered ability.' );
331
+
assert_same( 53, count( $adapter->args[9] ), 'Adapter server should expose every registered ability.' );
334
332
assert_true( in_array( 'wp-forge/search-content', $adapter->args[9], true ), 'Adapter server should expose content search.' );
0 commit comments