-
Notifications
You must be signed in to change notification settings - Fork 0
note use mcp or cli
kocya edited this page Nov 30, 2025
·
2 revisions
# What if you don't need MCP at all? について
MCPはほとんど必要ないよ、という議論について。
https://x.com/iwashi86/status/1992450542870659395 https://news.ycombinator.com/item?id=45947444
- 多くのMCPサーバーは「なんでも対応しよう」とし過ぎてツール数や説明が膨らみ、コンテキストを大量消費し非効率になっている。
- ツールが多いとエージェントが混乱しやすく、MCPサーバー自体も拡張・変更が難しく、結果の保存もコンテキスト経由になりがちで非効率。
- 著者は「エージェントにBash+コードを書かせるだけのシンプルな構成」の方がよいと主張し、ブラウザ操作も起動・移動・JS実行・スクショ程度の小さなスクリプト群で十分と考えている。
- エージェントがコードを書けることを活かし、その場で必要なスクリプト(例:要素をクリックで選択するツールやCookie取得ツール)を追加生成する運用が可能で柔軟。
- これはAnthropicのSkillsに似つつも、任意のエージェントで使える汎用的なやり方であり、CLIツールをパスの通ったフォルダに置き、READMEで使い方だけ教えればよい。
- 結論として、MCPよりも単純なコード実行環境+CLIツールの方が、トークン節約だけでなく、開発速度・柔軟性の面でも優れていることが多く、その代わりツール管理は開発者自身の責任となる。
どんなターゲットの話なのか(エージェント開発の話が中心なのか、IDEやCLI経由でMCPを使う話なのか)は不明。 後者の場合は多数の開発者が使うという観点で、再現性やポータビリティを考えるとMCPを開発or使うことが有用であると思われる。 前者の場合については後述。
- ソフトウェア設計
- エージェント開発でMCPを利用する事には、MCPを介して利用するリソースについてのドメインとエージェント側のドメインを分ける意味合いがある
- 複数のエージェントを開発する際に、同じ外部リソースの取り扱いをしたいケースがある。この時再開発をする必要がないよう再利用性を高める意図でMCPを利用する。
- 同じMCPでも「浅いAPI」のような設計思想のMCPでは、利用側のハンドリングが多く必要になる上に、MCPのツール数も増えてコンテキストを圧迫する。「深いAPI」の設計思想のAPIではそのような問題は起きない。
- 精度と再現性
- LLMに何かをお願いするには確率で結果が変動する可能性があり、再現性が低い。その再現性を高めるために決まったフローをひとまとめにしてMCPとして提供することに意味がある
つまり、再利用性が必要である場合や、再現性を高めたい場合、「深いAPI」の設計思想でMCPサーバーを構築して利用することは有用である。 MCPを使わないのは、再利用性や再現性が求められない場合に限る、と考えている。 ただ「深いAPI」の設計思想が行き過ぎると柔軟性に欠けるため、ここはシステムの要求に合わせて線引きをする必要がある。 勿論開発効率や目的を考えた際に、コード実行環境およびCLIツールを優先する考えがあっても良いと思う。