A Next.js web application that integrates MCP (Model Context Protocol) tools with an AI chat interface, combining generic tools (weather, age) with filesystem access via MCP server
This server has 12 tools with significant quality gaps. File system tools (read_file, write_file, edit_file, etc.) have adequate schemas and descriptions, but generic tools (weatherTool, ageTool) lack proper parameter descriptions. Most critically, NO tool includes output schema documentation, LLMs cannot predict what fields to expect from responses. Parameter descriptions are sparse or missing entirely (e.g., ageTool's 'age' parameter has no description). Error handling is absent, no guidance on recovery, retryability, or actionable error messages. Tool composition is reasonable (file ops are single-responsibility), but descriptions average ~60 chars, below the 194-char baseline for A+ tools. The server mixes Zod-based tools (genericTools) with MCP SDK tools (fileSystem), creating inconsistent definition patterns.
Tells the user their age
Create a new directory
Get a recursive tree view of a directory's contents
Edit a file by specifying old text to find and new text to replace it with. Multiple edits can be applied sequentially.
Get detailed information about a file or directory
List the contents of a directory
Move or rename a file or directory
No output schemas documented for any tool. LLMs cannot predict response structure, forcing them to guess what fields exist and risk malformed downstream calls.
ageTool parameter 'age' lacks description. Parameter descriptions are mandatory, LLMs cannot infer that 'age' is a number representing years, not a date or age category.
No error handling or recovery guidance. Tools do not indicate which errors are retryable, user-fixable, or fatal. A file-not-found error returns nothing actionable to the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Read the contents of a file
Read the contents of multiple files
Search for files and directories by name in a directory
Get the weather in a location (fahrenheit)
Create a new file or overwrite an existing file with the provided content
write_file and edit_file lack dry-run or confirmation patterns. Destructive operations should support preview before execution to prevent accidental data loss.
Tool descriptions are too brief (avg ~70 chars vs 194-char baseline). Missing context on WHEN to use each tool and dependencies between tools (e.g., 'search_files first to find the file, then read_file to get contents').