myco:claude-plugin-config

Manages plugin.json configuration, stdio transport stability, and release lifecycle for Claude MCP plugins.

777|101|Updated Apr 21, 2025
One-click install
npx skills add https://github.com/sirkirby/unifi-network-mcp --skill myco-claude-plugin-config
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: myco:claude-plugin-config
Source: https://github.com/sirkirby/unifi-network-mcp/tree/main/.agents/skills/claude-plugin-config
Command: npx skills add https://github.com/sirkirby/unifi-network-mcp --skill myco-claude-plugin-config

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Claude MCP plugin changes fail silently: a wrong UNIFI_MCP_HTTP_FORCE flag or an asyncio.wait(FIRST_COMPLETED) pattern makes all tools disappear without errors, and Bash 4 syntax breaks setup scripts on macOS without clear messages. This Skill provides the procedures to configure, verify, and release the unifi-network, unifi-protect, and unifi-access plugins without hitting these failure modes.

Core Features & Use Cases

  • Transport Stability: Enforces the stdio-primary asyncio pattern in transport.py so HTTP bind failures never cancel the stdio task and silently remove tools.
  • Plugin Configuration: Sets UNIFI_MCP_HTTP_FORCE correctly across all three plugin.json files and distinguishes --plugin-dir local development from marketplace cache behavior.
  • Setup Verification & Portability: Runs check-prereqs.sh before activation and keeps shell scripts compatible with Bash 3.2 on stock macOS.
  • Release Discipline: Issues no-op patch releases when only plugin.json changes, keeping plugin versions slaved to PyPI package tags.
  • Use Case: After editing plugins/unifi-network/plugin.json, grep all three plugins for the flag, test scripts with /bin/bash, run check-prereqs.sh, then cut a no-op patch release so marketplace users receive the fix.

Quick Start

Audit the three plugin.json files for UNIFI_MCP_HTTP_FORCE and verify transport.py uses the stdio-primary pattern before my next plugin release.

Frequently Asked Questions about myco:claude-plugin-config

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why do Claude MCP plugin tools disappear silently after startup?▼

Silent tool loss usually comes from UNIFI_MCP_HTTP_FORCE set to true in plugin.json, which triggers an HTTP bind failure under uvx. If transport.py uses asyncio.wait(FIRST_COMPLETED), the failed HTTP task cancels the stdio task and all tools vanish without an error.

How do I test Claude plugin.json changes locally before publishing?▼

Use claude --plugin-dir with the local plugin directory for fast iteration on plugin.json changes. However, a cached marketplace-installed version can override it, so always validate the final behavior through a full marketplace install before shipping.

Why do plugin shell scripts fail on macOS without errors?▼

macOS ships /bin/bash at version 3.2, which does not support Bash 4 features like declare -A associative arrays. These fail silently, so test every script explicitly with /bin/bash and use case/esac or hardcoded variables instead of maps.

Do I need a release when only plugin.json changes?▼

Yes, issue a no-op patch release: bump the pyproject.toml patch version, tag, and publish through the normal pipeline. The wheel is identical, but the version bump signals plugin consumers that a manifest update is available, and PyPI immutability forbids re-tagging.

What does check-prereqs.sh verify before plugin activation?▼

It validates uvx availability, settings JSON validity, and the macOS Python network client entitlement. The entitlement check catches servers that start cleanly but fail every controller call with errno 65.