-
Release v0.1.1 Stable
released this
2026-05-29 14:09:46 -06:00 | 0 commits to main since this releasev0.1.1
code.nochebuena.dev/einherjar/mcpPatch release. Two changes to
cmd/servermake the binary cleaner to run
behind a unix socket on a reverse-proxied host, plus two repository-hygiene
changes that follow from the same deployment exercise.
Changes
cmd/server-
Systemd socket activation. The binary now inherits the listener from
systemd'sLISTEN_FDSprotocol via
github.com/coreos/go-systemd/v22/activation
when present, falling back transparently to TCP-addrbinding when not.
The startup log records"mode":"socket-activated"or"mode":"tcp"so
operators can confirm which path is live. Same binary, same flags, both
modes — no env var or flag toggles behaviour. -
Health probe moves under
<path>/healthz. The handler is now
registered relative to the-pathflag. With the default-path /mcp,
the probe URL becomes/mcp/healthz. The legacy root-level/healthz
route is no longer registered. This lets a reverse proxy expose the entire
MCP service through one location prefix instead of needing a second
forward for the probe.
Docs
- Deployment section in
README.mdrewritten to be hosting-agnostic.
The v0.1.0 draft prescribed a specific systemd layout; the new text
points at theDockerfileand at systemd socket activation as a supported
binary mode without dictating one operator's setup. Adds an explicit note
that any reverse proxy must disable response buffering on the/mcp
location (streamable MCP delivers tool results via Server-Sent Events;
default nginx, Envoy, or Caddy buffering breaks the stream).
Repository hygiene
/deploy/is now.gitignored. Local deployment artefacts (systemd
units, reverse-proxy templates, per-release scripts) are operator-specific
by design and live outside the public repository. TheDockerfileat the
module root remains the only portable, public-facing build artefact.
Upgrade Notes
If you… Action Consume the MCP service from an MCP client (Claude, Cursor, Zed, etc.) None — the /mcpendpoint is unchanged.Monitor the service via the healthz probe Update the probe URL from /healthzto/mcp/healthz(or<your -path>/healthzif you have customised the path).Run the binary directly (no reverse proxy) None — the legacy -addrflag still binds a TCP listener; activation only kicks in when systemd has passed a listener.Run the binary under systemd with a socket unit The same binary now inherits the systemd listener automatically; no recompile, no flags.
API
No tool surface, no validation rules, no index schema, and no behaviour of
the indexer changed. The 10 tools and 8 validation rules listed in
v0.1.0's release notes remain the public surface. The only
externally-visible URL change is the move of/healthzto
<path>/healthz.
Install
go install code.nochebuena.dev/einherjar/mcp/cmd/server@v0.1.1
Dependencies
Module Version Status Role github.com/modelcontextprotocol/go-sdkv1.0.0 unchanged from v0.1.0 Official Go MCP SDK — server, streamable-HTTP transport, tool registration github.com/coreos/go-systemd/v22v22.7.0 new in v0.1.1 Inherit listener from systemd via LISTEN_FDS; loaded only bycmd/servergithub.com/google/jsonschema-gov0.3.0 unchanged (indirect) JSON Schema generation for tool input/output validation github.com/yosida95/uritemplate/v3v3.0.2 unchanged (indirect) RFC 6570 URI template support used by the SDK Downloads
-