local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
OpenAI、Git、ファイルシステム、Prometheus 統合を備えた MCP サーバー
このリポジトリには、OpenAI サービス、Git リポジトリ分析、ローカル ファイル システム操作、および Prometheus 統合をサポートするモデル コントロール プレーン (MCP) サーバー実装が含まれています。
プロジェクト構造
要件
- Python 3.8以上
- ファストAPI
- ウビコーン
- OpenAI SDK
- GitPython
- リクエスト
- Docker と Docker Compose (Prometheus 機能用)
インストール
- このリポジトリをクローンする
- 依存関係をインストールします。
環境変数
次の環境変数を設定します。
Azure OpenAI の場合:
標準 OpenAI の場合:
プロメテウスの場合:
サーバーの実行
MCP サーバーを起動します。
または、その他のオプションについては以下をご覧ください。
サーバーはhttp://localhost:8000で利用できます。
統合テストツール
すべてのテスト機能へのユーザーフレンドリーなインターフェースを提供する統合テスト スクリプトを提供します。
このインタラクティブ スクリプトは以下を提供します。
- ファイルシステムテスト
- Git統合テスト
- メモリ分析ツール
- プロメテウステストとメモリストレス
- MCP サーバー管理
- 環境設定
個別テスト
個々のテストを直接実行することもできます。
OpenAI 統合をテストします。
Git 統合をテストします (Git リポジトリの URL を指定します)。
Git の diff 機能をテストします (要件の互換性を分析します)。
ファイルシステムの機能をテストします。
MCP との langflow 統合をテストします。
Prometheus の統合をテストします。
高度なGit分析
AI による推奨機能を備えたより高度な Git リポジトリ分析については、以下をご覧ください。
リポジトリ内の特定のパターンを検索することもできます。
または、AI の洞察を使用して最後のコミットの差分を分析します。
メモリ分析ツール
MCP には、メモリの監視と分析のためのツールがいくつか含まれています。
テストのためにメモリ負荷をシミュレートすることもできます。
プロメテウス統合
設定
- Docker Compose を使用して Prometheus スタックを起動します。
これは次のように始まります:
- Prometheus サーバー ( http://localhost:9090でアクセス可能)
- ノードエクスポーター(ホストメトリック用)
- cAdvisor(コンテナメトリクス用)
- ストレス テストの場合、メモリ ストレス コンテナーを起動できます。
または、コンテナ テスト スクリプトを使用します。
Docker 構成およびリセット スクリプト
このプロジェクトには、さまざまな環境での信頼性の高い操作を実現するための複数の Docker 構成とリセット スクリプトが含まれています。
Docker 構成
- 標準構成(
docker-compose.yml
): Prometheus および Langflow のカスタム Dockerfile を使用して、システム間で一貫した権限を確保します。 - ブリッジ ネットワーク構成(
docker-compose.bridge.yml
): ホスト ネットワークに問題のある環境でブリッジ ネットワークを使用する代替構成。
権限問題を解決するためのカスタム Dockerfiles
このプロジェクトでは、Prometheus と Langflow の両方にカスタム Dockerfile を使用して、一般的な権限の問題を解決します。
- Dockerfile.prometheus :
nobody
ユーザーに適切な権限を与えて Prometheus 構成を設定します。 - Dockerfile.langflow : ファイルの所有権を変更せずにコンポーネント ディレクトリをコンテナーにコピーし、Langflow が権限エラーなしでコンポーネントにアクセスできるようにします。
このアプローチにより、異なるマシンやユーザー構成間で権限の競合を引き起こす可能性のあるボリュームマウントが不要になります。
スクリプトをリセットする
- すべてのサービスのリセット(
reset-all.sh
): 1 つのコマンドですべてのコンテナをリセットします。Copy - 個別サービスリセット:Copy
これらのスクリプトにより、コンテナが正しい権限と最新のコード変更で適切に構成されていることが保証されます。
トラブルシューティング
権限の問題が発生した場合:
- リセットスクリプトを使用してコンテナを再構築します
docker compose logs <service_name>
でログを確認します。- Langflowに追加されたコンポーネントがDockerfile.langflowに含まれていることを確認します。
クロスマシン展開
新しいマシンにデプロイする場合:
- リポジトリをクローンする
- リセットスクリプトを実行可能にする:
chmod +x *.sh
- リセット スクリプトを実行します:
./reset-all.sh
カスタム Dockerfiles は、さまざまなシステム間で発生する可能性のあるすべての権限の問題を自動的に処理します。
Prometheusクライアントの使用
MCPAIComponent
クラスには Prometheus 機能が含まれています。
便利なPromQLクエリ
- CPU使用率:
rate(node_cpu_seconds_total{mode!="idle"}[1m])
- メモリ使用量:
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes
- ディスク使用量:
node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}
- コンテナのCPU使用率:
rate(container_cpu_usage_seconds_total[1m])
- コンテナのメモリ使用量:
container_memory_usage_bytes
APIエンドポイント
OpenAIエンドポイント
- GET
/v1/models
- 利用可能なすべてのモデルを一覧表示する - GET
/v1/models/{model_id}
- 特定のモデルに関する情報を取得する - POST
/v1/models/azure-gpt-4/completion
- Azure OpenAI を使用してテキスト補完を生成する - POST
/v1/models/azure-gpt-4/chat
- Azure OpenAI を使用してチャット応答を生成する - POST
/v1/models/openai-gpt-chat/chat
- OpenAIチャットモデルを使用してチャットレスポンスを生成する - POST
/v1/models/openai-gpt-completion/completion
- OpenAI補完モデルを使用してテキスト補完を生成する
Git 統合エンドポイント
- POST
/v1/models/git-analyzer/analyze
- Gitリポジトリを分析する - POST
/v1/models/git-analyzer/search
- Gitリポジトリでパターンに一致するファイルを検索する - POST
/v1/models/git-analyzer/diff
- リポジトリ内の最後のコミットの差分を取得します
ファイルシステムエンドポイント
- POST
/v1/models/filesystem/list
- ディレクトリの内容を一覧表示する - POST
/v1/models/filesystem/read
- ファイルの内容を読み取る - POST
/v1/models/filesystem/read-multiple
- 複数のファイルを一度に読み取る - POST
/v1/models/filesystem/write
- ファイルにコンテンツを書き込む - POST
/v1/models/filesystem/edit
- 複数の置換を含むファイルを編集する - POST
/v1/models/filesystem/mkdir
- ディレクトリを作成する - POST
/v1/models/filesystem/move
- ファイルまたはディレクトリを移動する - POST
/v1/models/filesystem/search
- パターンに一致するファイルを検索する - POST
/v1/models/filesystem/info
- ファイルまたはディレクトリに関する情報を取得します
Prometheusエンドポイント
- POST
/v1/models/prometheus/query
- インスタントクエリを実行する - POST
/v1/models/prometheus/query_range
- 範囲クエリを実行する - POST
/v1/models/prometheus/series
- シリーズデータを取得する - GET
/v1/models/prometheus/labels
- 利用可能なすべてのラベルを取得する - POST
/v1/models/prometheus/label_values
- 特定のラベルの値を取得する - GET
/v1/models/prometheus/targets
- すべてのターゲットを取得する - GET
/v1/models/prometheus/rules
- すべてのルールを取得する - GET
/v1/models/prometheus/alerts
- すべてのアラートを取得する
クライアントの使用状況
MCP サーバーの URL を指定すると、LangFlow パイプラインでMCPAIComponent
使用できます。
GitCodeAnalyzerクラスの使用
より構造化された Git 分析を行うには、 GitCodeAnalyzer
クラスを使用できます。
トラブルシューティング
プロメテウスの問題
- Prometheus が実行中であることを確認します:
docker ps | grep prometheus
- Prometheus UI にアクセスできることを確認します: http://localhost:9090
- MCPサーバーが実行中でアクセス可能であることを確認する
- MCPサーバーのログでエラーを確認します
- まず簡単なクエリを試して接続を確認します(例:
up
クエリ)
OpenAIの問題
- APIキーが正しく設定されていることを確認してください
- レート制限またはクォータの問題を確認する
- APIキーでサポートされているモデルを使用していることを確認してください
Gitの問題
- GitリポジトリのURLにアクセスできることを確認する
- プライベートリポジトリを使用する場合は認証の問題を確認してください
- GitPythonが正しくインストールされていることを確認する
This server cannot be installed
REST API エンドポイントを介して、OpenAI サービス、Git リポジトリ分析、およびローカル ファイル システム操作用の統合インターフェイスを提供するサーバー実装。
- Project Structure
- Requirements
- Installation
- Environment Variables
- Running the Server
- Unified Testing Tool
- Individual Tests
- Advanced Git Analysis
- Memory Analysis Tools
- Prometheus Integration
- API Endpoints
- Client Usage
- Using the GitCodeAnalyzer Class
- Troubleshooting