A simple Model Context Protocol (MCP) server with file operation tools
mcp-workspace provides 4 reference project tools with solid naming (verb_noun pattern) and descriptions. However, there are notable gaps: parameter descriptions are present but some lack clarity on constraints; output schemas are not explicitly documented in the source; error handling guidance is minimal; and some parameters (context_lines, max_results) lack range specifications. The tools follow a consistent read-only reference pattern, which is appropriate for the use case, but descriptions could be more LLM-optimized per the 50-200 char baseline.
Get the available reference projects as {"name", "url"} entries.
List files and directories in a reference project directory.
Read a reference-project file, or a line slice via start_line/end_line.
Search file contents by regex and/or find files by glob pattern in a reference project.
Output schemas not documented in source code. Tool descriptions state WHAT tools do, but do not explicitly define the structure of returned data (e.g., get_reference_projects returns {name, url}, but field types, whether arrays, pagination info, etc. are not visible in schema definitions).
Numeric parameters lack explicit min/max bounds. context_lines and max_results are integers but have no visible constraints in descriptions. This invites LLMs to pass absurd values (e.g., max_results=999999).
While not empty, they could be more explicit about format, constraints, and use cases. E.g., 'reference_name' could note 'Name of the reference project (case-sensitive, from get_reference_projects)'.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | <=2025-11-25 | v2 |
No documented error handling or recovery guidance. Tool descriptions do not indicate what errors are retryable, what the LLM should do if a file is not found, or how to recover from regex compilation failures in search_reference_files.
Tool descriptions lack LLM-optimized length guidance. The baseline is 50 - 200 chars per tool description; some are closer to 100 - 110 chars (acceptable), but descriptions do not always answer WHEN to use a tool vs. alternatives (e.g., when to use read_reference_file vs. list_reference_directory for discovery).