Noodle Seed
Guides

Analytics & observability

See how AI clients use your server — volume, sessions, latency percentiles, two-tier errors, per-tool usage — from the CLI and the console.

Every request to a hosted server is captured automatically at the gateway: no SDK, no instrumentation, no code changes. Once traffic flows, the same analytics are readable three ways — the CLI, the console dashboard, and your coding agent.

The two-tier error model

Analytics splits failures the way MCP does:

  • Tool errors (tool_error) — a tool result with isError: true. These are handed back to the model, which usually recovers. Shown in amber.
  • MCP errors (mcp_error) — protocol violations, timeouts, unknown tools, internal faults. These never reach the model and degrade the user experience. Shown in rose; these are the ones that need your attention.

Discovery chatter (tools/list, ping) is excluded from usage numbers, so tool-call counts reflect real intent. Sessions are counted from initialize requests, which also supply the client mix (ChatGPT, Claude, Cursor, and friends).

From the CLI

noodle metrics                 # the report: volume, sessions, errors, latency, tools, clients
noodle metrics --window 24h    # presets: 24h, 7d (default), 30d
noodle events                  # the per-request stream
noodle events --status mcp_error --json
noodle events --session <id>   # replay one session chronologically
noodle events --tail           # follow live

noodle metrics reports latency as percentiles (p50/p95/p99), a token gauge (average token-equivalent each call adds to the model's context — a tool-design health signal), and per-tool health. When a tool's error share is elevated, the report ends with the exact next command to run.

From the console

Open your project in the console and switch to the analytics tab: the same numbers as charts — request volume with error ticks, client and method mix, per-tool bars with health, and the event stream. Click any session id to replay that session in order. Tool names that are not in your manifest are tagged — a useful signal that an AI client is hallucinating tool names worth adding or aliasing.

You can also just ask the console's chat: "how is my server doing?" renders the same metrics as a card, and it will drill into failing tools and sessions for you.

For coding agents

noodle metrics --agent-output

Returns a compact JSON verdict — health (ok or attention), a one-line summary, and attention[] items that each carry the exact next command — so an agent can branch without parsing the full payload. The full payloads are noodle metrics --json and noodle events --json.

Logs vs analytics

Analytics answers what happened to requests; logs answer what your app said while handling them. For logs, see Troubleshootingnoodle logs supports --level, --search, --since, and --until.

Records are scalar-only by construction: no request bodies, headers, tokens, or secret values are ever captured.

On this page