Secure, auditable workspace management for AI agents with MCP support
Workspacemcp has 20 well-named tools with complete input schemas and descriptions. Naming follows verb_noun convention (list_files, read_file, write_file, etc.). All tools have descriptions (avg ~80 chars, within baseline 34-392). Input schemas are present and typed. However, parameter descriptions are sparse or missing entirely, most params lack explanatory text beyond the name. Output schemas are not documented. Error handling is not visible in the provided code. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Composition is strong: tools are single-purpose and chainable (e.g., list_files → read_file). Security concerns: write_file and delete_file claim approval gates and backups, but implementation details are not visible in the source excerpt.
Apply a unified diff (git patch) across one or more files. Creates/modifies/deletes files as the diff specifies.
Approve or deny a pending write operation
Query audit log entries
Snapshot workspace state (all files) for rollback
Delete a file (requires approval, creates checkpoint first)
Replace old_string with new_string in a file. The match must be unique unless replace_all=true.
Get file metadata (size, modified, checksum, token estimate)
Parameter descriptions missing or minimal. Most parameters (directory, recursive, pattern, offset, limit, etc.) lack explanatory text. LLMs cannot infer parameter meaning from names alone, 'offset' could mean byte offset, line offset, or result offset.
Output schemas not documented. Tools return structured data (file contents, metadata, lists) but the response format is not specified. LLMs cannot plan downstream tool calls or extract fields without knowing the output structure.
No tool annotations despite clear risk levels. Tools are marked with Risk: READ_ONLY, WRITE, DESTRUCTIVE, REVERSIBLE in metadata, but input schemas lack readOnlyHint, destructiveHint, and idempotentHint annotations. LLMs cannot infer safety properties from names alone.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Get project structure with descriptions and token estimates
Get workspace statistics (files, size, languages)
Find files matching a glob pattern (supports **), sorted by modification time (newest first)
List available workspace checkpoints
List files in a directory with .gitignore respect
Move or rename a file in the workspace
Apply a sequence of edits to one file atomically (all or nothing). Each edit: {old_string, new_string, replace_all?}.
Read a file with cat -n style line numbers, pagination and DLP filtering (secrets redacted)
Rollback workspace to a previous checkpoint
Fast content search (ripgrep when available, regex fallback) with context lines
View workspace configuration (sandbox, DLP, approval settings)
Export workspace structure as Mermaid diagram
Write a file with sandbox check, auto-backup, and approval gate for critical files
Error handling and recovery guidance not visible. No evidence of actionable error messages, error classification (retryable vs fatal), or recovery suggestions. Agents cannot self-correct on failures.
Approval gate implementation not visible. write_file and delete_file claim approval gates and backups, but the mechanism (confirm_before_execute pattern, pending request tracking) is not shown in the provided code excerpt.