Dogfood the Image as this repo's Forgejo MCP server #31

Closed
opened 2026-09-30 17:31:58 +00:00 by piscis · 0 comments
Owner

What to build

This repo dogfoods its own Image: its project MCP config gains a forgejo server (alongside the existing context7 entry) that runs the Image over stdio, so every session in this repo exercises the exact config Consumers will copy.

Decided shape (from the design grilling):

  • docker run --rm -i --pull=always against code.vicoli.de/vicoli-oss/forgejo-mcp:3. :3 tracks the major line; --pull=always is what makes it actually follow it (offline costs nothing extra: the server already refuses to start without a reachable Forgejo).
  • Token passed through from the environment with a bare -e FORGEJO_ACCESS_TOKEN (Upstream's variable name). It never appears in the JSON or in the docker run argv.
  • FORGEJO_URL defaults to vicoli's instance and is overridable: -e FORGEJO_URL=${FORGEJO_URL:-https://code.vicoli.de} (Claude Code expands ${VAR:-default} in args).
  • Server key: forgejo.

The Image is anonymously pullable (no docker login step), multi-arch (amd64/arm64), and logs only to stderr, so stdout stays clean JSON-RPC.

Acceptance criteria

  • The project MCP config has a forgejo server with the shape above; the context7 entry is untouched
  • With FORGEJO_ACCESS_TOKEN set, running the configured command completes an MCP initialize handshake and tools/list returns Forgejo tools
  • Without the token, only the forgejo server fails; context7 is unaffected
  • No secret appears in the committed config

Blocked by

None (can start immediately)

## What to build This repo dogfoods its own Image: its project MCP config gains a `forgejo` server (alongside the existing context7 entry) that runs the Image over stdio, so every session in this repo exercises the exact config Consumers will copy. Decided shape (from the design grilling): - `docker run --rm -i --pull=always` against `code.vicoli.de/vicoli-oss/forgejo-mcp:3`. `:3` tracks the major line; `--pull=always` is what makes it actually follow it (offline costs nothing extra: the server already refuses to start without a reachable Forgejo). - Token passed through from the environment with a bare `-e FORGEJO_ACCESS_TOKEN` (Upstream's variable name). It never appears in the JSON or in the `docker run` argv. - `FORGEJO_URL` defaults to vicoli's instance and is overridable: `-e FORGEJO_URL=${FORGEJO_URL:-https://code.vicoli.de}` (Claude Code expands `${VAR:-default}` in `args`). - Server key: `forgejo`. The Image is anonymously pullable (no `docker login` step), multi-arch (amd64/arm64), and logs only to stderr, so stdout stays clean JSON-RPC. ## Acceptance criteria - [ ] The project MCP config has a `forgejo` server with the shape above; the context7 entry is untouched - [ ] With `FORGEJO_ACCESS_TOKEN` set, running the configured command completes an MCP `initialize` handshake and `tools/list` returns Forgejo tools - [ ] Without the token, only the forgejo server fails; context7 is unaffected - [ ] No secret appears in the committed config ## Blocked by None (can start immediately)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Blocks
Reference
vicoli-oss/docker-forgejo-mcp#31
No description provided.