A Model Context Protocol (MCP) server for watching and monitoring server resources
The server defines 2 tools (get_logs, search_logs) with explicit schemas and descriptions. Both tools are read-only log retrieval utilities with clear naming and documented input parameters. However, there are notable gaps: descriptions are concise but lack context on WHEN to use each tool vs. the other, no error handling guidance, no pagination/limit enforcement documented in output schemas, and no structured output schema documentation. The tools follow a simple verb_noun pattern (get_, search_) which is good, but descriptions fall short of the 10-1024 character ideal and lack differentiation cues. Output is implicitly documented as text content but not formally specified as a schema. This is solid for a niche monitoring tool but lacks the polish expected of production-grade agents tools.
Retrieve server logs with filtering and formatting options
Search server logs using case-insensitive substring matching
Missing output schema documentation. Both tools return {content: [{type: 'text', text: string}]} but this schema is not formally documented for LLMs. LLMs cannot predict what fields to expect or plan downstream operations.
Tool descriptions lack differentiation cues. Both 'get_logs' (retrieve with filtering) and 'search_logs' (search with query) do similar work. Descriptions do not explain WHEN to use get_logs vs. search_logs or what scenarios favor one over the other.
No error handling or recovery guidance documented. If logs are empty, if query matches nothing, or if limit is invalid, the tools silently return empty results. Descriptions do not tell LLMs what to do if a search yields no results or how to handle edge cases.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
No pagination or result limit enforcement documented. Both tools can return unbounded results (all matching logs up to the in-memory buffer limit of 5000 entries). Returning thousands of log lines wastes context tokens and risks exhausting the LLM's context window. No limit parameter enforced in search_logs.
Parameter descriptions are brief. The 'stream' parameter description ('Filter logs by stream type') does not explain what stdout, stderr, and 'both' mean in the context of child process monitoring, or why an LLM might choose one over another.