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: MCP SSH Server

Prerequisites

  • Node.js (v16 or higher recommended)

  • 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 provides the following tools:

ssh_exec

Execute a command over SSH.

Input Parameters:

  • host: The host to connect to. (required)

  • command: The command to execute. (required)

  • username: The username to use for the SSH connection. (required)

  • privateKeyPath: The path to the private key file. (required)

Example Usage:

{ "tool_name": "ssh_exec", "arguments": { "host": "example.com", "command": "ls -l", "username": "user", "privateKeyPath": "/path/to/private/key" } }

Note: The privateKeyPath must be a valid path to a private key file.

add_credential

Add a new SSH credential.

Input Parameters:

  • name: The name of the credential. (required)

  • host: The host to connect to. (required)

  • username: The username to use for the SSH connection. (required)

  • privateKeyPath: The path to the private key file. (required)

Example Usage:

{ "tool_name": "add_credential", "arguments": { "name": "my_credential", "host": "example.com", "username": "user", "privateKeyPath": "/path/to/private/key" } }

Note: The privateKeyPath must be a valid path to a private key file.

list_credentials

List all stored SSH credentials.

Input Parameters:

  • None

Example Usage:

{ "tool_name": "list_credentials", "arguments": {} }

remove_credential

Remove a stored SSH credential.

Input Parameters:

  • name: The name of the credential to remove. (required)

Example Usage:

{ "tool_name": "remove_credential", "arguments": { "name": "my_credential" } }

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

ISC

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

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