FastMCP-based MCP server scaffold for penr-oz with filesystem sandbox access, HTTP API integration, and prompt templates
The server has 4 well-intentioned tools with adequate naming (verb_noun pattern observed: ping, list_files, read_text_file, fetch_json) and documented input schemas. However, critical gaps remain: tool descriptions lack consistency and depth, parameter descriptions are sparse or missing entirely, output schemas are not documented anywhere, and error handling guidance is minimal. The codebase shows good internal engineering (validation, logging, error classes) but does not expose this quality to the agent interface. STDIO transport caps protocol readiness at 50 regardless. For definitionQuality, this averages to 58 due to moderate naming (+70), weak descriptions (+50), weak schemas (+55), and weak error handling (+50).
Fetch JSON data from a public HTTP API. This tool demonstrates asynchronous MCP tools with proper request validation and error handling. It's designed as a reusable template for integrating with external HTTP services.
List files and directories within the sandbox.
Health check tool.
Read text content from a file within the sandbox.
Output schemas not documented for any tool. LLMs cannot infer what fields to expect in returned objects, forcing them to guess or make follow-up calls.
Error recovery guidance not exposed in MCP tool schema. Internal error classes (PathValidationError, InvalidURLError, TimeoutError) and recovery hints exist in code but are invisible to agents.
Tool descriptions are too brief and lack context on WHEN to use each tool and WHAT to expect. 'Health check tool' (17 chars) and 'List files and directories within the sandbox' (45 chars) are functional but not LLM-optimized per pattern guidelines (target: 50-200 chars with context).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 43 | - | v1 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared in MCP schema, despite all tools being READ_ONLY. This prevents agents from reasoning about safe retry behavior.
No pagination support in list_files. If the sandbox contains many files, the response could be very large, wasting context. Should add limit and offset/cursor parameters.