GECK MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FALLOUT3_DIR | No | Fallback game-directory variable | |
| GECK_MCP_DATA_DIR | No | Override the Data directory | |
| GECK_MCP_GECK_EXE | No | Override the GECK executable path | |
| GECK_MCP_BACKUP_DIR | No | Backup location; defaults to backups/ under server cwd | backups/ |
| GECK_MCP_FALLOUT3_DIR | No | Your game installation; set explicitly | |
| GECK_MCP_SCREENSHOT_DIR | No | Screenshot location; defaults to screenshots/ under server cwd | screenshots/ |
| GECK_MCP_LOAD_ORDER_FILE | No | Override plugins.txt, e.g. for a mod-manager profile |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| geck_doctorC | Check paths and optional dependencies for this GECK MCP server. |
| geck_list_pluginsB | List plugin files in the Fallout 3 Data folder. |
| geck_backup_pluginB | Copy an .esm or .esp from Data into the MCP backup directory. |
| geck_plugin_statusB | Check whether an .esp/.esm exists in Data, optionally creating a backup. |
| geck_transaction_beginA | Create a named rollback point before direct ESP/ESM file edits. |
| geck_transaction_listC | List recent MCP backup/transaction files, newest first. |
| geck_transaction_rollbackC | Restore a plugin from a transaction id or backup path inside the MCP backup directory. |
| geck_transaction_verifyC | Verify on-disk plugin state, active GECK plugin, placed records, and recent rollback points. |
| geck_esp_list_refsA | Read placed REFR/ACHR/ACRE records from an .esp/.esm file. |
| geck_esp_patch_ref_positionC | Patch a placed record with GECK closed. Rotation is in radians; omitted axes are preserved. |
| geck_esp_nearby_refsB | Find placed records in a plugin near a coordinate. |
| geck_placement_reportB | Assess saved placed records against the status bar, restricted to the required anchor cell_form_id. |
| geck_status_barB | Read GECK's bottom status bar, including selected object coordinates when available. |
| geck_placement_plan_from_status_barB | Dry-run a target position/rotation from GECK's status-bar coordinate plus offsets. |
| geck_esp_patch_ref_to_status_barA | Legacy planning only: capture deferred patch arguments; never writes while GECK is open. Returns applied=false. |
| geck_esp_patch_ref_to_status_bar_offsetA | Legacy planning only: capture deferred patch arguments plus offsets; returns applied=false without writing. |
| geck_esp_delete_refsC | Delete placed records directly from an .esp/.esm file and update group sizes. |
| geck_esp_delete_refs_by_baseA | Delete placed records whose NAME/base FormID matches one of the given base IDs. |
| geck_active_pluginB | Read the active plugin name from the GECK main window title. |
| geck_save_active_pluginB | Save the active GECK plugin through File > Save and return plugin status. |
| geck_read_load_orderB | Read the Fallout 3 plugins.txt load order. |
| geck_write_load_orderA | Rewrite the Fallout 3 plugins.txt load order after validating plugin names. |
| geck_tail_logC | Read the tail of a known GECK or FOSE log file. |
| geck_launchA | Launch GECK normally, or with FOSE via fose_loader.exe -editor. |
| geck_list_processesB | List GECK and FOSE-related processes. |
| geck_list_windowsB | List top-level desktop windows visible to pywinauto. |
| geck_focus_windowC | Focus the GECK main window or a matching dialog. |
| geck_control_treeB | Dump a GECK window/control tree for planning UI automation. |
| geck_list_view_rowsC | Read rows from a Win32 ListView in a GECK window or dialog. |
| geck_find_list_rowsC | Find rows in a GECK ListView by text, usually Editor ID or Form ID. |
| geck_send_keysB | Send a pywinauto key sequence to GECK, such as ^s, %{F4}, or {ENTER}. |
| geck_menu_selectC | Select a GECK menu path, for example File->Data... or ['File', 'Save']. |
| geck_open_data_dialogC | Open GECK's File > Data dialog. |
| geck_click_controlB | Click a child control found by title, class, UIA type, or automation id. |
| geck_click_atC | Click coordinates, window-relative by default. |
| geck_screenshotC | Capture a screenshot of a GECK window or dialog as a PNG file. |
| geck_cell_view_snapshotC | Read Cell View state: world space, selected cell, visible cells, and current cell references. |
| geck_cell_set_world_spaceB | Set Cell View's world-space combo box, e.g. Interiors or Wasteland. |
| geck_cell_selectC | Select an interior/exterior cell in Cell View by Editor ID. |
| geck_cell_go_to_exteriorC | Use Cell View's world-space/X/Y/Go controls to jump to an exterior cell. |
| geck_cell_find_refsB | Find references in the currently selected Cell View object list by Editor ID/Form ID/type. |
| geck_cell_select_refC | Select a reference in the currently selected Cell View object list. |
| geck_object_snapshotC | Read the current Object Window list rows. |
| geck_object_filterC | Set Object Window's Filter field and return the filtered rows. |
| geck_object_selectC | Select or optionally open a current Object Window record by Editor ID. |
| geck_place_object_in_renderC | Drag an Object Window record into the active Render Window to create a placed reference. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 46 tools
Several tools have overlapping or near-duplicate purposes, such as geck_esp_patch_ref_to_status_bar and geck_esp_patch_ref_to_status_bar_offset, both legacy planning-only tools, and geck_list_view_rows/geck_find_list_rows plus geck_active_plugin/geck_plugin_status. While the set covers distinct subsystems, an agent would frequently struggle to pick the correct tool among these overlapping refs, status, and planning operations.
Most tools follow a readable geck_ prefix with snake_case, but verb placement is inconsistent: some are verb_noun like geck_list_plugins, while others are subsystem_verb like geck_cell_select or noun phrases like geck_plugin_status, geck_status_bar, and geck_placement_report. The names remain readable, but the mixed conventions make the surface less predictable.
With 46 tools, this server is well beyond the range where each tool clearly earns its place, and it includes legacy planning-only tools plus near-duplicate ref/status operations. It is not quite the 50+ extreme, but it is over-scoped and would benefit from consolidation.
The server covers a full placed-reference lifecycle including list, patch, delete, nearby search, and create via render, alongside plugin management, load order, transactions, UI automation, and Cell/Object window operations. Gaps like direct editing of non-reference records are minor and workable through the included UI automation tools.