メインコンテンツへスキップ

MCP面接対策質問集:初級から上級まで(2026年版)

アーキテクチャ、ツール、エージェント、セキュリティ、実運用のシステム設計を網羅したMCP面接対策。現行プロトコル仕様に基づきチェック済み。
更新 2026年7月5日  · 6 分 読む

AIで探索

ChatGPTClaudePerplexity

1年半前まで、Model Context Protocol(MCP)はAnthropicの外ではまだニッチな用語でした。今ではAIエンジニアリング、デベロッパーリレーション、バックエンドの面接でも登場します。多くのチームがエージェントを出荷する際、スタックのどこかにMCPサーバーまたはクライアントを組み込んでいるためです。

MCP(Model Context Protocol)は、AIアプリケーションが外部ツール、データ、プロンプトテンプレートに接続する方法を標準化するオープンプロトコルです。これはN×Mの統合問題を解決します。共通プロトコルがなければ、各モデルとツールの組み合わせごとに独自コネクタが必要になります。MCPなら一度コネクタを作れば、準拠ホストならどこでも利用できます。「AIのUSB-C」と呼ばれることがありますが、最初の説明としては機能するものの、それ以上ではありません。

面接で聞かれる内容は役割に大きく依存します。ジュニア開発者にはツールとリソースの違いの説明が求められるかもしれません。プラットフォームエンジニアには、ステートレスなプロトコルコアがデプロイにどう影響するかを尋ねられる可能性が高いでしょう。本ガイドは難易度とユースケース別に整理しているので、自身の役割に合うセクションに集中してください。

ここでは時期が重要です。MCPは今も変化しているため、あえて明示します。執筆時点での安定版仕様は2025-11-25です。2026-07-28のリリース候補(RC)はロック済みで、約4週間後に出荷予定です。そのRCに含まれる内容は将来の変更として明示しています。

初級レベルのMCP面接質問

職位に関係なく、多くのスクリーニングで問われる内容です。まずは用語から押さえてください。

MCPとは何で、なぜ作られたのですか?

MCPはオープンスタンダードで、もともとはAnthropicが構築し2024年11月にオープンソース化されました。AIアプリケーションを外部のツールやデータソースに接続します。より直截に言えば、MCPを一度実装すれば、ツールごとに新しいコネクタを書く代わりに、MCP互換の任意のサーバーと対話できます。

MCPサーバーとは?

サーバーは、ツール、リソース、プロンプトをMCPクライアントに公開するプログラムです。ローカルのサブプロセスとして stdio経由で動かすことも、HTTPで到達可能な独立したリモートプロセスとして動かすこともできます。サーバーはモデル自体については何も知りません。プロトコルに従ってリクエストに応答します。

MCPクライアントとは?

クライアントはホストアプリケーション(Claude Desktop、VS Code、Cursorなど)内にあるプロトコルレベルのコネクタで、JSON-RPCを介して一度に1つのサーバーと対話します。単一のホストが複数のクライアントを動かし、それぞれがサーバーと1対1の接続を持てます。

MCPは通常のREST APIとどう違いますか?

REST APIは開発者がコードから呼び出すためのものです。MCPはLLMが実行時に発見・呼び出すために設計されています。この違いはワイヤフォーマットの違いより重要です。クライアントはサーバーにtools/listを問い合わせ、利用可能な機能の構造化された説明を得られます。典型的なREST APIはこれを標準では提供しません。単純な1件統合なら、直接のAPI呼び出しのほうが速く安価なことも多いです。

サーバーが公開できるリソースには何がありますか?

URIでアドレス指定できるものなら何でも:ファイル、データベースレコード、ドキュメント、設定値、APIレスポンス。リソースは実行ではなく読み取り専用のコンテキストである点が、初心者の混同ポイントです。

MCPのコア概念に関する面接質問

用語が固まると、各要素がどう対話するかに話題が移ります。

ハイレベルなアーキテクチャは?

3つの役割:ホスト、クライアント、サーバー。ホストはユーザーが使うアプリケーションです。ホストは1つ以上のクライアントを生成し、各クライアントはサーバーと単一接続を持ちます。クライアントとサーバー間のすべてのメッセージはJSON-RPC 2.0で、トランスポートに依らず安定したワイヤフォーマットを提供します。

接続のライフサイクルは3段階で何ですか?

初期化、運用、シャットダウン。初期化では、クライアントがサポートするプロトコルバージョンと機能を送り、サーバーが自分の情報を返します。双方が合意したら、tools/list tools/call といった通常リクエストが運用段階で行われます。シャットダウンはクリーンに閉じるだけです。

