Remote Server MCP
A security-first MCP server that gives AI assistants controlled, safe access to manage remote servers via SSH with whitelisted operations and no generic command execution.
README
Remote Server MCP
A security-first MCP server that gives AI assistants controlled, safe access to manage remote servers via SSH.
Design principle: Whitelist operations, don't blacklist commands. No generic command execution — only 13 validated tools.
┌───────────────┐ ┌──────────────────────────────┐ ┌──────────────┐
│ AI Assistant │───▶│ MCP Server │───▶│ SSH to │
│ (Qwen Code) │◀───│ (Secure Tools Only) │◀───│ Remote │
└───────────────┘ │ │ │ Server │
│ Safe Tools: │ └──────────────┘
│ • list_services() │
│ • get_service_logs() │
│ • get_service_status() │
│ • restart/start/stop │
│ • get_service_file() │
│ • list_service_files() │
│ • search_service_logs() │
│ • get_server_health() │
│ • query_influxdb() │
│ • query_prometheus() │
│ • get_prometheus_targets() │
└──────────────────────────────┘
│
All commands validated
against security policy
before execution
Quick Start
uv pip install -e . --python .venv
cp config.example.yaml config.yaml # edit with your SSH details
uv run pytest tests/ -v
See Getting Started for full setup instructions and Qwen Code integration.
Architecture
This project is a thin MCP server layer built on top of server-management-lib, which provides the core security validation, SSH management, and HTTP clients:
remote-server-mcp/ # This project — MCP server layer
├── src/remote_server_mcp/
│ ├── __init__.py # Entry point
│ └── server.py # MCP tool definitions (13 tools)
└── tests/
server-management-lib/ # Shared library (separate repo)
├── security.py # Security validator
├── ssh_manager.py # SSH connection handler
├── http_clients.py # InfluxDB + Prometheus clients
└── config.py # Configuration loader
Security Model 🛡️
- ❌ No arbitrary command execution
- ❌ No file access outside
/srv/{service}/ - ❌ No sensitive files (
.env,.git/,*.key, secrets) - ✅ Only specific, validated Docker operations
- ✅ All inputs sanitized against injection, traversal, and encoding bypasses
See Security Model for the full threat model and controls.
Available Tools
| Tool | Purpose |
|---|---|
list_services |
List services in /srv/ |
get_service_logs |
Docker container logs |
get_service_status |
Status + resource usage |
restart_service |
Restart container |
start_service |
Start container |
stop_service |
Stop container |
get_service_file |
Read files in /srv/{service}/ |
list_service_files |
List service directory |
search_service_logs |
Search logs (plain text) |
get_server_health |
CPU / memory / disk metrics |
query_influxdb |
Query InfluxDB v3 via SQL (read-only) |
query_prometheus |
Query Prometheus via PromQL |
get_prometheus_targets |
List Prometheus scrape targets |
See Tools for detailed descriptions.
Development
uv run ruff check . && uv run ruff format . && uv run ty check && uv run pytest tests/ -v
See Development for project structure, pre-commit hooks, and how to add new tools safely.
License
This tool is licensed under the terms of MIT license.
See LICENSE for more information.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.