stateless mode for fastmcp entrypoint
This commit is contained in:
@@ -33,25 +33,30 @@ logging.basicConfig(
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Configure file logging
|
||||
try:
|
||||
root_logger = logging.getLogger()
|
||||
log_file_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
log_file_path = os.path.join(log_file_dir, 'mcp_server_debug.log')
|
||||
# Skip file logging in stateless mode
|
||||
stateless_mode = os.getenv("WORKSPACE_MCP_STATELESS_MODE", "false").lower() == "true"
|
||||
if not stateless_mode:
|
||||
# Configure file logging
|
||||
try:
|
||||
root_logger = logging.getLogger()
|
||||
log_file_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
log_file_path = os.path.join(log_file_dir, 'mcp_server_debug.log')
|
||||
|
||||
file_handler = logging.FileHandler(log_file_path, mode='a')
|
||||
file_handler.setLevel(logging.DEBUG)
|
||||
file_handler = logging.FileHandler(log_file_path, mode='a')
|
||||
file_handler.setLevel(logging.DEBUG)
|
||||
|
||||
file_formatter = logging.Formatter(
|
||||
'%(asctime)s - %(name)s - %(levelname)s - %(process)d - %(threadName)s '
|
||||
'[%(module)s.%(funcName)s:%(lineno)d] - %(message)s'
|
||||
)
|
||||
file_handler.setFormatter(file_formatter)
|
||||
root_logger.addHandler(file_handler)
|
||||
file_formatter = logging.Formatter(
|
||||
'%(asctime)s - %(name)s - %(levelname)s - %(process)d - %(threadName)s '
|
||||
'[%(module)s.%(funcName)s:%(lineno)d] - %(message)s'
|
||||
)
|
||||
file_handler.setFormatter(file_formatter)
|
||||
root_logger.addHandler(file_handler)
|
||||
|
||||
logger.debug(f"Detailed file logging configured to: {log_file_path}")
|
||||
except Exception as e:
|
||||
sys.stderr.write(f"CRITICAL: Failed to set up file logging to '{log_file_path}': {e}\n")
|
||||
logger.debug(f"Detailed file logging configured to: {log_file_path}")
|
||||
except Exception as e:
|
||||
sys.stderr.write(f"CRITICAL: Failed to set up file logging to '{log_file_path}': {e}\n")
|
||||
else:
|
||||
logger.debug("File logging disabled in stateless mode")
|
||||
|
||||
def configure_safe_logging():
|
||||
"""Configure safe Unicode handling for logging."""
|
||||
@@ -76,15 +81,18 @@ def configure_safe_logging():
|
||||
# Configure safe logging
|
||||
configure_safe_logging()
|
||||
|
||||
# Check credentials directory permissions
|
||||
try:
|
||||
logger.info("🔍 Checking credentials directory permissions...")
|
||||
check_credentials_directory_permissions()
|
||||
logger.info("✅ Credentials directory permissions verified")
|
||||
except (PermissionError, OSError) as e:
|
||||
logger.error(f"❌ Credentials directory permission check failed: {e}")
|
||||
logger.error(" Please ensure the service has write permissions to create/access the credentials directory")
|
||||
sys.exit(1)
|
||||
# Check credentials directory permissions (skip in stateless mode)
|
||||
if not stateless_mode:
|
||||
try:
|
||||
logger.info("🔍 Checking credentials directory permissions...")
|
||||
check_credentials_directory_permissions()
|
||||
logger.info("✅ Credentials directory permissions verified")
|
||||
except (PermissionError, OSError) as e:
|
||||
logger.error(f"❌ Credentials directory permission check failed: {e}")
|
||||
logger.error(" Please ensure the service has write permissions to create/access the credentials directory")
|
||||
sys.exit(1)
|
||||
else:
|
||||
logger.info("🔍 Skipping credentials directory check (stateless mode)")
|
||||
|
||||
# Set transport mode for HTTP (FastMCP CLI defaults to streamable-http)
|
||||
set_transport_mode('streamable-http')
|
||||
|
||||
Reference in New Issue
Block a user