MCPは現在どのトランスポートを使っていますか?

stdio(ローカルのサブプロセスサーバー用)と、リモートサーバー用のStreamable HTTPです。Streamable HTTPは2025-03-26の仕様で旧来のHTTP+SSEを置き換えました。2つのSSEエンドポイントを説明するのは既に古い情報です。

ツール、リソース、プロンプトの実際の違いは?

この区別はデータ型ではなく「制御」に関するものです。

  • ツールはモデル主導。LLMが文脈に基づいて呼び出しタイミングを決定します。
  • リソースはアプリケーション主導。ホストやユーザーが読み込みタイミングを決めます。
  • プロンプトはユーザー主導。推論開始前に人が明示的にテンプレートを選びます。

多くの受験者が運ぶデータの種類で定義しますが、それは要点を外しています。

MCPのツール・リソース・プロンプトに関する面接質問

制御モデルが分かったら、次はこれらのプリミティブが実際にどう見えるかです。

ツール定義には何が含まれますか?

必須の namedescription、JSON Schemaで書かれた inputSchemaがあり、2025-06-18の仕様以降は任意の outputSchema と、ツールが読み取り専用か破壊的かなどの挙動を記述するannotationsを含められます。クライアントは、信頼できるサーバーからのものでない限り、アノテーションは信頼せずヒントとみなすべきです。保証ではありません。

ツールとリソース、どちらにすべきかの判断基準は?

副作用がある、または最新のライブ計算が必要ならツール。副作用のない静的または準静的な参照データならリソース。ライブAPIでの天気照会はツール。対応都市のキャッシュ一覧はリソースです。

「動く」以上に、良いMCPツールの条件は?

利用者が達成したいことを中心に設計し、手元のエンドポイントに合わせて設計しないこと。ツールは単発の素のAPI呼び出しではなく、完結したワークフローを包むべきです。説明文も重要です。モデルのコンテキストに入るため、モデルが適切なツールを選べるかに影響します。以下はPython SDKのFastMCP層を使った最小例です。

from mcp.server.fastmcp import FastMCP

app = FastMCP("weather-demo")

@app.tool()
async def get_weather(city: str) -> str:
    """Get the current weather for a city."""
    return f"Weather data for {city}"

@app.resource("config://units")
async def get_units() -> str:
    """Static configuration for the unit system in use."""
    return '{"temperature": "celsius"}'

ツールのdocstringが説明文になります。リソースはURI配下の静的データで、副作用はありません。

クライアントはどうやってリソースを取得しますか?

resources/listで得たURIに対して resources/readを呼びます。サーバーが listChanged機能をサポートしていれば、リソース一覧が変わったときにクライアントへ通知できます。未サポートの場合、クライアントにはシグナルがなく、ポーリングや手動リフレッシュが必要です。

MCPサーバー開発に関する面接質問

ここからは概念を、実際に動く形へ落とし込みます。

公式SDKには何がありますか?成熟度は同じですか?

同じではありません。SDKは層分けされています。TypeScript、Python、C#、GoがTier 1でフル機能対応。JavaとRustがTier 2、Swift、Ruby、PHP、KotlinがTier 3です。Python SDKにはデコレータベースのサーバーAPIであるFastMCPが含まれています。

ローカルサーバーを壊す最も一般的なバグは?

出力すべきでないときにstdoutへ書くことです。 stdioトランスポートはstdoutをJSON-RPCメッセージ専用に使います。余計な print() console.log()はメッセージストリームを破壊し、クライアントのパーサーが失敗します。デバッグ用に記録したいものはstderrへ出力してください。

MCP Inspectorがツールとリソースを表示。動画:筆者。

MCPのエラーハンドリングはどうなっていますか?面接で重要な理由は?

3層あります。トランスポート層の失敗は接続問題です。プロトコル層のエラーは標準のJSON-RPCコード(-32700はパースエラー、 -32600 から -32603は不正リクエスト、未知メソッドなど)を使います。アプリケーション層の失敗(ツール内のAPI呼び出しがエラーを返す等)は、ツール結果でisError: trueを返してモデルが検知・対応できるようにすべきです。

return {
    "content": [{"type": "text", "text": "Rate limit exceeded, try again later"}],
    "isError": True
}

このフラグで、モデルは失敗を認識し、別の手を試せます。

MCPは現状ステートフルですか?

はい。現時点ではセッションは接続レベルで追跡されます。これは本番環境のチームにスケーリング上の課題を生みます。詳細はシステム設計の章で触れます。

MCPのセキュリティとガバナンスに関する面接質問

