A Final Fantasy XI private server implementation with Unreal Engine 5 integration, recipe management, and zone extraction/import tooling
This MCP server has severe definition quality issues. Tool descriptions are present but lack LLM-optimization guidance (no WHEN to use, no prerequisites, no recovery hints). Input schemas exist but are minimally documented, parameters lack descriptions explaining constraints, formats, or dependencies. No output schemas are documented. Error handling is absent, tools provide no guidance on failure modes or recovery. Tools mix concerns (e.g., bastok_layered_scene combines 5 distinct layer operations). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite multiple WRITE-risk tools. Parameter naming is inconsistent (zone_name vs extracted_root vs fbx_path in same tool). No validation of mutually exclusive params or defaults that could cause data loss.
Import the extracted Bastok Markets FBX + 4K textures into UE5. Wipes procedural blockout, imports textures as Texture2D assets, imports FBX as StaticMesh, creates MaterialInstanceConstants, spawns StaticMeshActor at world origin, and frames editor camera. Idempotent — running twice replaces previous import cleanly.
Build Bastok Markets as five-layer film-style scene composition: [1] SKY (volumetric clouds + sun + atmosphere + fog), [2] FAR BACKGROUND (distant ridges), [3] MID BACKGROUND (canonical zone geometry or procedural blockout), [4] FOREGROUND PROPS (stalls, barrels, lanterns), [5] HERO ACTORS (NPC anchor markers). Each layer organizes actors into World Outliner folders. Re-running is safe — each layer wipes its own actors first by tag.
Generate Bastok Markets procedural placeholder geometry: stone perimeter walls, central pillar (Metalworks elevator), vendor stalls along south edge, western arc shops (weapons/armor/smithy), raised walkway on north side, industrial smokestack and forge silhouette, ground floor slab, cinematic lighting (warm sunset), and sky atmosphere. All shapes are UE5 BasicShapes (cube/cylinder) with default materials. Spawned actors tagged 'BastokProto' for easy selection/deletion.
Export the Ambuscade Repurpose recipe chart as wiki-format markdown. Walks the slip catalog + recipe data, produces docs/AMBUSCADE_RECIPE_CHART.md with sections for each (slot, archetype) pair containing ILVL ladder and Quality ladder tables with materials columns listing bundles, components, and key items.
Regenerate MANIFEST.md for FFXI-Hardcore from whatever's currently in repos/. Walks repos/<category>/<project> dirs, reads .git/HEAD + packed-refs to extract HEAD commit, and emits a Markdown table grouped by category with upstream URLs, commit SHAs, and local folder sizes.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. Tools return unstructured results.
Parameter descriptions missing or trivial. 'output' param in export_recipe_chart has description but no format/constraint guidance. 'atmosphere_preset' in bastok_layered_scene is an object with no schema or field documentation.
No tool annotations despite destructive operations. bastok_import_extracted, bastok_layered_scene, and bastok_markets_blockout all modify UE5 state (wipe actors, spawn meshes) but lack destructiveHint or idempotentHint annotations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | 2026-07-28+ | v2 |
Validate that every Recipe Slip has authored recipe data. Walks the slip catalog, cross-references the recipe table, and reports coverage status (GREEN = has recipe, ORANGE = unseeded pair, RED = missing recipe in seeded pair). Returns exit code 0 if no RED issues, 1 if recipe data is incomplete.
No error handling or recovery guidance. Tools provide no documentation of failure modes, retryability, or what the LLM should do if a call fails.
bastok_layered_scene combines 5 distinct responsibilities (sky, background, geometry, props, actors). Should split into separate tools so agent can compose layers independently.