This section was written completely by using the SentinelCore agent and its tools(prompt->get the details from internet->write it to a file) via gemini 2.0 flash. について
SentinelCoreはMCPベースのエージェントプロジェクトとして説明されており、クライアントがチャット、LLM、ツールを連携し、サーバーがファイル操作やウェブ調査を担います。記載されたツールはファイルシステム、ウェブ取得、AI検索、ベクトルインデックス検索に対応します。
主な機能
- 01LLMとツールを連携するチャットループ
- 02MCPサーバーへの接続とリトライ
- 03ファイルやフォルダーの確認と読み書き
- 04ウェブ検索とページ取得
- 05ベクトルインデックスの作成と検索
活用シーン
- 01LLMから接続済みMCPツールを利用
- 02ツールを介したローカルファイルの読み書き
- 03ウェブページをMarkdownとして取得
- 04クエリでインデックス済みコンテンツを検索
MCP 対応
クライアントはMCPサーバーに接続してツールを一覧・実行し、サーバーは標準入出力でファイルシステム、ウェブ調査、ベクトル検索のツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
このセクションは、SentinelCore エージェントとそのツールを使用して完全に作成されました(プロンプト->インターネットから詳細を取得->ファイルに書き込み)。gemini 2.0 flash を使用しています。
USER-PROMPT:-Now first search for a github account named bhuvanmdev and scrape his fontpage and search for a repo that has something to do with MCP application. Then go to that repository and and scrape the client.py and server.py file contents and create a neat summary of it and write it to readme.md file in the current dir.
Sentinel Core エージェントの概要
このドキュメントでは、このリポジトリの client.py ファイルと server.py ファイルの概要を説明します。
Client.py
client.py ファイルは、ユーザー、LLM(大規模言語モデル)、および各種ツール間のやり取りを管理します。LLM がツールを使用してユーザーの質問に回答できるチャットセッションを初期化し、調整します。クライアントは、サーバー接続、リトライを伴うツールの実行、および LLM プロバイダーとの通信を処理します。
主なコンポーネント:
- 構成: 環境変数(LLM API キーを含む)と、JSON ファイルからサーバー構成を読み込みます。
- サーバー: MCP(マイクロサービス通信プロトコル)サーバーへの接続を管理し、利用可能なツールを一覧表示し、リトライの仕組みを使ってツールを実行し、リソースをクリーンアップします。
- ツール: 名前、説明、入力スキーマなどのプロパティを持つツールを表し、LLM 用にツール情報をフォーマットするメソッドを提供します。
- LLMClient: Azure OpenAI または Google Gemini モデルを使用して、LLM との通信を管理します。
- ChatSession: ユーザー、LLM、ツール間のやり取りを調整します。LLM の応答を処理し、必要に応じてツールを実行して、メインチャットセッションのループを処理します。
クライアントは、利用可能なツールとその使用方法を示す指示を含むシステムメッセージを LLM に設定します。その後、ユーザー入力を受け取り、LLM に送信して、LLM の応答を処理するループに入ります。応答にツール呼び出しが含まれている場合、クライアントはツールを実行し、その結果を LLM に返します。このプロセスは、ユーザーがチャットセッションを終了するまで続きます。
Server.py
server.py ファイルは、ファイルシステム操作、ウェブスクレイピング、AI を活用した検索など、さまざまなツールを備えた MCP サーバーを実装します。サーバーの作成と実行には fastmcp ライブラリを使用します。
主なツール:
- is_file_folder_present: ファイルまたはフォルダーがファイルシステム内に存在するかを確認します。
- cur_datetimetime: 現在の日付と時刻を返します。
- browser_ai_search: AI エージェント(Brave Search)を使用してウェブを検索し、応答を返します。
- read_file: ファイルの内容を読み込みます。
- write_file: ファイルに内容を書き込みます(テキストとバイナリの両方)。
- web_page_scrapper: ウェブページをスクレイピングし、内容を Markdown 形式で返します。ベクトルベースの検索のために内容をインデックス化することもできます。
- get_all_vector_indexes: 現在のディレクトリにあるすべてのベクトル埋め込みインデックスを取得します。
- search_via_index: ベクトル埋め込みインデックスを使ってクエリを検索します。
また、サーバーは非同期ウェブクローラー(crawl4ai)を初期化し、内容をベクトル化するための埋め込みモデルを設定します。クローラーを適切に起動および停止できるよう、非同期コンテキストマネージャーを使用してサーバーのライフサイクルを管理します。
サーバーは mcp.run(transport="stdio") を使って MCP サーバーのループを開始し、クライアントからのツール呼び出しを受信して処理できるようにします。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
