@@ -304,6 +304,8 @@ def _persist_server_entry(name: str, settings: MCPServerSettings) -> None:
304304 entry ["args" ] = settings .args
305305 if settings .env :
306306 entry ["env" ] = settings .env
307+ if settings .cwd :
308+ entry ["cwd" ] = settings .cwd
307309 else :
308310 if settings .url :
309311 entry ["url" ] = settings .url
@@ -431,6 +433,9 @@ def add(
431433 env : Optional [str ] = typer .Option (
432434 None , "--env" , "-e" , help = "Environment variables (KEY=value,...)"
433435 ),
436+ cwd : Optional [str ] = typer .Option (
437+ None , "--cwd" , help = "Working directory for stdio server process"
438+ ),
434439 write : bool = typer .Option (
435440 True , "--write/--no-write" , help = "Persist to config file"
436441 ),
@@ -505,6 +510,7 @@ def add(
505510 entry .command = recipe .get ("command" )
506511 entry .args = recipe .get ("args" , [])
507512 entry .env = {** recipe .get ("env" , {}), ** env_dict }
513+ entry .cwd = recipe .get ("cwd" )
508514
509515 srv_name = name or value
510516
@@ -619,6 +625,7 @@ def add(
619625 entry .command = parts [0 ]
620626 entry .args = parts [1 :] if len (parts ) > 1 else []
621627 entry .env = env_dict
628+ entry .cwd = cwd
622629 srv_name = name or parts [0 ].split ("/" )[- 1 ]
623630
624631 # Check if server already exists
@@ -853,6 +860,7 @@ def import_claude(
853860 entry .command = server_config .get ("command" , "" )
854861 entry .args = server_config .get ("args" , [])
855862 entry .env = server_config .get ("env" , {})
863+ entry .cwd = server_config .get ("cwd" )
856864 _persist_server_entry (name , entry )
857865 console .print (
858866 f"\n [green]✅ Imported { len (servers )} servers[/green]"
0 commit comments