Local Commander について
Local Commanderは、AIクライアントから開発者のマシン上のプロジェクトを扱うためのローカルMCPサーバーです。選択したフォルダーに範囲を限定し、ファイル、Git、許可済みコマンド、プロセス、localhost用のツールを提供します。
主な機能
- 01範囲を限定したファイルの読み取り・検索・編集
- 02Gitの状態・差分・履歴の確認
- 03許可リストに基づく引数別コマンド実行
- 04長時間動作する開発プロセスの管理
- 05localhostリクエストとプロジェクトスナップショット
活用シーン
- 01選択したリポジトリでのテストとビルド
- 02最近のコミット確認と変更レビュー
- 03開発サーバーの起動とログ確認
- 04AIクライアントからのファイル検索・編集
MCP 対応
Claude Desktop、Claude Code、Cursor、CodexなどのクライアントにMCPツールを提供します。stdioまたはHTTPでローカル実行され、ファイル操作は設定したルート内に限定されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Local Commander
あなたの AI を、あなたのコンピューターで。
Claude、Cursor、Codex、または独自のエージェントが、お使いのマシン上のファイル、Git、開発ツールを扱えるようにします。
使うフォルダーは自分で選べます。アカウントもクラウドもテレメトリーも不要です。
使い始める · 活用例 · Local Commander を選ぶ理由 · よくある質問 · 技術リファレンス
問題点
AI はコードを書けても、プロジェクトを見ることはできません。ファイルをチャットにコピーし、テスト結果を貼り付け、すべてのコマンドを自分で実行しています。生のターミナルを渡せば解決しますが、今度はあらゆるものに触れられるようになります。
Local Commander はその中間に位置します。AI は、選択したフォルダー内で、許可したコマンドを使い、お使いのマシン上で実際の作業を行うための実用的なツールを利用できます。今開いているチャットで、そのまま作業を続けられます。
活用例
| コード | テストやビルドを実行 · 実際のリポジトリでバグを修正 · プッシュ前に差分を確認 |
| ローカルサービス | 開発サーバーを起動 · サービスが稼働しているか確認 · ログを読む |
| プロジェクトのコンテキスト | 一度の依頼でステータス、最近のコミット、スクリプトを取得 · コードベースを検索 · ファイルをその場で編集 |
こんなふうに頼んでみましょう:
「my-app でテストを実行して、失敗した内容を教えてください。」
「開発サーバーを起動して、ポート 3000 が応答するか確認してください。」
「昨日からリポジトリで変更された内容を見せてください。」
Local Commander を選ぶ理由
🔒 アクセス範囲は自分で選べます。 AI に見えるのは、選択したフォルダーだけです。.env や秘密鍵などの機密ファイルは、デフォルトでブロックされます。
🧰 生のシェルではなく、実用的なツールです。 コマンドは許可リスト(Git、Node、npm、Python など)から実行され、引数も個別に指定します。挿入可能な自由形式のシェル文字列はありません。
⚡ 衝突せずに並行作業できます。 独立したコマンドを並行して実行できます。開発サーバーなどの長時間実行プロセスは、AI が出力を確認している間も稼働し続けます。
🏠 お使いのマシン上で動作します。 サーバーはローカルで稼働し、起動した AI クライアントとのみ通信します。アカウントもテレメトリーも不要で、監査ログは有効にしない限りオフです。
🔌 すでに使っている AI で動作します。 Claude Desktop、Claude Code、Cursor、Codex、トンネル経由の ChatGPT、または MCP に対応するあらゆるクライアントで使えます。
使い始める
自分に合った方法を選んでください。どれも数分で完了します。
| 使用するもの | 操作 |
|---|---|
| Claude Desktop | 最新リリースから .mcpb ファイルをダウンロードして開きます。フォルダーを選択してください。Node.js は不要です。 |
| Claude Desktop または Cursor(Node.js 20+) | npx -y local-commander-mcp-agent setup --root /path/to/your/projects --client all を実行し、アプリを再起動します。 |
| Claude Code | claude mcp add local-commander -- npx -y local-commander-mcp-agent --stdio /path/to/your/projects |
| Docker | プロジェクトを ghcr.io/netbka/local-commander-mcp-agent にマウントします。Dockerを参照してください。 |
| その他の MCP クライアント | npx -y local-commander-mcp-agent --stdio /path/to/your/projects を実行します。npxを参照してください。 |
インストールする前に
AI がアクセスできる範囲はどこですか?
選択したフォルダーのみで、Local Commander のツールを通じてのみアクセスできます。ファイルの読み取りと編集、Git の確認、許可リストに登録したコマンド、開発プロセス、localhost へのリクエストが対象です。設定ファイルでコマンドのリストを変更できます。
サンドボックスですか?
いいえ。ファイルツールのアクセス範囲はフォルダー内に限られますが、node や python などの許可されたプログラムは、あなたのアカウントの権限で実行され、あなたが読み取れるものを読み取れます。厳密に分離するには、Docker イメージ、権限を制限した別のアカウント、または VM を使用してください。
データはどこかに送信されますか?
いいえ。サーバーはお使いのコンピューター上で動作し、起動した AI クライアントとのみ通信します。テレメトリーはありません。AI クライアントが自身のプロバイダーに送信する情報については、お客様とそのプロバイダーとの間で管理されます。
削除できますか?
はい。npx -y local-commander-mcp-agent setup --remove を実行すると、Claude Desktop と Cursor から削除され、以前の設定のバックアップも保持されます。Claude Desktop では、拡張機能を無効化または削除することもできます。
複数のコンピューターやチームで使う場合はどうなりますか?
このオープンソース版は、一度に 1 台のコンピューターで動作します。localcmd.app のホステッドサービスを使うと、ChatGPT、Claude、または独自のエージェントをすべての Windows PC に一度に接続し、複数のマシンでタスクを並行実行して、どのコンピューターで何が実行されたかを確認できます。これは別製品であり、この製品の利用に必要なものではありません。
技術リファレンス
ツール
| ツール | 目的 |
|---|---|
project_snapshot | 1 回の呼び出しでリポジトリのコンテキストを取得:ステータス、差分の統計、最近のコミット、パッケージスクリプト、管理対象のプロセス |
fs_read、fs_list、fs_search | 許可されたルート内で、範囲を制限した読み取り、一覧表示、テキスト検索 |
fs_write、fs_replace | ファイルの作成・置換、または指定箇所の正確な置換 |
git_status、git_diff、git_log | Git の簡潔な確認 |
command_run、parallel_command_run | 許可リストに登録された実行ファイルを、個別の引数で 1 つまたは複数実行 |
process_start、process_list、process_output、process_kill | 長時間実行される開発プロセス |
scheduler_status | アクティブ/キュー内の作業とリソースロック |
localhost_request | 許可リストに登録されたローカルホストへのみ、範囲を制限した HTTP リクエスト |
インストール方法
1 コマンドでセットアップ
要件:Node.js 20 以降。
npx -y local-commander-mcp-agent setup --root /path/to/your/projects --client all
これにより、Claude Desktop および/または Cursor の MCP 設定に local-commander エントリが追加され、以前のファイルはタイムスタンプ付きのバックアップとして保持されます。複数のフォルダーを指定するには --root を繰り返し、クライアントを 1 つにするには --client claude-desktop または --client cursor を、プレビューするには --dry-run を使用します。エントリを再度削除するには setup --remove を実行してください。その後、クライアントを再起動します。
npx
要件:Node.js 20 以降。サーバーがアクセスできるフォルダーは、--stdio の後に指定します。
{
"mcpServers": {
"local-commander": {
"command": "npx",
"args": ["-y", "local-commander-mcp-agent", "--stdio", "/path/to/your/projects"]
}
}
}
Windows では、一部のクライアントで "command": "cmd" と "args": ["/c", "npx", "-y", ...] が必要です。setup を使えば、この形式が自動的に設定されます。
フォルダーの引数の代わりに、引き続き LCMCP_ROOTS を使用できます。stdio モードでは、LCMCP_OAUTH_STATE_PATH を設定しない限り、ローカル状態は ~/.local-commander-mcp-agent に保存されます。
Windows で複数のルートを指定する場合は ; で区切り、C:\\Users\\you\\source\\repos のようなパスを使用してください。このパッケージには小型の Windows ファイル読み取りヘルパーが含まれているため、インストール時にコンパイルは行われません。
Docker
コンテナーがサンドボックスです。サーバーから見えるのは、/workspace の下にマウントしたフォルダーだけです。イメージは ghcr.io/netbka/local-commander-mcp-agent として公開されています(タグは latest と各バージョンです)。自分でビルドするには、docker build -t local-commander-mcp-agent . を実行します。
MCP クライアント(Claude Desktop、Cursor、Claude Code、Codex など)の設定:
{
"mcpServers": {
"local-commander": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/path/to/your/projects:/workspace/projects",
"ghcr.io/netbka/local-commander-mcp-agent"
]
}
}
}
Windows では、C:\\Users\\you\\source\\repos:/workspace/repos のようなパスを使用してください。イメージには Node.js 22、Git、Python 3 が含まれています。ツールを追加するには、イメージを拡張してください。
stdio ではなく HTTP を使用する場合:
docker run --rm -p 127.0.0.1:17321:17321 \
-e LCMCP_TOKEN=generate-a-long-random-token \
-v /path/to/your/projects:/workspace/projects \
ghcr.io/netbka/local-commander-mcp-agent --http
イメージのデフォルトは --stdio です。イメージ名の後にほかの引数(ここでは --http)を指定すると、デフォルトの引数が置き換えられ、HTTP サーバーが起動します。エンドポイントは Authorization: Bearer <token> を使用する http://127.0.0.1:17321/mcp です。ポートは 127.0.0.1 のみに公開してください。
Node.js
要件:Node.js 20 以降。
npm install
npm run build
{
"mcpServers": {
"local-commander": {
"command": "node",
"args": ["/path/to/local-commander-mcp-agent/dist/index.js", "--stdio", "/path/to/your/projects"]
}
}
}
stdio モードでは、標準出力には MCP メッセージのみが出力され、ログは標準エラー出力に送られます。プロセスを起動したクライアントのみが接続できるため、HTTP 認証設定は適用されません。
Windows では、ビルド時に Windows に付属する .NET Framework コンパイラーを使用して、小さなファイル読み取りヘルパー(release/personal/OwnerBridge.exe)もコンパイルされます。そのほかのプラットフォームでは Node リーダーが使用されます。
HTTP と ChatGPT
cp local-commander.config.example.json local-commander.config.json # set "roots"
LCMCP_AUTH_MODE=oauth LCMCP_PUBLIC_BASE_URL=https://your-tunnel.example.com npm start
クライアントが認可を開始すると、ワンタイム承認コードがローカルターミナルに出力されます。ローカルクライアントでは、Bearer モード(LCMCP_AUTH_MODE=bearer、LCMCP_TOKEN=...)を利用できます。
セキュリティモデル
- ファイルの直接操作は設定済みのルート内に制限されます。既存のパスは
realpathで解決されるため、シンボリックリンクによってルートの外にアクセスすることはできません。 - 一般的なシークレットファイル(
.env、秘密鍵、認証情報ファイル)は、デフォルトでブロックされます。 command_runが受け取るのは実行ファイルと引数の配列であり、シェル文字列ではありません。実行ファイルは許可リストに登録されている必要があり、絶対パスのPATHディレクトリからのみ解決されます。- コマンドの実行時間と出力には上限が設定されています。HTTP はローカルホストに制限され、リダイレクトは追跡されません。
- Docker の外部では、子プロセスは OS サンドボックスで隔離されません。許可されたインタープリターは、そのアカウントが読み取り可能なすべてのものを読み取れます。確実に隔離するには、Docker イメージ、権限を制限した別のアカウント、または VM を使用してください。
設定
| 変数 | 意味 |
|---|---|
LCMCP_TRANSPORT | stdio 経由で提供する場合は stdio(--stdio と同じ) |
LCMCP_ROOTS | OS のパス区切り文字で区切った許可ルート(Windows では ;、その他では :) |
LCMCP_CONFIG | 設定ファイルのパス(デフォルトは作業ディレクトリ内の local-commander.config.json) |
LCMCP_HOST、LCMCP_PORT、LCMCP_MCP_PATH | HTTP のバインド先とパス |
LCMCP_AUTH_MODE | HTTP のみ:oauth、bearer、none |
LCMCP_TOKEN | Bearer モードのトークン |
LCMCP_PUBLIC_BASE_URL | OAuth の発行者/リソースとして使用する公開 HTTPS オリジン |
LCMCP_OAUTH_STATE_PATH | OAuth とローカルの状態ファイルのパス |
LCMCP_AUDIT_MODE | off(デフォルト)、minimal、diagnostic、full(full には LCMCP_AUDIT_RECOVERY_KEY が必要) |
設定ファイルでは、コマンドの許可リスト(shell.allowedCommands)、サイズ制限、ローカルホストも設定できます。local-commander.config.example.json を参照してください。
開発
npm run typecheck
npm test
npm run build
MIT ライセンス · 問題を報告 · 複数のコンピューターを利用できるホステッドサービス:localcmd.app
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。