jpeggdev/Satisfactory-RemoteAdmin
If you are the rightful owner of Satisfactory-RemoteAdmin and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A comprehensive Model Context Protocol (MCP) server for managing Satisfactory Dedicated Servers remotely, implementing the complete Satisfactory Dedicated Server HTTPS API.
Satisfactory MCP Server
A comprehensive Model Context Protocol (MCP) server that provides tools for managing Satisfactory Dedicated Servers remotely. This server implements the complete Satisfactory Dedicated Server HTTPS API as documented in the official API documentation.
Features
Authentication & Health
- Health Check: Monitor server health and tick rate
- Connection Management: Password and passwordless authentication with privilege levels
- Token Verification: Validate authentication tokens
Server State & Information
- Server State: Get detailed server status, player count, game phase, session info
- Server Options: View current and pending server configuration
- Advanced Settings: Manage advanced game settings for sessions
Server Management
- Server Claiming: Claim unclaimed servers with admin privileges
- Server Naming: Rename servers
- Password Management: Set/update admin and client passwords
- Auto-load Configuration: Set which session loads on startup
- Console Commands: Execute server console commands
- Server Shutdown: Safely shutdown the server
Session Management
- New Game Creation: Create new game sessions with custom settings
- Session Enumeration: List all available save sessions
- Save Game Operations: Save current game state
Save File Management
- Load Games: Load specific save files with optional advanced settings
- Upload Saves: Upload save files from local filesystem
- Download Saves: Download save files to local filesystem
- Delete Operations: Delete individual save files or entire sessions
Installation
npm install
npm run build
Usage
As an MCP Server
Add to your MCP client configuration:
{
"mcpServers": {
"satisfactory": {
"command": "node",
"args": ["path/to/satisfactory-mcp-server/dist/server.js"]
}
}
}
Quick Start
-
Connect to a server:
satisfactory_connect with: - hostname: "your-server-ip" - connectionId: "my-server" - minimumPrivilegeLevel: "Administrator" - password: "your-password" (optional)
-
Check server status:
satisfactory_get_server_state with connectionId: "my-server"
-
Manage save files:
satisfactory_enumerate_sessions with connectionId: "my-server" satisfactory_load_game with connectionId: "my-server", saveName: "MyFactorySave"
Available Tools
Authentication & Health Tools
satisfactory_health_check
Check server health and performance status.
connectionId
(required): Connection identifierclientCustomData
(optional): Custom data to send
satisfactory_connect
Establish connection and authenticate with server.
hostname
(required): Server IP or hostnameconnectionId
(required): Unique connection identifierport
(optional): Server port (default: 7777)password
(optional): Server passwordminimumPrivilegeLevel
(optional): Required privilege levelallowSelfSignedCert
(optional): Allow self-signed certificates
satisfactory_verify_auth
Verify current authentication token validity.
connectionId
(required): Connection identifier
Server Information Tools
satisfactory_get_server_state
Get comprehensive server status information.
connectionId
(required): Connection identifier
satisfactory_get_server_options
Get current and pending server configuration options.
connectionId
(required): Connection identifier
satisfactory_get_advanced_settings
Get advanced game settings for current session.
connectionId
(required): Connection identifier
Server Management Tools
satisfactory_claim_server
Claim an unclaimed server (requires InitialAdmin privileges).
connectionId
(required): Connection identifierserverName
(required): Name for the serveradminPassword
(required): Admin password to set
satisfactory_rename_server
Change server name.
connectionId
(required): Connection identifierserverName
(required): New server name
satisfactory_set_client_password
Set or remove client protection password.
connectionId
(required): Connection identifierpassword
(required): Password (empty string to remove)
satisfactory_set_admin_password
Update admin password.
connectionId
(required): Connection identifierpassword
(required): New admin passwordnewAuthToken
(required): New auth token to use
satisfactory_set_autoload_session
Configure which session loads automatically on startup.
connectionId
(required): Connection identifiersessionName
(required): Session name to auto-load
satisfactory_run_command
Execute console commands on the server.
connectionId
(required): Connection identifiercommand
(required): Console command to execute
satisfactory_shutdown_server
Safely shutdown the server.
connectionId
(required): Connection identifier
Configuration Tools
satisfactory_apply_server_options
Apply new server configuration options.
connectionId
(required): Connection identifieroptions
(required): Server options as key-value pairs
satisfactory_apply_advanced_settings
Apply advanced game settings to current session.
connectionId
(required): Connection identifiersettings
(required): Advanced settings as key-value pairs
Session Management Tools
satisfactory_create_new_game
Create and load a new game session.
connectionId
(required): Connection identifiersessionName
(required): Name for new sessionmapName
(optional): Map to usestartingLocation
(optional): Starting locationskipOnboarding
(optional): Skip tutorialadvancedSettings
(optional): Advanced game settings
satisfactory_enumerate_sessions
List all available save sessions and their details.
connectionId
(required): Connection identifier
Save Game Tools
satisfactory_save_game
Save current game state.
connectionId
(required): Connection identifiersaveName
(required): Name for save file
satisfactory_load_game
Load a specific save file.
connectionId
(required): Connection identifiersaveName
(required): Save file nameenableAdvancedSettings
(optional): Enable advanced settings
satisfactory_delete_save_file
Delete a specific save file.
connectionId
(required): Connection identifiersaveName
(required): Save file name
satisfactory_delete_save_session
Delete all saves for a session.
connectionId
(required): Connection identifiersessionName
(required): Session name
satisfactory_upload_save
Upload save file from local filesystem.
connectionId
(required): Connection identifiersaveName
(required): Name for uploaded savefilePath
(required): Local path to save fileloadSave
(optional): Load after uploadenableAdvancedSettings
(optional): Enable advanced settings when loading
satisfactory_download_save
Download save file to local filesystem.
connectionId
(required): Connection identifiersaveName
(required): Save file nameoutputPath
(required): Local path to save file
Privilege Levels
The server supports different privilege levels:
- Client: Basic access for gameplay
- Administrator: Full server management access
- InitialAdmin: Special privilege for claiming unclaimed servers
- APIToken: Third-party application access
Error Handling
All tools provide comprehensive error handling with detailed error messages. Common error scenarios include:
- Network connectivity issues
- Authentication failures
- Privilege level restrictions
- Server state conflicts (e.g., loading in progress)
- File operation errors
Development
# Install dependencies
npm install
# Development mode with auto-reload
npm run dev
# Build for production
npm run build
# Run built server
npm start
API Reference
This MCP server implements the complete Satisfactory Dedicated Server HTTPS API v1. For detailed API documentation, refer to the DedicatedServerAPIDocs.md
file.
Key API features implemented:
- JSON-based request/response protocol
- Bearer token authentication
- Multipart file uploads for save games
- File downloads with proper Content-Disposition handling
- Comprehensive error responses with error codes
Security Considerations
- Authentication tokens are managed automatically
- Self-signed certificate support for local servers
- Proper privilege level enforcement
- Secure password handling (never logged or exposed)
License
MIT