Filesystem MCP Server SSE について
Filesystem MCP Server SSEは、指定ディレクトリ内のファイルを読み取り、管理するNode.js製MCPサーバーです。SSE経由で操作を公開し、起動時に設定したディレクトリ内にアクセスを制限します。
主な機能
- 01ファイルの読み書き
- 02ディレクトリの作成・一覧・削除
- 03ファイルとディレクトリの移動
- 04パス検索とメタデータ確認
- 05差分付き編集プレビュー
活用シーン
- 01MCPクライアントからプロジェクトファイルを読み書き
- 02許可されたディレクトリ内のファイル検索
- 03適用前にファイル編集内容を確認
MCP 対応
SSE経由で、ファイルの読み書きや編集、ディレクトリ管理、検索、メタデータ取得を行うリソースとツールをMCPクライアントに公開します。操作対象は起動時に設定したディレクトリに限られます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ファイルシステム MCP サーバー SSE
ファイルシステム操作のための Model Context Protocol(MCP)を実装する Node.js サーバー(SSE)です。
機能
- ファイルの読み取り/書き込み
- ディレクトリの作成/一覧表示/削除
- ファイル/ディレクトリの移動
- ファイルの検索
- ファイルのメタデータの取得
注:サーバーは、args で指定されたディレクトリ内でのみ操作を許可します。
API
リソース
file://system:ファイルシステム操作インターフェース
ツール
-
read_file
- ファイルの内容全体を読み取ります
- 入力:
path(string) - UTF-8 エンコーディングでファイルの内容全体を読み取ります
-
read_multiple_files
- 複数のファイルを同時に読み取ります
- 入力:
paths(string[]) - 読み取りに失敗しても、操作全体は停止しません
-
write_file
- 新しいファイルを作成するか、既存のファイルを上書きします(慎重に使用してください)
- 入力:
path(string):ファイルの場所content(string):ファイルの内容
-
edit_file
- 高度なパターンマッチングと書式設定を使用して、選択的に編集します
- 機能:
- 行単位および複数行のコンテンツマッチング
- インデントを維持した空白の正規化
- 正しい位置での複数編集の同時実行
- インデントスタイルの検出と維持
- コンテキスト付きの Git 形式の差分出力
- ドライランモードで変更をプレビュー
- 入力:
path(string):編集するファイルedits(array):編集操作のリストoldText(string):検索するテキスト(部分文字列も指定できます)newText(string):置換後のテキスト
dryRun(boolean):変更を適用せずにプレビューします(デフォルト:false)
- ドライランの場合は詳細な差分と一致情報を返し、それ以外の場合は変更を適用します
- ベストプラクティス:変更を適用する前に、必ず最初に dryRun を使用してプレビューしてください
-
create_directory
- 新しいディレクトリを作成するか、ディレクトリが存在することを確認します
- 入力:
path(string) - 必要に応じて親ディレクトリを作成します
- ディレクトリがすでに存在する場合は、通知なしで成功します
-
list_directory
[FILE]または[DIR]の接頭辞を付けてディレクトリの内容を一覧表示します- 入力:
path(string)
-
move_file
- ファイルやディレクトリを移動または名前変更します
- 入力:
source(string)destination(string)
- 移動先がすでに存在する場合は失敗します
-
search_files
- ファイル/ディレクトリを再帰的に検索します
- 入力:
path(string):開始ディレクトリpattern(string):検索パターンexcludePatterns(string[]):除外するパターン。Glob 形式に対応しています。
- 大文字と小文字を区別せずに照合します
- 一致した項目の絶対パスを返します
-
get_file_info
- ファイル/ディレクトリの詳細なメタデータを取得します
- 入力:
path(string) - 以下を返します:
- サイズ
- 作成日時
- 更新日時
- アクセス日時
- 種類(ファイル/ディレクトリ)
- 権限
-
list_allowed_directories
- サーバーがアクセスを許可されているディレクトリをすべて一覧表示します
- 入力は不要です
- 以下を返します:
- このサーバーが読み取り/書き込みできるディレクトリ
Cherry Stdio Desktop での使用方法
注:サンドボックス化されたディレクトリを /projects にマウントして、サーバーに渡すことができます。ro フラグを追加すると、サーバーからそのディレクトリへの書き込みが禁止されます。
Docker
注:デフォルトでは、すべてのディレクトリを /projects にマウントする必要があります。
1. Docker ビルド:
docker build -t mcp/filesystem -f Dockerfile .
2. Docker の実行:
docker run -i --mount type=bind,src=type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro -p 3001:3001 mcp/filesystem /projects
3. 設定:
{
"mcpServers": {
"file_system": {
"name": "file_system",
"baseUrl": "http://ip:3001/sse"
}
}
}
ローカル
1. ビルド:
npm install
2. 実行:
node .\dist\index.js C:\Users\User\Desktop\project
許可されたディレクトリ:C:\Users\User\Desktop\project
3. 設定:
{
"mcpServers": {
"file_system": {
"name": "file_system",
"baseUrl": "http://127.0.0.1:3001/sse"
}
}
}
ライセンス
この MCP サーバーは MIT ライセンスの下でライセンスされています。MIT ライセンスの利用規約に従うことを条件に、このソフトウェアを自由に使用、変更、配布できます。詳細については、プロジェクトリポジトリ内の LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
