ssh-mcp
Version:
MCP server exposing SSH control for Linux and Windows systems via Model Context Protocol.
120 lines (91 loc) • 4.17 kB
Markdown
# SSH MCP Server
[](https://www.npmjs.com/package/ssh-mcp)
[](https://www.npmjs.com/package/ssh-mcp)
[](https://nodejs.org/)
[](./LICENSE)
[](https://github.com/tufantunc/ssh-mcp/stargazers)
[](https://github.com/tufantunc/ssh-mcp/forks)
[](https://github.com/tufantunc/ssh-mcp/actions)
[](https://github.com/tufantunc/ssh-mcp/issues)
**SSH MCP Server** is a local Model Context Protocol (MCP) server that exposes SSH control for Linux and Windows systems, enabling LLMs and other MCP clients to execute shell commands securely via SSH.
## Contents
- [Quick Start](#quick-start)
- [Features](#features)
- [Installation](#installation)
- [Client Setup](#client-setup)
- [Testing](#testing)
- [Disclaimer](#disclaimer)
- [Support](#support)
## Quick Start
- [Install](#installation) SSH MCP Server
- [Configure](#configuration) SSH MCP Server
- [Set up](#client-setup) your MCP Client (e.g. Claude Desktop, Cursor, etc)
- Execute remote shell commands on your Linux or Windows server via natural language
## Features
- MCP-compliant server exposing SSH capabilities
- Execute shell commands on remote Linux and Windows systems
- Secure authentication via password or SSH key
- Built with TypeScript and the official MCP SDK
- **Configurable timeout protection** with automatic process abortion
- **Graceful timeout handling** - attempts to kill hanging processes before closing connections
### Tools
- `exec`: Execute a shell command on the remote server
- **Parameters:**
- `command` (required): Shell command to execute on the remote SSH server
- **Timeout Configuration:**
- Timeout is configured via command line argument `--timeout` (in milliseconds)
- Default timeout: 60000ms (1 minute)
- When a command times out, the server automatically attempts to abort the running process before closing the connection
## Installation
1. **Clone the repository:**
```bash
git clone https://github.com/tufantunc/ssh-mcp.git
cd ssh-mcp
```
2. **Install dependencies:**
```bash
npm install
```
## Client Setup
You can configure Claude Desktop to use this MCP Server.
**Required Parameters:**
- `host`: Hostname or IP of the Linux or Windows server
- `user`: SSH username
**Optional Parameters:**
- `port`: SSH port (default: 22)
- `password`: SSH password (or use `key` for key-based auth)
- `key`: Path to private SSH key
- `timeout`: Command execution timeout in milliseconds (default: 60000ms = 1 minute)
```commandline
{
"mcpServers": {
"ssh-mcp": {
"command": "npx",
"args": [
"ssh-mcp",
"-y",
"--",
"--host=1.2.3.4",
"--port=22",
"--user=root",
"--password=pass",
"--key=path/to/key",
"--timeout=30000"
]
}
}
}
```
## Testing
You can use the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) for visual debugging of this MCP Server.
```sh
npm run inspect
```
## Disclaimer
SSH MCP Server is provided under the [MIT License](./LICENSE). Use at your own risk. This project is not affiliated with or endorsed by any SSH or MCP provider.
## Contributing
We welcome contributions! Please see our [Contributing Guidelines](./CONTRIBUTING.md) for more information.
## Code of Conduct
This project follows a [Code of Conduct](./CODE_OF_CONDUCT.md) to ensure a welcoming environment for everyone.
## Support
If you find SSH MCP Server helpful, consider starring the repository or contributing! Pull requests and feedback are welcome.