Releases: fr0ster/mcp-calm-server
Release list
v0.5.1
calm_logs_get now forwards category, version and format query params, so the full live Logs query /calm-logs/v1/logs?version=V1&period=60M&provider=…&serviceId=…&category=ABAP%20Runtime&format=protobuf-json is expressible. Adds scripts/probe-logs.mjs to verify wire behaviour. Realigns with @mcp-abap-adt/calm-client@0.5.0.
v0.5.0 — decode Logs OTLP protobuf into JSON
The Cloud ALM Logs API always returns an OpenTelemetry application/x-protobuf body — the format query param and Accept header are both ignored, so there is no JSON mode on the wire. This release makes calm_logs_get usable.
Added
calm_logs_getdecodes OTLP → canonical JSON underrecords({ resourceLogs: [{ resource, scopeLogs: [{ scope, logRecords }] }] }), via an embedded minimal OTLP schema +protobufjs. Verified live oneu10-004: real ABAP Application Log records (service.name=E19.100,sap.exm.*attributes) decode correctly.raw: true— returns the undecoded protobuf as a base64 string (encoding: "base64").
Changed
- Connection returns a
Bufferfor binary responses.AbstractCalmConnectionpreviously read every body viaresponse.text(), mangling protobuf through UTF-8. It now returns raw bytes for non-textual Content-Types; JSON/text/XML parse exactly as before. Response shaping stays in the tool — the client remains transport-only.
Adds protobufjs runtime dependency. No calm-client change. 235 tests green.
v0.4.1 — logs paging realign (calm-client@0.4.2)
Changed
Realign with calm-client@0.4.2, which auto-sets onLimit=truncate so the logs tool's limit pages instead of 403-ing on any real window.
calm_logs_getgains an optionalonLimit(override; defaults totruncatein the client whenlimit/offsetis set)- clarified
limitdescription — now reliable out of the box perioddescription corrected to the<n>Mminutes format (not1h/24h)serviceIddescription corrected (plain param, required by the live API)- bump calm-client peer+dev →
^0.4.2(hard floor:limit403s on 0.4.1)
Verified live (eu10-004): 60M + limit=5 → 200 with records, where the same call on 0.4.1 returned HTTP 403.
calm-server 0.4.0
BREAKING: server now owns the CALM connection (calm-client 0.4.0 dropped CalmConnection). Combines the auth-broker integration with a server-owned connection layer.
- New
src/server/connection/on native fetch:AbstractCalmConnection,SandboxCalmConnection,OAuth2CalmConnection,createCalmConnectionfactory;./connectionsubpath export. Peercalm-client@^0.4.0. CALM_BASE_URLconsumed verbatim — no/apiinjection (pasteendpoints.Apias-is). Fixes the double-/api404.- Tokens via @mcp-abap-adt/auth-broker (CALM_AUTH_FLOW), injected as
ITokenRefresherinto the connection. - Request-lifecycle logging via
ILogger(stderr-safe).dotenv-> dependencies.
v0.3.0 — align with calm-client@0.3.0; Tasks is not OData
0.3.0 — align with calm-client@0.3.0; Tasks is not OData
v0.2.0 — 54 tools, live integration, stdio-safe logging
0.2.0 — parity + bonus + live integration + stdio-safe logging