Build MCP servers that survive production. Validation, structured errors, stderr-safe logging, and an in-process test harness.
Solid foundation with complete schemas and descriptions for all 6 tools. Tool names follow verb_noun convention (list_files, read_file, write_file, search_files, fetch_url, check_status). Descriptions are present and actionable (avg ~100 chars), exceeding the 10-char minimum. Input schemas are well-formed with type definitions and constraints (minLength, pattern, enum, defaults). However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Parameter descriptions are adequate but lack dependency hints (e.g., 'Call list_files first if unsure path exists' appears in tool description, not param docs). Error handling is basic, no recovery guidance or categorization. Security is reasonable (no secrets in params), but no audit trail or permission gates documented.
Check whether a URL is reachable and how fast it responds, without downloading the body.
Fetch a web page or JSON endpoint and return its content as text. HTML is stripped to readable text. Use this for information you do not already have.
List files and directories at a path. Call this before read_file when you are not certain a path exists.
Read a UTF-8 text file and return its contents. Use list_files first if you are unsure the path exists.
Find files whose name contains a substring, searching recursively from a path.
Write UTF-8 text to a file, creating parent directories as needed. Overwrites without warning.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool chaining or data extraction.
Error handling lacks recovery guidance. Errors do not indicate whether to retry, ask user, or abort. E.g., 'File not found' should suggest 'Call list_files() first to verify path.'
write_file description states 'Overwrites without warning' but lacks confirmation/dry-run pattern for destructive operations. Agents may accidentally overwrite critical files.
Parameter descriptions in schema lack format/constraint hints. E.g., 'url' param has pattern constraint but description does not explain 'must include https://', LLMs may pass http:// URLs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
search_files and list_files lack pagination guidance. No documented limit on result count; large directories could return thousands of entries, exhausting context window.