Skip to main content
The Intent Gap Report is the reason mcpeye exists. It answers one question:
What did users keep asking my server to do that it couldn’t?
Not “which tool is slow.” Not “what’s my error rate.” The actual user goals your tools reached for and missed.

What’s in the report

A GapReport covers a project over a time window and contains:

topFailedAsks

The hero list. User asks your tools attempted but couldn’t satisfy, ranked by count, each with exampleSessionIds so you can read the real transcripts.

topIntents

What users come to your server to do, ranked. The denominator that makes the failed asks meaningful.

toolCombos

Which tools get used together in a session. Surfaces missing glue between capabilities agents keep chaining by hand.

errorPatterns

Recurring { tool, error } pairs by count — the structural failures behind the failed asks.
The report also ships as rendered markdown, so you can drop it into a PR, an issue, or a weekly digest without touching the dashboard.

How an ask becomes “failed”

Each session gets summarized into a one-line intentSummary and a sessionOutcomesuccess, partial, failed, or unknown. When the outcome is partial or failed, the summary records attemptedButFailed (the specific asks that didn’t land) and, where the model can infer it, a missingCapability. The report clusters those attemptedButFailed strings across sessions, dedupes near-identical asks, and ranks them. That ranked list is topFailedAsks.

The honest ceiling

mcpeye sees your server from the server side. That vantage point is a feature — it needs no client instrumentation and works for any agent that connects — but it has a hard limit you should know up front:
mcpeye sees attempted-but-failed asks, not truly silent misses.We capture intent from tool calls that actually reached your server. If a user asks for something and the agent never even attempts a tool call — because no tool looked relevant, or it gave up before trying — that intent never touches your server, so mcpeye can’t record it.
In practice this means the Intent Gap Report is a high-precision view of the gap: everything in it is a real ask your server saw and couldn’t satisfy. It is not a complete view of all unmet demand — the silent misses live in the agent’s client transcript, which the server never sees. We’d rather report a sharp, trustworthy subset than guess at what we can’t observe.

See the full pipeline

How injected intent becomes a clustered report.