Add debug_container_response tool for DSM response inspection

Temporary debug tool that returns the raw SYNO.Docker.Container/get
response as JSON directly in the MCP tool output — visible in chat
without needing to inspect Claude Desktop logs.

To be removed once get_container_status is fixed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-14 06:45:04 +02:00
parent 7c7e63d89a
commit 2dbcc0ba5f
@@ -108,6 +108,29 @@ def register_containers(mcp: FastMCP, config: AppConfig, client: DsmClient) -> N
return "\n".join(lines).rstrip()
@mcp.tool()
async def debug_container_response(container_name: str) -> str:
"""TEMPORARY DEBUG TOOL — returns raw SYNO.Docker.Container/get response as JSON.
Used to inspect the actual DSM response structure so that
get_container_status can be fixed to read the correct fields.
Remove once the real fix is in place.
Args:
container_name: Name of the container to inspect.
"""
clean_name = _strip_hash_prefix(container_name)
try:
data = await client.request(
"SYNO.Docker.Container",
"get",
params={"name": clean_name},
)
except Exception as e:
return f"Error calling SYNO.Docker.Container/get for '{clean_name}': {e}"
return json.dumps(data, indent=2, default=str)
@mcp.tool()
async def get_container_status(container_name: str) -> str:
"""Get detailed status, uptime, and resource usage of a container.