MCP server intelligence profile

SSH MCP Server

A Model Context Protocol server that allows LLMs to securely execute shell commands on remote Linux and Windows systems via SSH. It supports password and key-based authentication, command timeouts, and sudo elevation for administrative tasks

Local Onlytufantunc
Awaiting current scanNpm · 2.8.0

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

1Distribution channel
11Independently observed tools
0Linked remote endpoints
AvailableVersion intelligence

Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.

Install and connect

Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.

Install ssh-mcp from npm

Install exact version 2.8.0. No verified executable entrypoint is available, so use the package documentation to launch it.

npm install --save-exact ssh-mcp@2.8.0

Identity

Canonical slugssh-mcp-server-ff3d3e45DeploymentLocal Only
Canonical packagenpm:ssh-mcpRepositorytufantunc/ssh-mcp
First publishedAug 12, 2026Latest releaseAug 14, 2026
Last security verificationClassification confidence90%
PublicationDraftOfficial distributionNot verified

Distributions

ChannelIdentifierCurrent versionVersionsSource
npmssh-mcp2.8.041Repository

Current release

PackageVersionPublished / observedInventorySecurity scan
npmssh-mcp2.8.0CurrentSep 5, 202611 toolsSucceeded · 1 resources · 0 promptsEvidence restricted
Enterprise protection

Continuously monitor this MCP for security risk

Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.

  • Independent exact-version security scans
  • Continuous release and vulnerability monitoring
  • Risk-change alerts with capability context
  • Historical evidence and API exports
Custom pricingContact salesTailored to your organization, integrations, data needs, and support requirements.

Current version evidence

No public current-version evidence is available yet.

Current protocol inventory

2025-06-18Negotiated protocol
SSH MCP ServerServer-reported name
2Capability groups
Sep 4, 2026Observed

Tools 11

ToolCategoryAnnotationsRisk
close-sessionClose a named session. A background session's command is signalled on the host (INT, then TERM, then KILL) before its channel is dropped; an interactive session's shell is ended. The response says so if the command could not be signalled or had not stopped in time.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Session name to close"
    },
    "profile": {
      "description": "Profile name",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
Annotations
{
  "destructiveHint": true
}
Destructive
list-connectionsList all configured SSH profiles and their connection status. Use this to discover available hosts before running commands.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
Annotations
{
  "readOnlyHint": true
}
Read only
list-sessionsList active sessions for a given SSH profile.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "profile": {
      "description": "Profile name (uses default if omitted)",
      "type": "string"
    }
  }
}
Annotations
{
  "readOnlyHint": true
}
Read only
open-sessionOpen a named session on a remote host. Use type="interactive" for stateful shell (CWD/env persists between commands) or type="background" for long-running processes.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Session name (alphanumeric, dash, underscore, max 64 chars)"
    },
    "type": {
      "default": "interactive",
      "description": "Session type",
      "type": "string",
      "enum": [
        "interactive",
        "background"
      ]
    },
    "command": {
      "description": "Command for background sessions",
      "type": "string"
    },
    "profile": {
      "description": "Profile name (uses default if omitted)",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
privileged-commandExecute a command with sudo elevation. Goes through the approval gate; approvalPolicy on the profile decides whether that is a prompt, an automatic allow, or a refusal. The sudo password is piped via stdin (never visible in process list).
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "command": {
      "type": "string",
      "description": "Command to execute with sudo"
    },
    "profile": {
      "description": "Profile name",
      "type": "string"
    }
  },
  "required": [
    "command"
  ]
}
Annotations
{
  "destructiveHint": true
}
Destructive
read-commandExecute a READ-ONLY command from an allowlist (ls, cat, grep, find, stat, df, etc.). This tool does NOT modify the system. Prefer this tool for all read operations.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "command": {
      "type": "string",
      "description": "Read-only shell command (must be in the allowlist)"
    },
    "profile": {
      "description": "Profile name",
      "type": "string"
    }
  },
  "required": [
    "command"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
read-session-outputRead recent output from a background session (e.g., tail -f logs).
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Background session name"
    },
    "lines": {
      "default": 50,
      "description": "Number of recent lines to read",
      "type": "number"
    },
    "profile": {
      "description": "Profile name",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
run-commandExecute an arbitrary shell command on the remote server. May modify the system. Commands classified destructive or privileged go through the approval gate; approvalPolicy on the profile decides whether that is a prompt, an automatic allow, or a refusal.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "command": {
      "type": "string",
      "description": "Shell command to execute"
    },
    "profile": {
      "description": "Profile name",
      "type": "string"
    },
    "session": {
      "description": "Run in an existing interactive session (stateful)",
      "type": "string"
    },
    "tty": {
      "description": "Allocate a pseudo-terminal",
      "type": "boolean"
    }
  },
  "required": [
    "command"
  ]
}
Annotations
{
  "destructiveHint": true
}
Destructive
sftp-downloadDownload a file from the remote server via SFTP.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "remotePath": {
      "type": "string",
      "description": "Remote file path to download"
    },
    "profile": {
      "description": "Profile name",
      "type": "string"
    }
  },
  "required": [
    "remotePath"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
sftp-uploadUpload a file to the remote server via SFTP (secure file transfer, not shell-based).
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "remotePath": {
      "type": "string",
      "description": "Remote file path"
    },
    "content": {
      "type": "string",
      "description": "File content to upload"
    },
    "profile": {
      "description": "Profile name",
      "type": "string"
    }
  },
  "required": [
    "remotePath",
    "content"
  ]
}
Annotations
{
  "destructiveHint": true
}
Destructive
signal-processSend a signal (INT, TERM, KILL) to a remote process by PID.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "pid": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "Process ID to signal (positive integer)"
    },
    "signal": {
      "default": "TERM",
      "description": "Signal to send",
      "type": "string",
      "enum": [
        "INT",
        "TERM",
        "KILL"
      ]
    },
    "profile": {
      "description": "Profile name",
      "type": "string"
    }
  },
  "required": [
    "pid"
  ]
}
Annotations
{
  "destructiveHint": true
}
Destructive

Resources 1

  • connectionsssh://connections

    List all SSH profiles and their connection status

Resource templates 2

  • profilessh://connections/{profile}

    Get details for a specific SSH profile

  • sessionssh://sessions/{profile}/{session}

    Get metadata for a specific session

Prompts 0

  • None observed.

Remote endpoints

EndpointTransportAuthenticationHealthObserved
No verified remote endpoint is linked.

SSH MCP Server questions

How do I install SSH MCP Server?

Install the selected package version with: npm install --save-exact ssh-mcp@2.8.0

What tools does SSH MCP Server provide?

SSH MCP Server exposed 11 tools during independent protocol observation, including close-session, list-connections, list-sessions, open-session, privileged-command, read-command, read-session-output, run-command, and others.

Is SSH MCP Server secure?

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

Explore related MCP server guides

Curated product and capability guides containing this catalog record.

Official vs Community MCP Servers

Let’s talk about MCP security.

Share your details and our security team will contact you.