0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLMに現在時刻を教えて貰うまでの道のり

Last updated at Posted at 2025-09-17

はじめに

まだ完成していませんが、これまで細々と実装してきたC言語用のMCPライブラリ。
ゴールがなんとなく見えてきたので、ここまで理解できてであろうまとめを。

MCPについて

今更すぎる内容ですが、改めてMCPについて簡単に整理してみます。

そもそもMCPは、どのように使われるもの?

最初の勘違いは、MCPサーバーはLLMから使われるものという理解。
必ずしも間違いではないとは思いますが、実際は、以下のような感じ。

LLMがMCPサーバーを直接呼び出すのではなく、アプリが仲介を行っている。
この辺りを良く理解しておらず、私は、LLMが対応してないんだなとか勘違いしておりました。

MCPクライアントとは?

アプリ側がMCPサーバーと通信するために使用するもの。
先ほどのシーケンスをもう少し丁寧に書くと...

アプリに組み込まれるライブラリと考えれば良いかと。

LLMについて

LLMを上手く動作させるためのポイント?

これも今更すぎる内容ですが。
ローカルのLLMだとMCPサーバーがどうにも上手く動作しないなぁ。このLLMは使えないのかな?
と勘違いしていたわけですが...

重要なのは、Context Length。

ChatGPTを使っているだけだと、まるでLLMがそれまでの話の内容を記憶して、チャットに付き合ってくれているように錯覚してしまいます。
ですが、LLMが私の事を覚えてくれているわけではなく、実際は毎回それまでの内容を全部送る。
LLMからの応答も含めて全部送る。

なんとも寂しい限りですが、当たり前といえば当たり前かもです。

で、話は戻りますが、という事は、メッセージが雪だるま的に大きくなってしまうわけで、Context Lengthが小さいと、会話が続きません。

私が、LLMがMCPサーバーに対応できてないと勘違いしていたのは、Context Lengthが原因だったかと思います。
なので、Context Lengthを増やすことで、ある程度動作するようになったりします。

ローカルLLMには限界があるとは思いますが、適度に会話の内容をリセットしてあげる。
以下のように、使用するMCPのツールの数を絞ってあげるなどすれば、動作させることができたりします。

タイトルなし.png

LLMに現在時刻を教えてもらう

LLMに聞くと、何でも教えてくれるのですが、それは過去のことであり、現在や未来の事は分かりません。
なので、現在時刻を聞くと、ご丁寧にPCで時間を調べる方法や、ブラウザで調べる方法を教えてくれます。

MCPを使うことで、その限界を超えるわけです。

果てしない道のりです。
果てしない電気の無駄遣いです。

MCPクライアント、MCPサーバー、OpenAI API

MCPサーバーを作るということだけではなく、これらの要素を自分のアプリに組み込むことで、自分のアプリをAIに操作させることが可能になるのだと思います。
(※が、実際の所、それが目的なら、OpenAI APIのみで実現できるような気がしなくもありません。)

その結果、業務アプリ達は、これまでのような設定画面風なものではなく、たった一つの入力欄と、実行内容を確認する画面になるのでしょうか?
そして、いかに上手く命令すれば、自分の求める結果が得られるか、文章力や思考力が問われるような、そんな時代になるのでしょうか?
それはそれで、本末転倒な気もしますが...

おわりに

まだまだ作りこみは足りてませんが、先ほどの時間を調べる流れは実装し、動作確認することができました。
クライアント側の実装は、サーバー側に比べて非常に多く、先は長いですが、細々と実装は続けていけたら良いなと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?