Ice Lab
All posts

#You Shouldn't Need an MCP

#May 12, 2026

There's a pattern in multi-modal debugging right now: something fails, so you collect the clip metadata, the model outputs, the sensor traces, and you pipe it all into Claude or Cursor via an MCP server. You write a prompt that asks the LLM to figure out what went wrong. Sometimes it does.

This is a reasonable workaround. It is not a solution.

#What the pattern reveals

When your debugging workflow requires routing raw media into a language model to produce a diagnosis, the observability layer isn't doing its job.

An LLM is not an observability tool. It can reason over text, surface patterns, and make inferences. But "I gave Claude the traces and it figured out what went wrong" is not a repeatable, scalable debugging process. It works for one clip when you have time to construct the right prompt. It doesn't work at 3am when something is actively wrong across 800 clips and you need to know which failure mode is firing.

The MCP workaround is a symptom. The disease is that your tooling can't answer the question directly.

#What "directly" means

A multi-modal observability platform should be able to answer: "Why did this clip fail?" without you routing the question through an LLM.

The answer should come from structured semantic analysis, indexed at ingestion time, queryable in plain language. Frame 6200: tracker dropout. Object re-identified two seconds later as new instance. Motion consistent with occlusion by moving foreground. That is a machine-readable diagnosis — produced by the platform, not inferred by prompting.

If your platform surfaces this directly, an MCP integration becomes optional: a convenience for pulling search results into an existing AI workflow, not the primary path to understanding a failure.

#The output-first argument

If you're using MCP as your primary debugging interface, there's a hidden cost: the diagnosis lives inside a chat thread. It's unstructured, unindexed, not comparable across clips. You can't say "show me all clips where the LLM diagnosed tracker dropout" because the LLM's diagnosis isn't persisted anywhere queryable. It's text in a chat window.

Structured observability produces structured output: defect signatures, event vectors, indexed frame data. These compound. A pattern found today becomes a detector that runs on all new footage. A diagnosis produced by prompting an LLM does not.

#Why we still ship one

We built an MCP server. It's useful for integrating corpus search and replay bundles into existing AI developer workflows — Cursor, Claude Code, Cline. If you're in your editor debugging something and want to pull a clip replay into context, the MCP is a clean way to do that.

But it's integration infrastructure, not the answer. It carries the platform's structured output somewhere useful. The platform still has to produce that output directly — without an LLM in the loop.

#The right test

Can your multi-modal observability platform answer "why did this clip fail" without a language model?

If not — if the answer requires parsing traces in Claude and reasoning over the output — you're patching a gap in your tooling, not debugging. The gap is worth closing directly.