Remote Command MCP Server について
Remote Command MCP Serverは、MCPクライアントからWindowsおよびUnix系ホストでシェルコマンドを実行できます。OS間の差異を処理し、作業ディレクトリの指定、出力のストリーミング、エラー詳細の取得に対応します。
主な機能
- 01クロスプラットフォームでのシェルコマンド実行
- 02WindowsとUnixのコマンド差異を調整
- 03コマンドの作業ディレクトリを指定
- 04出力のストリーミングとエラー報告
- 05OSに応じたシェルの選択
活用シーン
- 01システムや開発用コマンドの実行
- 02ファイル管理とリポジトリの確認
- 03プロセス、ネットワーク接続、サービスの確認
MCP 対応
MCPサーバーはexecute_remote_commandツールを提供し、コマンドと任意の作業ディレクトリを受け取ります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
リモートコマンド MCP サーバー
異なるオペレーティングシステム間でリモートコマンドの実行を可能にする Model Context Protocol(MCP)サーバーです。このサーバーは、Windows と Unix 系システムのプラットフォーム固有の違いを自動的に処理し、シェルコマンドを実行するための統一されたインターフェースを提供します。
機能
- クロスプラットフォームでのコマンド実行
- Windows と Unix 間のコマンドの自動正規化
- 組み込みのエラー処理と出力ストリーミング
- 作業ディレクトリの指定に対応
- プラットフォーム固有のシェル選択
インストール
- リポジトリをクローンします:
git clone https://github.com/deepsuthar496/Remote-Command-MCP
cd remote-command-server
- 依存関係をインストールします:
npm install
- サーバーをビルドします:
npm run build
- 設定ファイルで MCP サーバーを設定します:
Claude Desktop の場合(claude_desktop_config.json):
{
"mcpServers": {
"remote-command": {
"command": "node",
"args": ["path/to/remote-command-server/build/index.js"],
"disabled": false,
"autoApprove": []
}
}
}
VSCode Cline Extension の場合(cline_mcp_settings.json):
{
"mcpServers": {
"remote-command": {
"command": "node",
"args": ["path/to/remote-command-server/build/index.js"],
"disabled": false,
"autoApprove": []
}
}
}
使い方
このサーバーは、ホストマシン上で有効なシェルコマンドを何でも実行できる、execute_remote_command という単一のツールを提供します。次のものが含まれます。
- システムコマンド
- パッケージマネージャーのコマンド(apt、yum、chocolatey など)
- 開発ツール(git、npm、python など)
- ファイル操作
- ネットワークコマンド
- サービス管理
- その他、システムで利用できるあらゆる CLI コマンド
ツール:execute_remote_command
パラメーター:
command(必須):ホスト OS 上で実行できる有効なシェルコマンドcwd(任意):コマンドを実行する作業ディレクトリ
例
- システム情報:
<use_mcp_tool>
<server_name>remote-command</server_name>
<tool_name>execute_remote_command</tool_name>
<arguments>
{
"command": "systeminfo" // Windows
// or "uname -a" // Linux
}
</arguments>
</use_mcp_tool>
- パッケージ管理:
<use_mcp_tool>
<server_name>remote-command</server_name>
<tool_name>execute_remote_command</tool_name>
<arguments>
{
"command": "npm list -g --depth=0" // List global NPM packages
}
</arguments>
</use_mcp_tool>
- ネットワーク操作:
<use_mcp_tool>
<server_name>remote-command</server_name>
<tool_name>execute_remote_command</tool_name>
<arguments>
{
"command": "netstat -an" // Show all network connections
}
</arguments>
</use_mcp_tool>
- Git 操作:
<use_mcp_tool>
<server_name>remote-command</server_name>
<tool_name>execute_remote_command</tool_name>
<arguments>
{
"command": "git status",
"cwd": "/path/to/repo"
}
</arguments>
</use_mcp_tool>
- ファイル操作:
<use_mcp_tool>
<server_name>remote-command</server_name>
<tool_name>execute_remote_command</tool_name>
<arguments>
{
"command": "ls -la", // List files with details
"cwd": "/path/to/directory"
}
</arguments>
</use_mcp_tool>
- プロセス管理:
<use_mcp_tool>
<server_name>remote-command</server_name>
<tool_name>execute_remote_command</tool_name>
<arguments>
{
"command": "ps aux" // List all running processes (Unix)
// or "tasklist" // Windows equivalent
}
</arguments>
</use_mcp_tool>
- サービス制御:
<use_mcp_tool>
<server_name>remote-command</server_name>
<tool_name>execute_remote_command</tool_name>
<arguments>
{
"command": "systemctl status nginx" // Check service status (Linux)
// or "sc query nginx" // Windows equivalent
}
</arguments>
</use_mcp_tool>
セキュリティに関する考慮事項
このサーバーではあらゆるシステムコマンドを実行できるため、次のセキュリティ対策を検討してください。
- アクセス制御:MCP サーバーへのアクセスを信頼できるユーザーのみに制限します
- コマンドの検証:アプリケーションのロジックで、実行前にコマンドを検証します
- 作業ディレクトリ:
cwdパラメーターを使い、コマンドの実行対象を特定のディレクトリに制限します - 環境:システム設定や機密ファイルを変更するコマンドには注意してください
- 権限:適切なユーザー権限で MCP サーバーを実行します
クロスプラットフォームのコマンド処理
サーバーはプラットフォーム固有の違いを自動的に処理します。
-
コマンドの変換:
ls⟷dir(プラットフォームに応じて自動的に変換)- 各プラットフォームに適したパイプ演算子の形式
-
シェルの選択:
- Windows:
cmd.exeを使用 - Unix/Linux:
/bin/shを使用
- Windows:
エラー処理
サーバーは詳細なエラーメッセージを提供し、応答に stdout と stderr の両方を含めます。コマンドが失敗すると、何が問題だったかを示す詳細なエラーメッセージが返されます。
エラー応答の例:
{
"content": [
{
"type": "text",
"text": "Command execution error: Command failed with exit code 1"
}
],
"isError": true
}
開発
プロジェクト構成
remote-command-server/
├── src/
│ └── index.ts # Main server implementation
├── package.json
├── tsconfig.json
└── README.md
ビルド
npm run build
これにより TypeScript コードがコンパイルされ、build ディレクトリに実行可能ファイルが作成されます。
コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - Pull Request を作成します
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。