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.