記事には重要なコンテキストが欠けてるね。まず、MCP ツールはリクエストごとに送信される。Notion の MCP 検索ツールの説明を見てみると、基本的にミニチュートリアルみたいになってる。これがコンテキストウィンドウに直で入るから、ほとんどの場合、MCP ツールの読み込みは全か無かなんだよね(他の手段でツールを事前選択しない限り)。一般的に MCP はコンテキストをかなり膨らませちゃう。最近 GitHub Copilot の VSCode 拡張で約 20 のツールを数えたけど、これは多いよ!次に、MCP ツールは合成できない。Notion の検索ツールを呼び出すと、彼らが返すことに決めたものが全部返ってくるから、量が多いかもしれない。モデルにはどれだけのデータを処理するか決める手段がないんだ。通常、識別子や URL みたいなトークンに優しくないデータポイントがたくさん含まれた JSON データダンプが返ってくる。一方で、CLI ベースのアプローチはスクリプト可能。コーディングアシスタントは通常、jq や tail を使ってデータをチャンクごとに処理するようにパイプするから、最近はこうやってトレーニングされてるんだよね。エージェントで MCP を使いたいなら、MCP モデルとそのすべてのバッジを持ち込む必要があるけど、これはかなりの量になる。OAuth の処理、ツールの読み込みと選択、リロードなどを扱わなきゃいけない。シンプルな解決策は、すべてのことをシステムレベルで扱う単一の MCP サーバーを持って、そこからツールを呼び出す小さな CLI を持つことだと思う。mcpshim の場合(別のコメントで投稿したやつね)、CLI は非常にシンプルな UNIX ソケットを使ってサーバーと通信して、簡単な JSON でやり取りするんだ。実際、5 行のコードで bash クライアントを作れるくらい簡単。最近の AI エージェントは SKILLs の使い方を知ってるから、この方法はほぼ普遍的だよ。だから、もっと CLI ツールを増やすのが目標なんだ。でも、すべてのサービスのために CLI を書く代わりに、既存の MCP の上にピボットすればいいんだ。これでコンテキストの問題を非常にエレガントに解決できると思う。