CyberRescue has clear tool names and reasonable parameter schemas, but descriptions are inconsistent in depth. All three tools have explicit input schemas with typed parameters and descriptions. However, the tool descriptions vary significantly in quality and lack critical operational context like prerequisites, failure modes, and recovery guidance. The server is domain-focused (Docker introspection/manipulation) but the definitions don't fully meet production standards for LLM agent interaction.
Run a shell command string inside a container via `docker exec`.
Return live memory and CPU stats, plus top processes, for a container.
Fetch stdout/stderr logs from a Docker container by ID or name.
execute_isolated_script lacks error recovery guidance and dangerous-pattern documentation. Description mentions 'validates container_id and blocks known-dangerous command patterns' but does NOT specify what patterns are blocked, making it impossible for the LLM to know what will fail and why. No guidance on handling timeouts or command failures.
inspect_memory_dump description is aspirational ('the name is aspirational') and imprecise. States 'Uses docker stats --no-stream for a point-in-time snapshot' but doesn't explain what happens if the container is not running or what 'live memory and CPU stats' actually means in the response. Output schema (return type) is documented in docstring but not formal JSON Schema.
stream_container_logs 'since' parameter description says 'Optional ISO 8601 timestamp' but does not specify timezone handling, behavior if timestamp is in the future, or what happens if no logs exist after the timestamp. LLM cannot predict edge cases.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | <=2025-11-25 | v2 |
No output schemas formally documented in tool definitions. While docstrings describe return values (e.g., 'dict with container_id, log_lines, line_count, truncated'), there is no JSON Schema specification in the @mcp.tool() decorators. LLM cannot reliably predict response structure.
execute_isolated_script accepts 'command' as free-form string with no validation constraints visible in schema or description. No mention of which shell (sh -c specified in docstring but not schema), quoting requirements, or injection risks. The mention of 'blocks known-dangerous command patterns' is not specified, what patterns?
Missing permission/scope declarations. No tool declares what Docker permissions it requires (e.g., 'read:container:logs', 'exec:container', 'stats:container'). Audit trail requirements are absent, no guidance on logging which tool calls happened or traceability.
Container execution via execute_isolated_script has no idempotency guarantee or dry-run capability. For a destructive operation (execute arbitrary shell commands in a container), the lack of a confirmation or dry-run pattern is a major risk.