Skip to main content
Glama
YawLabs

SSH MCP Server

by YawLabs

@yawlabs/ssh-mcp

npm version License: MIT

AIエージェントのためのSSH操作。 リモートコマンド実行、ファイル転送、そして何が問題でどう修正すべきかを正確に伝える組み込みSSH診断機能を備えたMCPサーバーです。

Yaw Labsによって構築・保守されています。

なぜこのツールなのか?

リモートサーバーにSSH接続するAIエージェントは、常に同じ問題に直面します。ssh-agentの停止、誤ったキーのロード、再作成されたインスタンスによる古いホストキー、有用なコンテキストのない権限拒否などです。ほとんどのSSH MCPサーバーは単に ssh2 をラップするだけで、エージェントに難解なエラーを解読させています。

このツールには ssh_diagnose が含まれています。これはSSH環境全体(エージェント、キー、設定、known_hosts、接続性)をチェックし、実行可能な修正コマンドを返す診断ツールです。接続前や失敗後に使用してください。

クイックスタート

npm install -g @yawlabs/ssh-mcp

MCPクライアントの設定に追加します:

{
  "mcpServers": {
    "ssh": {
      "command": "ssh-mcp"
    }
  }
}

ツール

コア操作

ツール

説明

ssh_exec

リモートホストでコマンドを実行します。標準出力、標準エラー出力、終了コードを返します。

ssh_read_file

SFTP経由でリモートホストからファイルを読み取ります。

ssh_write_file

SFTP経由でリモートホストのファイルにコンテンツを書き込みます。

ssh_upload

ローカルファイルをSFTP経由でリモートホストにアップロードします。

ssh_download

リモートホストからローカルファイルシステムにファイルをダウンロードします。

ssh_ls

リモートホストのディレクトリ内のファイルを一覧表示します。

診断

ツール

説明

ssh_diagnose

SSH接続の問題を診断します。エージェント、キー、known_hosts、SSH設定、およびライブ接続性をチェックします。実行可能な修正コマンドを返します。

認証

すべてのツールは接続パラメータを受け入れます:

パラメータ

説明

デフォルト

host

SSHホスト名またはIP(必須)

port

SSHポート

22

username

SSHユーザー名

現在のユーザー

privateKeyPath

SSH秘密鍵のパス

自動検出

password

SSHパスワード(キーの使用を推奨)

認証解決順序: 明示的なキー > 明示的なパスワード > ssh-agent (SSH_AUTH_SOCK) > デフォルトのキーパス (~/.ssh/id_ed25519, id_rsa, id_ecdsa)。

診断

ssh_diagnose は5つのチェックを実行し、構造化されたレポートを返します:

  1. SSHエージェントssh-agent は実行中か?キーはロードされているか?

  2. SSHキー~/.ssh/ に秘密鍵が存在するか?

  3. SSH設定 — このホストの設定エントリはあるか?(ワイルドカード対応)

  4. Known Hosts — ホストキーはキャッシュされているか?

  5. 接続性 — 実際に接続できるか?

失敗した各チェックには、修正するための正確なコマンドが含まれています。出力例:

SSH Diagnostic Report for dev-server:22
Overall: ERROR

[PASS] SSH Agent
  ssh-agent running with keys:
  256 SHA256:abc... user@host (ED25519)

[PASS] SSH Keys
  Found SSH keys: id_ed25519, gh_woods

[PASS] SSH Config
  SSH config for "dev-server":
  Host dev-server
    HostName 10.0.1.50
    User ec2-user

[FAIL] Known Hosts
  Host "dev-server" is not in known_hosts.

[FAIL] Connectivity
  Host key verification failed for dev-server. The host key changed (instance recreated?).

Suggested fixes:
  - Remove stale host key: ssh-keygen -R "dev-server"
  - Re-add host key: ssh-keyscan -H "dev-server" >> ~/.ssh/known_hosts

プログラムによる使用

import { connect, exec, diagnose } from '@yawlabs/ssh-mcp';

// Run a command
const client = await connect({ host: 'my-server', username: 'deploy' });
const result = await exec(client, 'uptime');
console.log(result.stdout);
client.end();

// Diagnose connectivity issues
const report = diagnose('my-server');
console.log(report.overall); // "ok" | "warning" | "error"
for (const check of report.checks) {
  console.log(`[${check.status}] ${check.name}: ${check.message}`);
}

要件

  • Node.js 18以上

  • SSHクライアントがインストールされていること(診断用)

ライセンス

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/YawLabs/ssh-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server