Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Factorio

FreeNot checked

MCP server providing an LLM assistant with accurate, current Factorio data: recipes/prototypes, API docs, production ratio math, blueprint import, and mod listi

GitHubEmbed

About

MCP server providing an LLM assistant with accurate, current Factorio data: recipes/prototypes, API docs, production ratio math, blueprint import, and mod listings.

README

An MCP server that gives an LLM assistant accurate, current Factorio data: recipes and prototypes, official Lua API docs, production-ratio and full-chain math, blueprint import/export, mod portal listings, and planet-aware resource lookups.

What it can do

Tool What it does
lookup_recipe Raw recipe prototype data (ingredients, results, category)
summarize_recipe Curated, Factoriopedia-style recipe view — display name, Made in, Unlocked by, Recycling recipe
lookup_prototype Any data.raw prototype by type + name
search_prototype Find a prototype's type by name, or fuzzy-search names by substring
list_prototypes_of_type Every prototype name of a given type
lookup_api Official runtime/prototype Lua API docs from lua-api.factorio.com
search_changelog Search Factorio's version changelog
calculate_ratio Machines needed for a single recipe at a target output rate, with module/beacon effects
calculate_production_chain Full recursive production chain down to raw resources, for a target output rate
list_recipes_consuming What consumes a given item/fluid as an ingredient
list_recipes_made_in Every recipe craftable in a given machine
list_spoilage_chains What spoils into what (e.g. Gleba's iron-bacteria -> iron-ore)
list_planet_resources What's actually minable/pumpable on a given planet
fetch_blueprint / decode_blueprint / encode_blueprint Blueprint import from factorioprints.com/factoriobin.com, and raw string <-> JSON conversion
list_mods / get_mod Mod portal search and details

Also included: a factorio://planets resource (all-planet resource data precomputed in one call) and a plan_chain prompt that walks a production chain into planet-viable form.

Getting started

Three ways to use this, depending on what you want:

1. Use the hosted instance (no install)

Zero setup — this is a public remote MCP server (Streamable HTTP, OAuth with dynamic client registration, no API key needed) at https://factorio-mcp-server.fly.dev/mcp. How to add it depends on your client:

  • Claude apps (claude.ai, desktop, mobile): Settings → Connectors → Add custom connector → paste the URL.
  • Claude Code:
    claude mcp add --transport http factorio https://factorio-mcp-server.fly.dev/mcp
    
  • ChatGPT: Settings → Apps → Advanced settings → enable Developer mode (Business/Enterprise workspaces may need an admin to allow this first), then Settings → Connectors → Advanced → Add custom connector → paste the URL.
  • Cursor: add to mcp.json (Settings → Tools & MCP → New MCP Server):
    { "mcpServers": { "factorio": { "url": "https://factorio-mcp-server.fly.dev/mcp" } } }
    
  • VS Code (GitHub Copilot Chat, agent mode): add to mcp.json (Command Palette → "MCP: Add Server", or edit directly):
    { "servers": { "factorio": { "type": "http", "url": "https://factorio-mcp-server.fly.dev/mcp" } } }
    
  • Windsurf (Cascade): add to ~/.codeium/windsurf/mcp_config.json:
    { "mcpServers": { "factorio": { "serverUrl": "https://factorio-mcp-server.fly.dev/mcp" } } }
    
  • Gemini CLI: add to ~/.gemini/settings.json, then run /mcp auth factorio:
    { "mcpServers": { "factorio": { "httpUrl": "https://factorio-mcp-server.fly.dev/mcp" } } }
    

All of the above trigger a browser OAuth consent step on first connect — there's no account or API key to create first. Any other MCP client with Streamable HTTP + OAuth support should work the same way by pointing it at the URL. Clients without native HTTP transport support (e.g. Zed, as of 2026) need a local stdio bridge like mcp-remote in front of the URL instead.

Data comes from a static, pinned-version snapshot rather than a live install — see Data accuracy below before assuming it matches your exact game version or mod list.

2. Self-host locally (your own install, live data)

For live-install accuracy — your actual Factorio version, your actual enabled mods — instead of the hosted static snapshot:

git clone https://github.com/alecraso/factorio-mcp-server.git
cd factorio-mcp-server
npm ci
npm run build
claude mcp add factorio -- node "$(pwd)/dist/index.js"

Auto-detects a local Factorio install (Steam or standalone) on macOS, Linux, and Windows — see PLATFORM_SUPPORT.md for what's actually verified per platform, and set FACTORIO_BINARY_PATH if auto-detection doesn't find yours.

3. Self-host your own remote instance

Want your own hosted copy instead of relying on the shared one (your own uptime, your own OAuth client registrations, etc.)? See DEPLOY.md for the full Docker/Fly.io runbook.

Data accuracy: static vs. live

Every data tool's response includes a source field — check it before trusting exact numbers:

  • source.kind: "live" — read directly from a local Factorio install detected on this machine. Reflects your actual game version and enabled mods, and display names (displayName) are resolved from real locale data.
  • source.kind: "static" — served from a vendored snapshot pinned to one Factorio version (vanilla + Space Age, no mods — see static/README.md for provenance/licensing). This is what the hosted instance always uses, since a cloud host has no local install. displayName is always null in this mode — no locale data is vendored (would require a second large file for comparatively little value; see the server's own instructions string for the up-to-date caveat text a client actually sees).

Development

npm ci
npm run build
npm run lint
npm test

Single maintainer, but issues and PRs are both welcome — branch protection on main requires the build-and-test check to pass. See DEPLOY.md for deployment and PLATFORM_SUPPORT.md for local-install detection status.

License

MIT — see LICENSE — for this project's own code. The vendored Factorio data snapshot (static/data-raw-dump.json) is derived game data with its own provenance and licensing basis, documented separately in static/README.md.

from github.com/alecraso/factorio-mcp-server

Installing Factorio

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/alecraso/factorio-mcp-server

FAQ

Is Factorio MCP free?

Yes, Factorio MCP is free — one-click install via Unyly at no cost.

Does Factorio need an API key?

No, Factorio runs without API keys or environment variables.

Is Factorio hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Factorio in Claude Desktop, Claude Code or Cursor?

Open Factorio on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Factorio with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All productivity MCPs