Skip to content

Commit 8ae55c7

Browse files
author
Greyforge Admin
committed
Align MCP existing server guidance
1 parent 7954d02 commit 8ae55c7

1 file changed

Lines changed: 29 additions & 9 deletions

File tree

src/cortex-cli/src/mcp_cmd/handlers.rs

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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.
243257
pub(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

Comments
 (0)