Skip to content

v2.0.0 — FSL-1.1-MIT relicense + hygiene baseline

Choose a tag to compare

@lazyants lazyants released this 06 May 16:50
· 48 commits to main since this release

First major release. Two themes: (1) license switch to FSL-1.1-MIT, and
(2) project-hygiene baseline shared across the Lazy Ants MCP server
fleet (npm provenance, Trusted Publishing, ESLint 9, Dependabot,
multi-Node CI, version-sync guard).

Versions ≤ 1.1.1 remain under the original MIT license.

Changed

  • License → FSL-1.1-MIT. Auto-reverts to MIT after two
    years. The license switch is what makes this a semver-major bump;
    the rest would be minor/patch on their own.
  • Dependencies: typescript^6.0.0, vitest^4.1.0,
    actions/checkoutv6, actions/setup-nodev6,
    axios^1.16.0 (CVE coverage), @modelcontextprotocol/sdk
    ^1.29.0. zod stays on ^3.25.0 — the MCP SDK has known
    .describe() propagation bugs with zod 4.
  • Releasing: GitHub Releases auto-publish to npm with provenance
    (--provenance --access public) before pushing to the MCP Registry.
    Authentication via npm Trusted Publishing — no NPM_TOKEN secret
    in the repo. mcp-publisher is pinned by version + SHA-256 and
    smoke-tested before the irreversible npm publish. Cutover/recovery
    guard skips npm publish cleanly if the version is already on npm.
  • CI: test workflow runs on Node 20 and 22 with npm cache, lint,
    version-sync check, and npm audit --audit-level=moderate --omit=dev.

Added

  • ESLint 9 flat config (eslint.config.mjs) with
    tseslint.configs.recommended + globals.node. New npm run lint
    script, gated in CI.
  • Dependabot for weekly npm + GitHub Actions updates, grouped
    minor+patch, ignoring @types/node major bumps.
  • scripts/check-versions.mjs enforces
    package.json#version == server.json#/packages[0].version
    (hard fail) and warns on registry-version regressions. Implements
    full semver §10/§11 (build metadata stripped, prerelease ordering).
  • SECURITY.md vulnerability disclosure path.
  • CHANGELOG.md (Keep a Changelog format).
  • engines.node >= 20 in package.json.
  • Hetzner API field additions from the upstream changelog:
    • hetzner_rebuild_server accepts optional user_data (2026-01-16).
    • LB HTTP service schemas accept optional timeout_idle (2026-04-30).
    • hetzner_create_primary_ip no longer requires assignee_type
      (2026-04-27).

Verification

  • npm: npm view @lazyants/hetzner-mcp-server@2.0.0 will show a
    provenance attestation block once the publish workflow completes.
  • MCP Registry: listing at
    https://registry.modelcontextprotocol.io/ updates to 2.0.0.

Full Changelog: v1.1.1...v2.0.0