22import logging
33import shutil
44import subprocess
5+ import sys
56import tempfile
67from collections .abc import AsyncIterator , Callable , Iterator
78from contextlib import asynccontextmanager , contextmanager
@@ -26,6 +27,7 @@ def run_mcp_server(
2627 return_mode : Literal ['json' , 'xml' ] = 'xml' ,
2728 deps_log_handler : LogHandler | None = None ,
2829 allow_networking : bool = True ,
30+ verbose : bool = False ,
2931) -> int :
3032 """Install dependencies then run the mcp-run-python server.
3133
@@ -36,7 +38,13 @@ def run_mcp_server(
3638 return_mode: The mode to return tool results in.
3739 deps_log_handler: Optional function to receive logs emitted while installing dependencies.
3840 allow_networking: Whether to allow networking when running provided python code.
41+ verbose: Log deno outputs to CLI
3942 """
43+
44+ stdout , stderr = None , None
45+ if verbose :
46+ stdout , stderr = sys .stdout , sys .stderr
47+
4048 with prepare_deno_env (
4149 mode ,
4250 dependencies = dependencies ,
@@ -51,7 +59,7 @@ def run_mcp_server(
5159 logger .info ('Running mcp-run-python via %s...' , mode )
5260
5361 try :
54- p = subprocess .run (('deno' , * env .args ), cwd = env .cwd )
62+ p = subprocess .run (('deno' , * env .args ), cwd = env .cwd , stdout = stdout , stderr = stderr )
5563 except KeyboardInterrupt : # pragma: no cover
5664 logger .warning ('Server stopped.' )
5765 return 0
0 commit comments