MCP Filesystem について
MCP Filesystem は、ワークスペース内のファイルを MCP クライアントに公開する Go 製 MCP サーバーです。無視対象でない各ファイルをリソースとして登録し、変更を通知します。
主な機能
- 01ワークスペース内の各ファイルをリソース化
- 02.gitignore ルールへの対応
- 03ファイル変更の通知
- 04MIME タイプとテキストエンコーディングの識別
活用シーン
- 01MCP クライアントからリポジトリ内のファイルを参照
- 02ワークスペースでの追加・編集・削除の追跡
MCP 対応
無視対象でないワークスペース内の各ファイルを MCP リソースとして公開します。ファイルの追加、変更、削除時に通知を送ります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Filesystem
作業ディレクトリ内の各ファイルをリソースとして公開し、変更通知を送信する Model Context Protocol(MCP)サーバーです。
ステータス
⚠️ ベータ前の品質です ⚠️
「自分のマシンでは動いています」。問題の報告を歓迎します ❤️
機能
- リソース:ワークスペース内の各ファイルに対して MCP リソースを作成します
- Gitignore のサポート:
.gitignoreのルールに従います - 変更通知:ファイルの変更、追加、削除を検出します
- MIME タイプの検出とエンコーディングの処理:ファイルの種類を特定し、さまざまなテキストエンコーディングを処理します
セットアップ
Go をインストールします:https://golang.org/doc/install の手順に従ってください
このサーバーを取得または更新します:
go install github.com/isaacphi/mcp-filesystem@latest
クライアントの設定(Claude Desktop の場合は ~/Library/Application Support/Claude/claude_desktop_config.json)に以下を追加します:
{
"mcpServers": {
"filesystem": {
"command": "mcp-filesystem",
"args": ["--workspace", "/path/to/your/repository"]
}
}
}
/path/to/your/repository をプロジェクトディレクトリの絶対パスに置き換えてください。
使い方
クライアントから、リポジトリ内の無視対象ではないすべてのファイルに MCP リソースとしてアクセスし、参照できるようになります。各ファイルは、適切な MIME タイプ検出とともに個別のリソースとして登録されます。
クライアントの要件
クライアントは、次の MCP 機能をサポートする必要があります:
- リソース一覧表示:サーバーが公開するリソースを一覧表示してアクセスする機能
- 変更通知:
notifications/resources/list_changedイベントを受信するサポート - リソースコンテンツへのアクセス:適切な MIME タイプでリソースのコンテンツを要求し、表示する機能
概要
このプロジェクトでは、以下を使用しています:
- MCP 通信には mark3labs/mcp-go
- ファイルシステムイベントの監視には fsnotify
.gitignoreファイルの解析には go-gitignore
開発
リポジトリをクローンします:
git clone https://github.com/isaacphi/mcp-filesystem.git
cd mcp-filesystem
依存関係をインストールします:
go mod download
ビルドします:
go build
クライアントがローカルビルドを使用するように設定します:
{
"mcpServers": {
"filesystem": {
"command": "/full/path/to/your/mcp-filesystem/mcp-filesystem",
"args": ["--workspace", "/path/to/repository"],
"env": {
"DEBUG": "1"
}
}
}
}
フィードバック
できるだけ詳しい情報を添えて、問題を報告してください。
詳細なログを有効にするには、DEBUG 環境変数を設定します:
"env": {
"DEBUG": "1"
}
今後対応する予定の機能
- ワークスペース内の各ファイルに対するリソース
- .gitignore のサポート
- 変更通知
- より多くのクライアント(Claude Desktop)で動作するよう、MCP プロトコルの使用を標準化
- 行番号のサポートを設定可能にする
- リソース更新のサブスクリプション
- 追加の無視パターン(
.gitignore以外) - 大量のファイル変更に対する通知のデバウンス
-
info、create、edit、deleteツール
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。