hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Uses Express.js to implement a REST API server with endpoints for file operations and LLM queries.
Implemented as a Node.js application for server-side functionality.
Integrates with Ollama as a local LLM provider for context-aware querying. Allows users to send prompts to Ollama models with context from local files.
ファイルコンテキストMCP(モデルコンテキストプロセッサ)
概要
File Context MCPは、TypeScriptベースのアプリケーションで、ローカルファイルのコンテキストを用いて大規模言語モデル(LLM)をクエリするためのAPIを提供します。複数のLLMプロバイダー(OllamaとTogether.ai)をサポートし、様々なファイルタイプを処理してコンテキストに応じたレスポンスを生成できます。
コア機能
1. ファイルシステムナビゲーション
- 動的なファイルとディレクトリのトラバーサル
- 複数のファイル タイプ (
.txt
、.md
、.ts
、.json
など) のサポート - 衛生管理による安全な通路の確保
2. コンテキスト処理
- LLMクエリのためのインテリジェントなコンテキストフォーマット
- 大きなファイルを処理するためのコンテキスト切り捨て
- ディレクトリクエリのファイルコンテンツの集約
3. マルチモデルサポート
- Ollama(ローカル)統合
- Together.ai(クラウド)統合
- 拡張可能なモデルインターフェース設計
建築
コアコンポーネント
- サーバー (server.ts)
- Express.js REST API実装
- multerによるファイルアップロード/削除処理
- リクエストの検証とルーティング
- OpenAPI/Swagger統合
- ファイルシステムツール (core/fileSystem.ts)
- ファイルとディレクトリの操作
- コンテンツの読み取りと解析
- ディレクトリトラバーサル
- 安全なファイル削除
- ファイル操作のエラー処理
- モデルインターフェース (core/modelInterface.ts)
- 複数の LLM プロバイダーのサポート (Ollama、Together.ai)
- レスポンスのフォーマットとエラー処理
- 設定可能なモデルパラメータ
- 統合クエリインターフェース
- ユーティリティモジュール
fileUtils
: ファイルタイプの検出、パスのサニタイズ、サイズのフォーマットpromptUtils
: コンテキストフォーマット、インテリジェントな切り捨てvalidators
: パス、クエリ、モデルの検証logger
: レベルによる構造化ログ
- 構成 (config/config.ts)
- 環境変数管理
- APIキーとエンドポイント
- モデル構成
- サーバー設定
- API 仕様 (resources/file-context-api.yml)
- OpenAPI 3.0 ドキュメント
- リクエスト/レスポンススキーマ
- エンドポイントドキュメント
- エラー応答の定義
APIエンドポイント
1. ファイルの一覧表示
2. ファイルをアップロードする
3. ファイルを削除する
4. コンテキストを考慮したクエリ
セットアップと構成
- 環境変数
- インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の File Context MCP を自動的にインストールするには:
- アプリケーションの実行
仕組み
- ファイル処理フロー
- リクエスト受信 → パス検証 → ファイルの読み取り → コンテンツの抽出
- ディレクトリ処理には再帰的なファイル読み取りが含まれる
- ファイルタイプに基づくコンテンツフィルタリング
- ファイルのアップロードは種類とサイズが検証されます
- パス検証による安全なファイル削除
- コンテキスト処理
- ファイルの内容が集約される
- コンテキストは明確な境界でフォーマットされている
- 大きなコンテキストはインテリジェントに切り捨てられる
- プロンプトのフォーマットはLLMの理解に構造を追加します
- モデル統合
- さまざまなLLMプロバイダー向けの統一インターフェース
- エラー処理と応答の正規化
- 設定可能なモデルパラメータ
セキュリティ機能
- パスサニタイズ
- ディレクトリトラバーサル攻撃の防止
- パスの検証と正規化
- 安全なファイルタイプのチェック
- ファイルアップロードのセキュリティ
- ファイルタイプの検証
- ファイルサイズの制限(最大5MB)
- 安全なファイルストレージ
- 安全なファイル削除
- 入力検証
- クエリコンテンツの検証
- モデルタイプの検証
- パス構造検証
- ファイルコンテンツの検証
サポートされているファイル形式
アプリケーションは、次のテキストベースのファイル タイプをサポートしています。
- ドキュメント:
.txt
、.md
- コードファイル:
.js
、.ts
、.jsx
、.tsx
、.py
、.java
、.cpp
、.c
、.h
- 構成:
.json
、.yaml
、.yml
、.env
- Web ファイル:
.html
、.css
- データファイル:
.csv
、.xml
、.log
ファイルタイプの検証は次の場合に適用されます:
- ファイルのアップロード
- コンテキスト処理
- ファイル読み取り操作
最大ファイルサイズ: ファイルあたり5MB
エラー処理
アプリケーションは包括的なエラー処理を実装します。
- ファイルシステムエラー
- API応答エラー
- 無効な入力エラー
- モデル固有のエラー
- ファイルのアップロード/削除エラー
発達
プロジェクト構造
新機能の追加
- 新しいファイルタイプ
fileUtils.isTextFile()
に拡張機能を追加する- 必要に応じて特定のハンドラーを実装する
- 新しいモデルプロバイダー
ModelInterface
クラスを拡張するvalidators.isValidModel()
にプロバイダーを追加します。- プロバイダ固有のエラー処理を実装する
テスト
ポストマンコレクション
このプロジェクトには、すべてのAPIエンドポイントをテストするためのPostmanコレクション( postman/File-Context-MCP.postman_collection.json
)が含まれています。使用するには、以下の手順に従います。
- コレクションをインポートする
- ポストマンを開く
- 「インポート」ボタンをクリック
File-Context-MCP.postman_collection.json
ファイルを選択またはドラッグします。
- 利用可能なリクエストCopy
- ファイル操作のテスト
- ファイルの一覧: ストレージディレクトリの内容を表示します
- ファイルのアップロード: キー「file」を持つフォームデータを使用し、テキストファイルを選択します。
- クエリファイル: LLM を使用して単一ファイルの内容を分析する
- ディレクトリ分析: LLM で複数のファイルを処理する
- クエリの例Copy
- ファイルアップロードガイド
- 「ファイルアップロード」リクエストを使用する
- 本文タブで「form-data」を選択します
- タイプ「File」のキー「file」を追加します。
- サポートされているテキストファイルを選択します(サポートされているファイルの種類を参照)
- 最大ファイルサイズ: 5MB
手動テスト
/storage
に用意されているテストファイルを使用する- さまざまなファイルタイプとクエリをテストする
- モデルの応答とエラー処理を検証する
- テストファイルのサイズ制限と種類の制限
環境設定
必ず次の点に注意してください:
- サーバーを実行しておきます(
npm run dev
) - 環境変数を設定する
- Ollamaをローカルで実行する(Ollamaモデルの場合)
- Together.ai APIキーを設定する(Togetherモデル用)
今後の検討事項
- 大きなファイルを効率的に処理する方法
- サポートされるファイルタイプの拡張
- コンテキスト処理の最適化
- レスポンスのストリーミングサポートの追加
- レート制限とキャッシュの実装
このプロジェクトは、モジュール性、型の安全性、エラー処理に重点を置いた最新の TypeScript/Node.js プラクティスを示し、ファイルベースのコンテキストとの LLM 対話のための柔軟なインターフェースを提供します。
This server cannot be installed
このサーバーは、ローカル ファイルのコンテキストを使用して大規模言語モデルをクエリするための API を提供し、コンテキスト認識応答のためのさまざまなモデルとファイル タイプをサポートします。
- Overview
- Core Features
- Architecture
- API Endpoints
- Setup and Configuration
- How It Works
- Security Features
- Supported File Types
- Error Handling
- Development
- Testing
- Future Considerations