tools: add physics-sanity + Docker MCP scaffolding + tools/README
- tools/physics-sanity/ — JS library of cross-node balance helpers
(mass / hydraulic / hydraulic-power / oxygen-transfer / energy) with
7 unit tests + a CLI demo. Designed for `require()` from per-node
integration tests where shape-based unit tests miss physically-
impossible plant states.
- tools/docker-compose.yml + tools/mcp/{node-red-admin,influxdb,browser}
scaffolding — placeholder Dockerfiles + a ROADMAP.md for the Node-RED
admin MCP. Compose file is the target shape for the Q3-2026 migration
to the central MCP server; the per-service Dockerfile stays in this
repo as the canonical definition either way. Implementations are TODO.
- tools/README.md — top-level tooling index; documents the CI order for
running every tool on a PR.
- .gitignore: ignore tools/.env (developer-specific MCP endpoints).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
46
tools/docker-compose.yml
Normal file
46
tools/docker-compose.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
name: evolv-tools
|
||||
|
||||
services:
|
||||
# ----------------------------------------------------------------------
|
||||
# Local MCP services for the Claude Code tooling stack.
|
||||
# Migration note (2026-05): these are deliberately local. When the
|
||||
# central MCP server comes online (target Q3 2026), each service moves
|
||||
# to the shared infra; this compose file becomes the spec for what to
|
||||
# provision there. The build context + Dockerfile in tools/mcp/<name>/
|
||||
# stays in this repo as the canonical definition.
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
mcp-node-red-admin:
|
||||
build:
|
||||
context: ./mcp/node-red-admin
|
||||
container_name: evolv-mcp-node-red-admin
|
||||
environment:
|
||||
NODE_RED_HOST: ${NODE_RED_HOST:-http://host.docker.internal:1880}
|
||||
NODE_RED_TOKEN: ${NODE_RED_TOKEN:-}
|
||||
stdin_open: true
|
||||
tty: true
|
||||
profiles: ["mcp"]
|
||||
|
||||
mcp-influxdb:
|
||||
build:
|
||||
context: ./mcp/influxdb
|
||||
container_name: evolv-mcp-influxdb
|
||||
environment:
|
||||
INFLUX_URL: ${INFLUX_URL:-http://host.docker.internal:8086}
|
||||
INFLUX_TOKEN: ${INFLUX_TOKEN:-}
|
||||
INFLUX_ORG: ${INFLUX_ORG:-wbd}
|
||||
INFLUX_BUCKET: ${INFLUX_BUCKET:-telemetry}
|
||||
stdin_open: true
|
||||
tty: true
|
||||
profiles: ["mcp"]
|
||||
|
||||
mcp-browser:
|
||||
build:
|
||||
context: ./mcp/browser
|
||||
container_name: evolv-mcp-browser
|
||||
environment:
|
||||
DASHBOARD_URL: ${DASHBOARD_URL:-http://host.docker.internal:1880/dashboard}
|
||||
HEADLESS: ${HEADLESS:-true}
|
||||
stdin_open: true
|
||||
tty: true
|
||||
profiles: ["mcp"]
|
||||
Reference in New Issue
Block a user