Skip to content

feat(forgectl): mcp — personal MCP server (12 tools) #27

Description

@cameronsjo

Part of #1 · umbrella cameronsjo/claude-configurations#206 (a cameronsjo/claude-configurations#202 module).

forgectl mcp — personal MCP server (12 tools)

Context

A personal MCP server exposing 12 tools to Claude Code over stdio: a read-only "discover" set + a preflight-guarded Kubernetes set.

Scope

  • Discover (read-only): network reachability (composes net feat(forgectl): net — cached internal-network reachability #19), deploy-manifest resolution, repo finder, open-PR list, proxy status, last-built Docker tag.
  • Kubernetes (preflight-guarded): list pods, describe pod, pod logs (severity-classified), pod events, restart pod (two-call confirmation gate).
  • forgectl mcp install [--global] [--dry-run] — idempotent wire-up into Claude Code config.

Safety invariants (security-critical — this is a write-capable surface exposed to an agent)

  • Every k8s tool resolves the expected cluster from the deploy manifest and refuses on context mismatch, returning a structured fix action.
  • A soft per-tool rate limit backstops debug-spirals.
  • Every kubectl call carries a User-Agent stamp for audit attribution.
  • All inputs validated against DNS-1123 before use; single-argv flag forms defeat argv-injection.
  • Errors returned as structured data, never protocol exceptions, on a stable field contract.

Depends on

Note

Large surface — may sub-split (discover tools / k8s tools / mcp install) if it grows. Security review required before the write-capable k8s tools ship.

Reference

cameronsjo/claude-configurations#202 → "mcp — MCP Server".

Metadata

Metadata

Assignees

No one assigned

    Labels

    block:waitingWaits on other work, a release, or a date trigger. Clears itself.enhancementNew feature or requestexec:blockedWaits on a decision, a gate, or a close. Triage claim; verified at dispatch.forgectlforgectl componentideaParked capture; no current pain behind it

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions