File Context Server について
File Context Server は、大規模言語モデルにファイルシステムのコンテキストを提供する MCP サーバーで、コードファイルの読み取り、検索、分析を行います。キャッシュとリアルタイムのファイル監視を備え、ローカルのコードベースを LLM で扱いたい開発者を想定しています。
主な機能
- 01メタデータ付きのファイルおよびディレクトリ内容の読み取り
- 02コンテキスト行を含む正規表現検索
- 03複雑度、依存関係、品質指標の分析
- 04変更時に自動で無効化される LRU キャッシュ
- 05環境変数によるキャッシュとファイルサイズの設定
活用シーン
- 01LLM によるプロジェクトのソースコードの読み取りと検索
- 02コードベースの複雑度と重複行の分析
- 03キャッシュ統計の確認によるパフォーマンス設定の調整
MCP 対応
本プロジェクトは MCP サーバーであり、list_context_files、read_context、search_context、analyze_code、cache_stats などのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ファイルコンテキストサーバー
LLM にファイルシステムのコンテキストを提供する Model Context Protocol(MCP)サーバーです。このサーバーにより、LLM は高度なキャッシュ機能とリアルタイムのファイル監視機能を利用して、コードファイルの読み取り、検索、分析を行えます。
特長
-
ファイル操作
- ファイルとディレクトリの内容を読み取る
- 詳細なメタデータとともにファイルを一覧表示する
- リアルタイムのファイル監視とキャッシュ無効化
- 複数のファイルエンコーディングに対応
- ディレクトリの再帰的な走査
- ファイル形式によるフィルタリング
-
コード分析
- 循環的複雑度の計算
- 依存関係の抽出
- コメント分析
- 品質指標:
- 重複行の検出
- 長い行(100 文字超)の検出
- 複雑な関数の特定
- 行数(合計、空行以外、コメント)
-
スマートキャッシュ
- LRU(最も長く使われていない項目を削除する)キャッシュ戦略
- ファイル変更時のキャッシュ自動無効化
- 設定可能な上限によるサイズ対応キャッシュ
- キャッシュ統計とパフォーマンス指標
- 効率的な検索のための直近の読み取り結果のキャッシュ
-
高度な検索
- 正規表現パターンマッチング
- 設定可能な前後の行を含む、コンテキストを考慮した結果
- ファイル形式によるフィルタリング
- 複数パターンの検索に対応
- キャッシュ済みの検索結果を検索
- 除外パターン
インストール
Smithery 経由でのインストール
Smithery を使用して、Claude Desktop 用の File Context Server を自動的にインストールするには:
npx -y @smithery/cli install @bsmi021/mcp-file-context-server --client claude
手動インストール
npm install @modelcontextprotocol/file-context-server
使用方法
サーバーの起動
npx file-context-server
利用可能なツール
-
list_context_files
- 詳細なメタデータとともに、ディレクトリ内のファイルを一覧表示します
{ "path": "./src", "recursive": true, "includeHidden": false } -
read_context
- メタデータとともに、ファイルまたはディレクトリの内容を読み取ります
{ "path": "./src/index.ts", "encoding": "utf8", "maxSize": 1000000, "recursive": true, "fileTypes": ["ts", "js"] } -
search_context
- コンテキストを含めて、ファイル内のパターンを検索します
{ "pattern": "function.*", "path": "./src", "options": { "recursive": true, "contextLines": 2, "fileTypes": ["ts"] } } -
analyze_code
- コードファイルを分析し、品質指標を算出します
{ "path": "./src", "recursive": true, "metrics": ["complexity", "dependencies", "quality"] } -
cache_stats
- キャッシュ統計とパフォーマンス指標を取得します
{ "detailed": true }
エラー処理
このサーバーは、固有のエラーコードを含む詳細なエラーメッセージを提供します。
FILE_NOT_FOUND:ファイルまたはディレクトリが存在しませんPERMISSION_DENIED:アクセス権限に問題がありますINVALID_PATH:ファイルパスの形式が無効ですFILE_TOO_LARGE:ファイルがサイズ上限を超えていますENCODING_ERROR:ファイルのエンコーディングに問題がありますUNKNOWN_ERROR:予期しないエラーです
設定
カスタマイズ用の環境変数:
MAX_CACHE_SIZE:キャッシュするエントリの最大数(デフォルト:1000)CACHE_TTL:キャッシュの有効期間(ミリ秒、デフォルト:1 時間)MAX_FILE_SIZE:読み取り可能なファイルの最大サイズ(バイト)
開発
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Start in development mode
npm run dev
ライセンス
MIT
コントリビューション
コントリビューションを歓迎します!行動規範とプルリクエストの送信手順については、コントリビューションガイドをお読みください。
クロスプラットフォームのパス互換性
注記: 2025 年 4 月現在、File Context Server のすべてのファイルおよびディレクトリパスの処理は、クロスプラットフォーム互換性(Windows、macOS、Linux)の向上を目的に更新されています。
- すべての glob パターンは内部で POSIX 形式のパス(スラッシュ)を使用するため、OS にかかわらず一貫してファイルを照合できます。
- すべてのファイルシステム操作(読み取り、書き込み、stat など)では、信頼性を高めるために正規化された絶対パスを使用します。
- サーバーを開発または拡張する場合は、glob パターンに
path.posix.joinを、ファイルシステムへのアクセスにpath.normalizeを使用してください。 - この変更により、異なるオペレーティングシステム間で発生するパス区切り文字やファイル照合に関する問題を防止できます。
エンドユーザー側での変更は不要ですが、開発者はプロジェクトにコントリビュートする際にこれらの規約に従ってください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。