MCPに関する現状の理解
MCPはLLMにツールを使わせる仕組みを規格化したもの
LLMがAPIを通じてプログラムで厳密にデータ処理をしたり,学習外のデータ(例:最新情報,文脈固有の情報)を参照したりするために用いられる
イメージ:ChatGPTの検索機能,コードインタプリタ,Pluginなどを誰でも簡単に開発できるようにして,それらを様々なLLMアプリで横断的に呼び出せるようにしたもの
構成要素:サーバ,クライアント,ホスト
初期化
サーバは自身の機能(関数や参照データなど)とその使い方に関する情報をクライアントに応答する
クライアントはそれら情報をLLMが扱いやすいコンテクスト情報(プロンプト)に整形する
ホストはサーバの機能を使える(コンテクスト情報から機能の使い方を知った)LLMを利用者に提供する
呼び出し
ホストのLLMはコンテクスト情報に基づいて,必要な場面でツールの使用をクライアントにリクエストする.
クライアントはリクエストをサーバに送信する
サーバはリクエストに応じて処理結果やデータを応答し,クライアントを返してホストのLLMに情報が与えられる
MCPサーバの使い方をどうイメージしたらいいか?
Claude DesktopやCursol,Clineなどのアプリはクライアント内蔵のホストとして使える
→それらでAIに使ってほしいツールをMCPサーバとして立てれば良い
MCPサーバがLLMに提供する機能:ツール,リソース,プロンプト
ツール:LLMが実行可能なプログラム(関数)
例:現在地を引数として現在の天気を調べて応答するAPI
リソース:LLMが参照可能なデータ(URI形式で提供される読み出し専用データ)
例:開発者向けのドキュメント
プロンプト:ユーザーがLLMへの指示を定型的に行えるようにするもの
例:翻訳を指示する文章の末尾にユーザー入力を埋め込むプロンプト(指示なしにChat UIに英文を書き込むだけでLLMは翻訳作業をしてくれる)
ーーー
2025/4/7 09:50