Read-only MCP server for a local Satisfactory save. It gives an AI model grounded access to the newest saved factory state without modifying the game or save file.
This checkout has been registered globally as satisfactory-save in Codex. Start a new Codex task (or restart the current one) and ask naturally, for example:
What am I working toward in Satisfactory?Where am I and what is in my inventory?Find all of my coal generators and constructors.What is stored in my containers?
Codex starts the compiled local server directly. When you pull or edit this project, run the command below once before starting a new task so the compiled entrypoint is current.
& "C:\Users\grump\OneDrive\Documents\Satisfactory MCP\run.ps1"The command installs missing packages, builds the server, and runs it as an MCP stdio process. It intentionally appears to wait after setup; that means the server is ready for an MCP client. Press Ctrl+C to stop it when running manually.
Every tool defaults to the newest .sav file by modification time:
satisfactory_list_saves— discover saves and choose an older snapshot.satisfactory_overview— save/session metadata, objectives, Pioneer state, and factory totals.satisfactory_objectives— game phase, next phase, milestones, MAM research, and AWESOME Sink progress.satisfactory_player— saved coordinates, health, inventory, equipment, and slots.satisfactory_buildings— buildings, machines, belts, power infrastructure, recipes, status, and coordinates; supports text and radius filters.satisfactory_inventory— player, storage, or all non-empty inventories.satisfactory_locations— Pioneer, HUB, Space Elevator, vehicles, and selected building coordinates.satisfactory_search_entities— bounded search across any saved entity/property for data not covered above.
The server reads only Satisfactory saves. It does not write, rename, upload, or alter them.
By default it discovers saves below:
%LOCALAPPDATA%\FactoryGame\Saved\SaveGames
It rechecks the newest file before each tool call and caches parsing only while that file is unchanged. If Satisfactory is in the middle of saving, the server rejects the read rather than returning a partial snapshot. A running game is represented by its latest autosave/manual-save; true unsaved live telemetry would require a separate in-game mod integration.
If your saves live elsewhere, set SATISFACTORY_SAVE_PATH to a specific .sav file before starting the server.
npm install
npm test
npm run build