A Model Context Protocol server providing filesystem access, command execution, and data querying tools with managed dependencies (jq, yq, ripgrep, duckdb, rtk).
The server provides 11 tools with explicit schemas and descriptions visible in the source code. Most tools have adequate naming (verb_noun style) and non-empty descriptions. However, descriptions are frequently terse (20-40 chars), parameter documentation is minimal, output schemas are largely inferred rather than explicitly documented, and error handling guidance is absent. The server demonstrates careful attention to schema augmentation (cwd injection) and structured output in server.go, but individual tool implementations lack depth in descriptions and parameter validation. This is a typical C-tier community server: functional schema definitions but weak LLM-optimization and missing recovery guidance.
Create a new directory at the specified path
List directory contents in tree format
Execute SQL queries against data files using DuckDB
Edit file contents with search and replace
Search for patterns in files using ripgrep
Query and transform HTML data using hq
Query and transform JSON data using jq
List directories managed by GSD Lite
Descriptions are uniformly terse (20 - 40 characters) and lack context about when/why to call each tool. Baseline for A-tier tools is 50 - 200 chars with explicit WHAT/WHEN/WHY guidance.
Parameter descriptions are minimal or absent. 'pattern' in grep_content, 'query' in jq/yq, 'data' in jq/yq/hq lack examples, constraints, or format hints. LLMs cannot infer parameter meaning from names alone.
Output schemas are not explicitly documented in tool definitions. Server adds a 'cwd' property via middleware (schema decorator in server.go), but the actual response structure for each tool is inferred, not declared. LLMs cannot reliably plan downstream calls without documented return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 18 | - | v1 |
Read the contents of one or more files
Execute a shell command
Query and transform YAML data using yq
No error recovery guidance. Tools like run_command (which can fail in many ways) and edit (which can corrupt files) offer no hints to the LLM on what to do next. Missing error classification (retryable vs user-fixable vs fatal).
Irreversible operations (run_command, edit, create_directory) have no dry-run or confirmation step. Agents can accidentally delete files or execute arbitrary shell commands without safeguards.
run_command accepts arbitrary shell code with no injection protection mentioned. Description does not warn about the risk or validation performed. If an LLM is tricked by a prompt injection attack, it could execute malicious commands.
Parameter constraints are not documented. timeout_seconds in run_command has no min/max; max_depth in directory_tree has no bounds; paths and queries lack format or length restrictions. LLMs can pass unreasonable values.
Tools jq, yq, hq, and duckdb expose query languages (jq/yq/hq/SQL) directly as parameters. No format hints, example queries, or constraints. LLMs frequently hallucinate invalid query syntax.