Releases: comet-ml/opik-mcp
0.2.8
What's Changed
- [OPIK-6742] [BE] feat: configurable transport-security allowlist (hosted Host) by @LifeXplorer in #147
Full Changelog: 0.2.7...0.2.8
0.2.7
What's Changed
- [OPIK-6742] [BE] feat: configurable streamable HTTP path (OPIK_MCP_HTTP_PATH) by @LifeXplorer in #143
Full Changelog: 0.2.6...0.2.7
0.2.4
What's Changed
- [OPIK-6742] [BE] feat: opik-mcp forwards OAuth bearer + serves RFC 9728 protected-resource metadata by @LifeXplorer in #139
New Contributors
- @LifeXplorer made their first contribution in #139
Full Changelog: 0.2.3...0.2.4
0.2.3
What's Changed
Full Changelog: 0.2.2...0.2.3
0.2.0
What's Changed
- feat(analytics): extend MCP host allowlist with 8 new clients by @awkoy in #136
- chore(legacy/ts): Phases 1 & 2 — soft + loud deprecation of npm opik-mcp (OPIK-6713) by @awkoy in #135
- chore(legacy/ts): bump npm opik-mcp to 2.0.2 by @awkoy in #137
- [OPIK-6667] CI/release pipeline + Helm chart for hosted opik-mcp by @liyaka in #138
New Contributors
Full Changelog: v0.1.8...0.2.0
py-v0.1.3
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 opik-mcp@0.1.3
🤖 Generated with Claude Code
v2.0.1
Patch release for the March 7, 2026 dependency refresh.
Included updates:
- #77
ai6.0.86 -> 6.0.109 - #78
@ai-sdk/openai3.0.29 -> 3.0.39 - #79
opik1.10.20 -> 1.10.25 - #80
@modelcontextprotocol/sdk1.26.0 -> 1.27.1 - #81
@smithery/cli4.1.8 -> 4.5.0 - #82
@types/node22.13.9 -> 25.3.3
Verification:
npm cimake precommitnpm run build