Skip to content

v0.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Aug 21:59
v0.4.0
8628c0c

Added

  • HETZNER_ALLOW_TOOLS and HETZNER_DENY_TOOLS choose which of the 22 tools are
    registered. Both take comma-separated tool names or a prefix with a trailing
    * (list_*), the allow list decides what is in and the deny list is
    subtracted from it, and HETZNER_ALLOW_TOOLS=essential selects a curated eight
    list_zones, get_zone, list_rrsets, get_rrset, create_rrset,
    set_records, delete_rrset, export_zonefile. A model picks the right tool
    far more reliably from eight than from twenty-two, and every visible tool costs
    context on every request. Nothing changes for an installation that sets
    neither: all 22 are still registered.

    A filtered tool is not registered at all, so it is absent from tools/list
    and answers tools/call with "tool not found" — the same cut
    HETZNER_READ_ONLY already makes, not a second, weaker one.

    An entry that matches no tool stops the server at startup, naming the entry
    and listing the real names, rather than being ignored: an ignored typo leaves a
    tool missing from tools/list with nothing pointing at the cause. The same
    applies to a malformed pattern such as *_zone. Under HETZNER_READ_ONLY, an
    exact write-tool name in the allow list is refused with a message naming the
    read-only setting instead of calling the tool unknown, while a pattern covering
    write tools is accepted and simply contributes nothing.

Changed

  • The README now carries the same eight badges, in the same order, as every other
    MCP server in this family, all of them reading from npm rather than hard-coded;
    the opening follows one shape; and the standalone "Full documentation" line is
    gone, because the docs badge three lines above it points at the same page.

Fixed

  • The container image no longer ships OpenSSL 3.5.7-r0, which carries
    CVE-2026-14456 (denial of service via unbounded memory growth). The pinned
    node:24-alpine digest is already the newest one; Alpine's fixed 3.5.8-r0 has
    simply not been rebuilt into it yet, so the runtime stage now upgrades
    libcrypto3 and libssl3 by name. Upgrading those two rather than running a
    blanket apk upgrade keeps the rest of the image exactly as the digest pins
    it. The step can go once the base image ships the fix.