klaridian() changelog

Release notes, newest first. Also on GitHub Releases.

v0.2.0

Added

  • OAuth 2.1 resource-server support on the Python target (--language python --transport streamable-http --oauth-*), reaching parity with the TypeScript target: RFC 9728 Protected Resource Metadata discovery, JWKS-backed JWT validation (signature, expiry, issuer, RFC 8707 audience), a spec-shaped 401 Bearer challenge, and required-scope enforcement.
  • Author-supplied tool annotations via the x-klaridian OpenAPI extension, including object-form hints (mapped onto MCP ToolAnnotations: readOnly, destructive, openWorld) and an expose: false flag to exclude an operation from the generated server.
  • Tool-title precedence: x-klaridian.title → OpenAPI summaryoperationId, so generated tools carry human-readable titles instead of raw operation IDs.
  • An annotated example spec (examples/annotated/openapi.json) demonstrating hints, expose, and a title override.

Changed

  • klaridian now owns its internal tool-data model (ToolIR) behind a single adapter seam, decoupling the emitters from openapi-mcp-generator's tool type. No change to generated output; this is the groundwork for phasing out that dependency.

Fixed

  • The npm package page now renders a README (derived from the root README at publish time, with repo-relative links rewritten to absolute, tag-pinned GitHub URLs).
  • The favicon and app icons now use the site's accent green, matching the wordmark instead of the previous cyan drift.
v0.1.1

Fixed

  • klaridian --version now reads the real version from package.json instead of a hardcoded literal that had drifted to 0.0.1; a regression test keeps them in sync. The standalone binary reports the correct version on every channel.
  • The Homebrew formula renderer (render-formula.sh) is now portable to the stock macOS bash 3.2, replacing a declare -A (bash 4+) associative array that silently emitted an empty formula.
v0.1.0

Added

  • Multi-channel binary distribution: platform-tagged PyPI wheels (install with pip/pipx, no Node required) and a Homebrew tap (brew tap klaridian/klaridian && brew install klaridian), alongside npm.
  • Tag-triggered release automation (release.yml): npm, PyPI, and a GitHub Release with attached standalone binaries, publishing to PyPI via OIDC trusted publishing.

Changed

  • The project moved to the klaridian GitHub organization (github.com/klaridian/klaridian); old ricardocvasconcelos/klaridian URLs still redirect.

Fixed

  • Dropped the retired macos-13 runner from the wheel matrix (a retired runner label queues indefinitely instead of failing) and made the npm publish step idempotent so re-firing a tag can complete a partial release.
  • Stabilized a flaky stderr assertion in the launch test, and removed a redundant test re-run from prepublishOnly so publishing no longer re-runs the full suite.
v0.0.1

First public release.

Added

  • Generate a Model Context Protocol (MCP) server from an OpenAPI spec, targeting TypeScript or Python (--language) with full feature parity, built directly from the spec's tool data (SDK v2, protocol 2025-11-25).
  • Transports: stdio (default) and --transport streamable-http.
  • Observability plugins wired in at the registerTool boundary: OpenTelemetry, plus product-analytics plugins (Amplitude, Mixpanel, PostHog).
  • Native MCP conformance with a two-tier error model (unknown tool → protocol error -32602; invalid arguments → tool-error result with isError: true).
  • klaridian init onboarding wizard, klaridian start launcher for a generated project, config-file support for generate, and plugins list / licenses list introspection commands.
  • A documentation site structured around the Diátaxis framework (tutorials, how-to, reference), with an auto-generated CLI reference.