原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

SSH Session MCP

作者:Zw-awa版本 2.7.1i★ –i在你的电脑上运行
注册名称io.github.Zw-awa/ssh-session-mcp

安装

概览

作者提供的说明(英文原文)

Shared SSH PTY runtime for MCP clients with viewer, input lock, async tracking, and policy rules.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 其他
  • 你需要填写:SSH_PASSWORD

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: SSH_MCP_CONFIG, SSH_MCP_INSTANCE, VIEWER_PORT, VIEWER_HOST, AUTO_OPEN_TERMINAL, SSH_MCP_MODE, SSH_MCP_LOCAL, SSH_MCP_DEBUG, SSH_HOST, SSH_PORT, SSH_USER, SSH_PASSWORD, SSH_KEY

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "ssh-session": {
      "command": "npx",
      "args": [
        "-y",
        "ssh-session-mcp"
      ],
      "env": {
        "SSH_MCP_CONFIG": "your-value",
        "SSH_MCP_INSTANCE": "your-value",
        "VIEWER_PORT": "your-value",
        "VIEWER_HOST": "your-value",
        "AUTO_OPEN_TERMINAL": "your-value",
        "SSH_MCP_MODE": "your-value",
        "SSH_MCP_LOCAL": "your-value",
        "SSH_MCP_DEBUG": "your-value",
        "SSH_HOST": "your-value",
        "SSH_PORT": "your-value",
        "SSH_USER": "your-value",
        "SSH_PASSWORD": "your-value",
        "SSH_KEY": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add ssh-session --env SSH_MCP_CONFIG=your-value --env SSH_MCP_INSTANCE=your-value --env VIEWER_PORT=your-value --env VIEWER_HOST=your-value --env AUTO_OPEN_TERMINAL=your-value --env SSH_MCP_MODE=your-value --env SSH_MCP_LOCAL=your-value --env SSH_MCP_DEBUG=your-value --env SSH_HOST=your-value --env SSH_PORT=your-value --env SSH_USER=your-value --env SSH_PASSWORD=your-value --env SSH_KEY=your-value -- npx -y ssh-session-mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "ssh-session": {
      "command": "npx",
      "args": [
        "-y",
        "ssh-session-mcp"
      ],
      "env": {
        "SSH_MCP_CONFIG": "your-value",
        "SSH_MCP_INSTANCE": "your-value",
        "VIEWER_PORT": "your-value",
        "VIEWER_HOST": "your-value",
        "AUTO_OPEN_TERMINAL": "your-value",
        "SSH_MCP_MODE": "your-value",
        "SSH_MCP_LOCAL": "your-value",
        "SSH_MCP_DEBUG": "your-value",
        "SSH_HOST": "your-value",
        "SSH_PORT": "your-value",
        "SSH_USER": "your-value",
        "SSH_PASSWORD": "your-value",
        "SSH_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "ssh-session": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "ssh-session-mcp"
      ],
      "env": {
        "SSH_MCP_CONFIG": "your-value",
        "SSH_MCP_INSTANCE": "your-value",
        "VIEWER_PORT": "your-value",
        "VIEWER_HOST": "your-value",
        "AUTO_OPEN_TERMINAL": "your-value",
        "SSH_MCP_MODE": "your-value",
        "SSH_MCP_LOCAL": "your-value",
        "SSH_MCP_DEBUG": "your-value",
        "SSH_HOST": "your-value",
        "SSH_PORT": "your-value",
        "SSH_USER": "your-value",
        "SSH_PASSWORD": "your-value",
        "SSH_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • SSH_MCP_CONFIG env
    Optional explicit path to ssh-session-mcp.config.json when the config is not in the current working directory.
  • SSH_MCP_INSTANCE env
    Optional runtime instance id used to isolate state across multiple MCP clients or agents.
  • VIEWER_PORT env
    Viewer HTTP port. Use auto to allocate a free local port, or 0 to disable the browser viewer.
  • VIEWER_HOST env
    Optional viewer bind host. Defaults to 127.0.0.1 for local-only browser access.
  • AUTO_OPEN_TERMINAL env
    Set to true or 1 to automatically open the browser terminal when a session is created.
  • SSH_MCP_MODE env
    Operation mode. safe blocks risky or unsuitable terminal actions by default, while full allows broader execution.
  • SSH_MCP_LOCAL env
    Set to true or 1 to run a local shell instead of opening a real SSH connection. Useful for demos and offline testing.
  • SSH_MCP_DEBUG env
    Set to true or 1 to expose browser-side debug controls intended for demos and local troubleshooting.
  • SSH_HOST env
    Legacy single-target SSH host when not using ssh-session-mcp.config.json device profiles.
  • SSH_PORT env
    Legacy single-target SSH port when not using ssh-session-mcp.config.json device profiles.
  • SSH_USER env
    Legacy single-target SSH username when not using ssh-session-mcp.config.json device profiles.
  • SSH_PASSWORD 机密 env
    Optional legacy password-based SSH authentication value.
  • SSH_KEY env
    Optional path to a local SSH private key file for legacy single-target mode.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 Zw-awa 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 32680 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 32680 个服务器的 9% 更新
  • 基础检查结果等于或优于此分类中其他 32680 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

SSH Session MCP 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:SSH_PASSWORD

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(2.7.1)于6个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211前天更新
安装

EmbeddedCI BenchPod

作者:embeddedci-com

Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.

在你的电脑上运行今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

ssh-session-mcp

中文 | English

Persistent shared-terminal runtime for MCP clients over SSH.

ssh-session-mcp gives the user and the AI the same SSH PTY session, adds a browser viewer, tracks who typed what, and makes long-running remote work manageable instead of stateless.

Contents

  • Install At A Glance
  • Project Structure
  • Quick Start
  • Docker Status
  • MCP Tools
  • Configuration Summary
  • Security
  • Docs
  • Development

Install At A Glance

  • Normal users do not need to git clone this repository.
  • Preferred install path for MCP clients: npx -y ssh-session-mcp --viewerPort=auto
  • Preferred install path for human operators who want local binaries: npm install -g ssh-session-mcp
  • Official container distribution can be published to a public registry such as docker.io/zwawa/ssh-session-mcp
  • git clone is only for contributors, source builds, and local development.
  • For the common desktop MCP workflow, npx or a global npm install is still the lowest-friction path. Docker is mainly useful when you want a pinned runtime, container-based deployment, or registry-backed distribution.

Why It Exists

Most SSH-oriented MCP servers can execute commands, but they do not manage terminal state well enough for real collaboration.

ssh-session-mcp focuses on the missing runtime layer:

  • One shared PTY for both the human and the AI
  • Browser terminal for live inspection and manual intervention
  • Input lock so the AI does not type over the user
  • Safe/full execution modes for risky commands
  • Configurable default policy rules plus session-level custom rule overrides
  • Async command tracking for long-running remote work
  • Multi-device and multi-connection profile support
  • Local debug mode for demos, offline testing, and prompt iteration

Best Fit

  • AI-assisted remote development on Linux boards and SSH servers
  • Embedded, ROS, training, and deployment hosts that need a real terminal
  • Users who want the AI to help, but do not want to surrender the terminal
  • MCP Marketplace listings where the install and demo path must be clear

Project Structure

Key directories and files:

PathPurpose
src/Core TypeScript implementation for the MCP server, SSH session runtime, viewer, tools, and config CLIs
src/viewer-html/HTML page generators and browser-side scripts for the terminal viewer
test/Vitest coverage for runtime behavior, viewer contracts, config loading, and repository validation
docs/Supporting documentation such as contracts, failure taxonomy, platform notes, and Docker usage
docs/examples/Example config files for normal and Docker-oriented setups
scripts/Build, version sync, and local operator helper scripts
deploy/helm/Helm chart for Kubernetes deployment in single-node or distributed v0 mode
site/GitHub Pages landing page source
dist/Generated static site output from npm run build:site
build/Generated JavaScript output from npm run build
DockerfileContainer image build definition
docker-compose.ymlProfile-based Docker Compose example
docker-compose.env.ymlLegacy .env-style Docker Compose example
server.jsonMCP server metadata for marketplace-style distribution
AGENT.mdPrimary agent/operator playbook
llms-install.mdAgent-focused installation and environment checklist
.env.exampleLegacy single-target environment variable template

Quick Start

1. Agent-First Install (Auto-download on first run)

If the goal is to let Claude Code, Codex, or OpenCode install the server automatically, prefer npx -y ssh-session-mcp in the MCP command instead of a prior global install.

For Cline Marketplace and other agent installers, see llms-install.md. This repo is structured to be one-click installable through an npx -y ssh-session-mcp --viewerPort=auto command.

Claude Code
claude mcp add --transport stdio ssh-session-mcp -- npx -y ssh-session-mcp --viewerPort=auto

Windows note from the Claude Code docs: native Windows users should wrap npx with cmd /c for stdio MCP servers.

claude mcp add --transport stdio ssh-session-mcp -- cmd /c npx -y ssh-session-mcp --viewerPort=auto
Codex
codex mcp add ssh-session-mcp -- npx -y ssh-session-mcp --viewerPort=auto
OpenCode

OpenCode's opencode mcp add flow is interactive. Choose a local MCP server and use this command:

npx -y ssh-session-mcp --viewerPort=auto

If you prefer config instead of the interactive flow:

{

"$schema": "https://opencode.ai/config.json", "mcp": { "ssh-session-mcp": { "type": "local", "command": ["npx", "-y", "ssh-session-mcp", "--viewerPort=auto"] } } }

This is the closest thing to "automatic installation" for stdio MCP servers today: the MCP client stores the command, and npx -y downloads the package automatically the first time it runs.

2. Fastest Local Demo
npm install -g ssh-session-mcp

ssh-session-mcp-ctl launch --local --viewerPort=auto

This starts a local shell instead of SSH and opens the browser terminal, which is the easiest way to test the MCP runtime before touching a real server.

3. Register As An MCP Server

Use the MCP server binary directly when wiring a client:

# Global install

npm install -g ssh-session-mcp

Server command used by MCP clients

ssh-session-mcp --viewerPort=auto

# Claude Code

claude mcp add --transport stdio ssh-session-mcp -- ssh-session-mcp --viewerPort=auto

Codex CLI

codex mcp add ssh-session-mcp -- ssh-session-mcp --viewerPort=auto

If you prefer npx instead of a global install:

npx -y ssh-session-mcp --viewerPort=auto
4. Connect To A Real SSH Target

Create .env from .env.example:

cp .env.example .env
SSH_HOST=YOUR_DEVICE_HOST

SSH_PORT=22 SSH_USER=YOUR_DEVICE_USER SSH_PASSWORD= SSH_KEY= VIEWER_PORT=auto AUTO_OPEN_TERMINAL=false SSH_MCP_MODE=safe

Then launch:

ssh-session-mcp-ctl launch --viewerPort=auto
5. Multi-Device Config

For multiple boards or named targets, create ssh-session-mcp.config.json:

{

"defaultDevice": "DEVICE_A_ID", "devices": [ { "id": "DEVICE_A_ID", "host": "DEVICE_A_HOST", "port": 22, "user": "DEVICE_A_USER", "auth": { "passwordEnv": "DEVICE_A_PASSWORD" }, "defaults": { "term": "xterm-256color", "cols": 120, "rows": 40, "autoOpenViewer": true, "viewerMode": "browser" } } ] }

Discovery order:

  1. --config=/path/to/config.json
  2. Workspace ssh-session-mcp.config.json
  3. User-global config
  4. Legacy .env fallback

Important:

  • Config discovery is based on the MCP process working directory.
  • auth.password is intentionally unsupported. Use auth.passwordEnv or auth.keyPath.
  • Secrets belong in .env or the parent environment, not in repo-tracked JSON.
6. Docker Status

Public Docker images should be distributed through Docker Hub, with GitHub Container Registry as an optional secondary registry:

docker.io/zwawa/ssh-session-mcp:<version>

docker.io/zwawa/ssh-session-mcp:latest ghcr.io/zw-awa/ssh-session-mcp:

Recommended container launch for a real SSH target:

docker run --rm -i \

-p 8793:8793 \ -e VIEWER_PORT=8793 \ -e VIEWER_HOST=0.0.0.0 \ -e SSH_HOST=YOUR_DEVICE_HOST \ -e SSH_PORT=22 \ -e SSH_USER=YOUR_DEVICE_USER \ -e SSH_PASSWORD \ docker.io/zwawa/ssh-session-mcp:latest

Export the password in your shell first instead of placing it directly on the command line.

Recommended launch for profile-based config:

docker run --rm -i \

-p 8793:8793 \ -e VIEWER_PORT=8793 \ -e VIEWER_HOST=0.0.0.0 \ -e SSH_MCP_CONFIG=/workspace/ssh-session-mcp.config.json \ -v "$PWD/ssh-session-mcp.config.json:/workspace/ssh-session-mcp.config.json:ro" \ -v "/path/to/host/keys:/workspace/keys:ro" \ docker.io/zwawa/ssh-session-mcp:latest

Equivalent Compose example:

docker compose up -d

See docker-compose.yml for a ready-to-run example that mounts ssh-session-mcp.config.json, publishes the viewer on 8793, and uses SSH_KEY_DIR when set or falls back to a dedicated ./keys directory. For the full Docker guide, including the legacy .env compose variant and MCP client config snippets, see docs/docker.md. For a container-oriented profile example, see docs/examples/ssh-session-mcp.config.docker.example.json.

Container-specific notes:

  • The image defaults VIEWER_PORT to 8793 when unset so the browser viewer can be published reliably.
  • The image defaults VIEWER_HOST to 0.0.0.0 inside the container so the mapped port is reachable from the host.
  • AUTO_OPEN_TERMINAL defaults to false in the container because browser auto-open from inside a container is usually not useful.
  • Mount config files or SSH keys read-only when possible.
  • Prefer mounting SSH keys from a directory outside the repo root.
  • In docker-compose.yml, SSH_KEY_DIR overrides the default key mount path. If it is unset, Compose falls back to ./keys, not the repo root.
  • Avoid putting passwords directly on the command line. Prefer exported env vars, Compose .env, or --env-file.
  • For stdio MCP clients, Docker is viable, but host-native npx is still simpler unless your client explicitly prefers containerized commands.

Docker-based MCP client command examples:

# Claude Code

claude mcp add --transport stdio ssh-session-mcp -- docker run --rm -i -p 8793:8793 -e VIEWER_PORT=8793 -e VIEWER_HOST=0.0.0.0 docker.io/zwawa/ssh-session-mcp:latest

Codex CLI

codex mcp add ssh-session-mcp -- docker run --rm -i -p 8793:8793 -e VIEWER_PORT=8793 -e VIEWER_HOST=0.0.0.0 docker.io/zwawa/ssh-session-mcp:latest

For JSON-based MCP clients, the same pattern works by using docker as the command and passing the remaining run ... docker.io/zwawa/ssh-session-mcp:latest tokens as args.

This is useful when:

  • The primary workflow is a local stdio MCP server command, not a long-lived network service.
  • You want a pinned Node/runtime environment without a local install.
  • You need registry-based distribution for a team or managed host.
  • You want container-level isolation for the MCP server process.

For many users, publishing to npm and recommending npx -y ssh-session-mcp --viewerPort=auto is still the lower-friction install path.

Viewer And Collaboration Model

The browser viewer is not decorative. It is part of the workflow:

  • The user can see exactly what the AI did.
  • The AI can pause when the user takes over.
  • Password prompts, pagers, and editors become visible state instead of hidden failure modes.
  • Session diagnostics and history turn terminal debugging into something inspectable.

Marketplace-Friendly Flow

For users:

install -> launch viewer -> connect once -> keep the session alive -> let the AI help

For agents:

ssh-qu

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx