dm-mcp provides 16 tools with consistent naming (dm_* prefix) and complete input schemas. However, descriptions are generic and lack LLM-optimization guidance. Parameter descriptions are minimal or absent. Output schemas are not documented. Error handling is not visible in tool definitions. The server targets a specialized domain (DreamMaker language analysis) with reasonable tool composition, but lacks the depth of guidance needed for reliable agent planning.
Run the type checker and return all diagnostics (errors and warnings).
Compile the DreamMaker environment using the DM compiler. Returns compiler output and any errors.
Find all instances of a type on a map.
Get the source location where a symbol is defined.
Get detailed information about a procedure including parameters, body location, and documentation.
Get information about a type including its variables, procs, parent type, and children.
Get detailed information about a variable including its type, initial value, and documentation.
Output schemas not documented. Tools return data but LLMs cannot plan downstream calls without knowing response structure (e.g., what fields does dm_get_type return? Is there a type_id for chaining?).
Parameter descriptions are minimal or absent. 'type_path' appears in 6 tools but is never explained (is it '/obj/item' or 'obj.item'? case-sensitive?). LLMs cannot infer format from name alone.
No error handling guidance in tool definitions. If dm_compile fails, what should the agent do? Retry? Ask user? No recovery path documented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | <=2025-11-25 | v2 |
List all types in the object tree, optionally filtered by a path prefix.
Get information about a map file including dimensions, z-levels, and area statistics.
Parse a DreamMaker environment (.dme file) and cache the object tree. This must be called before using other analysis tools.
Render a map file (.dmm) to a PNG image.
Start DreamDaemon with a compiled .dmb file. Returns the process ID and port.
Search for types, procs, or variables by name pattern.
Get the status of the running game (port, PID, whether it's running).
Stop the currently running DreamDaemon instance.
Send a Topic() call to the running game server. Use this to communicate with debug handlers in the game.
Destructive tools (dm_compile, dm_run, dm_stop, dm_topic) lack confirmation or dry-run support. An agent could accidentally stop a running game server without safeguards.
Tool descriptions are generic and lack context for selection. 'Get information about a type' does not explain when to call dm_get_type vs dm_search_symbols vs dm_list_types. LLMs must guess.