MCP server for Factorio game automation and factory planning, providing tools for entity management, production planning, blueprint handling, and factory optimization
FactorioMCP has 24 tools with action-verb naming (Mine, Inspect, Insert, Refuel, Find, etc.) and documented input schemas. However, descriptions are minimal (10-50 chars, well below the 194-char baseline), parameter descriptions lack depth, and output schemas are not visible in source. Tools follow a consistent pattern but lack the LLM-optimization guidance needed for reliable agent selection. No error handling guidance, no recovery hints, and no security/permission documentation visible.
Calculate production rate and machine requirements for a recipe
Decode a Factorio blueprint string to extract entities and metadata
Export placement instructions as a Factorio blueprint string
Find a buildable area of specified dimensions
Find idle machines (no fuel, no ingredients, etc.) within a radius
Find missing inputs for an entity at specified coordinates
Find entities with no power or low power status within a radius
Get comprehensive factory status including inventory, research, buildings, and flow
Descriptions are critically short (10-50 chars vs 194-char baseline). Examples: 'Mine multiple entities at specified coordinates in batch' (58 chars) lacks WHEN to use, prerequisites, or return value hints. LLMs cannot reliably select tools without richer context.
Output schemas not documented in source. Tools return JSON (visible in tests: success, machines_needed, machine, instruction_count, blueprint_string, etc.) but no formal schema definitions visible. LLMs cannot plan downstream calls without knowing return structure.
No error handling guidance visible. Tests show JSON responses with 'success' boolean, but no documentation of error cases, recovery hints, or actionable error messages. Agents cannot self-correct on failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Get the current player position
Insert items into multiple entities in batch
Inspect multiple entities at specified coordinates in batch
Mine multiple entities at specified coordinates in batch
Move to a tracked building by label or entity name with pathfinding
Move to a nearby entity of specified type with pathfinding
Move to a resource patch of specified type with pathfinding
Pick up items from the ground within a radius
Place a blueprint string in the game world as ghost entities
Place an entity at specified coordinates
Plan multi-stage production chain for a product
Plan and generate layout instructions for a smelter production line
Refuel multiple entities in batch with default fuel type
Summarize resources, machines, and threats in an area
Walk the player to a specified position with pathfinding
Get entities in a direction from the player
Parameter descriptions lack actionable constraints. 'radius' appears in 6 tools with description 'Search radius in tiles' but no min/max bounds. 'tolerance' in movement tools has no guidance on valid range. LLMs may pass invalid values.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) visible. Risk field is present in metadata but not exposed in tool definitions. Agents cannot distinguish safe reads from destructive writes without explicit hints.