Analyzed 33 days ago · 2 anonymous rescans remaining · register free to re-analyze any time.
Public analysis · read only
Register free to re-analyze

NikolaNddTesla/ssh-mcp-server

11 1 1 issues
JavaScript
NOASSERTION

Project Overview

anthropic / claude-opus-4-7

SSH MCP Server (@nl4ever/sshmcp)

MCP server that gives AI assistants SSH and SFTP access to manage remote servers via natural language.

AI Verdict
Review Recommended— AI Trust Assessment

True Intent (AI Assessment)

Bridge AI assistants to remote servers by exposing SSH/SFTP operations as MCP tools.

README Accuracy

Accurate

Notes

Functionality matches the README. Caveats: plaintext credential storage in ~/.ssh-mcp/config.json (documented), version drift between package.json (2.2.3) and server.json (1.2.1), GitHub license field is NOASSERTION despite MIT in package.json, and no test suite. Users granting an LLM SSH root-level access should understand the operational risk.

What Is This?

This is a Model Context Protocol (MCP) server written in TypeScript that exposes SSH and SFTP operations as tools an AI assistant (like Claude Desktop, Claude Code, or Cursor) can invoke. It wraps the ssh2 Node.js library and presents around 21 tools covering connection management, command execution, file transfer, proxy handling, and jump host routing. It runs locally over stdio and is distributed as an npm package with a `sshmcp` CLI binary.

The problem it addresses is the gap between AI chat interfaces and real infrastructure. Normally an AI can only suggest shell commands; here, it can actually connect to servers, run commands, upload/download files, and orchestrate deployments through conversational prompts. A key design goal is 'zero-token' file transfer: SFTP moves files between local disk and remote hosts by path, so file contents never enter the AI's context window (saving tokens and avoiding leakage of large binaries into the LLM).

The intended users are developers and DevOps engineers who use MCP-compatible AI clients and want to delegate remote server tasks — deployments, log tailing, config edits, file syncs — to an AI agent. Users install globally via npm, register the server with their MCP client, then instruct the AI to `add_server`, `execute`, `upload_file`, etc. Configurations (servers, proxies, credentials) persist to `~/.ssh-mcp/config.json`.

Internally, `src/index.ts` registers MCP tools and maintains an in-memory connection pool (`Map<string, SshManager>`) keyed by server_id, auto-connecting on demand and reconnecting on drop. `src/ssh-manager.ts` wraps ssh2's Client, supports password/private-key/ssh-agent/keyboard-interactive auth, routes traffic through SOCKS4/5 proxies via the `socks` package, and implements SSH ProxyJump by opening a forwarded TCP socket through a bastion. Large transfers can run asynchronously with progress tracking (`tf_N` task IDs), and directory transfers use tar.gz compression on the remote side for efficiency.

Notable observations: credentials including passwords are stored in plaintext in `~/.ssh-mcp/config.json` (the README explicitly warns about this). The MIT license is declared in package.json/README but GitHub reports NOASSERTION. There is a version mismatch between package.json (2.2.3) and server.json (1.2.1). No tests are present. The code itself is straightforward and appears to do exactly what it advertises — no obvious backdoors, exfiltration, or hidden network calls beyond user-configured SSH/SOCKS targets.

Your Report, Tab by Tab
At a Glance
11Stars
1Forks
1Open Issues
May 2026Last Active
CLI Tool (MCP Server)TypeScriptMIT (per package.json; GitHub reports NOASSERTION)
Technology Stack
LanguagesTypeScript, JavaScript
RuntimeNode.js >= 18
FrameworkModel Context Protocol SDK
DatabaseNone (JSON file at ~/.ssh-mcp/config.json)
Package Managernpm
Key Dependencies@modelcontextprotocol/sdk, ssh2, socks, zod
Build ToolTypeScript compiler (tsc)
Test FrameworkNone detected