Linux App Deployer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Linux App Deployer (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This is a FastMCP server for managing and deploying applications on Linux systems. It provides a secure, structured interface for running system commands, managing packages, and deploying containerized applications.
The Linux Deployer MCP Server is designed to facilitate application deployment workflows through a set of well-defined tools that interact with the host Linux system. This server supports both local development and production deployment scenarios.
⚠️ Important: This server allows executing commands on the host Linux system. Exercise caution when deploying in production environments and ensure proper authentication and authorization controls are in place.
This section covers setting up and running the Linux Deployer MCP Server for local development purposes.
uv package manager (recommended) or pip git clone https://github.com/ysonawan/linux-app-deployer.git
cd linux-app-deployer curl -LsSf https://astral.sh/uv/install.sh | sh uv pip install -r requirements.txtAlternatively, if using pip:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtUsing FastMCP (recommended):
fastmcp run server.pyDirect execution:
uv run python server.pyAfter starting the server, you can interact with the available tools through the MCP client interface. The server will listen for incoming requests and execute the appropriate tool functions.
For debugging and development purposes, check the logs directory for detailed execution information:
tail -f logs/app.logThis section provides comprehensive instructions for deploying the Linux Deployer MCP Server in a production environment. The deployment includes setting up the application code, configuring Nginx with SSL, and managing the service using systemd.
The production deployment architecture consists of:
Important: Before cloning the repository, ensure the remote server can authenticate with GitHub using SSH keys.
#### 1.1 Generate SSH Key Pair (if not already present)
On the remote server, generate a new SSH key pair:
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519 -N ""Or if you prefer RSA:
ssh-keygen -t rsa -b 4096 -C "[email protected]" -f ~/.ssh/id_rsa -N ""#### 1.2 Get Your Public Key
Display the public key:
cat ~/.ssh/id_ed25519.pub
# or for RSA:
# cat ~/.ssh/id_rsa.pubCopy the entire output (starts with ssh-ed25519 or ssh-rsa).
#### 1.3 Add Public Key to GitHub
#### 1.4 Test SSH Connection
Verify the SSH connection works:
ssh -T [email protected]You should see: Hi <your-username>! You've successfully authenticated, but GitHub does not provide shell access.
#### 1.5 Configure Git (Optional but Recommended)
Set your Git identity on the server:
git config --global user.name "MCP Server"
git config --global user.email "[email protected]"Clone the application repository to the designated production directory.
Navigate to the deployment directory and set up the folder structure:
cd /opt
sudo mkdir -p mcp/repos
sudo chown $(whoami):$(whoami) mcp
cd mcpClone the repository:
git clone https://github.com/ysonawan/linux-app-deployer.git
cd linux-app-deployerThe application code is now located at /opt/mcp/linux-app-deployer.
Configure Nginx as a reverse proxy with SSL/TLS encryption to securely expose the MCP server.
#### 3.1 Verify DNS Resolution
Before setting up SSL, ensure your domain resolves correctly:
dig mcp.adminhub.upvaly.com +short#### 3.2 Install and Configure Certbot
Install Certbot for automated SSL certificate management:
sudo apt install -y certbot python3-certbot-nginx
certbot --version#### 3.3 Validate Nginx Configuration
Test the current Nginx setup:
sudo nginx -tReload Nginx to apply any pending changes:
sudo systemctl reload nginx#### 3.4 Obtain SSL Certificate
Obtain an SSL certificate for your domain using Certbot:
sudo certbot --nginx -d mcp.adminhub.upvaly.comFollow the interactive prompts to configure automatic renewal and other options.
#### 3.5 Deploy Nginx Configuration
Setup secret key for api authentication
vi /etc/nginx/nginx.confAdd the following line within the http block to define the API key:
map $http_x_api_key $mcp_api_key_valid {
default 0;
"your-secret-api-key-here" 1;
}Copy the provided Nginx configuration file:
cd /etc/nginx/sites-available
sudo cp /opt/mcp/linux-app-deployer/prod-deployment-scripts/mcp.adminhub.upvaly.com .Enable the site by setting up symlinks and removing defaults:
cd /etc/nginx/sites-enabled
sudo rm -f default
sudo ln -sf /etc/nginx/sites-available/mcp.adminhub.upvaly.com mcp.adminhub.upvaly.com#### 3.6 Final Nginx Validation
Verify the updated configuration and reload:
sudo nginx -t
sudo systemctl reload nginxConfigure the MCP server application with environment variables and dependencies.
#### 4.1 Environment Configuration
Create a .env file from the example template (if available):
cd /opt/mcp/linux-app-deployer
cp .env.example .envEdit the .env file with your production settings:
nano .envCommon configuration parameters:
LOG_LEVEL: Set to INFO or ERROR for productionSERVER_PORT: Port for the internal serverAPI_KEY: Secure API key for authentication#### 4.2 Install the uv Package Manager
Install the high-performance uv package manager:
curl -LsSf https://astral.sh/uv/install.sh | shReload your shell environment:
source ~/.bashrc
# Verify installation
which uv
# Expected output: /root/.local/bin/uv#### 4.3 Install Project Dependencies
Install all Python dependencies using uv:
cd /opt/mcp/linux-app-deployer
uv pip install -r requirements.txtAlternatively, if using traditional pip:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtSet up the MCP server as a systemd service for automatic startup and monitoring.
#### 5.1 Install Service File
Copy the systemd service configuration:
sudo cp /opt/mcp/linux-app-deployer/prod-deployment-scripts/linux-app-deployer.service /etc/systemd/system/
#### 5.2 Enable and Start the Service
Reload the systemd daemon to recognize the new service:
sudo systemctl daemon-reloadEnable the service to start automatically on boot:
sudo systemctl enable linux-app-deployer.serviceStart the service:
sudo systemctl restart linux-app-deployer.service
#### 5.3 Verify Service Status
Check the current status of the service:
sudo systemctl status linux-app-deployer.service
View recent logs:
sudo journalctl -u linux-app-deployer.service -n 50 --no-pager
Follow logs in real-time:
sudo journalctl -u linux-app-deployer.service -f
The Linux Deployer MCP Server is now running in production. The application is accessible through your configured domain with SSL/TLS encryption.
Verify the deployment:
curl https://mcp.famvest.online/healthMonitoring:
systemctl status to check service healthjournalctl for debuggingFor ongoing maintenance, update the application periodically:
cd /opt/mcp/linux-app-deployer
git pull
uv pip install -r requirements.txt
sudo systemctl restart linux-app-deployer.service
This section explains how to configure the Linux Deployer MCP Server with Cursor or Claude Desktop to enable local AI assistance with deployment tasks.
Settings (or Cursor > Settings on macOS)Features tab and locate the MCP sectionWith API Key (if authentication is enabled) - Recommended Method:
{
"mcpServers": {
"linux-app-deployer": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.adminhub.upvaly.com/mcp",
"--header",
"X-API-Key: your-secret-api-key-here"
]
}
}
}Replace your-secret-api-key-here with your actual API key.
~/Library/Application Support/Claude/claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json ~/.config/Claude/claude_desktop_config.jsonclaude_desktop_config.json file in your text editorWith API Key (if authentication is enabled) - Recommended Method:
{
"mcpServers": {
"linux-app-deployer": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.adminhub.upvaly.com/mcp",
"--header",
"X-API-Key: your-secret-api-key-here"
]
}
}
}Replace your-secret-api-key-here with your actual API key.
To use the API key with Cursor or Claude Desktop:
your-secret-api-key-here in the config with your actual API key: "linux-app-deployer": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.adminhub.upvaly.com/mcp",
"--header",
"X-API-Key: your-secret-api-key-here"
]
}Replace your-secret-api-key-here with your actual API key.
chmod 600 ~/Library/Application\ Support/Claude/claude_desktop_config.json.env file approach if your config file is sharedOnce configured, you can interact with the Linux Deployer MCP Server by:
The AI assistant will have access to the tools provided by the Linux Deployer MCP Server and can help you automate and manage your Linux application deployments.
If the MCP server connection is not established:
sudo systemctl status linux-app-deployer.service2.Review Logs:
sudo journalctl -u linux-app-deployer.service -f3.Verify Configuration Syntax:
4.API Key Authentication Issues (if authentication is enabled):
MCP_API_KEY environment variable is set in your config curl -H "X-API-Key: your-actual-api-key" https://mcp.famvest.online/mcp/etc/nginx/sites-available/mcp.famvest.onlinechmod 600 ~/path/to/config.json~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.