Token导航 LogoToken导航

MCP Server · 开发工具

Local Ssh MCP

一个基于Node.js和TypeScript的本地SSH MCP服务器,用于安全地执行远程SSH命令并通过Claude Code进行管理。

未说明官方级别未说明来源级核验工具 3
安全协议JavaScriptClaude开发工具

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
terria1020
提供方
terria1020

工具数量

3

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Local Ssh MCP 属于开发工具类 MCP Server,公开资料标注 3 个工具,通过传输方式未标注接入,适配 Claude,没有现成的安装命令;接入前要先准备 OAuth 授权。

分类

开发工具

传输方式

未说明

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 3 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

本地SSH MCP服务器

用于Claude Code的安全本地SSH MCP服务器

Node.js+基于TypeScript的模型上下文协议(MCP)服务器。Claude Code允许通过SSH连接到远程服务器并运行命令,但SSH身份验证信息仅在本地环境中管理,以防止外部暴露。

版本:3.1.0(带流式HTTP/SSE+命令验证旁路的MCP协议)

______________________________________________________________________

📌 v3.1.0主要更改

项目v2.0.0 v3.0.0 v3.1.0
协议REST APIMCP(JSON-RPC 2.0)MCP(JSON-RPC 2.0)
身份验证JWT令牌基于会话(仅限localhost)基于会话(仅限localhost)
凭据环境变量(单一)credentials.json (多个)credentials.json (多个)
SSH모드仅短暂短暂+持久短暂+持续
Claude Code集成curl/脚本MCP本机MCP本机
命令验证需要需要需要(基于规则)需要/选择(--dangerously-no-rules)

v3.1.0新增功能:

  • ✨ --dangerously-no-rules 标志:禁用命令验证
  • 🔧 用于开发/测试环境的消除白名单约束选项
  • 📝 运行命令时跟踪详细的日志记录和审核

______________________________________________________________________

📌 项目目的

1. 🔒 增强的安全性

解决现有开源MCP项目的安全隐患:

  • SSH密钥文件只存在于本地文件系统中
  • 服务器是 127.0.0.1仅侦听(阻止外部访问)
  • 验证起源头(防止DNS rebinding攻击)
  • 基于白名单/黑名单的命令过滤(Hot-reload)
  • 基于证书文件的管理(.gitignore 处理)

2. 🎓 学习MCP体系结构

通过该项目,您可以学习:

  • 实施模型上下文协议(MCP)服务器
  • 基于HTTP/SSE的JSON-RPC 2.0통신
  • Claude Code本机集成

3. 📚 Node.js+TypeScript实践示例

  • Express.js:构建HTTP服务器
  • TypeScript:类型安全性
  • 节点ssh:SSH客户端
  • 温斯顿:结构化日志记录

______________________________________________________________________

🚀 主要功能

MCP工具(Tools)

工具说明
ssh_execute在远程服务器上运行SSH命令
ssh_list_credentials查询注册的凭据列表
ssh_session_info查询SSH会话状态

安全功能

  • 仅限localhost:仅在127.0.0.1上监听
  • Origin验证:防止DNS rebinding攻击
  • 过滤命令:基于白名单/黑名单的验证(默认)
  • 热重载: rules.json 更改时立即反映
  • 绕过命令验证 (可选): --dangerously-no-rules 可以通过标志从测试环境中移除约束

SSH连接模式

模式说明
短暂的 (默认)为每个命令创建/终止新连接
持久保持连接,cwd跟踪,超时5分钟

______________________________________________________________________

📦 技术堆栈

类别技术用途
运行时Node.js 18+JavaScript执行环境

语言TypeScript类型安全性 Web框架Express.js HTTP/SSE服务器 | SSH客户端| node-ssh | SSH连接和命令执行| 日志记录Winston结构化日志记录 |安全性| Helmet |安全性标头设置|

______________________________________________________________________

🛠️ 安装和设置

1.安装依赖性

git clone https://github.com/terria1020/local-ssh-mcp.git
cd local-ssh-mcp
npm install

2.设置凭据

cp credentials.example.json credentials.json

credentials.json 编辑:

{
  "version": "1.0",
  "credentials": [
    {
      "id": "my-server",
      "name": "My Production Server",
      "host": "server.example.com",
      "port": 22,
      "username": "ubuntu",
      "authType": "key",
      "privateKeyPath": "/Users/you/.ssh/id_rsa"
    },
    {
      "id": "dev-server",
      "name": "Development Server",
      "host": "dev.example.com",
      "port": 22,
      "username": "developer",
      "authType": "password",
      "password": "base64-encoded-password"
    }
  ]
}

密码Base64编码:

echo -n "your-password" | base64

3.设置环境变量(可选)

cp .env.example .env

.env 文件:

PORT=4000
LOG_LEVEL=info
SESSION_TIMEOUT=300000

4.构建和运行

正常模式(启用命令验证-推荐):

# 빌드
npm run build

# 프로덕션 실행
npm start

# 개발 모드
npm run dev

NO-RULES模式(禁用命令验证-仅开发/测试环境):

# 개발 모드
npm run dev -- --dangerously-no-rules

