Skip to content

feat(gitops-kubernetes): bundle the flux-operator-mcp server (first non-skill resource)Β #42

Description

@devantler

πŸ€– Generated by the Daily AI Assistant

Part of #38 (Theme 1 β€” realize "not skills-only"). Implements AC#3 of #39, per the design decided in ADR 0001.

Problem

ADR 0001 settled the cross-tool capability matrix and the manifest/CI plan for shipping the first non-skill plugin resource (AC#1 + AC#2 of #39). The concrete prove-out β€” actually bundling one resource β€” is the remaining acceptance criterion (AC#3).

Proposed direction (ADR 0001 Β§D4 + Β§D3)

Bundle the Flux MCP server (flux-operator-mcp) into the existing gitops-kubernetes plugin. The bundled gitops-cluster-debug skill already declares compatibility: Requires flux-operator-mcp and, on failure, tells the user the server "is not running. Provide the install command." β€” so bundling it makes the skill self-sufficient on Claude Code, the highest-utility / lowest-divergence first bundle.

Two delivery paths from one canonical definition (ADR Β§D2):

  • Claude Code: ship plugins/gitops-kubernetes/.mcp.json (mcpServers map; ${CLAUDE_PLUGIN_ROOT} for any plugin-relative paths) β€” auto-bundled with the plugin.
  • Copilot CLI / VS Code: document the equivalent config in the plugin README (Copilot ~/.copilot/mcp-config.json mcpServers; VS Code .vscode/mcp.json servers) β€” these tools consume MCP but don't bundle it.

CI / manifest changes (ADR 0001 Β§D3 β€” none weakened, each generalized + self-tested)

  • validate-manifests.sh validate_plugin_json: require β‰₯1 recognized resource instead of an unconditional skills/; when .mcp.json is present, assert valid JSON + non-empty .mcpServers with each server carrying command (stdio) or url (remote). Keep every existing skill check when skills/ is present.
  • validate_readme_parity: generalize the README Skills column β†’ Resources (lists skills + MCP server names), matched against on-disk resources.
  • Broaden marketplace metadata.description + README scope/table-header prose (both manifests together; no plugin-entry schema change).
  • Add validate-manifests.test.sh fixtures: a PASS case for an MCP-bearing plugin and a FAIL case for an empty/malformed .mcp.json, so the gate stays pinned by its self-test.

Acceptance criteria

  • plugins/gitops-kubernetes/.mcp.json bundles flux-operator-mcp (pinned source/version).
  • validate-manifests.sh + .test.sh generalized per ADR Β§D3; CI green (parity + structure + provenance + self-test).
  • README documents the Copilot CLI + VS Code MCP config for gitops-kubernetes; scope/table prose broadened; manifests' metadata.description broadened (both in parity).
  • No existing skill check weakened (self-test proves it).

Size

M β€” one plugin, the validator generalization, and docs. Custom-agent bundling (the agents/ path) is a separate later child of #38.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions