mcp_linux_ssh
by samdoran
README.md
# MCP Server to run commands over SSH #
⚠️ This is an early prototype. Use at your own risk. ⚠️
## Getting started ###
```
python -m venv .venvs/mcp
.venvs/mcp/bin/python -m pip install -e .
```
Run the MCP server with `.venvs/mcp/bin/mcp-linux-ssh`
To have an MCP client run the application, point it at `realpath .venvs/mcp/bin/mcp-linux-ssh`.
Here's an example configuration for Claude Desktop:
```json
{
"mcpServers": {
"linux_ssh": {
"command": "/Users/sdoran/Developer/mcp_linux_ssh/.venvs/mcp/bin/mcp-linux-ssh",
"env": {
"TMPDIR": "/tmp"
}
}
}
}
```
### Create a standalone executable ###
Use [`shiv`][] to create portable executable.
```
mkdir build
shiv -o build/mcp_linux_ssh --console-script mcp-linux-ssh .
```
### Logging ###
Commands and the hosts they are run on are logged to a local file that is rotated once it reaches five megabytes in size. The file location depends on the platform running the MCP server.
**Linux**: `~/.local/share/logs/mcp-linux-ssh.log`
**macOS**: `~/Library/Logs/mcp-linux-ssh.log`
[`shiv`]: https://shiv.readthedocs.io/en/latest/
TDQS
B3.3/5.0
Scored across 6 tools
Disambiguation5/5
Each tool targets a distinct system resource or action. The two command execution tools are clearly separated by read-only vs. writable behavior, eliminating ambiguity.
Naming Consistency5/5
All tool names follow a consistent snake_case pattern: informational tools use 'get_' prefix and execution tools use 'run_' prefix, making the set predictable.
Tool Count5/5
Six tools cover the essential operations for a Linux SSH management server—information gathering and command execution—without being excessive or sparse.
Completeness4/5
The set covers CPU, disk, processes, services, and generic command execution. Missing memory or network info, but the core diagnostic and action capabilities are present.
Maintenance
ActivityInactive
ResponsivenessNo issues