Your dev environment, fixed by asking your AI assistant. An MCP server that checks and repairs local setup.
onboard-mcp defines 6 environment-check tools with clear, action-oriented names (check_*, doctor). All tools have descriptions (10 - 200 chars, within baseline 34 - 392 range) and explicit Zod schemas with type constraints. However, parameter descriptions are minimal or absent for several tools, and output schemas are not documented. Error handling is basic (no recovery guidance or categorization). The server follows single-responsibility principle well but lacks LLM-optimized parameter guidance and structured output documentation.
Check whether Docker is installed and the daemon is running.
Compare .env/.env.local against .env.example and report missing keys (keys only, values are never read into the response).
Check whether git is installed and user.name / user.email are configured.
Check whether the current Node.js version matches the project's .nvmrc or package.json engines requirement.
Check whether the given TCP ports are free on localhost.
Run every environment check (Node version, Docker, git config, env files, ports) and return a full report with fixes.
Output schemas not documented. Tools return text-formatted CheckResult objects, but LLMs cannot see the structure (status, message, fix fields). Agents cannot reliably extract or chain results.
Parameter descriptions missing or minimal. 'projectDir' and 'ports' lack guidance on format, constraints, or when to use them. LLMs cannot infer whether to pass absolute vs relative paths or how to determine which ports to check.
Error handling lacks recovery guidance. Errors return 'fail' status with fix suggestions in plain text, but no categorization (retryable vs user-fixable vs fatal). LLMs cannot determine next action automatically.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
No pagination or result limits documented. 'check_ports' accepts unbounded array; 'doctor' runs all checks without limit. Large port arrays or many checks could produce verbose output.
Tool composition: 'doctor' duplicates logic of individual check_* tools. While idempotent, it forces agents to choose between 6 similar tools. Consider a single 'run_checks' with a 'checks' parameter to select which to run.