MCPサーバーを書き始めた最初の数日で、APIをバインドするもの(DataBento、Buttplug.io)を作ったんだ。それが目的だと思ってた。私の即座の気づきは、1) 自動バインダー(例えばOpenAPI)か、UTCPのようなより良いバインディングシステムが必要だということ、2) システムやAPIのために安全なサンドボックスが必要だ(UAT環境のような)。MCPサーバーやツールを作り続けて、(1)が誤解だったことに気づいた。ほとんどのAPIはコンピュータのために作られていなくて、人間が他の人間と自分のコードをつなげるために作られているんだ。説明するのは難しいけど、エルゴノミクス的なことなんだ。データベースへのAPIはページングやフィルタリングのようなものがあるかもしれない。デザインはURLに収める必要があって、物事を簡素化したり隠したりしたい。LLMはそんなの気にしない。私の洞察はこの記事と似てる。LLMはデータセットへの可愛いAPIなんて必要ない。彼らはコードを書くことができるから、APIを与える必要はなくて、SQLエンドポイント(私の焦点)、Pythonの仮想環境、またはbashプロンプトを与えればいい。そうすれば、UTCPマニュアルのように、ユーザーとLLMがツールの説明やコードヘルパー(SQL、ビュー、ストアドプロシージャ)を開発して、必要なことをより上手くできるようになる。メインのツール説明があって、ユーザー特有の補足もあるかもしれない。だから、私はDuckDBを使ってデータをロードしてロックダウンし、DBテーブルをCSVで返す単一のSQLエンドポイントを提供する。そして、LLMと一緒にエージェントループでツールの説明やヘルパーを作っていく。だから、あなたたちがやっていることはクールだと思うけど、力はAPI接続そのものにはなくて、LLMがそれをどう使うかにあるんだ。でも、そのエージェントアシスト部分を製品に組み込むことができるし、誰かがそれを取り巻く何かを作ることもできるよ。