このリポジトリは、Model Context Protocol (MCP) サーバーとクライアントの学習のために作成しました。
作成した MCP サーバーは、Frankfurter API を使用して円相場を取得する機能を持ちます。
一連のプログラムと実行結果を通して次のことが観察できます。
- クライアントアプリがクエリとともに Tool List をLLMに渡す
- LLM が
このツールをこの引数とともに使う必要があると応答する - クライアントアプリが Tool を実行し、LLM に追加コンテキストとして渡し最終回答を依頼する
- LLM が Tool の実行結果をもとに最終回答を出力する
なお今回は簡単のため、上記を 1 ターン行うのみとし、会話のコンテキストの保存などは行っていません。
server.py が MCP サーバーのコードです。
client.py がクライアント側のコードです。
こちらから結果を確認できます。
また、test-client-delegate-toolcall-to-api/delegate.py では、Tool 利用に関するクライアントアプリ(ホスト)と LLM との "対話" を API に移譲する例を OpenAI API を使用して実行しています。
Tool Call に関連する一連の煩雑な処理を API が一手に担ってくれることの便利さを実感できます。
サーバーは同一のものを使っています。
delegate.py がコードです。
こちらから結果を確認できます。
本リポジトリは以下を参照して作成しました。