From d791c6b6b7aa80051ed18db92f040cb06b549fa0 Mon Sep 17 00:00:00 2001 From: Jacob Magar Date: Sun, 15 Feb 2026 17:22:30 -0500 Subject: [PATCH] refactor: move plugin manifest to repository root per Claude Code best practices - Move plugin.json from skills/unraid/.claude-plugin/ to .claude-plugin/ - Update validation script to use correct plugin manifest path - Add plugin structure section to root README.md - Add installation instructions to skills/unraid/README.md - Aligns with Claude Code's expectation for source: './' in marketplace.json --- .../plugin.json | 0 README.md | 21 +++++++++++++++++++ scripts/validate-marketplace.sh | 8 +++---- skills/unraid/README.md | 11 ++++++++++ 4 files changed, 36 insertions(+), 4 deletions(-) rename {skills/unraid/.claude-plugin => .claude-plugin}/plugin.json (100%) diff --git a/skills/unraid/.claude-plugin/plugin.json b/.claude-plugin/plugin.json similarity index 100% rename from skills/unraid/.claude-plugin/plugin.json rename to .claude-plugin/plugin.json diff --git a/README.md b/README.md index bb74f53..367016a 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,27 @@ uv run unraid-mcp-server --- +## 📂 Plugin Structure + +This repository is a Claude Code plugin. Key components: + +``` +unraid-mcp/ # ${CLAUDE_PLUGIN_ROOT} +├── .claude-plugin/ +│ ├── marketplace.json # Marketplace catalog +│ └── plugin.json # Plugin manifest +├── unraid_mcp/ # MCP server Python package +├── skills/unraid/ # Skill and documentation +├── pyproject.toml # Dependencies and entry points +└── scripts/ # Validation and helper scripts +``` + +- **MCP Server**: 10 tools with 90 actions via GraphQL API +- **Skill**: `/unraid` skill for monitoring and queries +- **Entry Point**: `unraid-mcp-server` defined in pyproject.toml + +--- + ## 📦 Installation ### 🐳 Docker Deployment (Recommended) diff --git a/scripts/validate-marketplace.sh b/scripts/validate-marketplace.sh index f45ba67..d2a6692 100755 --- a/scripts/validate-marketplace.sh +++ b/scripts/validate-marketplace.sh @@ -41,10 +41,10 @@ check "Marketplace has name" "jq -e '.name' .claude-plugin/marketplace.json" check "Marketplace has plugins array" "jq -e '.plugins | type == \"array\"' .claude-plugin/marketplace.json" # Check plugin manifest -check "Plugin manifest exists" "test -f skills/unraid/.claude-plugin/plugin.json" -check "Plugin manifest is valid JSON" "jq empty skills/unraid/.claude-plugin/plugin.json" -check "Plugin has name" "jq -e '.name' skills/unraid/.claude-plugin/plugin.json" -check "Plugin has version" "jq -e '.version' skills/unraid/.claude-plugin/plugin.json" +check "Plugin manifest exists" "test -f .claude-plugin/plugin.json" +check "Plugin manifest is valid JSON" "jq empty .claude-plugin/plugin.json" +check "Plugin has name" "jq -e '.name' .claude-plugin/plugin.json" +check "Plugin has version" "jq -e '.version' .claude-plugin/plugin.json" # Check plugin structure check "Plugin has SKILL.md" "test -f skills/unraid/SKILL.md" diff --git a/skills/unraid/README.md b/skills/unraid/README.md index 14e394a..c1a7942 100644 --- a/skills/unraid/README.md +++ b/skills/unraid/README.md @@ -23,6 +23,17 @@ skills/unraid/ └── quick-reference.md # Common queries cheat sheet ``` +## Installation + +This skill is part of the Unraid MCP plugin. Install via the Claude Code marketplace: + +```bash +/plugin marketplace add jmagar/unraid-mcp +/plugin install unraid @unraid-mcp +``` + +The plugin includes both the MCP server and this skill at `skills/unraid/`. + ## Quick Start 1. **Set your credentials:**