Cross-platform MCP server for managing background processes
Server has 6 well-defined tools with explicit schemas and descriptions. All tools are registered via mcp-go with proper parameter types and descriptions. Naming follows verb_noun convention (start, stop, list, output, send, status). Descriptions are present and actionable (avg ~80 chars). However, output schemas are not documented, callers cannot see what fields to expect from responses. Error handling returns error strings but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Parameter descriptions are good but some lack format/constraint details (e.g., 'tail' and 'maxBytes' in output tool lack min/max bounds).
List all managed processes
Get buffered stdout and stderr of a process
Write to a process's stdin
Spawn a background process
Get detailed state of a single process
Terminate a managed process (graceful, then force)
Output schemas not documented. Callers cannot see what fields list(), output(), status(), and start() return. LLMs cannot plan downstream operations or extract required data.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked with Risk levels in metadata but not exposed to the MCP protocol. Clients cannot determine which tools are safe to retry or have side effects.
Numeric parameters lack bounds. 'tail' and 'maxBytes' in output() have no min/max constraints documented. LLMs may pass invalid values (negative numbers, absurdly large limits).
Error responses are bare strings with no recovery guidance. 'Process not found' tells the LLM nothing about what to do next. Should suggest 'Call list() to see available processes.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
list() description is vague ('List all managed processes'). Does not explain what fields are returned or when to call it. Should state: 'Returns id, name, pid, state, uptime for each process. Call this first to discover available processes.'