Native agent observability (sessions, MCP/tool spans, export) — hooks are not enough

Describe the request

Feature request for product/service

Cursor IDE / Agent (and Cloud Agents)

Describe the request

We’re running serious agent workflows on Cursor (skills, MCP, shell, multi-step investigations). Today the only way to get usable observability is project hooks (beforeSubmitPrompt, afterMCPExecution, afterShellExecution) pushing redacted events into an external system (e.g. Langfuse).

Hooks prove the need, but they’re fragile and incomplete as a platform story.

Problem

  • Agent work is mostly invisible outside the chat transcript: ask → MCP/tool/shell hops → outcome
  • Each repo must invent its own tracing bus
  • Cloud / some runtimes don’t get the same MCP hook coverage
  • No first-class session/trace model, redaction policy, or export API
  • Debugging “what did the agent actually call?” requires stitching logs ourselves

Request — native observability

  1. Stable session + turn IDs across prompt → tools → stop
  2. Structured spans for MCP, shell, Task/subagents (name, duration, status, redacted I/O summaries — not full dumps)
  3. Opt-in export (webhook / OTLP / API) to Langfuse, Datadog, Honeycomb, etc.
  4. Privacy controls (PII redaction defaults, allowlists, local-only mode)
  5. In-product timeline UI of tool/MCP calls per chat
  6. Parity between IDE Agent and Cloud Agents for the same events

Why it matters
Enterprises won’t run production agent workflows without auditability. Native observability would make Cursor the system of record for agent behavior — not just the IDE — instead of forcing every team to rebuild hooks + external tracing.

Happy to share a concrete observation schema (AGENT / TOOL / RETRIEVER / CHAIN) and pilot feedback.

Hey @Ayush_Agrawal, thanks for the detailed suggestion.

Part of this exists today. Enterprise teams can turn on OpenTelemetry Export in the dashboard. It streams metrics (tokens, cost, tool call counts) and logs (API requests, errors, skills, hooks, plugins, Cloud Agent lifecycle events) to your own OTLP collector, and it is generated server side so it covers IDE, CLI, and Cloud Agents the same way. Every log record carries a conversation id you can join on.

Docs: OpenTelemetry Export | Cursor Docs and the wire reference at OpenTelemetry Export Wire Reference | Cursor Docs

What it does not do yet is per call tool and MCP records with duration and status inside a session, and an in product timeline. Hooks remain the path for that today.