MCP setup

Image

Image Use
ghcr.io/bbartling/openfdd-mcp Slim Rust MCP stdio server; talks to central over OPENFDD_API_BASE

Run (stdio)

docker run --rm -i --network host \
  -e OPENFDD_API_BASE=http://127.0.0.1:8080 \
  -e OPENFDD_MCP_TOKEN="$TOKEN" \
  ghcr.io/bbartling/openfdd-mcp:latest

Inside the compose network, point at central directly: OPENFDD_API_BASE=http://central:8080.

Cursor mcp.json (illustrative)

FDD-only (openfdd) leaves agents blind to Twin/ECM. Prefer dual-MCP — see companion-wattlab-energyplus.md.

{
  "mcpServers": {
    "openfdd": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i", "--network", "host",
        "-e", "OPENFDD_API_BASE=http://127.0.0.1:8080",
        "-e", "OPENFDD_MCP_TOKEN",
        "ghcr.io/bbartling/openfdd-mcp:latest"
      ],
      "env": { "OPENFDD_MCP_TOKEN": "<integrator JWT>" }
    },
    "energyplus": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "/path/to/wattlab_workspace:/data",
        "energyplus-mcp-dev"
      ]
    }
  }
}

Tool surface

MCP tools map to REST endpoints — ingest preflight, assignments, rules batch, commissioning import/export, health, reports. Discover via:

GET /api/agent/tools

Pull with the stack

./scripts/openfdd_stack_pull.sh mcp

MCP clients speak stdio JSON-RPC, so launch with docker run -i (above) rather than a detached compose service. See Build recipes.