myco:claude-plugin-config-transport

Maintains MCP plugin transport stability, config flags, and release procedures for UniFi 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-transport
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: myco:claude-plugin-config-transport
Source: https://github.com/sirkirby/unifi-network-mcp/tree/main/.agents/skills/claude-plugin-config-transport
Command: npx skills add https://github.com/sirkirby/unifi-network-mcp --skill myco-claude-plugin-config-transport

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

MCP tools can silently disappear when plugin transport configuration is wrong — a forced HTTP bind in a uvx-launched context cancels the stdio transport with no visible error. This Skill prevents that failure mode and standardizes plugin configuration, shell script portability, and release procedures across the network, protect, and access UniFi MCP apps.

Core Features & Use Cases

  • Transport Stability: Enforces the stdio-primary asyncio pattern in transport.py and blocks reintroduction of the unsafe asyncio.wait(FIRST_COMPLETED) anti-pattern that caused silent tool loss (Issue #200 / PR #202).
  • Config Flag Governance: Keeps UNIFI_MCP_HTTP_FORCE at its safe default across all three app config.yaml files and audits environment variable injection paths.
  • Plugin Lifecycle Management: Covers local development with claude --plugin-dir, check-prereqs.sh pre-flight verification, Bash 3.2-compatible shell scripting for macOS, and atomic multi-target version sync across Claude, Codex, and OpenClaw registries.
  • Use Case: When modifying a plugin's set-env.sh script, apply the change to all three plugin directories, verify with /bin/bash on macOS, run check-prereqs.sh, and issue a no-op patch release that atomically updates marketplace.json, .codex-plugin/plugin.json, and .agents/plugins/openclaw/plugin.json.

Quick Start

Ask the assistant to review a planned change to the UniFi plugin transport configuration or shell scripts and verify it follows the stdio-primary pattern and three-app parity rules.

Frequently Asked Questions about myco:claude-plugin-config-transport

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

FAQPage Schema
Why did all my MCP tools disappear after changing plugin config?

Silent tool loss usually means UNIFI_MCP_HTTP_FORCE was set to true in a uvx-launched context, causing the HTTP bind to fail and cancel the stdio transport. Check the config flag first, then verify transport.py uses the stdio-primary pattern rather than asyncio.wait(FIRST_COMPLETED).

How do I test a Claude plugin locally without publishing a release?

Use claude --plugin-dir with the path to the local plugin directory to bypass the marketplace install step. Be aware that a marketplace-installed version of the same plugin may still take precedence, so verify which binary is running and uninstall the cached version if behavior differs.

Why can't I use declare -A in plugin shell scripts on macOS?

macOS ships /bin/bash at version 3.2, which does not support associative arrays. Use case/esac dispatch or explicit variable pairs instead, and always test scripts with /bin/bash rather than a Homebrew-installed newer bash.

Do plugin-only changes require a new release?

Yes. Plugin versions are slaved to MCP package tags, so any change to scripts, manifests, or config requires a no-op patch release. Bump the shared package version, publish to PyPI, then atomically update all target registries in the same commit.

What happens if I pass a redacted value back into a mutation call?

StrictKwargFastMCP rejects tools/call requests containing the ***REDACTED*** marker, and the failure may not surface a clear diagnostic. Retrieve the real value first by passing include_sensitive=true to the read tool, then use that value in the mutation.