mirror of
https://github.com/jmagar/unraid-mcp
synced 2026-04-21 13:37:53 +00:00
2.7 KiB
2.7 KiB
Plugin Checklist -- unraid-mcp
Pre-release and quality checklist. Complete all items before tagging a release.
Version and metadata
pyproject.tomlversion bumped.claude-plugin/plugin.jsonversion matches.codex-plugin/plugin.jsonversion matchesgemini-extension.jsonversion matchesserver.jsonversion matches (updated by publish workflow)CHANGELOG.mdhas entry for the new version- All four version files show the same version string
Code quality
uv run ruff check unraid_mcp/passes (no lint errors)uv run ruff format --check unraid_mcp/passes (no format drift)uv run ty check unraid_mcp/passes (no type errors)uv run pytest -m "not slow and not integration"passes (all unit tests green)uv run pytest tests/safety/passes (destructive action guards verified)uv run pytest tests/schema/passes (GraphQL query validation)
Security
- No credentials in code, docs, or commit history
~/.unraid-mcp/.envhaschmod 600permissions~/.unraid-mcp/directory haschmod 700permissions- Bearer token uses constant-time comparison (
hmac.compare_digest) - No sensitive values logged (even at DEBUG level)
UNRAID_MCP_BEARER_TOKENremoved fromos.environafter startup
Plugin manifests
.claude-plugin/plugin.jsonhas correctmcpServersconfig.codex-plugin/plugin.jsonhas correct interface metadatagemini-extension.jsonhas correctmcpServersandsettingsserver.jsonhas correct MCP registry schema and PyPI package infoskills/unraid/SKILL.mdis up to date with all actions and subactions
Docker
Dockerfileuses multi-stage build (builder + runtime)- Runtime image runs as non-root user (
mcp:1000) HEALTHCHECKconfigured in Dockerfiledocker-compose.yamlhealthcheck works for both HTTP and stdio transports- Resource limits set (1024M memory, 1.0 CPU)
- Credentials volume mount is named volume (not bind mount)
CI/CD
ci.ymllint, typecheck, test, version-sync, audit, gitleaks jobs passdocker-publish.ymlbuilds multi-arch (amd64, arm64) imagespublish-pypi.ymltag-version check, PyPI publish, GitHub release, MCP registry publish all configured- Trivy vulnerability scan runs on published images
Hooks
hooks/hooks.jsonregisters SessionStart hook (bin/sync-uv.sh)
Documentation
CLAUDE.mdreflects current architecture and tool countsREADME.mdhas correct tool table and quick start examplesskills/unraid/SKILL.mddocuments all 15 action domainsdocs/directory is complete and has no template placeholders