Next.js observability. Use when debugging performance issues, investigating errors, or when you need runtime telemetry to understand what's happening in the app.
Ward MCP exposes 6 read-only tools for Next.js observability querying. Tool naming follows verb_noun conventions and is generally clear (list_projects, get_sessions, diagnose_performance). Descriptions are present and reasonably detailed (average ~120 chars), explaining the purpose and use case of each tool. Input parameters are typed with JSON Schema and include descriptions. However, there are notable gaps: (1) Output schemas are NOT documented, no response structure is specified for any tool, making it difficult for LLMs to parse results and plan chained calls; (2) Parameter descriptions lack detail on constraints, formats, and valid ranges, e.g., 'threshold_ms' has no bounds guidance, 'type' enum in find_slow_requests is clear but lacks explanation of what each type filters; (3) No error handling guidance, tool descriptions do not explain failure modes or recovery paths; (4) Composition is solid (tools are single-responsibility), but lack of documented output makes chaining uncertain. All tools are READ_ONLY, which is secure by design. This is a competent but incomplete implementation, suitable for internal/specialist use but falls short of production quality for general agent deployment.
Diagnose performance issues in a session or route. Finds bottlenecks, slow queries, uncached requests, and suggests fixes.
Find HTTP requests or database queries slower than a threshold. Helps identify performance bottlenecks.
Get all errors from recent sessions with context. Shows failed requests, error status codes, and source locations.
Get detailed resource waterfall for a specific session. Shows all requests, their timing, and source file locations.
List recent Next.js page sessions with performance metrics. Use this to see what pages have been visited and their performance.
List all projects that have sent telemetry data. Use this to see which applications are being monitored.
No output/response schemas documented. LLMs cannot infer what fields to expect from tool results, making downstream chaining uncertain and forcing exploratory calls.
Parameter descriptions lack constraint details. E.g., 'threshold_ms' (numeric) has no bounds; 'limit' parameters have no stated min/max ranges; 'type' enum in find_slow_requests lacks explanation of what each type represents.
No error handling guidance in tool descriptions. Tools do not explain failure modes (e.g., project not found, session expired, no data available) or suggest recovery paths.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 48 | - | v1 |
No pagination or result limiting documented. Tools like get_sessions and get_errors accept 'limit' but do not explain whether results are paginated, what the max limit is, or how to fetch additional pages.
Parameter 'project_id' is optional in several tools with auto-detection behavior ('auto-detects from cwd or shows all projects'), but the fallback logic is not clearly specified. This ambiguity may cause LLMs to misuse the tool.