powered by TechFeed
表示モード
Deep Dive

MCPサーバーの大半は存在すべきでない — 作る前にAPIとCLIを直すべき理由、8つのチェックリスト

6月30日、Evil Martiansが「Most MCP servers don't need to exist. Your case might be an exception.」と題した記事を公開した。MCPサーバーを本当に構築すべきかを判断するための実践的フレームワークについて詳しく紹介されている。

6月30日、Evil Martiansが「Most MCP servers don't need to exist. Your case might be an exception.」と題した記事を公開した。MCPサーバーを本当に構築すべきかを判断するための実践的フレームワークについて詳しく紹介されている。

MCP(Model Context Protocol)はAnthropicが2024年末に導入したオープン標準で、Claude、ChatGPT、Cursor、VS CodeといったAIクライアントがツールを発見・呼び出し、製品側の認可・権限チェックと連携するための統一プロトコルだ。ここ数カ月でMCPサーバーの実装が急増しているが、Bloomberryが1,412のMCPサーバーを分析した調査によれば、MCPサーバーを公開している企業の約半数は、そもそも公開APIを持っていない

Evil Martiansはこの状況を「最初のハイプウェーブが生んだ半端な実装の量産」と指摘する。


まず覚えるべき一行

APIはソフトウェアコントラクト。CLIは実行コントラクト。MCPはエージェントアクセスコントラクト。Skillsはそれらをうまく使うための訓練だ。

MCPサーバーは製品への第三のインターフェースである。第一(API)と第二(CLI)が整っていなければ、第三に土台はない。


MCPを作る前に、CLIとAPIを直せ

よくある問い「CLIを出すべきか?」は間違った問いだ。コーディングエージェントはすでにCLIを持っている。正しい問いは「既存のCLIはエージェントが操作できる品質か?」だ。

ここでいう「品質」とは、安定した非インタラクティブなコマンド、構造化された出力、プログレスバーのようなhuman-onlyパターンがstdoutに混在していないこと。Playwrightはこのトレードオフを明確に示している——CLIはトークン効率重視(コミュニティベンチマークでは約4倍のトークン削減)、Playwright MCPは永続ブラウザ状態が必要な専門ループ向け、と使い分けを明確にしている。

「APIがあるからエージェントに繋げばいい」も間違った問いだ。既存の内部APIはデータの「保存形態」に最適化されており、「何をしたいか」という意図レベルには設計されていない。IDや改ページカーソル、ネストしたオブジェクトの連鎖はデータベースのために存在する。それをそのままエージェントに渡しても、モデルは限られたコンテキストウィンドウをデータモデルの解読に浪費する。

「あなたがやっているのは、能力の公開ではなく、データベースをましなブランディングで包んだ公開だ。」

MCPに切り替えてもこの問題は解決しない。ツールがデータベースの行の形をしていれば、MCPは同じ問題を新しいプロトコルで包むだけだ。


MCPより先にSkillを試せ

Skillとは、エージェントがAPIやCLIを正しく使うための手順書・サンプル・テンプレート・スクリプトをまとめたものだ。サーバーを立てずに「使い方の規律」を与える手段と考えるとよい。Anthropicは公式のSkillsディレクトリを公開しており、NotionやCanvaのパートナー製Skillが並んでいる。

以下の状況ではMCPよりSkillが先に来る:

  • 能力はあるが規律がない——エージェントはAPIやCLIを持っているが使い方が悪い(呼び出し順の間違い、エッジケースの見落とし)場合、Skillがプレイブックをコード化する。
  • 需要を安く検証したい——利用実績が出れば、MCPを作る根拠が固まる。

SentryはMCPとClaude Code用プラグインを組み合わせ、共有Skillをセットで提供している。


MCPを正当化する唯一の大きなシグナル

MCPサーバーを構築すべき最大の判断基準は「自分がコントロールしていないAIクライアントが同じオペレーションを消費するか」だ。

ユーザーがClaude、Cursor、ChatGPT、GitHub Copilot、独自エージェント上で製品を利用したい——この状況が成立するとき、一つの統制されたコントラクトのコストが、N個のクライアント固有統合が徐々に乖離していくコストを下回る。