# 프로덕션 모드
npm start -- --dangerously-no-rules

# 또는 직접 실행
node dist/index.js -- --dangerously-no-rules
⚠️ 安全警告: --dangerously-no-rules 模式不受限制地运行所有SSH命令。仅在可靠的开发/测试环境中使用。绝对不要在生产环境中使用。

5.确认服务器

curl http://127.0.0.1:4000/mcp/health

______________________________________________________________________

🔗 Claude Code集成指南

方法1:HTTP/SSE方式(推荐)

步骤1:运行MCP服务器
cd /path/to/local-ssh-mcp
npm run build && npm start

服务器 http://127.0.0.1:4000在中运行。

步骤2:在Claude Code中注册MCP服务器
claude mcp add local-ssh --transport http http://127.0.0.1:4000/mcp
步骤3:验证注册
claude mcp list

输出示例:

local-ssh: http://127.0.0.1:4000/mcp (connected)
  Tools: ssh_execute, ssh_list_credentials, ssh_session_info
检查连接状态

/mcp 可以通过命令检查MCP服务器的状态:

┌─────────────────────────────────────────────────────────────┐
│ Local-ssh MCP Server                                        │
│                                                             │
│ Status: ✔ connected                                         │
│ Auth: ✘ not authenticated  ← 정상 (OAuth 미사용)            │
│ URL: http://127.0.0.1:4000/mcp                              │
│ Tools: 3 tools                                              │
└─────────────────────────────────────────────────────────────┘
参考: Auth: ✘ not authenticated正常。此服务器仅用于localhost,因此不使用OAuth身份验证。

方法2:手动设置(.mcp.json)

~/.claude/.mcp.json 或项目根目录的 .mcp.json:

{
  "mcpServers": {
    "local-ssh": {
      "type": "http",
      "url": "http://127.0.0.1:4000/mcp"
    }
  }
}

MCP服务器管理

# 서버 목록
claude mcp list

# 서버 제거
claude mcp remove local-ssh

# 서버 재연결
claude mcp add local-ssh --transport http http://127.0.0.1:4000/mcp

______________________________________________________________________

💡 Claude Code使用方案

基本用法

Claude Code以自然语言请求时,自动使用MCP工具:

方案1:检查Pod状态

用户:

my-server에서 kubectl get pods 실행해줘

克劳德:

파드 상태를 확인하겠습니다.
[ssh_execute 도구 사용: credentialId="my-server", command="kubectl get pods"]
方案2:查看证书列表

用户:

등록된 SSH 서버 목록을 보여줘

克劳德:

[ssh_list_credentials 도구 사용]

등록된 서버 목록:
1. my-server (server.example.com) - ubuntu
2. dev-server (dev.example.com) - developer
方案3:验证多台服务器

用户:

my-server와 dev-server의 디스크 사용량을 비교해줘

克劳德:

두 서버의 디스크 사용량을 확인하겠습니다.
[두 서버에 df -h 실행 후 결과 비교 분석]

高级使用

持续会话模式
my-server에서 persistent 모드로:
1. cd /var/log
2. ls -la
3. tail -n 50 syslog

在持续模式下,工作目录(cwd)将被保留。

日志分析
dev-server의 nginx 에러 로그에서 최근 500 에러를 찾아 분석해줘
监视资源
my-server의 메모리 사용량이 높은 프로세스 상위 10개를 보여줘

______________________________________________________________________

📡 MCP协议

端点

方法Path说明

POST/mcpJSON-RPC 2.0请求 |GET|/mcp|SSE流| |DELETE|/mcp|会话结束| |GET|/mcp/health|Health健康检查|

MCP方法

方法说明
initialize客户端握手
initialized初始化完成通知
ping验证连接
tools/list可用工具列表
tools/call 运行工具

手动测试

# MCP 테스트 스크립트
./scripts/test-mcp.sh

# 또는 수동으로
curl -X POST http://127.0.0.1:4000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}'

______________________________________________________________________

配置文件

credentials.json

保存SSH凭据(gitignore已处理):

{
  "version": "1.0",
  "credentials": [
    {
      "id": "server-id",
      "name": "서버 이름",
      "host": "hostname",
      "port": 22,
      "username": "user",
      "authType": "key",
      "privateKeyPath": "/path/to/key",
      "passphrase": "base64-encoded"
    }
  ]
}

“字段”“必需”“说明” |------|------|------| | id |唯一标识符(小写、数字、连字符)| | name |宣传名称| | host |主机名或IP | port |剧情| SSH端口(默认:22)| | username | SSH用户名| | authType | ✅ | key 或者 password | | privateKeyPath |密钥时的SSH密钥文件路径| | passphrase |选择|关键路径铣削(base64)| | password |密码时| SSH密码(base64)|

rules.json

命令过滤规则(Hot-reload支持):

{
  "allowedCommands": [
    "kubectl",
    "docker",
    "ls",
    "cat",
    "grep"
  ],
  "blockedPatterns": [
    "rm -rf",
    "shutdown",
    "reboot"
  ]
}

绕过验证选项:

