@@ -239,6 +239,20 @@ pub(crate) async fn run_get(args: GetArgs) -> Result<()> {
239239 Ok ( ( ) )
240240}
241241
242+ fn existing_mcp_server_message ( name : & str , allow_force : bool ) -> String {
243+ if allow_force {
244+ format ! (
245+ "MCP server '{name}' already exists. Use --force to overwrite, \
246+ 'cortex mcp remove {name}' first, or choose a different name."
247+ )
248+ } else {
249+ format ! (
250+ "MCP server '{name}' already exists. Use 'cortex mcp remove {name}' first, \
251+ or choose a different name."
252+ )
253+ }
254+ }
255+
242256/// Run the add command.
243257pub ( crate ) async fn run_add ( args : AddArgs ) -> Result < ( ) > {
244258 let AddArgs {
@@ -253,11 +267,7 @@ pub(crate) async fn run_add(args: AddArgs) -> Result<()> {
253267 // Check if server already exists
254268 let server_exists = get_mcp_server ( & name) ?. is_some ( ) ;
255269 if server_exists && !force {
256- bail ! (
257- "MCP server '{}' already exists. Use --force to overwrite, or 'cortex mcp remove {}' first." ,
258- name,
259- name
260- ) ;
270+ bail ! ( existing_mcp_server_message( & name, true ) ) ;
261271 }
262272
263273 // Check for conflicting transport types
@@ -723,10 +733,7 @@ pub(crate) async fn run_rename(args: RenameArgs) -> Result<()> {
723733
724734 // Check if new name already exists
725735 if get_mcp_server ( & args. new_name ) ?. is_some ( ) {
726- bail ! (
727- "MCP server '{}' already exists. Remove it first or choose a different name." ,
728- args. new_name
729- ) ;
736+ bail ! ( existing_mcp_server_message( & args. new_name, false ) ) ;
730737 }
731738
732739 let cortex_home =
@@ -903,6 +910,19 @@ mod tests {
903910 assert_eq ! ( args. old_name, args. new_name) ;
904911 }
905912
913+ #[ test]
914+ fn test_existing_server_advice_is_consistent ( ) {
915+ let add_message = existing_mcp_server_message ( "existing" , true ) ;
916+ let rename_message = existing_mcp_server_message ( "existing" , false ) ;
917+
918+ assert ! ( add_message. contains( "Use --force to overwrite" ) ) ;
919+ assert ! ( add_message. contains( "'cortex mcp remove existing' first" ) ) ;
920+ assert ! ( add_message. contains( "choose a different name" ) ) ;
921+ assert ! ( rename_message. contains( "'cortex mcp remove existing' first" ) ) ;
922+ assert ! ( rename_message. contains( "choose a different name" ) ) ;
923+ assert ! ( !rename_message. contains( "--force" ) ) ;
924+ }
925+
906926 // ========================================================================
907927 // AddArgs tests
908928 // ========================================================================
0 commit comments