Skip to main content
Glama
kaznak

Shell Command MCP Server

by kaznak

シェルコマンド MCP サーバー

これは、Dockerコンテナ内でシェルコマンドを実行できるMCP(Model Context Protocol)サーバーです。ホストのDockerデーモンにアクセスさせることなく、コマンドを実行するための安全で隔離されたワークスペースを提供します。

特徴

  • シンプルなMCPインターフェースを介してシェルスクリプトを実行する

    • 同期実行

    • 4つの異なるモードによる非同期実行

      • 完了: コマンドが完了したら通知する

      • 行: 出力の各行を通知する

      • chunk: 出力の各チャンクごとに通知する

      • 文字: 出力の各文字を通知する

  • 含まれる Kubernetes ツール: kubectl、helm、kustomize、hemfile

  • 非ルートユーザーによる分離された Docker コンテナ環境

    • ホストとコンテナ間のユーザー ID/グループ ID のマッピングが実装されました。これにより、コンテナをホストと同じユーザーとして実行できるようになり、コンテナによって作成されたファイルに、ホストによって作成されたファイルと同じ所有権と権限が与えられるようになります。

    • 永続性のために、ホスト ディレクトリをコンテナの /home/mcp ディレクトリにマウントします。これが AI が動作するホーム ディレクトリになります。

    • ホスト ディレクトリが空の場合、初期ファイルはコンテナー内のバックアップからコピーされます。

Related MCP server: Docker MCP Server

デザイン哲学

このMCPサーバーは、AIに人間と同様の作業空間を提供します。認証はMCPの機能ではなく、コンテナの分離と外部認証の制限によって制限されます。

シェルスクリプト実行などのより一般的なツールも提供しており、ツールの使用に関する専門知識がなくても使用できます。

コード監査を容易にするために、サーバーの実装は可能な限りシンプルに保たれています。

はじめる

前提条件

  • ドッカー

Claude for Desktop での使用

Claude for Desktop 構成ファイルに次の構成を追加します。

MacOSの場合:

"shell-command": { "command": "docker", "args": [ "run", "--rm", "-i", "--mount", "type=bind,src=/Users/user-name/MCPHome,dst=/home/mcp", "ghcr.io/kaznak/shell-command-mcp:latest" ] }

/Users/user-name/ClaudeWorksコンテナで使用できるようにするディレクトリに置き換えます。

ウィンドウズ:

"shell-command": { "command": "docker", "args": [ "run", "--rm", "-i", "--mount", "type=bind,src=\\\\wsl.localhost\\Ubuntu\\home\\user-name\\MCPHome,dst=/home/mcp", "ghcr.io/kaznak/shell-command-mcp:latest" ] }

いくつかのプロンプトを入力する

マウントされたディレクトリ内のファイルを操作します。

利用可能なMCPツール

セキュリティに関する考慮事項

  • MCPサーバーはコンテナ内で非ルートユーザーとして実行される

  • コンテナはホストDockerデーモンにアクセスできません

  • ユーザーワークスペースは永続性のためにホストからマウントされます

ライセンス

マサチューセッツ工科大学

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/kaznak/shell-command-mcp'

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