Self-hosted FOSS Gaussian-splat generation MCP — worldlabs-mcp alternative, zero marginal cost, local 4090 inference
Five tools with basic naming and descriptions, but critical gaps in schema completeness and parameter documentation. Tool names follow verb_noun convention (generate_from_video, get_job_status, list_jobs), which is good. However, input schemas are minimal: generate_from_video and generate_from_images each have only one parameter with a basic string/array type and no validation constraints. get_job_status, list_jobs, and get_server_status lack visible input schema definitions in the provided code. Descriptions are present but generic (34-72 chars), below the 50-200 char LLM-optimized baseline. No output schemas documented. No error handling guidance visible. No parameter constraints (enums, ranges, patterns). Code snippet is truncated, so full schema visibility is limited, this caps per-tool scores at 50 where schemas cannot be verified.
Generate Gaussian splat from image directory or list using Nerfstudio/Splatfacto pipeline
Generate Gaussian splat from video file using Nerfstudio/Splatfacto pipeline
Get current status and details of a splat generation job
Get server health status, version, uptime, and engine configuration state
List all splat generation jobs with their current status
Input schemas incomplete or not visible. generate_from_video and generate_from_images show only type and description; no validation constraints (min/max length, patterns, enums). get_job_status, list_jobs, get_server_status lack visible schema definitions in provided code.
Descriptions are generic and below LLM-optimized baseline (50-200 chars). 'Generate Gaussian splat from video file using Nerfstudio/Splatfacto pipeline' (72 chars) lacks WHEN to use, prerequisites, or output structure. No guidance on expected turnaround, resource requirements, or failure modes.
No output schemas documented. LLMs cannot infer what fields generate_from_video returns (asset paths? job ID? status?). No guidance on chaining, if get_job_status is called after generate_from_video, what ID does it expect?
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | <=2025-11-25 | v2 |
No error handling guidance visible. If generate_from_video fails (invalid video format, insufficient VRAM, timeout), what should the LLM do? Retry? Ask user? No recovery paths documented.
Parameter descriptions lack actionable constraints. 'Path to input video file' does not specify supported formats, max file size, resolution requirements, or frame rate expectations. LLMs will guess and pass invalid inputs.