From a2f710fa9dcf733b18b9cf90d675b9f3d11cbbed Mon Sep 17 00:00:00 2001 From: "jake@prefect.io" Date: Tue, 28 Oct 2025 10:14:53 -0400 Subject: [PATCH 1/2] add exc_info to fastmcp run --- src/fastmcp/cli/cli.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/fastmcp/cli/cli.py b/src/fastmcp/cli/cli.py index 3acd877e1..3b128ed60 100644 --- a/src/fastmcp/cli/cli.py +++ b/src/fastmcp/cli/cli.py @@ -504,6 +504,7 @@ async def run( except subprocess.CalledProcessError as e: logger.error( f"Failed to run: {e}", + exc_info=True, extra={ "server_spec": server_spec, "error": str(e), @@ -528,6 +529,7 @@ async def run( except Exception as e: logger.error( f"Failed to run: {e}", + exc_info=True, extra={ "server_spec": server_spec, "error": str(e), From 4262468b44e62ccd2799cd4ecd7c1ac63fc9b1aa Mon Sep 17 00:00:00 2001 From: "jake@prefect.io" Date: Tue, 28 Oct 2025 10:18:21 -0400 Subject: [PATCH 2/2] use logger.exeception --- src/fastmcp/cli/cli.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/fastmcp/cli/cli.py b/src/fastmcp/cli/cli.py index 3b128ed60..17d7e1c99 100644 --- a/src/fastmcp/cli/cli.py +++ b/src/fastmcp/cli/cli.py @@ -502,9 +502,8 @@ async def run( process = subprocess.run(cmd, check=True, env=env) sys.exit(process.returncode) except subprocess.CalledProcessError as e: - logger.error( + logger.exception( f"Failed to run: {e}", - exc_info=True, extra={ "server_spec": server_spec, "error": str(e), @@ -527,9 +526,8 @@ async def run( skip_source=skip_source, ) except Exception as e: - logger.error( + logger.exception( f"Failed to run: {e}", - exc_info=True, extra={ "server_spec": server_spec, "error": str(e), @@ -768,13 +766,12 @@ async def inspect( console.print(formatted_json.decode("utf-8")) except Exception as e: - logger.error( + logger.exception( f"Failed to inspect server: {e}", extra={ "server_spec": server_spec, "error": str(e), }, - exc_info=True, ) console.print(f"[bold red]✗[/bold red] Failed to inspect server: {e}") sys.exit(1)