近年、特にプラットフォームやエンタープライズの役割では、MCP面接でもセキュリティの質問が増えています。

stdioとHTTPのトランスポートで認証はどう異なりますか?

ローカルのstdioサーバーでは、実際上は認証は任意です。起動したプロセス自体を信頼しているためです。HTTPベースのリモートサーバーではOAuth 2.1が枠組みで、2025-06-18の仕様時点でサーバーはOAuth 2.0のリソースサーバーとして分類されます。MCPのあらゆる場面でOAuthが必須というわけではありません。

ツール・ポイズニングとは?

ツールのメタデータ(主に説明やスキーマ)に悪意ある指示を忍ばせ、モデルがどのツールを呼ぶか判断する際にそれを読み込ませる攻撃です。ツールの呼び出し自体が発生していなくても、ツール一覧でモデルが指示を目にした時点で問題になります。

ラグプル攻撃はツール・ポイズニングとどう違いますか?

ツール・ポイズニングは入口の問題です。ラグプルは持続性の問題で、承認時はクリーンに見えても、その後ツール定義が変更され、ほとんどのクライアントには再承認を強制する仕組みがありません。一方を防いでも他方は防げません。

Enterprise-Managed Authorization(EMA)とは?なぜ今重要ですか?

EMAは2026年6月18日に安定化したMCP拡張で、権限付与の判断を各従業員のサーバーごとの同意クリックではなく、組織のIdP(アイデンティティプロバイダー)へ移します。クライアントはSSO時に署名付きIdentity Assertion JWTを受け取り、サーバーの認可サーバーからスコープ付きアクセストークンへ交換します。Anthropic、Microsoft、Oktaがサポートしています。

MCPとAIエージェントに関する面接質問

ここからプロトコルがエージェント設計と結びつきます。

なぜMCPはエージェントにとって重要なのですか?

エージェントにはコンテキストとアクションが必要です。MCPは両方を1つのプロトコルに収めます。先述のとおり、tools/listにより、ハードコードされたリストに頼らず、利用可能なものを動的に発見できます。

Diagram showing an AI agent's host and client connecting over JSON-RPC to an MCP server that exposes tools, resources, and prompts.

エージェントのホスト、クライアント、サーバーモデル。画像:筆者。

MCPとA2Aの違いは?

短いルールはこうです:MCPはエージェントをツールにつなぎ、A2Aはエージェント同士をつなぎます。両プロトコルは今やAgentic AI Foundationの傘下にあり、競合ではなくレイヤー分離として語られるのが一般的です。

Samplingプリミティブとは?今でも言及すべき?

Samplingは、サーバーがクライアント経由でモデル補完を要求できる仕組みで、サーバーがAPIキーを持たずにエージェント的な挙動を行えます。ただし注意点を添えてください。2026-07-28のRCでは、Sampling、Roots、Loggingが新しい機能ライフサイクル方針の下で非推奨になりました。少なくとも12か月は機能しますが、サーバー作者にはモデルプロバイダーのAPIを直接呼ぶよう勧告が強まっています。

エージェントはツール定義でコンテキストウィンドウを圧迫しないよう、どう対処しますか?

すべてのツール定義を最初から読み込まないこと。AnthropicのTool Search手法は、ツールスキーマの読み込みを必要になるまで遅延させ、ツールが多い構成でトークン使用量を85%削減しつつ、全ライブラリへの到達性を維持したと技術記事で報告しています。面接では、遅延読み込みに加え、スコープを絞ったサーバー構成を組み合わせると良いでしょう。

MCPのシステム設計に関する面接質問

シナリオ問題は、定義の暗唱ではなく、制約の下で適用できるかを試します。

MCPを使ったドキュメント検索システムを設計してください。

ここでMCPとRAGは競合しません。RAGは事前にインデックス化されたベクトル検索を担い、MCPはその検索をツールまたはリソースとして実行時にエージェントが呼べるように公開します。他のアクションと並列で扱えます。どちらが置き換えるかではなく、どう組み合わせるかとして答えてください。

社内データ向けのMCPサーバーを設計してください。

単一責任から始めます。1ドメイン1サーバー(例:データベースサーバーとファイルサーバーは分離)で、何でも屋にしないこと。初期からOAuth 2.1、ツールごとの最小権限スコープ、監査ログを入れてください。アクセス制御は稼働後に直すほうが難しいためです。

ステートレス仕様が出る前に、今のMCPをどうスケールさせますか?

将来仕様を既に出荷済みのように語るとつまずきます。サーバーの章で述べたステートフル性がスケーリング課題です。水平スケーリングにはスティッキーなルーティング、共有セッションストア、またはMCPゲートウェイが必要です。2026-07-28のRCではプロトコルレベルのセッションが削除されますが、まだライブではありません。

