0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCPサーバーって何ができるの【初学者向け】

0
Last updated at Posted at 2026-08-02

疑問

最近よく目にする「MCPサーバー」という言葉。
簡単に調べてみた結果、感想は以下の通り。

APIあれば充分じゃない?
わざわざMCPサーバーとして独立させる必要って何?

気になったので、AI初学者なりにChatGPTと対話しながら理解を深めました。
以下調べたことのまとめです

MCPとは

MCPは「Model Context Protocol」の略。

"外部のAPI、データベース、ファイル、ローカル機能などを、AIが理解して利用できる「道具」として提供するための共通規格"であり、

全体の構造は例えばこんな感じ。

ユーザー
  ↓ 目的を依頼
AIモデル
  ↓ 必要な道具を判断
AIアプリのMCPクライアント
  ↓ MCPによる共通通信
MCPサーバー
  ↓ 実際の処理
外部API・DB・ファイルなど

MCPサーバーの中にAIがいるわけではない

改めて確認、MCPサーバー自体にAIモデルが搭載されているわけではない。

MCPサーバーが持っているのは、主に次のようなもの。

  • ツールの名前
  • ツールの説明
  • 入力形式
  • 実際の処理
  • 認証情報
  • 入力検証や権限制御

例えば、ゲームのプレイヤーランキングを取得するツールなら、概念的には次のように定義するらしい(by ChatGPT)

server.registerTool(
  "get_player_ranking",
  {
    description: "指定期間のプレイヤーランキングを取得する",
    inputSchema: {
      period: "string",
      limit: "number",
    },
  },
  async ({ period, limit }) => {
    // 実際のランキングAPIを呼び出す
  },
);

この説明文はMCPサーバー内のAIが考えているわけではなく、開発者が実装した固定のツール定義。

もちろん、CodexなどにMCPサーバーを作ってもらうことはできるが、完成したMCPサーバーにAIが内蔵されているという意味ではない。

AIモデルが直接MCPサーバーを呼ぶわけではない

AIモデルとMCPサーバーの間にはAIアプリが存在するとのこと。

AIモデル
   ↕ 判断・ツール実行要求
CodexなどのAIアプリ
   ↕ MCP通信
MCPサーバー

それぞれの役割を整理する。

人間の役割

  • 達成したい目的を伝える
  • AIに許可する操作を決める
  • 重要な操作を承認する
  • 最終結果を評価する

AIモデルの役割

  • 依頼の目的を理解する
  • 必要な情報を考える
  • 使用するツールを選ぶ
  • ツールを使う順番を組み立てる
  • 取得結果を分析して説明する

AIアプリの役割

  • MCPサーバーに接続する
  • 利用可能なツールを取得する
  • ツールの説明をAIモデルに渡す
  • AIモデルからの実行要求をMCPサーバーへ渡す
  • 実行結果をAIモデルへ返す

MCPサーバーの役割

  • AIが利用できるツールを公開する
  • 入力を検証する
  • 外部APIやDBへアクセスする
  • 認証情報を管理する
  • 許可された処理だけを実行する
  • 結果を共通形式で返す

MCPによって「目的レベル」で依頼できる

例えば、ゲームの売上が下がった原因を調べたい時、手段レベルまで依頼をブレイクダウンできれば、直接APIを叩きにいける

日別売上APIを呼び出してください。
次にプレイヤー数を取得してください。
継続率とステージ別離脱率も取得し、前月と比較してください。

ただ、MCPで必要なツールをAIに提供していれば、以下のような目的レベルでの依頼で良い。手段とかはAIが考えてくれる。

最近、ゲームの売上が落ちた原因を調べてください。

