Filesystem MCP Server (@shtse8/filesystem-mcp) について
Filesystem MCP Serverは、プロジェクトのファイルを扱うエージェント向けのアーカイブ済みMCPサービスです。バッチ操作に対応し、パスを起動時の作業ディレクトリ内に制限します。
主な機能
- 01ファイルの一括読み書き
- 02差分適用と内容置換
- 03正規表現によるファイル検索
- 04ファイルとディレクトリの管理
- 05作業ディレクトリ内への操作制限
活用シーン
- 01複数のプロジェクトファイルの確認
- 02複数ファイルにまたがる変更
- 03プロジェクト内のコンテンツ検索
MCP 対応
ファイルの読み書き、検索、管理ツールをMCPクライアントに公開し、パスをサーバー起動時のディレクトリ内に制限します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Filesystem MCP — アーカイブ済み
アーカイブ済み/主要製品ではありません
この製品は、Sylphx のアクティブなエージェント向けインストゥルメントではありません。
独立した製品である Citra、Iris、Cue、Prism、Spine、Lookout をご利用ください。
履歴資料は参照用としてのみ残されています。以下の npm/Docker バッジやインストール用 CTA を、現在のインストール情報として扱わないでください。
過去の README(アーカイブ済み製品)
Filesystem MCP
エージェントがリポジトリに手を加えました。プロジェクト内にとどまっていますか?
AI エージェント向けの、安全でトークン効率に優れたファイルシステム操作 — バッチ読み取り、ピンポイントな編集、シェルの起動オーバーヘッドなしでプロジェクトルート内に制限できます。
バッチ操作 · プロジェクトルートの安全性 · Zod による検証 · 13 個の MCP ツール · Docker 対応
エージェントがファイルごとにシェルを起動するのではなく、安全にコードベースを読み書きできるようにしたい場合は、⭐ このリポジトリにスターを付けてください。 · クイックスタート · 動作を見る · シェルコマンドではだめな理由 · ロードマップ
問題点
エージェントがコードを読み取り、編集を適用し、リポジトリ全体を検索するには、ファイルシステムへのアクセスが必要です。標準的な方法はシェルコマンドですが、操作ごとにプロセスを起動し、バッチ処理はできず、標準エラーの解析が必要で、パスがプロジェクトの外に出てしまう可能性があります。
その結果、トークンを消費し、遅延が増え、ファイルに触れるたびに信頼性の確認が必要になります。
Filesystem MCP は、エージェントがプロジェクトルート内に限定された、高速で制約のあるバッチ対応のファイル操作を必要とする場面のために作られています。
シェルコマンドではだめな理由
| ファイルごとのシェルコマンド | Filesystem MCP |
|---|---|
| 起動ごとに 1 回の操作 | 1 回の MCP 呼び出しで 10 個以上のファイルをバッチ処理 |
| シェルへの完全なアクセス | 起動時のサーバー cwd 内に制限 |
| 標準エラーの解析 | 構造化 JSON で項目ごとの成功/失敗を返す |
| トークンの往復が多い | ホスト↔サーバー間の呼び出しを削減 |
| パストラバーサルのリスク | 相対パスのみ使用し、トラバーサルをブロック |
| スキーマなし | すべてのツールの引数を Zod で検証 |
ベンチマークの仕様全体はこちら:docs/benchmark.md。
動作を見る
一度設定すれば、1 回の呼び出しで多数のファイルを読み取れます。
claude mcp add filesystem -- npx @sylphx/filesystem-mcp
{
"paths": ["src/index.ts", "package.json", "README.md"]
}
read_content は、1 つの応答でファイルごとの結果を返します。
{
"results": [
{ "path": "src/index.ts", "content": "...", "success": true },
{ "path": "package.json", "content": "...", "success": true },
{ "path": "README.md", "content": "...", "success": true }
]
}
重要: MCP サーバーは、cwd をプロジェクトルートに設定して起動してください。すべてのパスはそのディレクトリを基準とした相対パスです。
エージェントが利用する理由
| ニーズ | 利用できる機能 |
|---|---|
| 複数のファイルを読む | read_content — パスをまとめて指定し、必要に応じて行範囲も指定できます |
| 書き込みまたは追記 | write_content — 1 回の呼び出しで複数のファイルを処理できます |
| ピンポイントで編集 | apply_diff、replace_content — 差分出力とファイルごとのステータス |
| ツリーを検索 | search_files — コンテキスト付きの正規表現検索 |
| 複数ファイルをリファクタリング | replace_content — 複数ファイルを対象とした検索と置換 |
| 構造を確認 | list_files — 必要に応じて統計情報を含めた再帰的な一覧表示 |
| 移動/コピー/削除 | move_items、copy_items、delete_items |
| 権限 | chmod_items、chown_items |
| メタデータを確認 | stat_items、create_directories |
クイックスタート
Claude Code
claude mcp add filesystem -- npx @sylphx/filesystem-mcp
cwd がリポジトリのルートになるよう、プロジェクトディレクトリから実行してください。
Claude Desktop/任意の MCP ホスト
{
"mcpServers": {
"filesystem-mcp": {
"command": "npx",
"args": ["@sylphx/filesystem-mcp"]
}
}
}
ホストの作業ディレクトリをプロジェクトのルートに設定してください。
Docker
{
"mcpServers": {
"filesystem-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/path/to/your/project:/app",
"sylphx/filesystem-mcp:latest"
]
}
}
}
ローカル開発
git clone https://github.com/SylphxAI/filesystem-mcp.git
cd filesystem-mcp
bun install
bun run build
bun run test
MCP ツール一覧
| ツール | エージェントが次の操作を必要とするときに使用します… |
|---|---|
read_content | 1 つ以上のファイルを読む(必要に応じて行範囲を指定) |
write_content | ファイルに書き込む、または追記する |
apply_diff | 複数のファイルに構造化された差分を適用する |
search_files | コンテキスト行付きで正規表現検索する |
replace_content | 複数ファイルを検索して置換する |
list_files | ディレクトリツリーを一覧表示する(必要に応じて統計情報を表示) |
stat_items | ファイル/ディレクトリの詳細なメタデータを取得する |
create_directories | ディレクトリを作成する(親ディレクトリも作成) |
delete_items | ファイルまたはディレクトリを削除する |
move_items | 項目を移動または名前変更する |
copy_items | ファイルまたはディレクトリをコピーする |
chmod_items | POSIX 権限を変更する |
chown_items | 所有者を変更する |
リリースの検証
リリースに関する主張は、CI の benchmark:release-gate、安全性フィクスチャコーパス、および出荷対象パスのマトリックス(主要ツールは Rust がデフォルト)によって裏付けられています。
bun run benchmark:release-gate
成果物:benchmark-artifacts/filesystem_release_gate.json — リリース前に status: passed と表示されている必要があります。
パフォーマンスベンチマーク
出荷される Rust CLI パスでローカルのスループットを再現します。
bunx vitest bench __tests__/benchmarks/throughput.bench.ts --run
シナリオ、設計目標、結果の解釈方法については、docs/benchmark.md を参照してください。
セキュリティモデル
- すべての操作は、サーバーの起動時の
cwd内に制限されます。 - 絶対パスは拒否され、パストラバーサルはブロックされます。
- Zod スキーマですべてのツール引数を検証します。
- バッチツールは項目ごとのステータスを返すため、1 件の失敗でほかの結果が隠れることはありません。
ドキュメント
| トピック | リンク |
|---|---|
| ドキュメントサイト | sylphxai.github.io/filesystem-mcp |
| はじめに | docs/guide/introduction.md |
| ベンチマーク | docs/benchmark.md |
開発
bun run validate # lint + typecheck + test
bun run docs:build # VitePress + API docs
bun run benchmark # vitest bench
サポート
より多くの開発者にこのプロジェクトを届ける
エージェントのファイルごとのシェル操作でトークンを消費したり、パスの安全性への信頼を損なったりしたことがあるなら、このプロジェクトはあなたのためのものです。
⭐ リポジトリにスターを付ける — より多くのエージェント開発者が、安全でバッチ処理に適したファイルシステムアクセスを見つける助けになります。
ディレクトリへの掲載(進行中)
| チャネル | ステータス |
|---|---|
| Glama MCP directory | 掲載済み — サーバーを登録すると、すべてのユーザーが見つけられるようになります |
| Official MCP Registry | まだ掲載されていません |
| mcp.so submit | まだ掲載されていません — ディレクトリへの登録申請 |
| mcpservers.org submit | まだ掲載されていません — 無料のウェブフォームから登録申請 |
ほかの MCP ディレクトリをご存じですか?リンクを添えてIssue を作成してください。
ライセンス
MIT © Sylphx
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。