klaridian() changelog
Release notes, newest first. Also on GitHub Releases.
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-klaridianOpenAPI extension, including object-form hints (mapped onto MCPToolAnnotations:readOnly,destructive,openWorld) and anexpose: falseflag to exclude an operation from the generated server. - Tool-title precedence:
x-klaridian.title→ OpenAPIsummary→operationId, 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 fromopenapi-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.
Fixed
klaridian --versionnow reads the real version frompackage.jsoninstead of a hardcoded literal that had drifted to0.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 adeclare -A(bash 4+) associative array that silently emitted an empty formula.
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
klaridianGitHub organization (github.com/klaridian/klaridian); oldricardocvasconcelos/klaridianURLs still redirect.
Fixed
- Dropped the retired
macos-13runner 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
prepublishOnlyso publishing no longer re-runs the full suite.
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
registerToolboundary: 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 withisError: true). klaridian initonboarding wizard,klaridian startlauncher for a generated project, config-file support forgenerate, andplugins list/licenses listintrospection commands.- A documentation site structured around the Diátaxis framework (tutorials, how-to, reference), with an auto-generated CLI reference.