alvis b548a8f345 agap-mcp: MediaWiki + Todoist tools, vault trust-gate, registry wiring
Commits a cluster of entangled agap-mcp / Adolf-tooling WIP that had accumulated
uncommitted in shared files (server.js, the three MCP-config layers). Bundled as
one commit because server.js interleaves all of it and cannot be cleanly split;
each stream is named here for the record. Authorized by alvis 2026-07-23.

- **kb#95 — family MediaWiki tools:** new src/mediawiki.js (wiki_search / wiki_read
  / wiki_edit, MediaWiki login->CSRF->edit flow, no new deps), registered in
  server.js and fetched from the family.alogins.net Vaultwarden login item.
  Proven standalone against family.alogins.net (search/read/edit, revid 1520 on a
  bot-userspace page). Wired into all three layers: openai/shared-mcp.json,
  adolf/openclaw.json, openai/agent-registry.yaml.

- **kb#147 — vault trust-gate (A2A-15), DORMANT:** new src/trust-gate.js (+ two
  test files), requireVaultAccess() around the vw_* tools, gated by
  AGAP_MCP_ENFORCE_VAULT_TRUST (docker-compose.yml, default 0). OFF by default —
  vw_* behaviour is byte-for-byte unchanged until an operator sets ENFORCE=1 and
  populates AGAP_MCP_AGENT_TOKENS from Vaultwarden. That activation is a separate
  human step; kb#147 remains escalated for human verification and is NOT verified
  by this commit. js-yaml added to read the registry. agent-registry.yaml mounted
  read-only as the trust-class source of truth.

- **Todoist tools:** new src/todoist.js (initTodoist + 6 todoist_* tools),
  registered in server.js, sourced from the TODOIST_TOKEN Vaultwarden item.

- **kanboard cutover cleanup:** removes src/kanboard.js and its imports — the
  kanboard_* slice moved to the standalone kanboard-mcp on 2026-07-06.

- **openai/validate_capability_grants.py:** cross-checks the registry against the
  live openclaw.json + shared-mcp.json layers; passes (exit 0).

No secrets committed: all tokens come from Vaultwarden via env/.env; the trust
gate's AGAP_MCP_AGENT_TOKENS defaults to `{}` (fail-closed). node_modules/ now
gitignored, package-lock.json tracked.

NOT YET ACTIVATED: agap-mcp has not been rebuilt and adolf-llm/adolf not
restarted, so the wiki/todoist tools are wired but not live. That restart is the
outstanding step on kb#95 (and stays a human/orchestrator action).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 06:48:07 +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%