Factorio MCP Server
Overview
Factorio MCP Server is a minimal ModelContextProtocol server template designed for building AI assistant tools, providing a basic structure for creating MCP tools that can be integrated with AI assistants like Claude.
To use the Factorio MCP Server, clone the repository, install dependencies, and configure it to work with the Claude desktop app by following the setup instructions provided in the documentation.
- Simple "hello world" tool example - TypeScript + esbuild setup - Preconfigured development tools - Integration with Claude AI assistant
- Developing AI assistant tools that utilize the ModelContextProtocol.
- Creating custom tools for Claude to enhance its functionality.
- Testing and debugging MCP server interactions using the MCP Inspector tool.
Add to your AI client
Use these steps to connect Factorio MCP Server in Cursor, Claude, VS Code, and other MCP-compatible apps. The same JSON appears in the Use with menu above for one-click copy.
Cursor
Add this to your .cursor/mcp.json file in your project root, then restart Cursor.
.cursor/mcp.json
{
"mcpServers": {
"factorio-mcp-server-dested": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-factorio-mcp-server-dested"
]
}
}
}Claude Desktop
Add this server entry to the mcpServers object in your Claude Desktop config, then restart the app.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"factorio-mcp-server-dested": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-factorio-mcp-server-dested"
]
}
}
}Claude Code
Add this to your project's .mcp.json file. Claude Code will detect it automatically.
.mcp.json (project root)
{
"mcpServers": {
"factorio-mcp-server-dested": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-factorio-mcp-server-dested"
]
}
}
}VS Code (Copilot)
Add this to your .vscode/mcp.json file. Requires the GitHub Copilot extension with MCP support enabled.
.vscode/mcp.json
{
"servers": {
"factorio-mcp-server-dested": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-factorio-mcp-server-dested"
]
}
}
}Windsurf
Add this to your Windsurf MCP config file, then restart Windsurf.
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"factorio-mcp-server-dested": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-factorio-mcp-server-dested"
]
}
}
}Cline
Open Cline settings, navigate to MCP Servers, and add this server configuration.
Cline MCP Settings (via UI)
{
"mcpServers": {
"factorio-mcp-server-dested": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-factorio-mcp-server-dested"
]
}
}
}FAQ
What is the purpose of the Factorio MCP Server?
It serves as a starter template for building AI assistant tools using the ModelContextProtocol.
How do I publish my MCP server?
Set up an NPM account and run `npm publish` to distribute your server.
Can I create new tools for the MCP server?
Yes! You can define new tools by adding them to the tool schema and implementing their functionality.7:["$","div",null,{"className":"container mx-auto flex flex-col gap-4","children":["$L26","$L27",["$","$L28",null,{"currentProject":{"id":2445,"uuid":"e756a45d-8779-4898-bfc5-589c72b02f75","name":"factorio-mcp-server","title":"Factorio MCP Server","description":"","avatar_url":"https://avatars.githubusercontent.com/u/822784?v=4","created_at":"$D2025-03-13T07:59:56.795Z","updated_at":"$D2025-03-13T08:03:22.632Z","status":"created","author_name":"dested","author_avatar_url":"https://avatars.githubusercontent.com/u/822784?v=4","tags":"factorio,mcp,server,ai-assistant","category":"developer-tools","is_featured":false,"sort":1,"url":"https://github.com/dested/factorio-mcp-server","target":"_self","content":"$29","summary":"$2a","img_url":null,"type":null,"metadata":"{\"star\":\"0\",\"license\":\"Unlicense license\",\"language\":\"TypeScript\",\"is_official\":false,\"latest_commit_time\":\"2025-03-12 12:52:01\"}","user_uuid":null,"tools":null,"sse_url":null,"sse_provider":null,"sse_params":null,"is_official":false,"server_command":null,"server_params":null,"server_config":null,"allow_call":false,"is_innovation":false,"is_dxt":false,"dxt_manifest":null,"dxt_file_url":null,"is_audit":false},"randomProjects":[],"currentServerKey":"$undefined"}]]}]