MCP server for tracking and managing development server state
The server has three tools with schemas and descriptions, but they suffer from significant gaps in guidance, error handling, and output structure documentation. Tool naming is verb-based and clear (get_, register_, update_), and parameter schemas are well-typed with descriptions. However, output schemas are incomplete or missing actionable guidance for LLM tool chaining. Descriptions lack dependency hints and do not clearly signal destructive operations. Parameter validation rules are undocumented. No structured error messages guide recovery. The server is STDIO-only, which severely limits production utility (not remotely testable by hosted agents). Overall, the tools are usable but lack the rigor expected of production-grade agent tooling.
List all registered development servers and their current status
Register a new development server to be managed by this MCP
Update the stored configuration for a managed process
Output schemas incomplete or undocumented. The code shows get-managed-processes returns 'servers' and 'lastSynced', but no output schema definition is visible for register-managed-process or update-managed-process. Agents cannot plan downstream calls without knowing what fields to expect.
Destructive/write operations lack explicit warning in descriptions. register-managed-process and update-managed-process modify state (start servers, change config), but their descriptions do not signal irreversibility or side effects. LLMs cannot distinguish safe-to-retry tools from ones that cause mutations.
No error recovery guidance. The code attempts 'pm2 jlist' and silently falls back on failure ('Process manager not available; mark all as stopped'), but the tool does not document what errors it can return or how the agent should respond. A user or agent has no indication whether 'stopped' means 'not running' or 'PM2 failed to query'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 10 | - | v1 |
Missing tool annotations (readOnlyHint, destructiveHint). get-managed-processes is read-only; register-managed-process and update-managed-process are destructive. The Risk field in the spec summary (READ_ONLY, WRITE) indicates intent but these are not encoded in the MCP schema annotations, limiting agent planning.
Parameter validation rules undocumented. The 'instances' parameter (number) has no min/max bounds, agents could pass negative or absurdly large values without guidance. 'args' is an array with no max-length constraint. No description of what constitutes a valid 'name' (alphanumeric? length? uniqueness?).
Descriptions lack dependency hints and prerequisites. register-managed-process does not explain whether 'script' must be a full path or can be relative, or which working directory context applies. No guidance on when to use 'interpreter' vs relying on shebang lines.
No structured tool output. While get-managed-processes returns a 'structuredContent' field with typed objects, the register-managed-process and update-managed-process responses are inferred to be text-only (based on the visible code returning 'success' and object shape). Agents need consistent, typed return structures to chain operations.
Tool composition incomplete. The instruction text references 'start-managed-process', 'stop-managed-process', and 'read-managed-process-logs' tools, but only three tools are visible (get-, register-, update-). Either these tools are missing from the registration or the instructions are aspirational. Broken references in system instructions confuse agents.