Skip to main content
Glama

factorio-player-mcp

An MCP control layer for one dedicated, connected Factorio player.

The project measures gameplay through a constrained interface; it is not a general RCON or Lua automation server. The agent-facing API will expose only typed, legal player actions and bounded local observations. It will not expose arbitrary Lua/RCON, teleportation, item spawning, direct entity mutation, forced research, evaluator state, or full-map dumps.

Current status

The version 1 contract is defined. The repository contains an initial Factorio mod and stdio MCP bootstrap for bounded actor observation and native crafting. It is not benchmark-valid yet.

Related MCP server: MinecraftBot

Development checks

The contract checks use only the Python standard library:

python3 -m unittest discover -s tests -v

These tests guard the public allow-list, forbidden capabilities, dedicated player identity policy, bounded observations, action-result fields, and versioned response schemas.

Host MCP bootstrap

The current stdio MCP server exposes only observe_actor, observe_local, craft, wait, move, mine, place, rotate, and interact_inventory. requires the Factorio mod to be installed and the game to be running with RCON enabled. The RCON password belongs only in the host-side MCP process; do not provide it to an agent.

uv sync
FACTORIO_RCON_HOST=127.0.0.1 \
FACTORIO_RCON_PORT=25575 \
FACTORIO_RCON_PASSWORD=replace-me \
uv run factorio-player-mcp

See mcp.json.example for a client configuration template.

Available Tools

6 tools
craftC

Queue an available recipe through the dedicated player's native craft queue.

Inputs: recipe (required), count. Returns: object

mineC

Mine a reachable target through the dedicated player's normal mining state.

Inputs: x (required), y (required), count. Returns: object

moveC

Walk the dedicated player toward a target using normal movement state.

Inputs: x (required), y (required). Returns: object

observe_actorC

Return bounded state for the configured dedicated player.

Inputs: no named parameters. Returns: object

observe_localC

Return chart-bounded entities within a small radius of the dedicated player.

Inputs: radius. Returns: object

waitC

Wait for a bounded number of normal Factorio game ticks.

Inputs: ticks (required). Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 6 tools

    Disambiguation4/5

    observe_actor and observe_local are the only pair with potential overlap, but their descriptions clearly distinguish full player state from nearby entities. The action tools (craft, wait, move, mine) each target a distinct operation.

    Naming Consistency4/5

    Two observation tools use a consistent verb_noun pattern (observe_actor, observe_local), while the remaining four are bare verbs (craft, wait, move, mine). This is a minor deviation from a single convention but remains readable and predictable.

    Tool Count5/5

    Six tools is a well-scoped minimum for basic player control: observe (global/local), act (move, mine, craft), and wait. Each tool earns its place without redundancy.

    Completeness3/5

    Core locomotion, mining, crafting, and observation are covered, but major Factorio player operations are absent: placing/removing buildings, inventory management, attacking, and interacting with entities. These gaps would block common agent workflows beyond simple resource gathering.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables controlling a semi-autonomous Minecraft bot via MCP, supporting tasks like movement, combat, farming, and chatting.
      -
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables controlling an autonomous Minecraft Java Edition player through MCP, with structured world perception, navigation, gathering, crafting, combat, building, skill-based task execution, and long-term memory integration.
      -
    • A
      license
      B
      quality
      B
      maintenance
      Enables an AI agent to control a single Factorio character through normal player mechanics, including job-based walking, mining, crafting, building, and perception within fog-of-war constraints.
      44
      2
      MIT