diff --git a/src/mcp_synology_container/modules/containers.py b/src/mcp_synology_container/modules/containers.py index e6518bf..6e7b8e6 100644 --- a/src/mcp_synology_container/modules/containers.py +++ b/src/mcp_synology_container/modules/containers.py @@ -2,6 +2,7 @@ from __future__ import annotations +import json import logging import re import sys @@ -128,7 +129,8 @@ def register_containers(mcp: FastMCP, config: AppConfig, client: DsmClient) -> N return f"Error getting container '{container_name}': {e}" sys.stderr.write( - f"[get_container_status] name={clean_name!r} data_keys={list(data.keys())}\n" + f"[get_container_status] name={clean_name!r} " + f"raw response: {json.dumps(data, indent=2, default=str)[:2000]}\n" ) sys.stderr.flush() @@ -338,12 +340,7 @@ def _format_container_detail(name: str, data: dict[str, Any]) -> str: status/image fields as returned by the list endpoint). """ # Unwrap "container" wrapper if present (common DSM API pattern) - if "container" in data and isinstance(data["container"], dict): - sys.stderr.write("[get_container_status] unwrapping 'container' key\n") - sys.stderr.flush() - raw = data["container"] - else: - raw = data + raw = data["container"] if "container" in data and isinstance(data["container"], dict) else data # Docker Engine inspect format: State / Config / HostConfig state = raw.get("State", {}) or {} @@ -355,11 +352,6 @@ def _format_container_detail(name: str, data: dict[str, Any]) -> str: running = state.get("Running") if "Running" in state else (status_str == "running") image_str = config.get("Image") or raw.get("image") or "?" - sys.stderr.write( - f"[get_container_status] status={status_str!r} running={running!r} image={image_str!r}\n" - ) - sys.stderr.flush() - lines = [ f"Container: {name}", f" Status: {status_str}",