ssh-connect MCP server
An MCP server for SSH connections and file operations.
t-suganuma
README
ssh-connect MCP server
** All of the code in this project was created by a generative AI. **
An MCP server for SSH connections and file operations.
Components
Tools
The server implements several SSH-related tools:
-
connect: Connect to an SSH server
- Optional parameters to override environment variables: host, port, username, password, key_path, key_passphrase
- Returns connection status
-
disconnect: Disconnect from the SSH server
- No parameters required
- Returns disconnection status
-
execute: Execute a command on the SSH server
- Required parameter: command (string)
- Optional parameter: timeout (integer, seconds, default: 60)
- Returns command output (stdout and stderr) and exit status
-
upload: Upload a file to the SSH server
- Required parameters: local_path, remote_path
- Returns upload status
-
download: Download a file from the SSH server
- Required parameters: remote_path, local_path
- Returns download status
-
list_files: List files in a directory on the SSH server
- Required parameter: path
- Returns list of files with type and size information
Configuration
The SSH connection parameters can be configured using environment variables in the MCP settings:
SSH_HOST
: SSH server hostname or IP addressSSH_PORT
: SSH server port (default: 22)SSH_USERNAME
: SSH usernameSSH_PASSWORD
: SSH password (if using password authentication)SSH_KEY_PATH
: Path to SSH private key file (if using key authentication)SSH_KEY_PASSPHRASE
: Passphrase for SSH private key (if required)
You must provide either SSH_PASSWORD
or SSH_KEY_PATH
for authentication.
Example Configuration
An example MCP configuration file is provided in mcp-config-example.json
. You can use this as a template for configuring the SSH MCP server:
{
"mcpServers": {
"ssh-connect": {
"command": "uv",
"args": [
"--directory",
"/path/to/ssh-connect",
"run",
"ssh-connect"
],
"env": {
"SSH_HOST": "example.com",
"SSH_PORT": "22",
"SSH_USERNAME": "username",
"SSH_PASSWORD": "password",
"SSH_KEY_PATH": "/path/to/private_key",
"SSH_KEY_PASSPHRASE": "key_passphrase"
}
}
}
}
Note: You typically only need to provide either SSH_PASSWORD
or SSH_KEY_PATH
(with optional SSH_KEY_PASSPHRASE
), not both.
Examples
An example Python script is provided in the examples
directory to demonstrate how to use the SSH MCP server:
ssh_example.py
: Shows how to connect to an SSH server, execute commands, upload/download files, list directory contents, and disconnect.
To run the example:
python examples/ssh_example.py
This example assumes the SSH MCP server is already configured and running.
Using with Cline
To help Cline understand how to use the SSH MCP server without reading the README.md file, the following files are provided:
cline_ssh_usage_example.md
: A quick reference guide for using the SSH MCP server with Cline, including example commands and a complete workflow.create_test_file.py
: A script to create a test file for upload/download testing.test_ssh_mcp.sh
: A shell script that creates a test file and provides step-by-step instructions for testing the SSH MCP server with Cline.test_ssh_mcp.py
: A Python script that demonstrates how to use the SSH MCP server directly from Python, without using Cline.ssh_mcp_guide.html
: An HTML guide with examples and a complete workflow for using the SSH MCP server with Cline.
To test the SSH MCP server with Cline:
./test_ssh_mcp.sh
This will create a test file and display instructions for testing the SSH MCP server with Cline.
To test the SSH MCP server directly from Python:
./test_ssh_mcp.py
This will perform a complete test of the SSH MCP server, including connecting, executing commands, uploading/downloading files, and disconnecting.
Quickstart
Install
All-in-One Setup
For a complete setup and test of the SSH MCP server, you can use the all-in-one setup script:
./setup_and_test.sh
This script will:
- Install the required dependencies
- Install the SSH MCP server in Cline or Claude Desktop (or both)
- Test the SSH MCP server
Manual Setup
Dependencies
Before using the SSH MCP server, you need to install the required dependencies:
./install_dependencies.sh
This script will install the paramiko Python package, which is required for SSH connections.
Automatic Installation
Two Python scripts are provided to automatically install the SSH MCP server:
- For Cline:
./install_ssh_mcp.py
- For Claude Desktop:
./install_ssh_mcp_claude.py
These scripts will:
- Detect the location of the configuration file
- Prompt you for SSH connection parameters
- Update the configuration file with the SSH MCP server configuration
Manual Installation
Claude Desktop
An example Claude Desktop configuration file is provided in claude-desktop-config-example.json
. This shows how to configure the SSH MCP server in Claude Desktop.
To install the SSH MCP server in Claude Desktop:
-
Locate your Claude Desktop configuration file:
- On macOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json
- On Windows:
%APPDATA%/Claude/claude_desktop_config.json
- On macOS:
-
Add the SSH MCP server configuration to the
mcpServers
object in the configuration file:
{
"mcpServers": {
"ssh-connect": {
"command": "uv",
"args": [
"--directory",
"/path/to/ssh-connect",
"run",
"ssh-connect"
],
"env": {
"SSH_HOST": "example.com",
"SSH_PORT": "22",
"SSH_USERNAME": "username",
"SSH_PASSWORD": "password",
"SSH_KEY_PATH": "/path/to/private_key",
"SSH_KEY_PASSPHRASE": "key_passphrase"
},
"disabled": false,
"autoApprove": []
}
}
}
- Restart Claude Desktop to apply the changes.
Note: Make sure to replace the placeholder values with your actual SSH connection details.
Development
Building and Publishing
To prepare the package for distribution:
- Sync dependencies and update lockfile:
uv sync
- Build package distributions:
uv build
This will create source and wheel distributions in the dist/
directory.
- Publish to PyPI:
uv publish
Note: You'll need to set PyPI credentials via environment variables or command flags:
- Token:
--token
orUV_PUBLISH_TOKEN
- Or username/password:
--username
/UV_PUBLISH_USERNAME
and--password
/UV_PUBLISH_PASSWORD
Testing
A test script is provided in the tests
directory to verify that the SSH MCP server is working correctly:
python tests/test_ssh_connect.py
This test script uses unittest and mocking to test the basic functionality of the SSH MCP server without actually connecting to an SSH server.
Debugging
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
You can launch the MCP Inspector via npm
with this command:
npx @modelcontextprotocol/inspector uv --directory /path/to/ssh-connect run ssh-connect
Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
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.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.