Terminal MCP Server について
Terminal MCP Serverは、ターミナルコマンドの実行とコマンド集を提供し、安全でない実行例を通じてMCPのセキュリティリスクも示します。
主な機能
- 01ターミナルコマンドの実行と出力返却
- 02エラーと終了コードの報告
- 03ターミナルコマンド集の提供
- 04安全でないコマンド実行の例示
活用シーン
- 01MCPクライアント経由でのコマンド実行
- 02よく使うコマンドと使用例の確認
- 03MCP実装におけるコマンドインジェクションの調査
MCP 対応
`run_command`と`magical_tool`のツール、および`terminal_commands_cheat_sheet`リソースを公開するMCPサーバーです。Claude Desktopに設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Terminal MCP サーバー
ターミナルコマンドを実行し、ターミナルコマンドのチートシートを提供するシンプルな MCP サーバーです。また、MCP サーバーの実装における潜在的なセキュリティ脆弱性についても説明します。
機能
-
ターミナルコマンドの実行
- 任意のターミナルコマンドを実行します
- 標準出力、標準エラー出力、戻りコードを取得します
- エラー処理
-
セキュリティ脆弱性のデモ
magical_toolは安全でないコマンド実行を実演します- 悪意のあるコードが実行される可能性を示します
- 安全な実装の重要性を強調します
-
ターミナルコマンドのチートシート
- 重要なターミナルコマンド 30 個
- 一般的なオプションとフラグ
- 使用例
インストール
- 仮想環境を作成します:
uv venv
- 仮想環境を有効にします:
source .venv/bin/activate
- 依存関係をインストールします:
uv pip install -e .
Claude への追加
- Claude のデスクトップ設定ファイルを確認します:
~/Library/Application Support/Claude/claude_desktop_config.json
- ターミナルサーバーの設定を追加します:
{
"mcpServers": {
"terminal": {
"command": "/path/to/terminal-mcp-server/.venv/bin/python",
"args": [
"/path/to/terminal-mcp-server/src/server.py"
]
}
}
}
/path/to/terminal-mcp-server を、このリポジトリをクローンした実際のパスに置き換えてください。
- Claude を再起動して、新しい設定を読み込みます。
MCP Inspector によるテスト
MCP サーバーは、MCP サーバーと対話するための Web インターフェースを提供する MCP Inspector ツールを使ってテストできます。
- MCP Inspector をインストールします:
npm install -g @modelcontextprotocol/inspector
- 別のターミナルでインスペクターを実行します:
npx @modelcontextprotocol/inspector
これにより、ローカルで Web アプリケーションが起動し、次の操作ができます:
- MCP サーバーに接続する
- 使用可能なすべてのツールをテストする
- ツールの応答を確認する
- リソースを調べる
- 通信をデバッグする
使用方法
サーバーが提供する機能:
run_commandツール:
# Safe command execution
result = await run_command("ls -la")
print(result["stdout"]) # Command output
print(result["stderr"]) # Any errors
print(result["return_code"]) # Exit code
magical_tool:
# WARNING: Demonstrates unsafe command execution
# Shows how external commands can be executed without proper validation
result = await magical_tool()
print(result["stdout"]) # Executed command output
print(result["stderr"]) # Any errors
print(result["return_code"]) # Command exit code
terminal_commands_cheat_sheetリソース:
# Access terminal commands cheat sheet
commands = await terminal_commands_cheat_sheet()
print(commands) # List of commands with examples
セキュリティ上の影響
magical_tool は、ユーザー入力やファイルパスを適切に検証せずにコマンド実行で直接使用する、一般的なセキュリティ脆弱性を実演します。これにより、次のことが可能になるおそれがあります:
- コマンドインジェクション
- 任意のファイルへのアクセス
- システムの操作
これは、本番システムでしてはならないことを示す教育目的の例として、意図的に含められています。
開発
- リポジトリをクローンします
- 上記の手順に従って仮想環境を作成し、有効にします
- 依存関係をインストールします
- サーバーを実行します:
uv run src/server.py
エラー処理
- すべてのツールはエラーを適切に処理します
- コマンドの失敗時には、標準エラー出力にエラーメッセージが返されます
- リソースへのアクセスに失敗すると、エラーメッセージが返されます
- 0 以外の戻りコードは、コマンドの失敗を示します
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。