added gitea, n8n and invokeai MCP servers, plus docs/

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
code
2026-07-14 20:47:29 +00:00
parent 06fcf6bab7
commit bcd7e012ba
9 changed files with 375 additions and 1 deletions
+24
View File
@@ -20,6 +20,25 @@ Docker scaffold for running Claude Code in an isolated container (see README.md)
individual host files onto `~/.claude/.credentials.json` (the OAuth token)
and `~/.claude.json` (account/onboarding state) — see `claudaris start`
below for why these are per-file mounts rather than a directory volume.
Three MCP servers for Claude Code are also installed at build time:
`n8n-mcp` (npm, `/usr/local/bin/n8n-mcp`), the official `gitea-mcp`
(latest release binary, `/usr/local/bin/gitea-mcp`), and
`invokeai-mcp-server` (PyPI via `uv tool install`; upstream hardcodes the
InvokeAI URL, so the Dockerfile sed-patches it to honor
`$INVOKEAI_BASE_URL`, with a `grep` that fails the build if upstream
changes and the patch stops landing). They're only *installed* by the
Dockerfile — *registration* happens in `files/entrypoint.sh` on every
container start (`claude mcp add --scope user`, skipped per-server if
already present), because user-scope MCP config lives in `~/.claude.json`,
which is bind-mounted from the host and would shadow anything registered
at build time. Consequence of the "add if missing" guard: hand edits to a
server's config survive restarts, but a server removed with
`claude mcp remove` is re-added on the next container start. The servers
read their instance URLs/tokens (`GITEA_HOST`, `GITEA_ACCESS_TOKEN`,
`N8N_API_URL`, `N8N_API_KEY`, `INVOKEAI_BASE_URL`) from the environment
Claude Code runs in — commented `export` templates live in
`files/bash_aliases`, which is host-persisted, so tokens stay out of the
image and the repo.
`git config --system --add safe.directory '*'` is set so git works on
`/projects` repos bind-mounted from the host (which the container, always
running as root, would otherwise treat as untrusted). `files/entrypoint.sh`
@@ -74,6 +93,11 @@ Docker scaffold for running Claude Code in an isolated container (see README.md)
`bash_aliases` are also seeded onto the host by `claudaris start` so their
bind-mounted copies can diverge without a rebuild.
- `README.md` — usage instructions.
- `docs/` — user documentation in markdown: `README.md` (index),
`getting-started.md` (setup and daily use), `claudaris.md` (the executable,
subcommand by subcommand, including the mount table), `mcp.md` (the baked-in
MCP servers and their env vars). Keep these in sync when changing the
script, Dockerfile, or entrypoint.
## Common commands
```bash