あとはAIが考えてくれる(例えばこんな感じ

  1. 日別売上を取得する
  2. プレイヤー数を取得する
  3. 継続率を取得する
  4. ステージ別離脱率を取得する
  5. アプリのエラー発生率を取得する
  6. 変化が起きた時期を比較する
  7. 原因の仮説を報告する

つまり、人間が手段レベルの指示を組み上げなくても、目的レベルで仕事を依頼しやすくなる。

既存APIを直接AIに使わせればよくないか

外部向けAPIがあるなら。
AIに直接そのAPIを使わせればよいのでは?

結論から言えば、直接使わせても問題ないし、MCPは必須ではない。

実装方法は大きく2つ。

AIアプリにAPI連携を直接実装する

AIモデル
  ↓
AIアプリ内の独自連携
  ↓
外部API

MCPを利用する

AIモデル
  ↓
AIアプリのMCPクライアント
  ↓
MCPサーバー
  ↓
外部API

どちらでも同じ結果を実現できるが、「AIに直接APIを使わせる」 には、実際には考えなきゃいけないことは非常に多い。

  • API仕様をAIへ伝える
  • AIの出力から引数を取り出す
  • HTTPリクエストを実行する
  • 認証情報を付加する
  • 入力を検証する
  • エラーを処理する
  • 危険な操作を拒否する
  • レスポンスをAIへ返す

さらに、AIモデルはAPIの呼び出し方法を考えることはできるが、通常はモデル自身が自由にHTTP通信を実行するわけではない。

→結局、AIとAPIを仲介する層が必要になる。

その仲介層を独自仕様で作ってもいいし、MCPという共通仕様で作ってもいいという理解。
(共通仕様で作ることによる再利用性のメリットとかも気になる

AIに万能なHTTPツールを渡してみちゃう

AIに次のような万能ツールを渡す方法も考えられます

http_request(
  method,
  url,
  headers,
  body
)

しかし、もちろん危ないことはわかります。

  • 意図しないURLへアクセスできる
  • 認証情報がAIから見える可能性がある
  • 削除や更新APIを誤って呼ぶ可能性がある
  • API仕様全体をAIへ渡す必要がある
  • 入力を安全に制限しにくい

そこで、AIには用途を限定したツールを渡すことにする。これがMCPサーバ内で実装されているもの。

get_player_ranking(period, limit)
get_daily_sales(date)
get_stage_dropoff(stageId)

この形なら、AIは実際のURLやAPIトークンを知る必要がないなどのメリットがある。

MCPサーバー側で、アクセス先や認証処理を隠す↓

async ({ period, limit }) => {
  return fetch(`${API_URL}/ranking`, {
    headers: {
      Authorization: `Bearer ${SECRET_TOKEN}`,
    },
  });
}

AIに必要な能力だけを、分かりやすく安全な形で提供できる。

MCPを作るのはどんなときか

MCPが向いているとき

  1. AIに目的レベルで仕事を依頼したい
  2. その仕事に外部データや操作が必要
  3. AIが複数のツールから手段を選ぶ必要がある
  4. 同じ機能をAIから繰り返し利用したい
  5. 複数のAIアプリから再利用したい

例えば、次のようなユースケース

  • 売上低下の原因を複数データから調査する
  • 障害の原因をログや監視データから特定する
  • 顧客情報と注文履歴を調べて問い合わせへ回答する
  • 上位ユーザーと離脱ユーザーの行動を比較する
  • 社内の複数システムから情報を集めてレポートを作る
  • 状況を判断して運営業務を実行する

MCPを作らなくてもよいケース

一方、次のような処理には通常のAPI実装で十分

  • ゲーム内で自分のランキングを表示する
  • ボタンを押して決まったAPIを呼ぶ
  • AIによる判断が必要ない
  • そのアプリからしか利用しない
  • 一度しか使わない単純な処理

例えば、

ゲーム内のランキングボタンを押すと、自分の順位が表示される

という機能は、普通にゲームアプリからランキングAPIを呼べばいい。

一方、

上位プレイヤーと初心者の行動データを比較し、初心者が離脱する原因を説明して

という依頼では、AIが複数のデータ取得手段を考えて選んでくれるため、MCPが役立ちます。

複数のAIから呼び出せるのはなぜ?

MCPが共通の接続規格になっているから。

MCP対応のAIアプリは、接続したMCPサーバーに利用可能なツールを問い合わせられるようになっているらしい。(JSONとか?

{
  "name": "get_player_ranking",
  "description": "指定期間のプレイヤーランキングを取得する",
  "inputSchema": {
    "period": "string",
    "limit": "number"
  }
}

いろんなAIアプリが接続できる

Codex ─────────┐
社内AI ────────┼─ MCP ─→ 自作MCPサーバー ─→ 外部API
別のAIアプリ ──┘

特定のAIアプリ専用にAPI連携を何度も実装する必要がなくなる。

AIが進化したらMCPは不要になるのか

例えば、AIが次の作業を自動化できるようになったとして

  • OpenAPI仕様の読み取り
  • ツール名や説明文の生成
  • 入力スキーマの生成
  • MCPサーバーのコード生成
  • APIエラーへの対応

次の問題は残る。

  • どのシステムへのアクセスを許可するか
  • 認証情報をどこで管理するか
  • 読み取りと更新のどちらを許可するか
  • 削除や送金前に承認を求めるか
  • 誰がいつ何を実行したか記録するか
  • 実際の通信をどのプロセスが実行するか

ただ、AIによってMCPサーバーが自動生成され、利用者が存在を意識しなくなる可能性はある...と思う

まとめ

MCPの本質的な価値は、

AIと外部システムの間に必要な、説明・実行・認証・権限制御を共通化すること

そしてMCPによって、人間の依頼が手段レベルから目的レベルに変わる。

手段レベル:
「売上APIと継続率APIを呼び、前月と比較して」

目的レベル:
「売上が落ちた原因を調べて」

次回はMCPの実装例についてみていきたいと思っています。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?