MCP server for querying and managing a shared activity log across multiple hosts and agents
Three tools with complete schemas and descriptions, but significant gaps in parameter documentation and error guidance. Tool names follow verb_noun convention (activity_recent, activity_search, activity_digest). Descriptions are present (avg 180 chars) and explain WHEN to use each tool, which is good. However, most parameters lack descriptions entirely, 'scope', 'agent', 'host', 'group_by' have no guidance on valid values or constraints. Output schemas are not documented. Error handling is minimal: the code catches timeouts and exit codes but provides no recovery guidance to the LLM. No parameter validation rules stated (e.g., what values does 'group_by' accept? What format is 'since'?). The 'since' parameter in activity_search accepts '7d' and 'since:<ULID>' but this is only documented in the description, not as an enum or pattern constraint.
Get pre-summarized digest of activity for a time window: today | yesterday | 7d | since:<26-char ULID> (events at or after that ULID's timestamp).
Get N most recent activity events, optionally filtered by scope/agent/host/time. Use when user asks 'что было', 'recent', or needs timeline context.
Case-insensitive substring search over recent activity events (summary/scope/agent/tags), newest first. Local-first: scans the JSONL shards via the CLI, not the daemon's FTS index. Widen `since` to search further back.
Parameters lack descriptions and constraints. 'scope', 'agent', 'host', 'group_by' have no guidance on valid values, format, or when to use them. LLMs cannot infer parameter meaning from names alone.
Output schemas are not documented. LLMs do not know what fields to expect from each tool, making it impossible to plan downstream calls or extract the right data.
Error handling provides no recovery guidance. Code catches timeouts and exit codes but returns raw error messages. LLMs need actionable guidance: 'Try widening the time window' or 'Check if the daemon is running'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
'since' parameter in activity_search accepts multiple formats ('7d', 'since:<ULID>') but this is only documented in prose, not as an enum or pattern constraint. LLMs may pass invalid formats.
No pagination guidance. activity_search returns up to 20 results by default, but the tool description does not explain the limit or how to fetch more results if needed.