# ═══════════════════════════════════════════════════════════════════════ # Morrowind MCP — Runtime Configuration # ═══════════════════════════════════════════════════════════════════════ # Edit this file to tune Timmy's Morrowind gameplay without code changes. # Hermes loads this at session start. Changes take effect next session. # # Location: ~/.timmy/morrowind/mcp_config.yaml # ═══════════════════════════════════════════════════════════════════════ # ── Server Identity ─────────────────────────────────────────────────── # The key under mcp_servers in config.yaml. Hermes prefixes every tool # with "mcp_{server_key}_", so shorter = less room for the model to # hallucinate. If you rename this, also update config.yaml to match. server_key: mw # ── Tool Names ──────────────────────────────────────────────────────── # Exact tool names Hermes registers. Injected into the context file # so the model never has to guess. Update if you add tools to # mcp_server.py or change the server_key above. tools: - name: mcp_mw_perceive hint: "Read game world state: position, health, nearby NPCs/doors/items" - name: mcp_mw_status hint: "Check if OpenMW is running" - name: mcp_mw_move hint: "Move player — direction: forward|backward|left|right|turn_left|turn_right, duration in seconds" - name: mcp_mw_action hint: "Game action — activate|jump|attack|journal|quicksave|quickload|sneak|wait" - name: mcp_mw_screenshot hint: "Take a screenshot for vision analysis" # ── Gameplay Guards ─────────────────────────────────────────────────── # Caps and safety rails. All optional — comment out to disable. guards: # Max consecutive tool errors before Timmy should stop and reflect. # Prevents the "30 iterations of Method not found" loop. max_consecutive_errors: 3 # Max total MCP calls per session. 0 = unlimited. max_mcp_calls_per_session: 0 # Seconds to pause between action calls (prevents input spam). action_cooldown_seconds: 0.5 # Auto-quicksave every N action cycles. 0 = never. auto_quicksave_interval: 25 # ── Perception ──────────────────────────────────────────────────────── perception: # How often the Lua engine writes perception blocks (seconds). # Must match the timer interval in your OpenMW Lua script. lua_tick_interval: 2.0 # Path to OpenMW log (source of perception data). # Tilde-expanded at runtime. openmw_log: "~/Library/Preferences/openmw/openmw.log" # Screenshot directory. screenshot_dir: "~/.timmy/morrowind/screenshots" # ── Gameplay Tuning ─────────────────────────────────────────────────── gameplay: # Default move duration when not specified. default_move_duration: 1.0 # Default model for gameplay sessions (empty = use config.yaml default). model: "" # System prompt additions for gameplay sessions. # Injected after SOUL.md, before the conversation. system_prompt_suffix: | You are playing Morrowind via MCP tools. Use EXACT tool names from your context — never abbreviate or guess. If a tool call fails, check the name against your available tools before retrying. Perceive before acting. Quicksave before risky moves. # ── Trajectory Logging ──────────────────────────────────────────────── trajectories: # Log every perception-action pair for DPO training. enabled: true # Directory for trajectory JSONL files. dir: "~/.timmy/morrowind/trajectories" # Max file size before rotation (MB). 0 = no rotation. max_file_mb: 50