SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|07|08|09|10|11|12|
2026|01|02|03|04|05|06|07|08|09|10|11|

2026-11-05(Thu) MCPサーバでツンデレチャットボットを実現

  先日、MCPサーバを立ち上げたという記事を書いたが、引き続きMCPサーバに夢中である。

  MCPサーバによりAIが使えるツールを準備してやると、AIは実に適切に使ってくれる。これまでのような文字を入力して、尋ねて、答えてもらう、という使い方から、一気に活躍のステージが広がるのだ。

  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サーバにアクセスして結果を返す「リレー」タイプの実装も追加した。

  Mezatalkに対して実装したMCPツールは……これはAIであるリナに自ら説明してもらおうw。

$ echo 'どんなツールが使える?' | ./lina
>> どんなツールが使える?
 
> あ、あの...べ、べつにご主人のためじゃないんだからね!たまたま説明してあげるだ
> けなんだからな!
> 
> えーっと、ね、ねえ...わたし「リナ」が使えるツールについてだけど...
> 
> **Mezatalk関連:**
> - 「最近のチャットルームを取得する」...別に気になるわけじゃないんだからね!
> - 「ルームのメッセージを取得する」...見たきゃ見ればいいじゃないですか!
> - 「ルームに発言する」...言いたいことがあれば、わたしが代わりに言ってあげるっ
> てわけよ!
> 
> ...こ、こんなもんよ!あんまり難しく考えるなっ!わたしに何か言いたいことでもあ
> るんですか?べ、べつにドキドキなんかしてませんからね!
> 
> ふん!

  上記の3つである。実際の利用者と同じく、最近の発言をチェックして、発言の内容を読んで、発言の内容に応じて書き込む、という行動を可能に仕立ててある。

  なので、指示は「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> 

  発言内容とは別に、作業中の経緯も表示させるため、今回はchatのツール経由で依頼してみたが、これによるMezatalk側の結果は以下である。

  画像の説明

  まぁ、適切に反応できているといえよう。腱炎だという指摘も正しい。ツンデレ口調の精度に関してはOpenAIのが高かった気がするが、これもおかしいというほどのレベルではない。

  どうでもいいことだが、今回mcp_mezatalkというコンテナを立ち上げるソースツリーを作ったのだが、ツールの機能を実現する記述の大部分はmezatalkのソースツリー側にmcpというディレクトリを作って、コンテナをビルドする時にgit cloneすることで呼び込むようにした。これは「今後のアプリケーションはすべてMCP対応にすべき」という意図の表れである。MCPにはそれくらいの未来が詰まっていると感じているのだ。

  逆にディストピア的な未来も詰まっていると思っている。あらゆるアプリがMCPに対応するということは、あらゆるアプリ操作がAIにより行われてしまう可能性があるということだ。工場がどんどん高度化し、いろいろな場所にMCPサーバがクチを開けば、AIがそれを使って殺人ドローンの製造を行う可能性が出てくる。これまでのような文字を入力して、尋ねて、答えてもらう、というレベルを超え、AIが実際の世界に作用することができるようになるということだ。

  そんなトコまでMCP化されることはない、という意見もあろうが、それが過去に通った道でないと言い切れるだろうか。

  今ほどインターネットが普及する前から、ハッキングによりコンピュータに侵入なんて行為は、SF作品の中では語られ尽くされていた。しかしその時は「侵入なんかして何すんねん、電話回線を切られたら終わりだし、コンピュータ上に大した情報なんて記録されてないし……」と思われていたし、実際そのとおりだった。

  しかし、今や個人のPCも企業のサーバも常時接続され、その上には大量にセンシティブな情報が記録されている。サイバー攻撃が攻撃者に実利のある行為になって久しい。ここしばらくの漏洩祭りを、過去に誰が予測しただろうか。

  この先、今のままのMCPかどうかはわからんが、AIがアクセスできるクチはあらゆる場所に開くようになり、それに付随する問題は必ず増えてくる。さぁ、みなさま、AIの反乱による滅亡のご用意はよろしいでしょうか。


