mirror of
https://github.com/jmagar/unraid-mcp.git
synced 2026-03-02 00:04:45 -08:00
fix: address 54 MEDIUM/LOW priority PR review issues
Comprehensive fixes across Python code, shell scripts, and documentation addressing all remaining MEDIUM and LOW priority review comments. Python Code Fixes (27 fixes): - tools/info.py: Simplified dispatch with lookup tables, defensive guards, CPU fallback formatting, !s conversion flags, module-level sync assertion - tools/docker.py: Case-insensitive container ID regex, keyword-only confirm, module-level ALL_ACTIONS constant - tools/virtualization.py: Normalized single-VM dict responses, unified list/details queries - core/client.py: Fixed HTTP client singleton race condition, compound key substring matching for sensitive data redaction - subscriptions/: Extracted SSL context creation to shared helper in utils.py, replaced deprecated ssl._create_unverified_context API - tools/array.py: Renamed parity_history to parity_status, hoisted ALL_ACTIONS - tools/storage.py: Fixed dict(None) risks, temperature 0 falsiness bug - tools/notifications.py, keys.py, rclone.py: Fixed dict(None) TypeError risks - tests/: Fixed generator type annotations, added coverage for compound keys Shell Script Fixes (13 fixes): - dashboard.sh: Dynamic server discovery, conditional debug output, null-safe jq, notification count guard order, removed unused variables - unraid-query.sh: Proper JSON escaping via jq, --ignore-errors and --insecure CLI flags, TLS verification now on by default - validate-marketplace.sh: Removed unused YELLOW variable, defensive jq, simplified repository URL output Documentation Fixes (24+ fixes): - Version consistency: Updated all references to v0.2.0 across pyproject.toml, plugin.json, marketplace.json, MARKETPLACE.md, __init__.py, README files - Tool count updates: Changed all "26 tools" references to "10 tools, 90 actions" - Markdown lint: Fixed MD022, MD031, MD047 issues across multiple files - Research docs: Fixed auth headers, removed web artifacts, corrected stale info - Skills docs: Fixed query examples, endpoint counts, env var references All 227 tests pass, ruff and ty checks clean.
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
# Competitive Analysis: Unraid Integration Projects
|
||||
|
||||
> **Date:** 2026-02-07
|
||||
> **Purpose:** Identify features and capabilities that competing Unraid integration projects offer that our `unraid-mcp` server (26 tools, GraphQL-based) currently lacks.
|
||||
> **Purpose:** Identify features and capabilities that competing Unraid integration projects offer that our `unraid-mcp` server (10 tools, 90 actions, GraphQL-based) currently lacks.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Executive Summary](#executive-summary)
|
||||
- [Project Profiles](#project-profiles)
|
||||
- [1. unraid-management-agent (Go plugin)](#1-unraid-management-agent)
|
||||
- [2. domalab/unraid-api-client (Python library)](#2-domalabu nraid-api-client)
|
||||
- [2. domalab/unraid-api-client (Python library)](#2-domalabunraid-api-client)
|
||||
- [3. mcp-ssh-sre / unraid-ssh-mcp (SSH-based MCP)](#3-mcp-ssh-sre--unraid-ssh-mcp)
|
||||
- [4. PSUnraid (PowerShell module)](#4-psunraid)
|
||||
- [5. ha-unraid (Home Assistant integration)](#5-ha-unraid)
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
## Executive Summary
|
||||
|
||||
Our `unraid-mcp` server provides 26 MCP tools built on the official Unraid GraphQL API. After analyzing six competing projects, we identified several significant gaps:
|
||||
Our `unraid-mcp` server provides 10 MCP tools (90 actions) built on the official Unraid GraphQL API. After analyzing six competing projects, we identified several significant gaps:
|
||||
|
||||
**Critical gaps (high-value features we lack):**
|
||||
1. **Array control operations** (start/stop array, parity check control, disk spin up/down)
|
||||
@@ -71,7 +71,7 @@ Our `unraid-mcp` server provides 26 MCP tools built on the official Unraid Graph
|
||||
**Key differentiators from our project:**
|
||||
- Runs as an Unraid plugin directly on the server (no external dependency on GraphQL API)
|
||||
- Collects data directly from /proc, /sys, Docker SDK, and libvirt
|
||||
- 59 REST endpoints vs our 26 MCP tools
|
||||
- 59 REST endpoints vs our 10 MCP tools (90 actions)
|
||||
- 54 MCP tools with Resources and Prompts
|
||||
- Real-time WebSocket event streaming (9 event types, 5-60s intervals)
|
||||
- 41 Prometheus metrics for Grafana dashboards
|
||||
@@ -341,7 +341,7 @@ The project's documentation explicitly compares SSH vs API capabilities:
|
||||
|
||||
### Monitoring Features
|
||||
|
||||
| Feature | Our MCP (26 tools) | mgmt-agent (54 MCP tools) | unraid-api-client | mcp-ssh-sre (79 actions) | PSUnraid | ha-unraid | chris-mc1 |
|
||||
| Feature | Our MCP (10 tools, 90 actions) | mgmt-agent (54 MCP tools) | unraid-api-client | mcp-ssh-sre (79 actions) | PSUnraid | ha-unraid | chris-mc1 |
|
||||
|---------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||
| System info (hostname, uptime) | Y | Y | Y | Y | Y | Y | N |
|
||||
| CPU usage | Y | Y | Y | Y | Y | Y | Y |
|
||||
@@ -458,7 +458,7 @@ The project's documentation explicitly compares SSH vs API capabilities:
|
||||
|
||||
| Feature | Our MCP | mgmt-agent | unraid-api-client | mcp-ssh-sre | PSUnraid | ha-unraid | chris-mc1 |
|
||||
|---------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||
| MCP tools | Y (26) | Y (54) | N | Y (79 actions) | N | N | N |
|
||||
| MCP tools | Y (10 tools, 90 actions) | Y (54) | N | Y (79 actions) | N | N | N |
|
||||
| MCP Resources | N | Y (5) | N | N | N | N | N |
|
||||
| MCP Prompts | N | Y (3) | N | N | N | N | N |
|
||||
| REST API | N | Y (59) | N | N | N | N | N |
|
||||
|
||||
Reference in New Issue
Block a user