Linear、Sentry、Resend、Cloudflare、StripeがMCPを公式リリースしたのはこの理由だ。LinearはAPIを持ちつつ、ユーザーがClaude・Cursor・ChatGPT上で作業するためMCPを追加した。


MCPサーバーに入れていいもの・危ないもの

「サーバーに何が入るか言語化できないなら、まだ作る準備ができていない。ルールは短い:オペレーションをカプセル化する。ワークフローではなく。」

区分 内容
許可 決定論的な組み合わせ、バリデーション、データのプロジェクション、権限チェック、プレビュー
危険 自律的なゴール選択、不可逆なビジネス判断、検査可能なプレビューなしの多段計画
グレーゾーン 要約、ランキング、Issue作成(明示的な制約・決定論的な入力・モデルがコミット前に提示するプレビューがある場合のみ有効)

成功例:SentryのAPIはIssue、イベント、リリース、パフォーマンス、アラート、課金、組織管理にまたがるが、MCPは約12ツールに絞り、コーディングエージェントが本番Issueをデバッグするワークフロー一本に集中した。管理・チーム管理・課金はAPIに残す。月間5,000万リクエストを超えた。

例外:Cloudflareは約2,500エンドポイントを持ち、1ツール/1エンドポイントでは初回メッセージ前に100万トークン超のスキーマを消費してしまう。代わりにsearchexecuteの2ツールのみを公開し、エージェントにコードを書かせる「コードモードパターン」(スキーマはサーフェスサイズに関わらず約1,000トークン)を採用した。


見落とされがちなコスト

コンテキストバジェットAnthropicの報告では、5サーバー・58ツールの構成で初回メッセージ前に約55,000トークンを消費、最悪ケースでは134,000トークンに達した。ツールカタログはプロンプトの一部であり、インターフェース設計の悪さが直接レイテンシとコストに化ける。

セキュリティ負債Astrixによる5,205リポジトリの監査では、88%が認証情報を要求し、53%が静的APIキーまたはPATに依存、OAuthを実装しているのは**わずか8.5%**だった。MCPはAPIセキュリティにエージェント固有のリスク(共有レジストリでのツールポイズニング、ツール出力経由のプロンプトインジェクション等)が加わる。

クライアント断片化:MCPの仕様にはtools・resources・promptsが含まれるが、クライアントごとにサポート範囲が異なる。GitHub Copilotのクラウドエージェントは現状toolsのみでresources・promptsは非対応、OAuth未対応。CursorはほぼフルサポートでElicitation(エージェントがユーザーに確認を求めるプロトコル機能)にも対応。Gemini CLIはpromptsをスラッシュコマンドとして扱う。最も弱いターゲットクライアントに合わせて設計しなければ、本番でユーザーの半分が使えなくなる。


8つの判断チェックリスト

元記事末尾には、MCPサーバーを構築すべきかを判断するための8問のフローが用意されている。全問を以下に紹介する:

  1. 使うのは自分がコントロールする1つの社内エージェントだけか? → 直接APIツールを使え。MCPは不要。
  2. 作業はシェルパイプラインで完結するか? → まずCLIをエージェント操作可能にせよ。
  3. 欠けているのは能力か、使い方の規律か? → 規律ならSkillを出せ。
  4. 自分がコントロールしないAIクライアントが操作を消費するか? → ここがYesになって初めてMCPが視野に入る。
  5. ツールに入れるオペレーションを一文で言語化できるか? → できなければ設計が固まっていない。先にスコープを絞れ。
  6. 不可逆な操作やビジネス判断をツールに含めようとしていないか? → 含めるなら、プレビューと明示的な確認ステップを必ず設けよ。
  7. 対象クライアントはtools以外(resources・prompts・OAuth)をサポートするか? → 最も機能が限定されたクライアントに合わせて設計せよ。
  8. MCPサーバーのコンテキストコストを試算したか? → ツール数とスキーマサイズを見積もり、トークン消費が許容範囲内か確認してから実装に入れ。

詳細はMost MCP servers don't need to exist. Your case might be an exception.を参照していただきたい。