UNPKG

ssh-mcp

Version:

MCP server exposing SSH control for Linux and Windows systems via Model Context Protocol.

120 lines (91 loc) 4.17 kB
# SSH MCP Server [![NPM Version](https://img.shields.io/npm/v/ssh-mcp)](https://www.npmjs.com/package/ssh-mcp) [![Downloads](https://img.shields.io/npm/dm/ssh-mcp)](https://www.npmjs.com/package/ssh-mcp) [![Node Version](https://img.shields.io/node/v/ssh-mcp)](https://nodejs.org/) [![License](https://img.shields.io/github/license/tufantunc/ssh-mcp)](./LICENSE) [![GitHub Stars](https://img.shields.io/github/stars/tufantunc/ssh-mcp?style=social)](https://github.com/tufantunc/ssh-mcp/stargazers) [![GitHub Forks](https://img.shields.io/github/forks/tufantunc/ssh-mcp?style=social)](https://github.com/tufantunc/ssh-mcp/forks) [![Build Status](https://github.com/tufantunc/ssh-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/tufantunc/ssh-mcp/actions) [![GitHub issues](https://img.shields.io/github/issues/tufantunc/ssh-mcp)](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.