Multi-module MCP server providing tools for Ubuntu server management, Docker, HomeAssistant, MikroTik, Windows systems, ComfyUI, SteamDeck, and email (Mail.ru/Yandex) operations
Server provides 14 tools with explicit schemas and descriptions. Most tools (1-9) have clear verb-noun naming and reasonable parameter documentation. However, descriptions are inconsistent in depth, some are detailed (python_edit_file, apply_unified_patch_remote) while others are terse (echo, add). Tools 10-14 appear to be test/diagnostic utilities with minimal real-world value. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. Error handling is implicit rather than explicit, no recovery guidance in descriptions. Output schemas are not documented. Several high-risk tools (run_sudo_command, write_file) lack explicit permission gates or audit trail guidance.
Add two integers without external side effects.
Apply a unified diff on the remote server without shell quoting issues. The patch is transferred as base64 to a temporary file and applied with `patch -p0`. Use absolute paths in the diff, or set cwd for relative paths.
Return text unchanged without external side effects.
Safely edit one remote UTF-8 file with a Python transform script. The transform receives variables: path (pathlib.Path for the target file), text (current file text). It must set either new_text (replacement text) or text (modified text). A timestamped sibling backup is created by default. The transform is base64 uploaded and executed remotely, avoiding nested quote/newline problems.
Read a remote file as UTF-8 text with a byte limit.
Read a remote file as base64 for binary-safe transfer.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. LLMs cannot distinguish safe read-only tools from destructive ones without explicit hints.
Output schemas not documented. Tools return results but LLMs cannot plan downstream calls without knowing field names and types.
High-risk tools (run_sudo_command, write_file, python_edit_file) lack explicit permission gates or audit trail guidance in descriptions. No mention of who can call them or what logging occurs.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Run a bash command on the Ubuntu server as the SSH user.
Upload a temporary UTF-8 Python script and execute it with python3. Prefer this over shell heredocs for multi-line edits. The payload is transferred as base64, so quotes, newlines, emoji, and backslashes survive unchanged.
Upload a temporary bash script to the Ubuntu server and execute it.
Run a bash command on the Ubuntu server through sudo.
Reject calls when the client did not declare the sampling capability.
Add a harmless diagnostic prompt and publish its list-change event.
Add a harmless diagnostic tool and publish its list-change event.
Write UTF-8 text to a remote file. Use sudo for root-owned paths.
Test/diagnostic tools (echo, add, test_missing_capability, test_trigger_tool_change, test_trigger_prompt_change) have minimal descriptions (<40 chars) and appear to be development utilities, not production tools. Should be removed or clearly marked as internal.
No error handling guidance in tool descriptions. When run_command fails, LLM has no recovery path. Descriptions should include 'If command fails, check syntax with...' or similar.