Provides interactive HTML UI rendering for MCP Apps-capable clients (VS Code Insiders). Generates self-contained HTML dashboards for memory search results, memory lists, and health status displays.
This server provides 4 tools for rendering memory search results, lists, health dashboards, and checking MCP Apps enablement. All tools have descriptions and basic input schemas, but critical gaps exist: (1) Parameter descriptions are minimal or missing, most inputs lack detail on format, constraints, or usage context. (2) Output schemas are not documented; callers cannot predict the structure of returned HTML or status objects. (3) Tool names lack action verbs (render_* is descriptive but passive; consider generate_* or display_*). (4) No error handling guidance, tools return HTML or dicts with no documented failure modes or recovery paths. (5) Security: tools accept arbitrary dicts without validation, risking injection if upstream data is untrusted. Baseline: 549 production tools average 194-char descriptions and 72-char param annotations; these average ~60 chars for descriptions and ~40 for params.
Check if MCP Apps UI rendering is enabled. Controlled by MEMORY_MCP_APPS=true environment variable.
Render check_database_health results as a status dashboard with system metrics.
Render list_memories results as a paginated browsable list.
Render retrieve_memory results as an interactive HTML card list.
Output schemas not documented. Tools return EmbeddedResource or dicts with HTML/status fields, but callers cannot predict structure. LLMs cannot plan downstream operations or extract specific fields.
Parameter descriptions are minimal. 'memories' param lacks format detail (is it a list of dicts? what keys?). 'result' param for render_memory_list and render_health_dashboard has only generic 'Dictionary containing...', no field names, types, or constraints.
No error handling guidance. Tools accept arbitrary input dicts without validation. If 'memories' is malformed or 'result' lacks expected keys, tools fail silently or return broken HTML. No recovery hints for LLMs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Input validation missing. Tools do not validate memory objects, result dicts, or HTML-escape user-provided content before embedding in HTML. Malicious or malformed input could produce broken or unsafe output.
Tool naming uses passive 'render_*' verbs. Prefer active verbs like 'generate_html_*' or 'display_*' to clarify intent. 'render' is ambiguous, does it mean generate, display, or transform?