SSH MCP Server
@yawlabs/ssh-mcp
AIエージェントのためのSSH操作。 リモートコマンド実行、ファイル転送、そして何が問題でどう修正すべきかを正確に伝える組み込みSSH診断機能を備えたMCPサーバーです。
Yaw Labsによって構築・保守されています。
なぜこのツールなのか?
リモートサーバーにSSH接続するAIエージェントは、常に同じ問題に直面します。ssh-agentの停止、誤ったキーのロード、再作成されたインスタンスによる古いホストキー、有用なコンテキストのない権限拒否などです。ほとんどのSSH MCPサーバーは単に ssh2 をラップするだけで、エージェントに難解なエラーを解読させています。
このツールには ssh_diagnose が含まれています。これはSSH環境全体(エージェント、キー、設定、known_hosts、接続性)をチェックし、実行可能な修正コマンドを返す診断ツールです。接続前や失敗後に使用してください。
クイックスタート
npm install -g @yawlabs/ssh-mcpMCPクライアントの設定に追加します:
{
"mcpServers": {
"ssh": {
"command": "ssh-mcp"
}
}
}ツール
コア操作
ツール | 説明 |
| リモートホストでコマンドを実行します。標準出力、標準エラー出力、終了コードを返します。 |
| SFTP経由でリモートホストからファイルを読み取ります。 |
| SFTP経由でリモートホストのファイルにコンテンツを書き込みます。 |
| ローカルファイルをSFTP経由でリモートホストにアップロードします。 |
| リモートホストからローカルファイルシステムにファイルをダウンロードします。 |
| リモートホストのディレクトリ内のファイルを一覧表示します。 |
診断
ツール | 説明 |
| SSH接続の問題を診断します。エージェント、キー、known_hosts、SSH設定、およびライブ接続性をチェックします。実行可能な修正コマンドを返します。 |
認証
すべてのツールは接続パラメータを受け入れます:
パラメータ | 説明 | デフォルト |
| SSHホスト名またはIP(必須) | — |
| SSHポート |
|
| SSHユーザー名 | 現在のユーザー |
| SSH秘密鍵のパス | 自動検出 |
| SSHパスワード(キーの使用を推奨) | — |
認証解決順序: 明示的なキー > 明示的なパスワード > ssh-agent (SSH_AUTH_SOCK) > デフォルトのキーパス (~/.ssh/id_ed25519, id_rsa, id_ecdsa)。
診断
ssh_diagnose は5つのチェックを実行し、構造化されたレポートを返します:
SSHエージェント —
ssh-agentは実行中か?キーはロードされているか?SSHキー —
~/.ssh/に秘密鍵が存在するか?SSH設定 — このホストの設定エントリはあるか?(ワイルドカード対応)
Known Hosts — ホストキーはキャッシュされているか?
接続性 — 実際に接続できるか?
失敗した各チェックには、修正するための正確なコマンドが含まれています。出力例:
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
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