大規模なマルチサーバー構成で、モデルがトークン過多にならないようにするには?

エージェントの章の遅延読み込みがここでも有効です。デプロイレベルでは、モデルのコンテキストに届く前にサーバー側でフィルタ・集約し、リストを返すものはページネーションを行ってください。要は、コンテキストウィンドウに入るものを制御することです。

MCPの統合に関する面接質問

統合の質問は、MCPが一般的な開発者ツールのどこに登場するかの理解を確認します。

Claude製品群ではMCPはどう使われていますか?

Claude.ai、Claude Desktop、Claude CodeはいずれもMCPをサポートしています。Anthropicは事前構築サーバーのコネクタディレクトリも運営しています。Messages APIにもリモートサーバー用のMCPコネクタがあり、執筆時点ではベータです。

Claude Desktop developer settings showing a locally connected MCP server with one available tool.

接続済みMCPサーバーを表示するClaude Desktop。画像:筆者。

MCPはClaude専用ですか?

いいえ。OpenAIは2025年3月からAgents SDKとApps SDK全体でMCPを採用しました。VS Codeは2025年半ばに仕様全体をサポートし、Cursorは mcp.json経由でMCPをサポートしています。また、Google Cloudは2026年4月時点で50以上のマネージドMCPサーバーをGAまたはプレビューで提供していました。

MCPは具体的にRAGとどう違いますか?

システム設計の短縮版です。RAGは定期更新のナレッジベースから回答し、MCPはライブの照会とアクションを扱います。

上級レベルのMCP面接質問

上級の質問は、現状の動作だけでなく、変化に追随できているかを試します。

仕様バージョンの履歴を説明できますか?

面接官は、いつ何が変わったかを把握しているかを見ています。重要な改訂は5つで、そのうち1つだけがまだ仮の段階です。

Version

Date

What changed

2024-11-05

Nov 2024

Initial release

2025-03-26

Mar 2025

Streamable HTTP replaces HTTP+SSE; OAuth 2.1 introduced

2025-06-18

Jun 2025

Structured tool outputs, elicitation, OAuth resource server classification

2025-11-25

Nov 2025

Current stable spec; async Tasks (experimental), governance formalized

2026-07-28

RC locked May 2026

Stateless core, MCP Apps, extensions framework

重要なのは、どの行が実際に出荷済みかを把握していることです。

現在、MCPは誰が統治していますか?

Anthropicは2025年12月9日に、プロトコルをLinux Foundation配下の指向性基金であるAgentic AI Foundationへ寄贈しました。BlockとOpenAIがAnthropicと共にAAIFを共同設立し、Google、Microsoft、AWS、Cloudflare、Bloombergが支援メンバーです。メンテナーは技術的決定のコントロールを維持しつつ、ガバナンスはより広い財団に移りました。

2026-07-28リリースで実際に何が変わるのですか?

システム設計の章で触れたステートレスコアが主な変更です。initialize/initializedのハンドシェイクと Mcp-Session-Idヘッダーは廃止され、機能情報は各リクエストの_metaで伝達されます。これでスティッキールーティングが不要になります。拡張フレームワークも導入され、MCP AppsやTasksのような任意機能が個別に出荷・安定化できるよう定義されます。

MCP拡張とは?どこでも動作しますか?

いいえ。拡張は任意機能で、Enterprise-Managed Authorization、マシン間認証のためのOAuthクライアントクレデンシャル、ホスト内の対話UIであるMCP Appsなどがあります。サポート状況はクライアントごとに異なるため、普遍的な拡張サポートを前提に設計しないでください。

シナリオベースのMCP面接質問

これらは暗記よりも診断的推論を問うので、症状→原因→対処の流れで答えてください。

ツール呼び出しが断続的に失敗します。最初に何を確認しますか?

ツール結果でisError: trueとして返っているのか、プロトコルレベルのエラーなのかを確認します。これで問題がツール内部のロジックにあるのか、トランスポートにあるのかが分かります。そのうえで、ラップしている外部サービスのレート制限やタイムアウトを確認し、すぐにモデルの問題と決めつけないことです。

エージェントが古いリソースデータで動き続けます。なぜですか?

前述のリソースの話に戻ります。リソースが変わったことをクライアントに伝えるのはlistChangedです。これが宣言されていなければ、クライアントはシグナルを持たず、強制的な更新が起きるまでキャッシュのスナップショットを出し続けます。

あるMCPサーバーが明確なボトルネックになりました。どう動きますか?

