Add Morrowind MCP config + context file — zero-code tuning #17

Closed
perplexity wants to merge 0 commits from fix/mcp-morrowind-tool-naming into main
Member

Summary

Two new files that make Morrowind gameplay tunable without code changes or releases:

morrowind/mcp_config.yaml

Externalized runtime config. Edit this file to change:

Setting What it controls
server_key MCP tool name prefix (must match config.yaml)
tools[] Exact tool names + hints (injected into context)
guards.max_consecutive_errors Stop-and-reflect threshold (prevents 30-iteration error loops)
guards.action_cooldown_seconds Pause between actions (prevents input spam)
guards.auto_quicksave_interval Auto-save every N cycles
perception.openmw_log Path to OpenMW log
gameplay.system_prompt_suffix Extra instructions for gameplay sessions
trajectories.enabled Toggle DPO trajectory logging

morrowind/CONTEXT.md

Hermes context file with exact tool names, argument schemas, gameplay loop instructions, and error recovery rules. The model reads this at session start so it never has to guess tool names.

How to tweak

Change tool behavior: edit mcp_config.yaml, restart Hermes session. No code changes.
Change what the model knows: edit CONTEXT.md. Takes effect next session.
Add a new MCP tool: add it to mcp_server.py, then add a matching entry in both mcp_config.yaml (tools array) and CONTEXT.md (table + docs).

Paired with

timmy-config PR (renames server key morrowindmw)

## Summary Two new files that make Morrowind gameplay tunable without code changes or releases: ### `morrowind/mcp_config.yaml` Externalized runtime config. Edit this file to change: | Setting | What it controls | |---------|-----------------| | `server_key` | MCP tool name prefix (must match config.yaml) | | `tools[]` | Exact tool names + hints (injected into context) | | `guards.max_consecutive_errors` | Stop-and-reflect threshold (prevents 30-iteration error loops) | | `guards.action_cooldown_seconds` | Pause between actions (prevents input spam) | | `guards.auto_quicksave_interval` | Auto-save every N cycles | | `perception.openmw_log` | Path to OpenMW log | | `gameplay.system_prompt_suffix` | Extra instructions for gameplay sessions | | `trajectories.enabled` | Toggle DPO trajectory logging | ### `morrowind/CONTEXT.md` Hermes context file with exact tool names, argument schemas, gameplay loop instructions, and error recovery rules. The model reads this at session start so it never has to guess tool names. ## How to tweak **Change tool behavior**: edit `mcp_config.yaml`, restart Hermes session. No code changes. **Change what the model knows**: edit `CONTEXT.md`. Takes effect next session. **Add a new MCP tool**: add it to `mcp_server.py`, then add a matching entry in both `mcp_config.yaml` (tools array) and `CONTEXT.md` (table + docs). ## Paired with timmy-config PR (renames server key `morrowind` → `mw`)
perplexity added 4 commits 2026-03-27 23:23:37 +00:00
All gameplay tuning — tool names, iteration guards, perception settings,
trajectory logging — editable without code changes.
Changes take effect next Hermes session.
Hermes loads this as session context so the model always has
exact tool names. Prevents mcp_morro hallucination loops.
Author
Member

Review Notes

Two config-driven files — no code changes needed to tune gameplay:

mcp_config.yaml — every tweakable value in one place:

  • guards.max_consecutive_errors: 3 → would have stopped the 30-iteration error loop at error #3
  • guards.action_cooldown_seconds: 0.5 → prevents input spam
  • guards.auto_quicksave_interval: 25 → safety net
  • gameplay.system_prompt_suffix → inject instructions without editing code

CONTEXT.md — model reads this at session start:

  • Exact tool names in a table (no guessing)
  • Argument schemas inline
  • Error recovery rules ("stop after 2 failed retries")

Pair with: timmy-config PR #48 — renames server key morrowindmw.

