fix: address markdown lint and doc accuracy issues (threads 6-13)

Thread 6: Add python language specifier to .claude-plugin/README.md code fence
Thread 7: Fix MD022/MD031 spacing in docs/MARKETPLACE.md
Thread 8: Blank line before Destructive Actions heading in README.md
Thread 9: Move H1 to first line in skills/unraid/references/api-reference.md
Thread 10+11+12: Rewrite quick-reference.md:
  - Fix MD022/MD031 (blank lines around headings/fences)
  - Add python language specifiers to all code fences
  - Fix disk/logs params: path/lines → log_path/tail_lines
  - Add path param to live/log_tail example
  - Remove invalid notification/unread subaction
  - Fix notification/list filter= → list_type=
Thread 13: Add python/text language specifiers to troubleshooting.md fences
Thread 14: Update test-tools.sh header comment (in separate commit)
Also: Remove 'connect' from README system subactions table (it was removed from
the tool in previous commit), fix notification 'unread' → 'mark_unread' in table
This commit is contained in:
Jacob Magar
2026-03-16 10:01:25 -04:00
parent cf9449a15d
commit 3888b9cb4a
6 changed files with 110 additions and 109 deletions

View File

@@ -1,7 +1,7 @@
> **⚠️ DEVELOPER REFERENCE ONLY** — This file documents the raw GraphQL API schema for development and maintenance purposes (adding new queries/mutations). Do NOT use these curl/GraphQL examples for MCP tool usage. Use `unraid(action=..., subaction=...)` calls instead. See `SKILL.md` for the correct calling convention.
# Unraid API - Complete Reference Guide
> **⚠️ DEVELOPER REFERENCE ONLY** — This file documents the raw GraphQL API schema for development and maintenance purposes (adding new queries/mutations). Do NOT use these curl/GraphQL examples for MCP tool usage. Use `unraid(action=..., subaction=...)` calls instead. See `SKILL.md` for the correct calling convention.
**Tested on:** Unraid 7.2 x86_64
**Date:** 2026-01-21
**API Type:** GraphQL

View File

@@ -5,7 +5,8 @@ All operations use: `unraid(action="<domain>", subaction="<operation>", [params]
## Most Common Operations
### Health & Status
```
```python
unraid(action="health", subaction="setup") # First-time credential setup
unraid(action="health", subaction="check") # Full health check
unraid(action="health", subaction="test_connection") # Quick connectivity test
@@ -15,7 +16,8 @@ unraid(action="system", subaction="online") # Online status
```
### Array & Disks
```
```python
unraid(action="system", subaction="array") # Array status overview
unraid(action="disk", subaction="disks") # All disks with temps & health
unraid(action="array", subaction="parity_status") # Current parity check
@@ -25,14 +27,17 @@ unraid(action="array", subaction="stop_array", confirm=True) # ⚠️ Stop
```
### Logs
```
unraid(action="disk", subaction="log_files") # List available logs
unraid(action="disk", subaction="logs", path="syslog", lines=50) # Read syslog
unraid(action="disk", subaction="logs", path="/var/log/syslog") # Full path also works
```python
unraid(action="disk", subaction="log_files") # List available logs
unraid(action="disk", subaction="logs", log_path="syslog", tail_lines=50) # Read syslog
unraid(action="disk", subaction="logs", log_path="/var/log/syslog") # Full path also works
unraid(action="live", subaction="log_tail", log_path="/var/log/syslog") # Live tail
```
### Docker Containers
```
```python
unraid(action="docker", subaction="list")
unraid(action="docker", subaction="details", container_id="plex")
unraid(action="docker", subaction="start", container_id="nginx")
@@ -42,7 +47,8 @@ unraid(action="docker", subaction="networks")
```
### Virtual Machines
```
```python
unraid(action="vm", subaction="list")
unraid(action="vm", subaction="details", vm_id="<id>")
unraid(action="vm", subaction="start", vm_id="<id>")
@@ -52,37 +58,41 @@ unraid(action="vm", subaction="force_stop", vm_id="<id>", confirm=True) # ⚠
```
### Notifications
```
```python
unraid(action="notification", subaction="overview")
unraid(action="notification", subaction="unread")
unraid(action="notification", subaction="list", filter="UNREAD", limit=10)
unraid(action="notification", subaction="list", list_type="UNREAD", limit=10)
unraid(action="notification", subaction="archive", notification_id="<id>")
unraid(action="notification", subaction="create", title="Test", subject="Subject",
description="Body", importance="normal")
```
### API Keys
```
```python
unraid(action="key", subaction="list")
unraid(action="key", subaction="create", name="my-key", roles=["viewer"])
unraid(action="key", subaction="delete", key_id="<id>", confirm=True) # ⚠️
```
### Plugins
```
```python
unraid(action="plugin", subaction="list")
unraid(action="plugin", subaction="add", names=["community.applications"])
unraid(action="plugin", subaction="remove", names=["old.plugin"], confirm=True) # ⚠️
```
### rclone
```
```python
unraid(action="rclone", subaction="list_remotes")
unraid(action="rclone", subaction="delete_remote", name="<remote>", confirm=True) # ⚠️
```
### Live Subscriptions (real-time)
```
```python
unraid(action="live", subaction="cpu")
unraid(action="live", subaction="memory")
unraid(action="live", subaction="parity_progress")
@@ -90,6 +100,7 @@ unraid(action="live", subaction="log_tail")
unraid(action="live", subaction="notification_feed")
unraid(action="live", subaction="ups_status")
```
> Returns `{"status": "connecting"}` on first call — retry momentarily.
---

View File

@@ -5,7 +5,8 @@
**Error:** `CredentialsNotConfiguredError` or message containing `~/.unraid-mcp/.env`
**Fix:** Run setup to configure credentials interactively:
```
```python
unraid(action="health", subaction="setup")
```
@@ -20,12 +21,14 @@ This writes `UNRAID_API_URL` and `UNRAID_API_KEY` to `~/.unraid-mcp/.env`. Re-ru
**Diagnostic steps:**
1. Test basic connectivity:
```
```python
unraid(action="health", subaction="test_connection")
```
2. Full diagnostic report:
```
```python
unraid(action="health", subaction="diagnose")
```
@@ -57,7 +60,8 @@ unraid(action="health", subaction="diagnose")
**Error:** `Action 'X' was not confirmed. Re-run with confirm=True to bypass elicitation.`
**Fix:** Add `confirm=True` to the call:
```
```python
unraid(action="array", subaction="stop_array", confirm=True)
unraid(action="vm", subaction="force_stop", vm_id="<id>", confirm=True)
```