ドメインで分割し、コネクションプーリングを追加し、水平スケールします。ステートレスコアが出荷されるまでは、システム設計で触れたセッションアフィニティが必要な場合があります。

ツール呼び出しを通じて機密データが漏えいしました。どう起きましたか?

一般的な原因は2つ。必要以上に広い権限を持つツール、またはモデルのコンテキストに渡す前の出力サニタイズ不足です。対策はツールごとの最小権限と、コンテキスト投入前のサニタイズ工程です。ツール・ポイズニングも関連します。モデルが指示によりデータ転送してしまうことがあります。

MCP面接でよくある誤り

次のようなパターンは頻出です。

  • 前述のRESTとの違いを無視し、MCPをRESTのドロップイン代替とみなす

  • 制御モデルの説明後も、データ型でツールとリソースを定義してしまう

  • stdioとHTTPで同じ認証ルールだと仮定する

  • トランスポート変更後なのに、古いSSEの回答をする

  • 出荷済み仕様と2026-07-28のRCを混同する

  • ツール実行系の設計を問われた際、前述のセキュリティリスクへの配慮を欠く

これらの多くは古いチュートリアルが原因です。

MCP面接への準備方法

このプロトコルでは、実地の練習が重要です。

  • FastMCPまたはTypeScript SDKで小さなサーバーを作り、ツール1つとリソース1つを公開して動かす

  • 公式Inspector(npx @modelcontextprotocol/inspector)をインストールし、表示される生のJSON-RPCトラフィックを見る

  • 実際のクライアント(Claude Desktop、VS Code、Cursor)に接続し、初期化ハンドシェイクを観察する

  • 二次情報ではなく仕様の変更履歴そのものを読む。特に2025-06-18と2025-11-25の項目

  • 本記事のシステム設計シナリオの中から1つ選び、面接前にフル回答を書いてみる

これらの手順で、定義レベルの知識と実地の理解を分けて身につけられます。

まとめ

MCPの定義を暗記するだけでは不十分だと思います。より難しいのは、どの回答がどの仕様バージョンに属するかを把握することです。現行のデプロイは接続レベルのセッションを扱っていますが、2026-07-28のRCはステートレスコアを示します。両者を混同すると、アーキテクチャの回答は自信満々でも正確性に欠けます。

だからこそ、MCPは読むだけでなく実際に試してみるべきだと考えます。準備編の小さなサーバーを作り、クライアントがツールを列挙しリソースを読む様子を観察し、どこまでがプロトコルでどこからがアプリ設計かに注意を払ってください。有用な面接回答は「MCPはAIのUSB-Cです」ではありません。「MCPが標準化する範囲、しない範囲、そして最近の変更点はこれです」です。

より体系的な学習には、Building Scalable Agentic Systemsコースで、エージェント設計、テスト、デプロイの文脈でMCPとA2Aを扱っています。

FAQs

すべての仕様バージョンの日付を暗記する必要はありますか?

いいえ。順序と各段階で何が変わったかを把握してください。特にトランスポートの切り替えと、どの版が出荷済みかです。面接官は、正確な日付の暗唱より、なぜ変更が起きたかを説明できるかを重視します。

Samplingは非推奨になりつつあります。学ぶ価値はありますか?

現時点では、はい。非推奨が出荷された後も少なくとも1年間は完全に動作します。段階的廃止の理由(セキュリティの懸念と、複雑さに対する採用の限定性)を理解しておいてください。

MCP未経験の場合、どのSDKから始めるべきですか?

初めてならPython+FastMCPが最も簡単です。デコレータベースのAPIが多くの定型を隠してくれます。スタックがJavaScript中心ならTypeScriptを。こちらもTier 1です。

2026-07-28の仕様が出た後も、MCPは重要ですか?

おそらく、はい。前述のステートレスコアは、本番スケーリングの課題を解決するためのものです。プレッシャーの下でプロトコルが単純化されるのは、成熟の兆しであって退潮ではないことが多いです。

初級レベルのMCP面接は、どの程度技術的になりますか?

役割によります。一般的なAIエンジニアリングのスクリーニングなら、ホスト/クライアント/サーバーや、ツール/リソースの違いまでで止まるかもしれません。プラットフォームやインフラの役割では、比較的ジュニアでもトランスポートや認証に踏み込むことがあります。

トピック

Datacampで学ぶ

Courses

拡張性のあるエージェントシステム構築

1時間30分
18.5K
MCPやA2Aなどの力を借りながら、AIエージェントを拡張するためには何が必要かを学びます。
詳細を見るRight Arrow
コースを開始
もっと見るRight Arrow