Model Context Protocol server for The Elder Scrolls III: Morrowind, providing tools for game state inspection, navigation, inventory management, and world interaction
All 8 tools have basic descriptions and consistent naming (mw-*-fetch pattern), but critical gaps undermine quality. No input schemas are visible in the provided source code, only parameter names and enums are inferred from test files. Tool definitions appear to be registered elsewhere (not shown), making verification impossible. Descriptions are minimal (10-50 chars) and lack context on WHEN to use each tool or WHAT they return. No output schemas documented. Error handling and recovery guidance absent. The codebase shows a tool framework (ITool, ToolAvailability) but actual tool implementations are not provided.
Fetch server capabilities including available tools
Fetch player inventory contents
Fetch current menu state and structure
Fetch current player character state and attributes
Fetch reference object data with configurable detail level and scope
Fetch travel route and pathfinding nodes
Fetch current target reference data
No input schemas visible in source code. Only parameter names and enums inferred from test files. Cannot verify JSON Schema compliance, type definitions, or constraints.
Descriptions are minimal (10-50 chars) and lack actionable context. No explanation of WHEN to use each tool, WHAT it returns, or HOW it differs from similar tools. LLMs cannot reliably select the right tool.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields. Responses are opaque.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2025-06-18+ | v2 |
Fetch world state and environment data
Tool definitions inferred from test files, not visible in actual tool registration code. Cannot verify that schemas, descriptions, and names match the declared interface.
No error handling or recovery guidance. Tool framework includes ToolAvailability with reasons (not_in_game, not_in_menu_mode, etc.) but no guidance on what the LLM should do when a tool is unavailable.