PluginProbe
Elementor Website Builder – more than just a page builder / trunk
Elementor Website Builder – more than just a page builder vtrunk
4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 All 456 releases
← All changes | vendor/wordpress/mcp-adapter/includes/Cli/McpCommand.php +4 -42 4.3.0-beta1 → trunk View file →
@@ -26,17 +26,15 @@
26 26 * This command starts an MCP server that communicates via standard input/output
27 27 * using the JSON-RPC 2.0 protocol. It's designed to be launched as a subprocess
28 28 * by MCP clients.
29 29 *
30 + * Use the global `--user` flag to specify the user context for the server. If not provided, runs as unauthenticated (limited capabilities).
31 + *
30 32 * ## OPTIONS
31 33 *
32 34 * [--server=<server-id>]
33 35 * : The ID of the MCP server to serve. If not specified, uses the first available server.
34 36 *
35 - * [--user=<id|login|email>]
36 - * : Run as a specific WordPress user for permission checks.
37 - * : Without this, runs as unauthenticated (limited capabilities).
38 - *
39 37 * ## EXAMPLES
40 38 *
41 39 * # Serve the default MCP server as admin user
42 40 * wp mcp serve --user=admin
@@ -47,9 +45,9 @@
47 45 * # Serve without authentication (limited capabilities)
48 46 * wp mcp serve --server=public-server
49 47 *
50 48 * @when after_wp_load
51 - * @synopsis [--server=<server-id>] [--user=<id|login|email>]
49 + * @synopsis [--server=<server-id>]
52 50 */
53 51 public function serve( array $args, array $assoc_args ): void {
54 52
55 53 // Get the MCP adapter instance
@@ -74,24 +72,11 @@
74 72 } else {
75 73 // Use the first available server
76 74 $server = array_values( $servers )[0];
77 75 $server_id = $server->get_server_id();
78 - \WP_CLI::line( sprintf( 'Using server: %s', $server_id ) );
76 + \WP_CLI::debug( sprintf( 'Using server: %s', $server_id ) );
79 77 }
80 78
81 - // Set user context if specified
82 - if ( isset( $assoc_args['user'] ) ) {
83 - $user = $this->get_user( $assoc_args['user'] );
84 - if ( ! $user ) {
85 - \WP_CLI::error( sprintf( 'User "%s" not found.', $assoc_args['user'] ) );
86 - }
87 -
88 - wp_set_current_user( $user->ID );
89 - \WP_CLI::debug( sprintf( 'Running as user: %s (ID: %d)', $user->user_login, $user->ID ) );
90 - } else {
91 - \WP_CLI::debug( 'Running without authentication. Some capabilities may be limited.' );
92 - }
93 -
94 79 // Create and start STDIO server bridge
95 80 try {
96 81 \WP_CLI::debug( sprintf( 'Starting STDIO bridge for server: %s', $server_id ) );
97 82
@@ -104,31 +89,8 @@
104 89 \WP_CLI::error( $e->getMessage() );
105 90 } catch ( \Throwable $e ) {
106 91 \WP_CLI::error( 'Failed to start STDIO bridge: ' . $e->getMessage() );
107 92 }
108 - }
109 -
110 - /**
111 - * Get a user by ID, login, or email.
112 - *
113 - * @param string $user User identifier (ID, login, or email).
114 - *
115 - * @return \WP_User|false User object or false if not found.
116 - */
117 - private function get_user( string $user ) {
118 - // Try as ID first
119 - if ( is_numeric( $user ) ) {
120 - return get_user_by( 'id', (int) $user );
121 - }
122 -
123 - // Try as login
124 - $user_obj = get_user_by( 'login', $user );
125 - if ( $user_obj ) {
126 - return $user_obj;
127 - }
128 -
129 - // Try as email
130 - return get_user_by( 'email', $user );
131 93 }
132 94
133 95 /**
134 96 * List all registered MCP servers.