UMI MCP provides 8 well-named, read-only system monitoring tools with consistent response envelopes. Tool names follow verb_noun convention (get_umi_*) and descriptions are detailed (150-250 chars). However, input schemas lack type constraints (enums, ranges), parameter descriptions are present but minimal, and output schemas are documented only in prose, not as formal JSON Schema. Error handling is absent, no guidance on retryability, user-fixable errors, or recovery paths. The server is STDIO-only, capping protocol readiness at 50.
Returns all mounted disk volumes with capacity and usage statistics. Use this to check which drives exist, their total size, how much is used and free, filesystem type, and mount point. Each volume is one object in Items. Bytes fields: divide by 1073741824 for GB. Response includes SchemaVersion, GeneratedAt, Count, and Items array.
Returns system event logs filtered by level and source. Supports Windows Event Log, Linux journalctl, and macOS log show. Returns the most recent events matching the filter.
Returns network interfaces with IP addresses, MAC address, interface type, link speed, and status. By default only returns interfaces that are Up. Set include_down=true to include inactive interfaces. Response includes SchemaVersion, GeneratedAt, Count, and Items array.
Returns running processes sorted by CPU usage descending. Use name to filter by process name substring (e.g. name="python"). Use top to limit results (e.g. top=10 for the 10 most CPU-intensive processes). MemoryBytes is resident set size. CpuPercent may exceed 100 on multi-core systems. verbosity="summary" returns only ProcessName, ProcessId, CpuPercent, MemoryBytes, Status. verbosity="full" (default) returns all fields. Response includes SchemaVersion, GeneratedAt, Count, and Items array.
Input schemas lack enum constraints and range validation. Parameters like 'verbosity' and 'level' accept free-form strings instead of declared enums, inviting hallucinated invalid values.
Output schemas documented only in prose descriptions, not as formal JSON Schema. LLMs cannot parse field types, required fields, or nested structures from text alone.
No error handling or recovery guidance. Tools return raw data or fail silently; no indication of retryability, user-fixable errors, or next steps on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Returns system services: Windows Services, systemd units, or launchd agents depending on the host OS. Optionally filter by name substring or by status (Running, Stopped, Degraded, Starting, Stopping, Paused). Use top to limit the number of returned services (useful on Windows with 200+ services). verbosity="summary" returns only ServiceName, Status, StartType. verbosity="full" (default) returns all fields. Response includes SchemaVersion, GeneratedAt, Count, and Items array.
Provides a high-level health and utilization snapshot of the local system. Aggregates critical metrics from uptime, storage, processes, and event logs into a single flat response. Use this for rapid situation assessment.
Returns system identity and uptime: hostname, OS family (Windows/Linux/macOS), OS version string, CPU architecture, boot timestamp, seconds since boot, human-readable uptime, logical CPU count, and total installed RAM in bytes. Response includes SchemaVersion and GeneratedAt alongside all uptime fields.
Returns local user accounts with username, user ID, home directory, shell, group memberships, and admin status. Set current_only=true to return only the user running the current session. Response includes SchemaVersion, GeneratedAt, Count, and Items array.
Parameter descriptions are minimal (10-30 chars) and lack format/constraint details. E.g., 'Filter by process name substring' does not explain case sensitivity, partial vs exact match, or regex support.
get_umi_summary lacks clarity on what 'health snapshot' includes and when to use it vs individual tools. Description is vague (60 chars); no guidance on dependencies or prerequisites.