A shared development infrastructure daemon that enables multiple local applications (MCP servers, CLI tools, GUI apps) to share resources like code indexes, reverse proxies, SSH terminals, and managed processes
This MCP server exhibits significant gaps in definition quality across multiple dimensions. Tool definitions are present but lack rigor in several critical areas. Most tool descriptions are terse and provide minimal context about when to call each tool versus alternatives. Parameter descriptions are inconsistent, some parameters are described (e.g., 'Subprocess ID', 'Process ID'), but many lack depth about constraints, valid ranges, or dependencies. Input schemas are visible for all 25 tools, but the schemas themselves are minimal and lack advanced constraints (enums, patterns, minLength/maxLength). Output schemas are not documented in any tool definition. Error handling guidance is absent, tools do not indicate whether failures are retryable, what went wrong, or how to recover. The server exposes internal subprocess/process/session management abstractions rather than wrapping them into higher-level, composition-friendly tools that match user intent. Examples: RUN tool is complex with 7 optional parameters (command, args, env, path, id, script_name, enable_stdin) but lacks documentation of parameter relationships, defaults, or mutual exclusivity. PROC CLEANUP-PORT is marked DESTRUCTIVE but has no confirmation step or dry-run capability. Naming is functional but generic, 'PROC STATUS', 'SUBPROCESS LIST' are clear, but names don't follow the verb_noun convention consistently (most are noun-first like 'SUBPROCESS STATUS' rather than 'GET_SUBPROCESS_STATUS'). No tool returns structured output with the IDs and references downstream tools need, composition chains are implied but not documented. Security considerations are undocumented: no mention of permission checks, audit trails, or scope declarations.
Decrement the counter by an optional amount (default 1)
Echo service that returns command arguments as JSON
Get the current counter value
Increment the counter by an optional amount (default 1)
Get hub information including version, configuration, and status
Send PING command, expect PONG response
Kill processes using a specific port
Output schemas are completely undocumented. No tool definition specifies what fields the response contains, data types, or structure. This prevents LLMs from planning downstream tool calls and understanding what data is available.
RUN tool combines 7 parameters with undocumented relationships and defaults (command, args, env, path, id, script_name, enable_stdin). Description is vague ('Start a new managed process or reuse an existing one'). No clarification of which parameters are mutually exclusive, what defaults apply, or how script_name resolves.
Destructive and security-sensitive tools (PROC CLEANUP-PORT, SUBPROCESS UNREGISTER, RUN with arbitrary commands) lack confirmation steps, dry-run modes, and audit trail guidance. No tool documents permission requirements or scope declarations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 39 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 42 | - | v1 |
List all managed processes
Get combined stdout/stderr output from a process
Get status of a managed process by ID
Write data to stdin of a managed process
Stop a managed process by ID
Reset the counter to zero and return the old value
Start a new managed process or reuse an existing one with given command and arguments
Get information about a specific session
Send heartbeat to keep session alive
List all active sessions
Register a new session with the hub
Unregister a session from the hub
Get subprocess health status
List all registered subprocesses
Start a subprocess by ID
Get status of a specific subprocess by ID
Stop a subprocess by ID
Unregister a subprocess by ID
Tool names do not consistently follow verb_noun convention. Many are noun-first (SUBPROCESS STATUS, PROC OUTPUT, SESSION REGISTER) rather than action-first (GET_SUBPROCESS_STATUS, READ_PROC_OUTPUT, REGISTER_SESSION). Generic names like GET, STATUS, INFO lack verb clarity.
Parameter descriptions are sparse and lack constraints, ranges, or format specifications. Examples: 'Subprocess ID' gives no guidance on ID format, length, or valid characters. 'Port number to cleanup' lacks min/max (1-65535). 'Amount to increment by (optional, default 1)' lacks clarification of sign (positive only, or negative allowed?).
No error handling guidance. Tools do not indicate which failures are retryable (network timeout vs permission denied vs resource not found). No recovery hints like 'Try search_* first' or 'This operation cannot be undone.'
Composition is fragmented. Related operations are split across tools with no documented chaining. SESSION REGISTER returns what fields? Are IDs returned? Must the LLM call SESSION GET immediately after to retrieve the session code? Undefined output schemas break tool chains.
No pagination guidance. SUBPROCESS LIST, PROC LIST, SESSION LIST offer no limit/offset parameters or documentation of result size caps. If hundreds of subprocesses exist, the response could exhaust context window.