2026-11-07(Sat) エキサイトバイクレッスンでエキサイト

  バイク趣味を復活してから、ヤマハがバイク教室をやっていると知って、いつか参加してやろうかと思っていたのだが、ようやく実現することができた。

  リターンライダーとして乗り始めてみると、自分はどうやら平均よりもかなり運転がお上手な方だと気づき、敢えてオンロードのレッスンを受ける必要はなさそうに思えた。むしろ、体験したことのないオフロードのレッスンを受けて、そこで得た気づきをオンロードに反映するのが有意義そうだ。オフロードバイクにはスタイル的に興味はないが、オフロード走行自体には興味はあるので。

  ここしばらく脳梗塞や皮膚疾患や右腕の激痛や親知らずの抜歯やらで、ずーっと身体的な不調に悩まされていたが、抜歯の影響が気にならなくなるだろうことを見越しての参加である。いや、生きていて、健康で、挑戦ができるってことはホントに貴重なことですわ。

  レッスンは9時から。少し早めに到着することを考えると、6時起きである。ぼちぼち寒い時期だが、バイクのレッスンなのだから、準防寒装備でバイクで向かう。どうも一番に到着したっぽい。ヘルメットとブーツはオフロード用を使ったほうがいいということなのでお借りした。どちらも実に快適であった。プロテクタは自前のインナ、グローブもいつもので問題なかった。

  ヤマハのスタッフは10名くらい。生徒は15人。自分も含めて高齢男性が多いが、うち5人が女性だったのは意外だった。まさに老若男女ミックスである。最初の自己紹介によるとオフロードの走行経験がある人は数人だったような。まぁ、そうだわな。

  画像の説明

  レッスンに使う車両は最近発売になったWR125R。シート高は沈み込むサスを考慮してもだいぶ高い。明らかに身長の足りない数名の女性にはTTR125が用意されていた。

  まずは、車両への習熟。自分の車両はクラッチの位置がすごく近く、指2本で握るようにいわれたものの、それをすると残りの指2本の幅が邪魔して切れないほど。慣れずにやたらとエンストこいてしまったが、それオレのせいじゃないからな。

  リアブレーキをロックさせる練習、内側の足を出しつつリーンアウト姿勢でカーブを回る練習、立ち乗りでのカーブ、スラローム、小旋回。足つきが微妙なのと、足をつく場所が砂利なので、ちょっとコケそうになりつつもなんとか回避。カーブ中にズルっといったのを内側の足で回避する場面も。借り物の車両だとこういうのを練習できるのがいい。自分のバイクでも一度なっちゃったことはあるけれど。ちなみにコケている人もいた。

  午前中はずっと砂利の広場での練習。昼食は弁当。午後も前半は広場での練習だが、後半ようやくオフロードコースに。結構な坂を登り降りする練習。1速も2速もあり。基本的には立ち乗りで。ぬかるんだ道を通ったりも。

  画像の説明

  そしてその後。なんとなく列に集合……みたいな感じだが3列に整列させられた。どうも暗黙にウデマエの松竹梅で分けたっぽいw。おそらくだが自分は松チーム。ちょっと不器用そうなオッサンや女性陣が集められてたチームがあったし。

  こういっちゃなんだが、そらバイクのウデマエには大きな差が出るだろう。どれだけオンロードをダラっと走っていてもウマくはならない。YouTubeの動画を観ていても、坂道でのUターンなど、難度の高いことに気づかずにコケている人を見る。意識が低くバイクの応答特性や交通や路面の状況から察知できる情報が少ない人は、そらヘタなままであろう。完璧に機を操れないものは殺される……ホントに死ぬから乗らないほうがいいと思う。

  というわけで、残りの時間はチームごとにオフロードコースへ。後から気づいたが、自分のチームはトレールコースというだいぶガチなコースをガンガン走ってたっぽい。勢いをつけて登るッ、そしてすぐ降りるッ。ジャンプまではしないが、相当な坂である。人の足で登り降りするのは困難なレベルの坂をバイクでガンガンと行く。小旋回コーナーもあり、ちゃんとリーンアウトしないと危ない。

  序盤に水たまりにハマり、最後尾になってしまったけど、最後まで問題なくついて行けた。なんなら、前の人よりウマく小旋回ができてたな。自分はずっと体育がキライで運動音痴かと思っていたけど、むしろ運動神経はだいぶいいほうなのかも。この歳でここまで順応できているんだしね。走っていてヤバいッていう状況もなかった。体力的にも余裕だったし。最後は一番高いトコまで登り、コースを見下ろしてレッスン終了。時間いっぱいまで、実にオフロード走行を満喫できた。実にエキサイティングで楽しかったわぁ。

  画像の説明

  自分の装備に戻って、自分のバイクに戻る。バイクで来てたのはもうひとりだけっぽかった。帰り道、立ち乗りをしてみる。これまでちょっと怖かったそれが、問題なくできるようになっていた。道に砂利の溜まっていたトコロも、来たときよりも心に余裕をもって通過w。レッスンの効果はあったなぁ。

  筋肉痛は多少。どれだけ筋トレしていても、使われにくい筋肉はある。んが、どこかを常に筋肉痛にしている自分なので、どうということもなくw。