基本上 rules.json使用中定义的规则验证所有命令。要在开发/测试环境中完全禁用验证,请在运行服务器时 --dangerously-no-rules 使用标志:

npm run dev -- --dangerously-no-rules

在此模式下:

  • 所有SSH命令运行无限制
  • 📝 命令执行 [NO-RULES MODE] 记录为前缀
  • 在服务器启动时显示明确的警告信息

使用案例:

  • 测试新命令
  • 难以预定义白名单
  • CI/CD管道实验

______________________________________________________________________

📂 项目结构

local-ssh-mcp/
├── src/
│   ├── index.ts                    # 서버 엔트리포인트
│   ├── routes/
│   │   ├── mcp-transport.ts        # MCP HTTP 트랜스포트
│   │   ├── mcp-handlers.ts         # MCP 메소드 핸들러
│   │   ├── mcp-tools.ts            # MCP 도구 구현
│   │   └── mcp.ts                  # 헬스/상태 엔드포인트
│   ├── services/
│   │   ├── ssh-manager.ts          # SSH 실행
│   │   ├── session-manager.ts      # 세션 관리
│   │   └── credential-manager.ts   # 자격증명 관리
│   ├── middleware/
│   │   ├── origin-validator.ts     # Origin 검증
│   │   └── validator.ts            # 명령 검증
│   ├── utils/
│   │   ├── logger.ts               # Winston 로거
│   │   ├── json-rpc.ts             # JSON-RPC 유틸리티
│   │   └── base64.ts               # Base64 인코딩
│   └── types/
│       ├── index.ts                # 레거시 타입
│       ├── mcp.ts                  # MCP 타입
│       └── credentials.ts          # 자격증명 타입
├── scripts/
│   └── test-mcp.sh                 # MCP 테스트 스크립트
├── credentials.json                # SSH 자격증명 (gitignore)
├── credentials.example.json        # 자격증명 예시
├── credentials.schema.json         # JSON 스키마
├── rules.json                      # 명령 필터링 규칙
├── .mcp.json.example               # Claude Code 설정 예시
└── CLAUDE.md                       # Claude Code 가이드

______________________________________________________________________

🔧 开发命令

npm run build    # TypeScript 컴파일
npm start        # 프로덕션 실행
npm run dev      # 개발 모드 (ts-node)
npm run watch    # TypeScript watch 모드
npm run clean    # dist/ 삭제

______________________________________________________________________

🔒 安全建议

1.设置SSH密钥权限

chmod 600 ~/.ssh/id_rsa

2.设置credentials.json权限

chmod 600 credentials.json

3.启用命令验证(必需)

在生产环境中始终启用命令验证。 --dangerously-no-rules 标记 千万不要使用.

# ✅ 프로덕션 (검증 활성화 - 기본값)
npm start

# ❌ 프로덕션 (검증 비활성화 - 금지)
npm start -- --dangerously-no-rules

--dangerously-no-rules 模式为:

  • 不受限制地运行所有SSH命令
  • 无法防止执行恶意命令
  • 系统损坏、数据泄露风险
  • 🚫 禁止使用生产环境

4.NO-RULES模式使用指南

--dangerously-no-rules只在以下环境中使用:

  • 个人开发机器
  • 可靠的内部测试环境
  • 隔离网络(无法外部访问)
  • 生产环境
  • 多用户环境
  • 外部网络暴露环境

5.生产环境

NODE_ENV=production
LOG_LEVEL=warn
# dangerously-no-rules 플래그 사용 금지

______________________________________________________________________

🐛 故障排除

MCP服务器连接失败

  1. 验证服务器是否正在运行:
curl http://127.0.0.1:4000/mcp/health
  1. 重新启动服务器:
npm run build && npm start
  1. 从Claude Code重新连接:
claude mcp remove local-ssh
claude mcp add local-ssh --transport http http://127.0.0.1:4000/mcp

“Credential not found”错误

credentials.json相当于 id验证是否存在:

cat credentials.json | jq '.credentials[].id'

“命令验证失败”错误

rules.json将命令添加到允许列表:

{
  "allowedCommands": [
    "your-command-here"
  ]
}

保存文件时自动反映(无需重新启动服务器)

SSH连接失败

  1. 手动SSH测试:
ssh -i ~/.ssh/id_rsa user@host
  1. 确认密钥文件路径(credentials.json)
  1. 启用调试日志:
LOG_LEVEL=debug npm run dev

______________________________________________________________________

📝 检查日志

# 실시간 로그
tail -f logs/combined.log

# 에러 로그만
tail -f logs/error.log

更改日志级别(.env):

LOG_LEVEL=debug  # error, warn, info, debug

______________________________________________________________________

📧 联系和支持

  • 问题:
  • 讨论:

工具与能力

工具数量

3

资源数量

0

提示词数量

0

能力标签

SSH管理TypeScript本地部署远程命令执行安全协议开发工具Node.js

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 3 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到OAuth 授权的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Local Ssh MCP

MCP World · 本页

3未说明未标注1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Local Ssh MCP 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Local Ssh MCP 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Local Ssh MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Local Ssh MCP 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Local Ssh MCP 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP