MCP Server for parsing PDDL (Planning Domain Definition Language) domain and problem specifications into JSON AST
Two tools with minimal descriptions (10-15 chars each, well below the 50-200 char LLM-optimized baseline). Input schemas present but parameter descriptions are missing entirely, only type and required fields visible. No output schema documentation. No error handling guidance. Tool names are verb-based (parse_domain, parse_problem) but descriptions lack context on WHEN to use each tool, WHAT they return, or dependencies. No indication of idempotency, side effects, or recovery paths. Schemas are skeletal: properties defined but parameter descriptions absent, violating the 100% A+ baseline for param annotations.
Parse PDDL domain into JSON AST
Parse PDDL problem definition into JSON AST
Parameter descriptions completely missing. Input schema defines 'domain_text' and 'problem_text' with type 'string' but no description explaining what PDDL syntax is expected, format constraints, or example structure.
Tool descriptions are 10-15 characters (far below 50-200 char LLM-optimized baseline). 'Parse PDDL domain into JSON AST' lacks context: What is PDDL? When should this be called vs parse_problem? What does the JSON AST structure look like? LLMs cannot infer these distinctions.
No output schema documented. Tools return JSON AST but structure is undocumented. LLMs cannot plan downstream operations or extract required fields without knowing response shape (domain_name, actions, predicates_count, etc.).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
No error handling guidance. Code catches exceptions and returns generic error strings, but does not categorize errors (retryable vs user-fixable) or provide recovery hints. Invalid PDDL syntax returns 'Invalid PDDL domain structure' with no guidance on what to fix.
No input validation or constraint documentation. Parameters accept arbitrary strings with no length limits, format patterns, or examples. LLMs may pass empty strings, non-PDDL text, or malformed S-expressions without clear feedback on what constitutes valid input.