alvis 9ab6b7dfed openai: shared MCP layer + openclaw-tools bridge [Adolf P5]
- adolf-llm/server.js now loads SHARED_MCP_SERVERS from the mounted
  /shared-mcp.json instead of a hardcoded stub, so adding a shared MCP
  server is a one-file change. Verified end-to-end: a real chat-completions
  turn writes a session .mcp.json containing both cognee and openclaw-tools
  entries (kimi itself still needs `kimi login` in adolf-llm-home, unrelated
  to this change).
- Documented the Gate-1 transport reconciliation: decompiled the installed
  @moonshot-ai/kimi-code package to confirm its .mcp.json schema keys remote
  servers on `transport` ("stdio"/"http"/"sse", inferred as "http" from a
  bare `url`, never "sse"), while OpenClaw's own canonical mcp.servers schema
  uses different literals ("streamable-http"/"sse") for the same field name
  and treats `type` as a CLI-native alias it normalizes itself. `type: "http"`
  is the one shape both consumers tolerate, so shared-mcp.json keeps it.
- New openai/openclaw-tools/ service: a stateless MCP-over-Streamable-HTTP
  bridge (Node, @modelcontextprotocol/sdk) exposing message_send, cron_create,
  cron_list, nodes_invoke, and browser_invoke, each proxying to the OpenClaw
  gateway's POST /tools/invoke. Verified initialize + tools/list handshake and
  a tools/call against the not-yet-running `adolf` gateway returns a clean
  isError content instead of breaking the MCP connection. Documented that
  cron/nodes are hard-denied on that HTTP surface by default until P6 adds
  them to gateway.tools.allow; message/browser are not similarly restricted.
- Wired openclaw-tools into docker-compose.yml (openai network, :8020) and
  added its shared-mcp.json entry alongside cognee.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LeqyaxJF2nbRXJtae2kNB2
2026-07-05 15:49:23 +00:00
2026-03-05 11:22:34 +00:00
2026-03-05 11:22:34 +00:00
2026-03-17 03:06:18 +00:00
2026-03-05 11:22:34 +00:00

Agap Home Server

Docker Compose configurations for the Agap self-hosted home server infrastructure.

Services

  • Immich (immich-app/) — Photo management and backup (port 2283)
  • Gitea (gitea/) — Self-hosted Git server with web UI (port 3000, SSH 222)
  • Open WebUI (openai/) — AI chat interface with Ollama, GPU-accelerated (port 3125)

Quick Start

Start Immich (main service)

docker compose up -d

Start Gitea (from gitea/ directory)

cd gitea
docker compose up -d

Start Open WebUI (from openai/ directory)

cd openai
docker compose up -d

Configuration

Environment variables are in the root .env file for Immich:

  • UPLOAD_LOCATION — where photo originals are stored
  • THUMB_LOCATION — thumbnail cache directory
  • ENCODED_VIDEO_LOCATION — transcoded video cache
  • DB_DATA_LOCATION — Postgres database directory
  • DB_PASSWORD — Postgres password

Storage

Media is stored on:

  • /mnt/media/upload — Immich originals
  • /mnt/ssd1/media/ — Immich thumbnails, encoded video, and Postgres database
  • /mnt/misc/gitea — Gitea repositories and data

GPU Support

For GPU acceleration (Open WebUI/Ollama, Immich ML):

  1. Install NVIDIA Docker runtime: sudo ./nvidia-docker-install.sh
  2. Install CUDA toolkit: ./install-cuda.sh

Documentation

See CLAUDE.md for detailed developer instructions and Gitea wiki integration guidelines.

See the Gitea wiki for infrastructure documentation (storage, network, services setup).

Description
No description provided
Readme 8.1 MiB
Languages
JavaScript 49%
Python 39.8%
Shell 6.9%
Dockerfile 1.8%
HTML 1.5%
Other 1%