Описание
Vps — Model Context Protocol server
README
An MCP (Model Context Protocol) server that gives AI assistants full control over a VPS via SSH. Execute commands, manage files, control services, monitor resources, manage Docker containers, and configure firewalls — all through a secure SSH tunnel.
✨ Features
| Tool | Description |
|---|---|
run_command |
Execute any shell command on the VPS |
read_file |
Read file contents via SFTP |
write_file |
Create or overwrite files via SFTP |
list_directory |
List directory contents with detailed info |
manage_service |
Start, stop, restart, reload, enable, disable systemd services & view logs |
list_services |
List systemd services filtered by state (running, failed, enabled) |
system_stats |
Get CPU, memory, disk, network, uptime, and process stats |
docker |
Manage Docker containers — list, start, stop, restart, logs, stats, images |
firewall |
Manage UFW rules — status, allow, deny, delete, reset |
📦 Installation
# Clone the repository
git clone https://github.com/your-username/vps-mcp-server.git
cd vps-mcp-server
# Install dependencies
pnpm install
# Build
pnpm build
⚙️ Configuration
Create a .env file from the example:
cp .env.example .env
Set the following environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
VPS_HOST |
✅ | — | Hostname or IP of your VPS |
VPS_USER |
✅ | — | SSH username |
VPS_KEY_PATH |
✅ | — | Absolute path to your SSH private key |
VPS_PORT |
❌ | 22 |
SSH port |
VPS_KEY_PASSPHRASE |
❌ | — | Passphrase for the SSH key (if encrypted) |
Example .env:
VPS_HOST=203.0.113.10
VPS_USER=deploy
VPS_KEY_PATH=/Users/you/.ssh/id_ed25519
VPS_PORT=22
🚀 Usage
With Claude Desktop / Gemini CLI / Any MCP Client
Add the server to your MCP client configuration:
{
"mcpServers": {
"vps": {
"command": "node",
"args": ["/absolute/path/to/vps-mcp-server/dist/index.js"],
"env": {
"VPS_HOST": "203.0.113.10",
"VPS_USER": "deploy",
"VPS_KEY_PATH": "/Users/you/.ssh/id_ed25519"
}
}
}
}
Development Mode
pnpm dev
Production
pnpm build
pnpm start
🛠️ Tools Reference
run_command
Execute a shell command on the VPS.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
command |
string |
✅ | — | The shell command to execute |
timeout |
number |
❌ | 30000 |
Timeout in milliseconds |
working_directory |
string |
❌ | — | Directory to run the command in |
Returns: JSON with exit_code, stdout, and stderr.
read_file
Read the contents of a file on the VPS via SFTP.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
path |
string |
✅ | — | Absolute path to the file |
max_lines |
number |
❌ | — | Max lines to return (omit for full file) |
write_file
Write content to a file on the VPS via SFTP.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
path |
string |
✅ | — | Absolute path to the file |
content |
string |
✅ | — | Content to write |
create_dirs |
boolean |
❌ | false |
Create parent directories if missing |
list_directory
List files and directories at a given path.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
path |
string |
❌ | / |
Directory path to list |
show_hidden |
boolean |
❌ | false |
Include dotfiles |
long_format |
boolean |
❌ | true |
Show permissions, size, date |
manage_service
Manage systemd services.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
service |
string |
✅ | — | Service name (e.g., nginx) |
action |
enum |
✅ | — | start | stop | restart | reload | status | enable | disable | logs |
log_lines |
number |
❌ | 50 |
Lines to show (for logs action) |
list_services
List systemd services filtered by state.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
filter |
enum |
❌ | running |
all | running | failed | enabled |
system_stats
Get system resource usage.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
include |
array |
❌ | ["all"] |
cpu | memory | disk | network | uptime | processes | all |
docker
Manage Docker containers.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
action |
enum |
✅ | — | ps | start | stop | restart | logs | stats | images |
container |
string |
❌ | — | Container name/ID (required for start/stop/restart/logs) |
log_lines |
number |
❌ | 50 |
Lines to show (for logs action) |
firewall
Manage UFW firewall rules.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
action |
enum |
✅ | — | status | allow | deny | delete | reset |
rule |
string |
❌ | — | Rule spec (e.g., 80/tcp, 443, from 10.0.0.1) |
📁 Project Structure
src/
├── index.ts # Server bootstrap & lifecycle
├── ssh.ts # SSHManager class (connection pooling)
├── types.ts # Shared TypeScript types
├── helpers.ts # Response helper functions
└── tools/
├── index.ts # Tool registration barrel
├── run-command.ts # Shell command execution
├── read-file.ts # SFTP file reading
├── write-file.ts # SFTP file writing
├── list-directory.ts
├── manage-service.ts
├── list-services.ts
├── system-stats.ts
├── docker.ts
└── firewall.ts
🔒 Security Notes
- The server connects via SSH using key-based authentication (no passwords).
- Commands run with the privileges of the configured SSH user.
- Service management and firewall tools use
sudo— ensure your SSH user has appropriate sudoers permissions. - The server maintains a persistent SSH connection that is automatically reconnected if dropped.
📄 License
MIT
Установка Vps
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/harbouli/vps-mcp-serverFAQ
Vps MCP бесплатный?
Да, Vps MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Vps?
Нет, Vps работает без API-ключей и переменных окружения.
Vps — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Vps в Claude Desktop, Claude Code или Cursor?
Открой Vps на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
автор: duxiaohuiSupabase
Database, auth and storage
автор: SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Vps with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