Next steps after merge:

  1. Ensure Hermes loads morrowind/CONTEXT.md as a context file (may need a reference in config.yaml or a symlink into Hermes's context directory)
  2. Wire mcp_config.yaml into gameplay scripts (local_brain.py, pilot.py) to read guards at runtime — or build a small loader that Hermes calls at session init
  3. Test: should see mcp_mw_perceive calls succeeding, no more mcp_morro errors
## Review Notes Two config-driven files — no code changes needed to tune gameplay: **`mcp_config.yaml`** — every tweakable value in one place: - `guards.max_consecutive_errors: 3` → would have stopped the 30-iteration error loop at error #3 - `guards.action_cooldown_seconds: 0.5` → prevents input spam - `guards.auto_quicksave_interval: 25` → safety net - `gameplay.system_prompt_suffix` → inject instructions without editing code **`CONTEXT.md`** — model reads this at session start: - Exact tool names in a table (no guessing) - Argument schemas inline - Error recovery rules ("stop after 2 failed retries") **Pair with**: [timmy-config PR #48](http://143.198.27.163:3000/Timmy_Foundation/timmy-config/pulls/48) — renames server key `morrowind` → `mw`. **Next steps after merge**: 1. Ensure Hermes loads `morrowind/CONTEXT.md` as a context file (may need a reference in config.yaml or a symlink into Hermes's context directory) 2. Wire `mcp_config.yaml` into gameplay scripts (`local_brain.py`, `pilot.py`) to read guards at runtime — or build a small loader that Hermes calls at session init 3. Test: should see `mcp_mw_perceive` calls succeeding, no more `mcp_morro` errors
Author
Member

Review Notes

Two config-driven files — no code changes needed to tune gameplay:

mcp_config.yaml — every tweakable value in one place:

  • guards.max_consecutive_errors: 3 → would have stopped the 30-iteration error loop at error #3
  • guards.action_cooldown_seconds: 0.5 → prevents input spam
  • guards.auto_quicksave_interval: 25 → safety net
  • gameplay.system_prompt_suffix → inject instructions without editing code

CONTEXT.md — model reads this at session start:

  • Exact tool names in a table (no guessing)
  • Argument schemas inline
  • Error recovery rules ("stop after 2 failed retries")

Pair with: timmy-config PR #48 — renames server key morrowindmw.

Next steps after merge:

  1. Ensure Hermes loads morrowind/CONTEXT.md as a context file (may need a reference in config.yaml or a symlink into Hermes's context directory)
  2. Wire mcp_config.yaml into gameplay scripts (local_brain.py, pilot.py) to read guards at runtime — or build a small loader that Hermes calls at session init
  3. Test: should see mcp_mw_perceive calls succeeding, no more mcp_morro errors
## Review Notes Two config-driven files — no code changes needed to tune gameplay: **`mcp_config.yaml`** — every tweakable value in one place: - `guards.max_consecutive_errors: 3` → would have stopped the 30-iteration error loop at error #3 - `guards.action_cooldown_seconds: 0.5` → prevents input spam - `guards.auto_quicksave_interval: 25` → safety net - `gameplay.system_prompt_suffix` → inject instructions without editing code **`CONTEXT.md`** — model reads this at session start: - Exact tool names in a table (no guessing) - Argument schemas inline - Error recovery rules ("stop after 2 failed retries") **Pair with**: [timmy-config PR #48](http://143.198.27.163:3000/Timmy_Foundation/timmy-config/pulls/48) — renames server key `morrowind` → `mw`. **Next steps after merge**: 1. Ensure Hermes loads `morrowind/CONTEXT.md` as a context file (may need a reference in config.yaml or a symlink into Hermes's context directory) 2. Wire `mcp_config.yaml` into gameplay scripts (`local_brain.py`, `pilot.py`) to read guards at runtime — or build a small loader that Hermes calls at session init 3. Test: should see `mcp_mw_perceive` calls succeeding, no more `mcp_morro` errors
Owner

Thank you

Thank you
Rockachopa closed this pull request 2026-03-28 00:30:23 +00:00

Pull request closed

Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/timmy-home#17