A context-rich MCP workspace for local engineering with bounded editing, verification, and mature remote operations.
opshaven demonstrates solid tool design with consistent naming (verb_noun pattern), comprehensive input schemas with proper constraints (regex patterns, min/max bounds), and clear descriptions for most tools. All 19 tools have descriptions (10-200 chars, within baseline 34-392 range). Schemas are well-structured with type definitions and parameter descriptions. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling is minimal; tools lack recovery guidance. Some parameter descriptions could be more explicit about constraints (e.g., workspaceId pattern is in schema but not restated in description text). No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification (12 READ_ONLY, 7 WRITE).
Return a bounded line range with line numbers and current file identity.
Create a new project file without overwriting an existing path.
Discover runnable tasks only from project metadata and recognized ecosystem conventions.
Apply one exact targeted text replacement with optimistic concurrency.
Preflight and apply exact optimistic-concurrency edits across multiple files.
Return the SHA-256 identity and size of one project file.
Return a bounded Git diff for the workspace or one project path.
Output schemas not documented. LLMs cannot predict response structure for downstream tool chaining (e.g., what fields does workspace_info return? Can git_log output be passed to another tool?).
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk stratification. 12 tools are READ_ONLY, 7 are WRITE, annotations would help agents reason about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Return a structured bounded Git commit log.
Return structured Git working-tree status for the workspace.
List one workspace directory as structured entries.
Refresh and return detected project ecosystems and manifests.
Read one bounded UTF-8 project file and return its SHA-256 identity.
Read up to 20 bounded UTF-8 project files in one call.
Atomically replace a project file only if its current SHA-256 matches expectedHash.
Run one supported argv-based developer command in the workspace when broader command execution is enabled. Shell and privilege-escalation launchers are not available.
Run one task discovered from project metadata when task execution is enabled.
Search bounded project text without scanning common generated and vendor directories.
Return workspace root, permissions, and detected project metadata.
Return a bounded project tree while skipping common generated and vendor directories.
Error handling lacks recovery guidance. Tools do not return actionable error messages (e.g., 'workspaceId not found. Available workspaces: [...]' or 'File too large (5MB > 1MB limit). Try maxBytes parameter.').
Parameter descriptions do not restate schema constraints in natural language. workspaceId has a regex pattern (^[a-z][a-z0-9._-]{0,63}$) in schema but description does not explain the format. LLMs cannot read JSON Schema patterns, they rely on description text.
Destructive operations (create_file, replace_file, edit_file, edit_files, run_task, run_command) lack confirmation or dry-run support. Agents can accidentally overwrite files or execute unintended commands without a safety gate.