feat(claude.sh): pull MCP servers from OCI images via --mcp-image #29
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/mcp-image"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
--mcp-image (or CLAUDE_JAIL_MCP_IMAGES, comma-separated) names an
OCI image whose entrypoint is a single static binary, e.g. the
ghcr.io/mudler/mcps/* collection. The image is pulled on every run so a
:latest tag tracks upstream; the entrypoint binary is copied out of a
created-but-never-started container into ~/.claude-jail/mcp/,
where the existing /opt/mcp mount exposes it to every session.
An image-id marker next to each binary skips re-extraction when the
image did not change, refuses to clobber hand-dropped binaries the
script never extracted, and lets a failed pull fall back to the cached
copy instead of blocking the session. Extraction goes through a temp
file plus rename so a binary executing in a concurrent session is never
written in place (ETXTBSY). --dry-run narrates the pulls it would do
without touching podman.
The podman test stub grows simulated pull/inspect/create/cp/rm
subcommands and a call journal (STUB_CALLS_FILE) so the whole flow runs
end to end in the harness.
Claude-Session: https://claude.ai/code/session_01G7h6JzQ6nt3379WRxjTJ2M