• システム開発に関わる内容をざっくりと書いていく

ざっくりMCPの仕組みについて

Cursor や ChatGPT に「メール送って」「GitHub に Issue 作って」と頼むとき、裏では Gmail や GitHub といった外部サービスを動かしている。

外部サービスには、それぞれAPI(プログラムから操作するための窓口)がある。AI にその API の説明書を全部読ませると、頭の中が説明書で埋まり、本当に話したい内容のスペースがなくなる。

MCP は、ここをなんとかするための共通の決まり。一言で言うと、

「AI 向けの短い機能一覧」+「その一覧に書いてある操作を、実際の API に渡して実行するプログラム」

くらいのイメージ。


先に結論

  • AI は外部サービスの API を使いたい
  • でも API の説明書全文は載せられない → 短い機能一覧だけ渡す
  • 実際に API を叩くのは、MCP 用のプログラム(API そのものではない)
  • その「短い一覧の渡し方+実行の仕方」の決まりが MCP
  • Cursor では設定ファイルに「どの MCP 用プログラムをつなぐか」を書く

API と MCP の関係

ここが一番誤解しやすい。

  • API … Gmail や GitHub がもともと持っている「操作の窓口」
  • MCP 用のプログラム … その API を代わりに叩くもの。AI 向けの短い機能一覧も出す
  • MCP … AI と「MCP 用プログラム」のあいだのつなぎ方の決まり

つまり、

あなた → AI(Cursor) → MCP 用プログラム → 本物の API(Gmail / GitHub など)

「MCP = API」ではない。API の前に立つ、AI 向けの薄い層が MCP まわり。


なぜ必要?

AI が API を使うには、「何ができるか」「どんな入力が必要か」が要る。それを公式の長い説明書で渡すと、すぐコンテキスト(頭の中のメモ帳)がいっぱいになる。

MCP では、だいたい次だけを短く渡す。

  • 機能の名前(例: 下書き作成)
  • 何をするか(1〜2行)
  • 必要な入力(宛先、件名など)

AI は長い説明書ではなく、この短い一覧から選ぶ。選んだあと、MCP 用プログラムが本物の API を叩く。

もうひとつ、つなぎ方がサービスごとにバラバラだと手間が増える。MCP は「AI ↔ 外部」のつなぎ方をそろえる役目もある。


実際の流れ

  1. Cursor が、つながっている MCP 用プログラムから短い機能一覧をもらう
  2. あなたが「Issue 作って」と頼む
  3. AI が一覧から「Issue 作成」を選ぶ
  4. MCP 用プログラムが GitHub の API を実行する
  5. 結果だけ AI に返り、「作りました」と答える

Cursor でやること

プロジェクトの .cursor/mcp.json に、「どの MCP 用プログラムをつなぐか」を書く。パスワード(トークン)もここで渡すことが多い。

やっていることはシンプルで、「GitHub 用のプログラムを起動して、この鍵を使って」と Cursor に教えているだけ。

フォルダの置き場所などは Agent 設定フォルダ構成 を参照。


Skills との違い

  • Skills … プロジェクト内の「やり方メモ」(手順)
  • MCP … 外のサービス(Gmail、GitHub など)への接続

手順は Skills、外部サービスは MCP。


気をつけること

  • MCP をつなぐ = AI にそのサービスの操作権を渡すこと
  • 本番のメール送信や削除ができるものは慎重に
  • 使わないものは入れない(多いほど重くなる)

よくある誤解

  • 「MCP = API」 … 違う。API はサービスの本物の窓口。MCP 用プログラムがその前に立つ
  • 「MCP = 新しい AI」 … 違う。つなぎ方の決まり
  • 「AI が勝手に全部触れる」 … 設定でつないだものだけ
  • 「説明書を短くしただけ」 … 短い一覧+実際に API を叩く、のセット

まとめ

MCP は、

AI に API の長い説明書を読ませず、短い機能一覧を渡し、実際の API 呼び出しは専用プログラムに任せるための共通ルール

と思えば十分。

最初は、使っているサービス(GitHub など)を1つつないで、「短い機能一覧に何が並ぶか」を見るだけでよい。


関連記事