Skip to main content
Glama

SSH MCP Server

A Model Context Protocol (MCP) server implementation that provides SSH capabilities. This server allows for secure remote access and execution through the MCP protocol.

Features

  • SSH server implementation using MCP protocol

  • SQLite database integration for data persistence

  • TypeScript implementation for type safety and better development experience

Related MCP server: Shell MCP Server

Prerequisites

  • Node.js 18 or higher

  • npm or yarn package manager

  • TypeScript knowledge for development

Installation

Installing via Smithery

To install SSH Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @KinoThe-Kafkaesque/ssh-mcp-server --client claude

Manual Installation

  1. Clone the repository:

git clone <repository-url>
cd ssh-server
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

Usage

Configuration

The server uses a SQLite database (ssh.db) to store SSH credentials. The database file will be created automatically when the server starts.

Tools

The server stores named credentials, then every remote action refers to a credentialName. privateKeyPath must point to an existing private key.

  • add_credential: save { "name", "host", "username", "privateKeyPath" }.

  • list_credentials: list stored credential records.

  • remove_credential: delete { "name" }.

  • ssh_exec: run a shell command with { "credentialName", "command", "timeout" }.

  • ssh_exec_raw: run an argv-style command array, for example { "credentialName": "prod", "command": ["grep", "-E", "foo|bar", "/var/log/app.log"] }.

  • scp_copy: copy one file over SFTP with { "credentialName", "localPath", "remotePath", "direction" }.

  • rsync_copy: copy directories or larger trees with rsync and the same transfer shape.

  • ssh_session_start, ssh_session_send, ssh_session_read, ssh_session_end, ssh_session_list: manage interactive SSH sessions.

  • ssh_tunnel_start, ssh_tunnel_list, ssh_tunnel_stop: manage local or remote port-forwarding tunnels.

Example:

{
  "tool_name": "ssh_exec",
  "arguments": {
    "credentialName": "prod",
    "command": "uptime",
    "timeout": 120000
  }
}

Starting the server

npm start

The server will start running on the configured port (default settings can be modified in the source code).

Project Structure

  • src/ - Source code directory

  • build/ - Compiled JavaScript output

  • node_modules/ - Project dependencies

Dependencies

  • @modelcontextprotocol/sdk: MCP protocol implementation

  • sqlite3: SQLite database driver

  • typescript: Development dependency for TypeScript support

Development

To make changes to the project:

  1. Make your changes in the src/ directory

  2. Rebuild the project:

npm run build
  1. Start the server to test your changes:

npm start

License

MIT

Contributing

  1. Fork the repository

  2. Create your feature branch

  3. Commit your changes

  4. Push to the branch

  5. Create a new Pull Request

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
<1hResponse time
Release cycle
Releases (12mo)
Issues opened vs closed

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/KinoThe-Kafkaesque/ssh-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server