SatisfactoryMCP
An MCP server for Satisfactory that plans factories using your actual save files, reads game data, and runs LP/MILP optimization. It provides tools for game data lookup, factory planning, hard drive advice, and a local web map of your world.
README
SatisfactoryMCP
Ask Claude about your Satisfactory world — and get answers read straight from your own save files. This is an MCP server plus a local web map: the server plans factories with a real optimizer over the game's own recipe data and your actual progress, and the map renders your world in the browser — terrain, factories, belts and pipes, power wiring, floors, crates. Everything runs locally; nothing is fetched from the network.

One platform up close — machines, storage, belts, pipes, wires |
Floor view — pick a storey, see what stands on it |
Terrain mode — hillshade from a 1 m heightfield read out of the game |
A crate's contents, with icons extracted from the game's assets |
What you can ask
Phrased however you like — the model picks the tools:
- "Plan a factory for 20 Modular Frames per minute using only recipes I've actually unlocked — what do I build, and how much power will it draw?"
- "Which of my pending hard drives should I bank first, and why?"
- "How healthy is my steel factory right now? Anything idle or starved?"
- "Where am I standing, and what's the best spot near me for an aluminium setup?"
- "What's still missing for Phase 3, and which factory is the bottleneck?"
- "Trace my Reinforced Iron Plates upstream and tell me where the chain is thinnest."
- "Compare the alternate recipes for Computers against what I'm running today."
- "Show the coal powerplant on the map." — answers with a link that opens the web map zoomed to it.
Plans balance every item honestly — a setup that would silently strand Heavy Oil Residue is reported infeasible instead of overstated — and every answer names the save file it read and how old it is. The server only ever reads your saves; it never writes them.
<details> <summary><b>The full tool list</b> (42 tools, 3 slash-command prompts)</summary>
| Area | Tools |
|---|---|
| Game data | search_items, search_recipes, recipe_detail, alternates_for_item, list_buildings |
| Your world | list_worlds, world_summary, unlocked_recipes, power_report, factory_sites, whereami, phase_requirements, power_shards, collected_from_world, mam_research, somersloops |
| Your factories | list_factories, name_factory, forget_factory, factory_health, factory_map, factory_query, propose_factories, select_machines, trace_upstream |
| Map | list_regions, describe_location, search_resource_nodes, rank_build_sites, show_on_map |
| Planning | plan_factory, plan_layout, commission_plan, diff_vs_save, bom, explain_byproducts, compare_recipe_options, rank_unlocks, list_plans, forget_plan |
| Hard drives | list_pending_hard_drive_choices, advise_hard_drive_pick |
Plus MCP resources (satisfactory://docs/summary, satisfactory://save/current,
satisfactory://map/regions) and three prompts that surface as slash commands:
design_factory, plan_power_plant, pick_hard_drive. The full surface, argument by
argument, is in docs/mcp-surface.md.
</details>
Getting started
You need:
- Python ≥ 3.11 and uv
- A local Satisfactory installation (Steam or Epic) — recipes and rates are read from the game's own data dump, so numbers stay correct when the game patches
- Node.js — only to build the web map once; not needed for the MCP server alone
- Windows is what it's developed and tested on; save and install auto-detection assume Windows paths, and both can be pointed elsewhere via environment variables (below)
git clone https://github.com/lukszi/SatisfactoryMCP.git
cd SatisfactoryMCP
uv sync
Connect it to Claude
The MCP entry point is satisfactory-mcp (stdio). With Claude Code, register it at user scope
so it loads in any directory — you'll usually be asking about the game, not about this code:
claude mcp add --scope user satisfactory -- uv run --directory "/path/to/SatisfactoryMCP" satisfactory-mcp
For any other MCP client, the equivalent JSON configuration:
{
"mcpServers": {
"satisfactory": {
"command": "uv",
"args": ["run", "--directory", "/path/to/SatisfactoryMCP", "satisfactory-mcp"]
}
}
}
The web map
Build the page once, then start the server:
cd src/satisfactory_mcp/interfaces/web/frontend
npm ci && npm run build
cd -
uv sync --extra web
uv run satisfactory-mcp-web
The map is at http://127.0.0.1:8712, and it follows your saves live as you play. It binds to localhost on purpose: the API answers with the contents of your save directory and has no authentication, so it is a local tool.
Where your saves come from
Both locations are auto-detected:
- Saves:
%LOCALAPPDATA%\FactoryGame\Saved\SaveGames— the game's own location. Override withSATISFACTORY_SAVES. - Game data:
CommunityResources/Docs/en-US.jsonunder common Steam and Epic install paths. Override withSATISFACTORY_DOCS(pointing at theen-US.jsonfile itself).
Saves are grouped into worlds; within a world the newest save is used by default, and every answer says which file it read.
Licence
PolyForm Noncommercial 1.0.0. Free to use, modify and share for any noncommercial purpose, provided the required notice travels with copies:
Required Notice: Copyright Lukas Szimtenings (https://github.com/lukszi/SatisfactoryMCP)
Commercial use requires a separate licence from the owner — get in touch via GitHub (@lukszi). The licence covers this repository's code, tooling and extracted tables; it cannot and does not grant anyone rights over the game's content. All game-derived data describes Coffee Stain Studios' content — Coffee Stain retains all rights to Satisfactory and its assets, and this project is not affiliated with or endorsed by them.
The web map compiles Leaflet (BSD-2-Clause) into its bundle at build time from the npm package; the bundle is not committed, and every build carries Leaflet's licence text beside it.
Developing: the code layout, test suite, data generators, and the full data-provenance record live in docs/DEVELOPING.md. DESIGN.md is the design spine.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
One platform up close — machines, storage, belts, pipes, wires
Floor view — pick a storey, see what stands on it
Terrain mode — hillshade from a 1 m heightfield read out of the game
A crate's contents, with icons extracted from the game's assets