README Documentation
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
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
- Clone the repository:
git clone <repository-url>
cd ssh-server
- Install dependencies:
npm install
- 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 directorybuild/- Compiled JavaScript outputnode_modules/- Project dependencies
Dependencies
@modelcontextprotocol/sdk: MCP protocol implementationsqlite3: SQLite database drivertypescript: Development dependency for TypeScript support
Development
To make changes to the project:
- Make your changes in the
src/directory - Rebuild the project:
npm run build
- Start the server to test your changes:
npm start
License
ISC
Contributing
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request