From 81ef52ca01e60a72bb18462b3d520cf437801a1e Mon Sep 17 00:00:00 2001 From: RCLL Date: Fri, 28 Aug 2026 16:23:27 +0300 Subject: [PATCH] chore(glama): container image for the MCP server + maintainer claim MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Directory listings (Glama, and awesome-mcp-servers via its bot) refuse to list a server they cannot build and start. Both files exist for that gate: - mcp-server/Dockerfile packages ONLY mcp-server/, not the RCLL backend. The five tools register at module load, before any HTTP call, so introspection succeeds with no backend reachable — verified by building the image and running an initialize + tools/list handshake over stdio (5 tools, stdout clean of anything but protocol frames; the startup banner goes to stderr). - glama.json names geratron as maintainer, which is how Glama grants the claim needed to attach the Dockerfile on their side. Not a deployment artifact: no image is pushed to any registry, and the compose stack at the repo root is still the way to run the backend. --- glama.json | 6 ++++++ mcp-server/Dockerfile | 31 +++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 glama.json create mode 100644 mcp-server/Dockerfile diff --git a/glama.json b/glama.json new file mode 100644 index 00000000..8395ff12 --- /dev/null +++ b/glama.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://glama.ai/mcp/schemas/server.json", + "maintainers": [ + "geratron" + ] +} diff --git a/mcp-server/Dockerfile b/mcp-server/Dockerfile new file mode 100644 index 00000000..4f202951 --- /dev/null +++ b/mcp-server/Dockerfile @@ -0,0 +1,31 @@ +# Container image for the fleet-memory MCP server (stdio transport). +# +# This image exists for directory listings (Glama and friends) that require a +# buildable Dockerfile and start the server to introspect its tool list. It +# packages ONLY mcp-server/, not the RCLL backend: the MCP server is a thin +# stdio client that talks to a self-hosted backend over FLEET_URL. +# +# Introspection works with no backend reachable — the five tools are registered +# at module load, before any HTTP call. Actual tool calls need FLEET_URL to +# point at a running RCLL API (see docker-compose.rcll.yml at the repo root). +# +# build: docker build -t fleet-memory-mcp mcp-server/ +# run: docker run --rm -i -e FLEET_URL=http://host.docker.internal:5100 fleet-memory-mcp + +FROM node:22-alpine + +WORKDIR /app + +# Dependencies first so the layer caches independently of server.js edits. +COPY package.json package-lock.json ./ +RUN npm ci --omit=dev + +COPY server.js README.md LICENSE ./ + +# Backend location. Overridden at run time; the default matches the local +# docker-compose stack. The pre-rebrand name HINDSIGHT_URL is still read. +ENV FLEET_URL=http://127.0.0.1:5100 + +# stdio transport: the container talks MCP over stdin/stdout, so it must be run +# with -i and must not print anything but protocol frames on stdout. +ENTRYPOINT ["node", "server.js"]