Filesystem MCP:AIが安全にファイルシステムを操作
Filesystem MCPがAIアシスタントに厳格な権限制御の下で安全にファイルの読み書きと管理を可能にする方法を学びましょう。ファイル操作、セキュリティのベストプラクティス、高度な統合パターンをマスターします。
AIコーディングアシスタントを使用する際、以下のようなことを望んでいませんか?
- ファイルを直接読み取る:ファイル内容の手動コピー&ペーストが不要
- ファイルを一括処理:複数のファイルやディレクトリを一度に操作
- 安全なファイル書き込み:制御された範囲内でファイルを変更
- プロジェクト構造を動的に探索:ファイルを自動的に発見して分析
Filesystem MCPは、AnthropicがModel Context Protocolサーバーとして公式に提供しており、AIアシスタントに安全で制御されたファイルシステム操作機能を提供します。
Filesystem MCPとは?
Filesystem MCPは、Node.jsベースのMCPサーバーで、Model Context Protocolのファイルシステム操作インターフェースを実装し、AIアシスタントが厳格な権限制御の下でローカルファイルを読み書きできるようにします。
主要機能
-
柔軟な権限制御 🔒
- コマンドライン引数でアクセス許可ディレクトリを指定
- 動的Rootsメカニズムをサポートし、実行時に権限を更新
- 未承認のディレクトリアクセスをデフォルトで拒否
-
豊富なファイル操作 📁
read_file()- ファイル内容の読み取りwrite_file()- ファイルの書き込みまたは上書きedit_file()- 行レベルの編集(検索と置換)list_directory()- ディレクトリ内容のリスト表示create_directory()- ディレクトリの作成move_file()- ファイルの移動または名前変更search_files()- globパターンを使用したファイル検索get_file_info()- ファイルメタデータの取得
-
セキュリティファースト 🛡️
- サンドボックスメカニズムで未承認ディレクトリへのアクセスを防止
- 読み取り専用モードの設定(Docker
roフラグサポート) - 環境変数設定をサポートし、ハードコードされたパスを回避
-
モダンな統合 ⚡
- Rootsプロトコルをサポート(推奨)
- 再起動なしで権限を更新
- すべてのMCP互換クライアントとシームレスに統合
なぜFilesystem MCPが必要か?
問題:手動ファイル操作の非効率性
Filesystem MCP以前、AIアシスタントがファイルを処理する方法:
- ユーザーが手動でコピー&ペースト → AIはプロジェクトを積極的に探索できない
- 限定的なコンテンツの可視性 → ユーザーが提供したスニペットしか見えない
- 一括操作ができない → 各ファイルを手動で処理する必要がある
- 変更には人間の介入が必要 → AIは提案のみで実行できない
解決策:安全な自律的ファイル操作
Filesystem MCPによりAIは以下が可能になります:
- ✅ 関連ファイルを積極的に読み取り、完全なコンテキストを理解
- ✅ 複数のファイルを一括処理(リファクタリング、フォーマット、移行)
- ✅ 変更を直接書き込み、手動コピー&ペーストを削減
- ✅ プロジェクト構造を探索し、関連ファイルを自動的に発見
セキュリティを維持しながら:明示的に承認したディレクトリのみにアクセス。
インストールとセットアップ
方法1:公式CLI(推奨)
# プロジェクトにインストール、現在のディレクトリへのアクセスを許可
claude mcp add \
--scope project \
filesystem \
-- npx -y @modelcontextprotocol/server-filesystem \
"$(pwd)"
# グローバルにインストール、複数のディレクトリへのアクセスを許可
claude mcp add \
--scope global \
filesystem \
-- npx -y @modelcontextprotocol/server-filesystem \
/Users/username/projects \
/Users/username/documents
方法2:手動設定
.mcp.json(プロジェクト)または~/.claude/.mcp.json(グローバル)を編集:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/path/to/other/allowed/dir"
]
}
}
}
方法3:Dockerサンドボックスモード
Dockerを使用してより厳格な分離を提供:
docker run -v /path/to/project:/projects:ro \
@modelcontextprotocol/server-filesystem
ヒント:
roフラグはディレクトリを読み取り専用にし、AIは読み取りのみで変更できません。
Roots vs. コマンドライン引数
従来の方法:コマンドライン引数
{
"command": "npx",
"args": [
"@modelcontextprotocol/server-filesystem",
"/allowed/dir1",
"/allowed/dir2"
]
}
制限:権限を変更するにはサーバーの再起動が必要。
モダンな方法:Rootsプロトコル(推奨)
Rootsは、クライアントがファイルシステムの境界をサーバーに動的に公開するためのMCPの標準化されたメカニズムです。
利点:
- ✅ 実行時に権限を更新(再起動不要)
- ✅
roots/list_changed通知による自動同期 - ✅ より柔軟な統合体験
使用方法:
Claude Desktopなどのモダンなクライアントは自動的にRootsをサポートします。基本的なサーバーを設定するだけです:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem"]
}
}
}
クライアントは現在の作業ディレクトリに基づいてRootsを自動的に設定します。
実際の使用例
例1:プロジェクトリファクタリング
あなた:「すべての.jsファイルのvarをconstに置き換えて」
Filesystem MCPが自動実行:
1. search_files("**/*.js") → すべてのJSファイルを検索
2. 各ファイルにread_file()を実行
3. 分析して変更提案を生成
4. edit_file()を使用してvar → constを一括置換
5. 変更結果を報告
結果:5分で50ファイルをリファクタリング
例2:プロジェクト構造分析
あなた:「このプロジェクトのアーキテクチャを分析して、モジュール依存関係図を描いて」
Filesystem MCPが自動実行:
1. list_directory("/") → ルートディレクトリ構造を取得
2. search_files("**/*.ts") → すべてのTypeScriptファイルを検索
3. read_file()で各ファイルのimport文を読み取り
4. 依存関係を分析
5. Mermaid図を生成
結果:完全なプロジェクトアーキテクチャ図を自動生成
例3:ファイル一括処理
あなた:「src/components下のすべてのTypeScriptファイルにcopyright headerを追加して」
Filesystem MCPが自動実行:
1. list_directory("src/components")
2. search_files("src/components/**/*.ts")
3. 各ファイルにread_file()を実行
4. ファイルの先頭にcopyright headerを挿入
5. write_file()で書き戻し
結果:30ファイルに自動的にheaderを追加
利用可能なツールの詳細
1. read_file(path: string) 📖
ファイル内容を読み取ります。
2. write_file(path: string, content: string) ✍️
ファイルを書き込みまたは上書きします。
⚠️ 警告:既存のファイルを上書きするので、注意して使用してください。
3. edit_file(path: string, edits: Edit[]) ✂️
行レベルの編集で検索と置換をサポート。
4. list_directory(path: string) 📂
ディレクトリ内容をリスト表示。
5. create_directory(path: string) 🆕
新しいディレクトリを作成(ネストされた作成をサポート)。
6. move_file(source: string, destination: string) 🔀
ファイルを移動または名前変更。
7. search_files(pattern: string, path?: string) 🔍
globパターンを使用してファイルを検索。
サポートされているglobパターン:
*.ts- 現在のディレクトリ内のすべてのTSファイル**/*.ts- すべてのサブディレクトリ内のTSファイルsrc/**/*.{ts,tsx}- src下のTSおよびTSXファイル
8. get_file_info(path: string) ℹ️
ファイルメタデータを取得。
セキュリティのベストプラクティス
✅ 推奨
- 最小権限の原則
- 機密データの保護
- 読み取り専用モードの使用
- 定期的な権限監査
❌ 避けるべき
- ルートディレクトリの承認
/- 絶対にしないでください - システムディレクトリの承認
/etc,/usr,/System- 危険 - ホームディレクトリの承認
~- 範囲が広すぎる - ハードコードされた絶対パス - 相対パスまたは環境変数を使用
他のMCPサーバーとの相乗効果
Filesystem MCPは他のMCPサーバーと完璧に連携します:
1. Filesystem + Memory MCP
2. Filesystem + Context7 MCP
3. Filesystem + Sequential Thinking MCP
結論
Filesystem MCPは、AIアシスタントがファイルシステムを操作するための安全な橋渡しです。強力なファイル操作機能を提供しながら、厳格な権限制御でシステムのセキュリティを確保します。
あなたに適していますか?
| 使用シナリオ | 推奨度 |
|---|---|
| 一括ファイルリファクタリング | ⭐⭐⭐⭐⭐ |
| プロジェクト構造分析 | ⭐⭐⭐⭐⭐ |
| 自動化されたファイル処理 | ⭐⭐⭐⭐⭐ |
| 複数プロジェクト管理 | ⭐⭐⭐⭐ |
| 機密データの処理 | ⭐⭐ (慎重な権限設定が必要) |
今すぐ始める
- インストール:
claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol/server-filesystem "$(pwd)" - プロジェクトディレクトリを承認
- AI駆動のファイル操作を楽しむ