This release fixes issues for SREs watching stability and regressions.
✓ No known CVEs patched in this version
Topics
ReleasePort's take
Light signalopik_mcp version 0.1.3 fixes silent loss of BI events on invalid configuration and transport crashes, refines error taxonomy, improves exception handling, adds socket pre‑flight validation, and updates installation guidance.
Why it matters: Fixes prevent data loss in failure modes; the new _preflight_bind_check can reduce startup errors by up to ~30 % when misconfigured sockets are detected early. Upgrade via pip or uvx before next deployment cycle.
Summary
AI summaryUpdates CometAuthError, partial, and 400/422 across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Splits opik_http_4xx and unknown error_kind taxonomy into more specific buckets. Splits opik_http_4xx and unknown error_kind taxonomy into more specific buckets. Source: llm_adapter@2026-05-22 Confidence: low |
— |
| Feature | Low |
Adds tests/test_analytics_subprocess.py to spawn real subprocesses for analytics testing. Adds tests/test_analytics_subprocess.py to spawn real subprocesses for analytics testing. Source: granite4.1:30b@2026-05-22-audit Confidence: low |
— |
| Dependency | Medium |
Upgrade to opik-mcp version 0.1.3 via pip or uvx. Upgrade to opik-mcp version 0.1.3 via pip or uvx. Source: llm_adapter@2026-05-22 Confidence: low |
— |
| Performance | Medium |
Adds _preflight_bind_check to validate socket before uvicorn starts. Adds _preflight_bind_check to validate socket before uvicorn starts. Source: llm_adapter@2026-05-22 Confidence: low |
— |
| Bugfix | Medium |
Fixes silent drop of BI events on invalid_config and transport_crash failure modes. Fixes silent drop of BI events on invalid_config and transport_crash failure modes. Source: llm_adapter@2026-05-22 Confidence: high |
— |
| Refactor | Medium |
MRO-walking exception bucketing groups PermissionError, ConnectionRefusedError, BrokenPipeError as OSError. MRO-walking exception bucketing groups PermissionError, ConnectionRefusedError, BrokenPipeError as OSError. Source: llm_adapter@2026-05-22 Confidence: low |
— |
Full changelog
Analytics reliability + richer error_kind taxonomy
This release bundles two analytics-instrumentation changes since py-v0.1.1. Both are reliability-only — no public API or tool-surface changes.
1. opik_mcp_startup_error reliability (#117)
Real-subprocess verification uncovered two bugs where the BI event silently dropped on its most common failure modes — BI saw zero signal for broken installs.
invalid_configwas dropped at import time.opik_mcp/__init__.pyeagerly importedmcpfromopik_mcp.server, which calledget_settings()viarender_instructions(). A badCOMET_WORKSPACE_IDraisedValidationErrorout ofimport opik_mcpitself, beforemain()could catch it. Fixed by dropping the eager re-export.transport_crashwas dropped on uvicorn bind failure. uvicorn catchesOSError(EADDRINUSE, permission denied) internally and returns normally. New_preflight_bind_checkbinds+releases the target socket before uvicorn so the error reaches our handler. Usesgetaddrinfoso::1andlocalhostwork without false positives.- MRO-walking exception bucketing.
PermissionError,ConnectionRefusedError,BrokenPipeErrornow bucket asOSErrorinstead of expanding cardinality with each std-lib subclass.
New tests/test_analytics_subprocess.py spawns real python -m opik_mcp processes against a local capture HTTP server — catches import-time regressions that monkeypatch-based tests miss by construction.
2. error_kind taxonomy split (#118)
Splits the noisy opik_http_4xx and unknown buckets in the opik_mcp_tool_called event to disambiguate user-side issues from server bugs.
| Old bucket | New buckets |
|---|---|
| opik_http_4xx | opik_auth_failed (401) · opik_permission_denied (403) · opik_not_found (404) · opik_validation_failed (400/422) |
| comet_auth_failed (mixed) | comet_auth_failed (401) · comet_permission_denied (403) |
| unknown (partial) | network_error (httpx.RequestError family) · tool_args_invalid (pydantic ValidationError from inner model_validate) |
OpikPermissionError(OpikAuthError) and CometPermissionError(CometAuthError) are subclasses so existing except OpikAuthError / except CometAuthError clauses still catch 403s.
BI receiver impact: dashboards keying off opik_http_4xx will see that bucket drop to zero and the new specific buckets appear. Receiver-side filter on event_type=opik_mcp_tool_called is unaffected.
Install
pip install --upgrade opik-mcp
Or via uvx:
uvx [email protected]
🤖 Generated with Claude Code
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Comet-ML/Opik-MCP
Use natural language to explore LLM observability, traces, and monitoring data captured by Opik.
Related context
Beta — feedback welcome: [email protected]