Files
2026-05-09 22:59:43 -05:00

2.8 KiB

Changelog

All notable changes to totalmcp will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

  • Phase 0 scaffold — Express + MCP SDK bootstrap, plugin registry with chokidar hot-reload, Streamable HTTP + legacy SSE transports, per-agent bearer auth, Zod-validated env config, structured JSON logger, Prisma event-log schema, Dockerfile + docker-compose for local dev.
  • MCPPlugin interface contract with semver-based gateway compatibility check.
  • Health and plugin-list endpoints.
  • Phase 1 — gitea plugin (8 tools: list/get/create repos, list/create issues, list branches, get/commit files) against the Gitea v1 REST API.
  • Phase 1 — unraid plugin (6 tools: host summary, list/get containers, list shares, list VMs, disk health) against the unraid-api GraphQL endpoint.
  • Phase 2 — docker plugin (6 tools: list containers, start/stop/restart, get logs, get stats) via direct Docker socket using dockerode. Decodes the multiplexed stdout/stderr log stream automatically.
  • Phase 2 — openclaw plugin (3 tools: list models, get model info, chat) against NOVA's Ollama-compatible HTTP API at http://10.2.0.26:18789.
  • Phase 3 — unifi plugin (4 tools: list access events, list users, get door status, list sites) against the UniFi Access developer REST API.
  • Phase 3 — codex-mrp plugin (5 tools: list/get/create work orders, get inventory, list BOMs) via direct SQLite using better-sqlite3. Queries use placeholder table/column names — adjust to match your CODEX schema before relying on these tools.
  • Phase 3 — streamvault plugin (4 tools: list jobs, add download, get job status, cancel job) — REST stub; awaits StreamVault deployment.
  • Phase 3 — rackmapper plugin (4 tools: list racks, get rack, list devices, map service) against RackMapper at 10.2.0.23.
  • Shared HTTP helper at src/util/http.ts — timeout, JSON serialization, structured HttpError.
  • Dependencies: dockerode, @types/dockerode, better-sqlite3, @types/better-sqlite3.

Changed

  • Dockerfile: install python3/make/g++ in the builder stage and libstdc++ in the runtime stage so better-sqlite3 compiles cleanly on Alpine/musl.
  • docker-compose.yml: Docker socket is now mounted read-write (Phase 2 needs it for start/stop). Added a commented-out mount line for the CODEX SQLite file.

Changed

  • Tool naming: plugins now provide fully-qualified tool names (e.g., gitea_list_repos) directly. The registry no longer auto-prefixes with pluginName__. This matches PLAN.md's naming and handles plugins like codex-mrp whose tool prefix (codex_) differs from the directory name.