opik-compare
Run a candidate against the baseline over an Opik test suite and read the numbers back — which cases broke, which got fixed, the…
Set up human review in Opik — create an annotation queue for a project's traces or threads and give it a custom annotator view, an HTML page that shows annotators each item the way they need to judge it (the email beside the reply, the conversation as chat bubbles) instead of
Claude Code
$ npx -y skills add comet-ml/opik-mcp --skill opik-annotate --agent claude-code
Codex
$ npx skills add comet-ml/opik-mcp --skill opik-annotate -a codex -y
Cursor
$ npx skills add comet-ml/opik-mcp --skill opik-annotate -a cursor -y
Gemini CLI
$ npx skills add comet-ml/opik-mcp --skill opik-annotate -a gemini-cli -y
GitHub Copilot
$ npx skills add comet-ml/opik-mcp --skill opik-annotate -a github-copilot -y
OpenCode
$ npx skills add comet-ml/opik-mcp --skill opik-annotate -a opencode -y
Windsurf
$ npx skills add comet-ml/opik-mcp --skill opik-annotate -a windsurf -y
name: opik-annotate description: Set up human review in Opik — create an annotation queue for a project's traces or threads and give it a custom annotator view, an HTML page that shows annotators each item the way they need to judge it (the email beside the reply, the conversation as chat bubbles) instead of raw JSON. Writes through the Opik MCP when connected, the Opik SDK otherwise. Returns the queue, its link, and what annotators will see. Use for "build a custom annotator view", "set up an annotation queue", "make the review queue show the email and the reply side by side", "change what annotators see", "remove the custom view". Not for automatic scoring (use online-eval) or for finding which traces to review (use diagnose). compatibility: Tested with Claude Code; works with any Agent Skills-compatible host (Cursor, VS Code Copilot, Codex). Requires Opik configured and a project with traces. Custom annotator views need an Opik version that supports them; an older Opik accepts the view and drops it, and the MCP says so. Without the MCP, it needs the Opik SDK `opik>=2.2.122`. allowed-tools: - Read - Grep - Glob - Bash metadata: last_updated: "2026-10-28" source_commit: "e4a6fa9b424128eb01817b8700761ac249a89e78" argument-hint: "[queue name or id, or what annotators should judge; optional project]"
**Definition of done:** the **queue exists with the view saved, and the user knows where to check it** — the write returned without a `warning`, and the answer carries the queue's link. A view is built from the project's **real** traces or threads, never from a guessed shape. If the queue or the view can't be saved, stop at the **first** genuine blocker and return **exactly one** next step.
Operate: **look at real items first, cover every shape you saw, show text not JSON, keep scoring in Opik's own panel.** This skill writes to Opik only and changes no application code.
`/opik-annotate <what annotators judge>` ("the drafted reply", "whether the agent solved the ticket"), `/opik-annotate <queue name or id>` (change that queue's view), or a request to remove a view. Infer the rest; optional overrides: project (default: configured) · scope (default: `trace`; `thread` for whole conversations) · feedback definitions (default: the queue's own).
With the Opik MCP connected: `list('annotation_queue', project_name=…)` shows the project's queues with their scope and item count; `read('annotation_queue', id_or_name)` returns one with its instructions, feedback definitions and view summary. The view's html is stated by size; `read('annotation_queue', id, fields=['annotator_view.html'])` returns it whole — read it before changing a view, and change only what was asked.
Note every shape `input`, `output` and `metadata` take: objects, arrays, or strings that hold JSON. A view that handles only the most common shape fails annotators on the rest.
From the queue's instructions and feedback definitions: what is judged goes first; what it is judged against goes beside or below it; what would bias the annotator (judge scores, when they give their own verdict) goes behind `kit.revealGate`.
Read `references/kit-v1.md` first: it is the only API, class and token list the page has, and views are stored with that kit version. What the page can rely on:
Design: lead with what is judged in a `highlight` card; a row of `kit.chip` facts that frame the item; counts that matter (words against a limit); fold long text with `kit.clampGroup` and lists over ~5 items; nothing scrolls inside the view; technical details (model, ids, durations) in a collapsed `<details>` at the bottom. Normalise every shape into one before rendering. For a thread, `kit.turn` per message, user on the right, tool calls in a collapsed `<details>`.
MCP: `write('annotation_queue.create', {project_name, name, scope, instructions?, feedback_definition_names?, annotator_view: {html, summary}})`, or `write('annotation_queue.update', {id, annotator_view: {html, summary}})` for an existing queue. `summary` is one line starting "Annotators see…" describing the whole view; the queue form shows it as writt
The official Model Context Protocol (MCP) server for Opik, the open-source LLM observability and evaluation platform, built by Comet.
Run a candidate against the baseline over an Opik test suite and read the numbers back — which cases broke, which got fixed, the…
Surface the Opik traces worth a developer's attention, ranked by signal — Diagnostics issues first, then errors, failed tool…
Build an LLM evaluation and run it against the app, returning an Opik experiment with scores and its link. Picks a test suite…
Root-cause a specific Opik trace, or a pattern across traces, and return a grounded explanation. Uses the hosted Opik MCP when it…
Add Opik tracing to an existing app and verify a real trace lands. Installs the Opik package, detects the language and LLM…
Take a judge live on production traffic — create an Opik online evaluation rule (LLM-as-judge or Python metric) on a project with…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.
Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…
Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…