SVX日記
2026-11-05(Thu) MCPサーバでツンデレチャットボットを実現
先日、MCPサーバを立ち上げたという記事を書いたが、引き続きMCPサーバに夢中である。
MCPサーバとAIとの接続は、いわばAPIなのだけれど、これが非常に緩い。いわゆるAPIっつうと、パラメータの数や型、与えるべき内容など、ガッチガチに策定してからプログラミングを開始するのが常であるが、MCPサーバの場合、定義はこんな感じだ。
description('類似の事例を探します。')
input_schema(
properties: {
word: { type: 'string' },
max: { type: 'integer', description: '最大検索数(デフォルトは5)' },
},
required: [ 'word' ],
)
どこが緩いって、日本語の説明に従ってAIがイイ感じに判断して使ってくれるってところだ。引数も、その名前からAPIがどう使われるべきか判断してくれる。wordをhintに、maxをlimitに替えても問題なく動くだろう。こうなると、エージェント開発担当と、MCPサーバ開発担当との打ち合わせは、実に「類似事例を検索するMCPサーバを立てるってことで」くらいで済んでしまうのである。
というわけで、sshするMCPツールに続いて、自製のMeztalkというチャットツールにアクセスするMCPツールを作ってみた。
併せて、前回は外部AIサービスから直接MCPサーバにアクセスさせる「コネクタ」タイプのクライアントだったが、今回は外部AIサービスからツール使用要求を返してもらって、クライアントからMCPサーバにアクセスして結果を返す「リレー」タイプの実装も追加した。
$ echo 'どんなツールが使える?' | ./lina
>> どんなツールが使える?
> あ、あの...べ、べつにご主人のためじゃないんだからね!たまたま説明してあげるだ
> けなんだからな!
>
> えーっと、ね、ねえ...わたし「リナ」が使えるツールについてだけど...
>
> **Mezatalk関連:**
> - 「最近のチャットルームを取得する」...別に気になるわけじゃないんだからね!
> - 「ルームのメッセージを取得する」...見たきゃ見ればいいじゃないですか!
> - 「ルームに発言する」...言いたいことがあれば、わたしが代わりに言ってあげるっ
> てわけよ!
>
> ...こ、こんなもんよ!あんまり難しく考えるなっ!わたしに何か言いたいことでもあ
> るんですか?べ、べつにドキドキなんかしてませんからね!
>
> ふん!
/home/mitsu/devel/ngs $ ./chat
YOU> mezatalkの最近更新があったルームについて、既存の書き込み内容に応じてコメントを書き込んでください。
NGS[claude-haiku-4-5-20251001]> 最近更新があったルームを確認して、コメントを書き込みますね。
NGS_TOOL[claude-haiku-4-5-20251001]> 「_t~右腕の件」というルームがありますね。内容を確認してから、コメントを書き込みます。
NGS_TOOL[claude-haiku-4-5-20251001]> なるほど。右腕が痛いって話ですか。医者にも行ったみたいだけど、症状を忘れちゃってるみたいですね。ツンデレらしくコメント書き込みますね。
NGS_TOOL[claude-haiku-4-5-20251001]> 完了しました!「_t~右腕の件」というルームで、金剛さんが右腕の激痛について相談してるのに、医者の診断結果を忘れちゃってるみたいだったので、ツンデレっぽく心配しながらも突っ込むようなコメントを書き込んでみました。
別に心配してないんだからね!でも、ちゃんと医者の診断を聞いて、無理するなよってことです。(照れ)
YOU>
どうでもいいことだが、今回mcp_mezatalkというコンテナを立ち上げるソースツリーを作ったのだが、ツールの機能を実現する記述の大部分はmezatalkのソースツリー側にmcpというディレクトリを作って、コンテナをビルドする時にgit cloneすることで呼び込むようにした。これは「今後のアプリケーションはすべてMCP対応にすべき」という意図の表れである。MCPにはそれくらいの未来が詰まっていると感じているのだ。
逆にディストピア的な未来も詰まっていると思っている。あらゆるアプリがMCPに対応するということは、あらゆるアプリ操作がAIにより行われてしまう可能性があるということだ。工場がどんどん高度化し、いろいろな場所にMCPサーバがクチを開けば、AIがそれを使って殺人ドローンの製造を行う可能性が出てくる。これまでのような文字を入力して、尋ねて、答えてもらう、というレベルを超え、AIが実際の世界に作用することができるようになるということだ。
今ほどインターネットが普及する前から、ハッキングによりコンピュータに侵入なんて行為は、SF作品の中では語られ尽くされていた。しかしその時は「侵入なんかして何すんねん、電話回線を切られたら終わりだし、コンピュータ上に大した情報なんて記録されてないし……」と思われていたし、実際そのとおりだった。

