Claude Codeを使うなら知っておきたい「API」と「MCP」の話
Claude Codeが、自分のパソコンの外にあるGoogleドライブまで読めるのはなぜか。その仕組みはAPIとMCPの2つで説明できます。同じ中身が人間向けの画面とプログラム向けのデータの2つの形で出てくることをブラウザで確かめ、そのうえでGoogleドライブをコマンド1行も打たずにClaude Codeへつなぎます。つないだあとに確認すべき3つのことまで。
この記事の内容をスライドにまとめました。ビジュアルで先に把握したい方はこちらからどうぞ。
👉 スライドで見る(← → キーまたはスワイプで操作できます)
Claude Codeを使っていると、こんな場面に出くわします。
- 「Googleドライブのあのファイル、読める?」と頼んだら、本当に読んできた
/mcpと打ったら、見覚えのないサービス名と、その下に何かの一覧が並んだ- 誰かの記事に「MCPサーバーを入れると便利」と書いてある。入れると何が起きるのか分からない
Claude Codeは、自分のパソコンの中のファイルを読み書きするツールのはずです。それがなぜ、自分の外側にあるものまで触れるのか。
その仕組みは、API と MCP という2つの言葉で説明できます。この記事はその2つの話です。
読み終わったときにできるようになっているのは、次の5つです。
- APIが何かを自分の言葉で言える
- 同じ中身が「人間向け」と「プログラム向け」の2つの出方をすることを、自分のブラウザで確認できる
- MCPが何のためにあるかが言える
- 自分のGoogleドライブを、コマンドを1行も打たずにClaude Codeにつなげる
- つないだあとに確認すべきことが分かる
コードは1行も書きません。コマンドも、覚える必要はありません。見てほしいのは、それが何と何をつないでいるのか、のほうです。
この記事の内容は、Claude Code 2.1.252 で確認しています。バージョンによって画面や出力の細部は変わります。
先に全体像 ── 2つの言葉を1行ずつ
細かい話に入る前に、結論だけ置いておきます。
APIは、プログラム同士の窓口です。
MCPは、AIに道具を渡すための共通の規格です。
この2つは、並んでいる別々の技術ではありません。MCPで繋いだ先の多くは、そのサービスのAPIを呼んでいます。 だから、APIが分からないとMCPも分かりません。順番にいきます。
APIは、人間向けの画面ではなく「プログラム向けの入口」
私たちが普段見ているWebサービスの画面は、人間向けに作られた画面です。文字の大きさ、ボタンの位置、色。ぜんぶ人間が読みやすいように作られています。
でも、相手がプログラムのときは、その飾りが全部じゃまになります。プログラムは「ボタンが青いこと」に興味がありません。欲しいのは中身のデータだけです。
そこで、同じサービスにもう1つ、プログラム専用の入口が用意されています。それがAPIです。
やり取りは4ステップ
- 決まった住所(URL)に、決まった形でお願いを送る
- サービス側がそれを受け取って、処理する
- 決まった形で返してくる
- 受け取ったプログラムが、それを画面に出したり、計算に使ったりする
3番目が、いちばん大事なところです。返ってくるのはデータだけで、見た目は付いてきません。
つまり、中身は同じで、出方が2つある。片方が人間向けの画面、もう片方がプログラム向けのAPIです。
言葉だけだとピンと来ないと思うので、実際に並べて見てみます。
実際に並べてみる ── 同じ中身が、2つの出方をする
ここは読みながらそのまま試せます。ログインもアカウントも要りません。ブラウザさえあれば、MacでもWindowsでもスマホでも同じものが見られます。
まず、人間向けの画面
ブラウザでこのアドレスを開いてください。私が公開しているツールのページです。
https://github.com/keyakilabs/ai-usage-board
説明文が書いてあって、右側あたりに TypeScript という言語の表示があるはずです。これが人間向けの画面です。
次に、プログラム向けの入口
同じブラウザで、今度はこちらを開きます。
https://api.github.com/repos/keyakilabs/ai-usage-board
画面の飾りが全部なくなって、文字の固まりが出てきます。その中に、こういう行があります。
"full_name": "keyakilabs/ai-usage-board",
"description": "複数のAIコーディングツール(Claude Code / Gemini CLI / ...)の使用量とコストを、ローカルで一枚にまとめるCLIツール。...",
"language": "TypeScript",
よく見てください。
さっきのページに出ていた説明文が、ここでは "description": の右側に、そのまま入っています。言語も "language": "TypeScript" と書いてあります。
同じ中身が、人間向けの見た目つきと、プログラム向けのデータだけ、2つの形で出ている。 これがAPIです。
読みにくいと思ったら、それで合っています。これは人間が読むために作られていません。 ここで出てきたこの書き方には JSON という名前がありますが、記法の話はまた別の回に。
鍵の渡し方は、2種類ある
いまのGitHubの例は、誰が見てもいい情報だったので鍵が要りませんでした。ログインなしで開けたのはそのためです。
でも、自分のデータを触るAPIには、鍵が要ります。 そして鍵の渡し方は2種類あります。ここを分けて理解しておくと、あとの話が全部つながります。
① APIキーという文字列を、自分で貼る
sk- みたいな文字から始まる長い文字列を、サービスの管理画面で発行して、自分でコピーして設定ファイルに貼る方式です。
パスワードと同じ扱いです。人に見せません。 シリーズのGit / GitHubの回で「記録するものを選ぶときに、見せたくないファイルまで巻き込んでしまう」という話をしましたが、あの見せたくないファイルの中身の代表格が、このAPIキーです。
② サービスのログイン画面で、許可を出す
こちらは、鍵の文字列を自分で触りません。
「このアプリに、あなたのドライブを読ませていいですか?」という画面が出るので、「はい」と答えるだけ。これで裏側で鍵のやり取りが済みます。
このあとつなぐGoogleドライブは、こちらの方式です。
どちらの場合も、渡しているものは同じ
方式は違っても、渡しているのは「自分のアカウントを触る権利」です。
だから、何を許可したのかは、あとで必ず確認します。 この記事の最後にもう一度出てきます。
ここからMCP ── なぜ「もう1つの規格」が要ったのか
APIの話が終わったので、MCPに入ります。
問題はここからです。APIは、サービスごとに形がバラバラです。
住所の付け方も、お願いの送り方も、返ってくるデータの形も、サービスごとに違います。人間がプログラムを書くならそれでもいい。ドキュメントを読んで、そのサービス用のコードを書けばいいだけです。
でも、AIに使わせようとすると話が変わります。 サービスの数だけ繋ぎ込みを作ることになるからです。
そこで出てきたのがMCP(Model Context Protocol)です。公式サイトの説明はこうなっています。
MCP is an open-source standard for connecting AI applications to external systems. (MCPは、AIアプリケーションを外部のシステムにつなぐための、オープンソースの標準です)
そして、同じページにこう書いてあります。
Think of MCP like a USB-C port for AI applications. (MCPは、AIアプリケーションにとってのUSB-Cポートのようなものだと考えてください)
このたとえが、いちばん腹に落ちると思います。USB-Cが機器のつなぎ方を1つに揃えたのと同じで、MCPはAIと外部のつなぎ方を1つに揃えました。
作ったのはAnthropic(Claudeを作っている会社)で、2024年11月にオープンソースとして公開されています。いまはClaudeだけでなくChatGPT、Visual Studio Code、Cursorなども対応していて、Claude専用の仕組みではありません。
誤解しやすいところ:MCPはAPIの置き換えではありません
ここだけは間違えないでほしいところです。
このあとつなぐGoogleドライブのMCPサーバーは、Google自身が drivemcp.googleapis.com というアドレスで動かしています。 googleapis.com ──つまり、その裏ではGoogleのドライブ用のAPIが動いているわけです。
変わったのは、AIへの渡し方が1つに揃ったこと。 それだけです。APIが要らなくなったわけではありません。
MCPサーバーが渡してくるのは、この3つ
MCPサーバーというのは、AIに使わせるものを差し出すプログラムのことです。自分のパソコンの中で動くものもあれば、ネットの向こうで動いているものもあります。
そのサーバーがAIに渡してくるものは、公式に3つと決まっています。
1. 道具(tools)── AIが実行できる操作
AIが実際に呼び出せる機能です。「ファイルを探す」「中身を読む」といった動作がここに入ります。
2. 資料(resources)── AIに読ませるデータ
AIが参照するための、ファイルのようなデータです。
3. 定型文(prompts)── 決まった手順のひな形
「こういうときはこう聞く」という、使い回せるテンプレートです。
この3つの中で、いちばん効くのは1つ目の「道具」です。 AIができること、そのものが増えるからです。
実際、これからつなぐGoogleドライブのサーバーが渡してくるのも、道具だけでした(資料も定型文も返ってきません)。「ファイルを探す」「中身を読む」といった操作が、Claudeの手元に追加されます。
では、それが増える瞬間を見てみます。
実際につないでみる ── Googleドライブを、コマンドなしで
ここが一番おもしろいところです。コマンドは1つも打ちません。
手順
- ブラウザで
claude.ai/customize/connectorsを開く - 一覧から Google ドライブ を探して、コネクト(Connect) を押す
- Googleのログイン画面が出るので、何を許可するかを確認してから「許可」を押す
- Claude Code に戻る
これだけです。さっき説明した鍵の渡し方②が、まさにこれでした。
4番のあと、Claude Codeで /mcp と打つと、つながっているサーバーと、そこから増えた道具の一覧が見られます。ターミナルからも確認できます。
$ claude mcp list
claude.ai Google Drive: https://drivemcp.googleapis.com/mcp/v1 - ✔ Connected
claude.ai の画面でつないだものが、そのままClaude Codeにも出てきます。 そういう仕組みになっているからです(公式ドキュメントに明記されています)。
そして、アドレスをもう一度見てください。 drivemcp.googleapis.com。前半で話した「プログラム向けの入口」が、そのままMCPの形で出てきているのが分かると思います。
あとはClaudeに普通に頼むだけです。
「Documents フォルダの中に何があるか教えて」
Claudeが自分でドライブを探しに行って、中のファイル名を返してきます。このときClaudeが使ったのが、さっき言った「道具」です。
⚠️ 最初は、フォルダ名で絞って頼むのがおすすめです。 「最近のファイルを見せて」のような広い頼み方をすると、思っていたより多くの情報が画面に出てきます。何が返ってくるかを確かめてから範囲を広げるほうが安全です。
再現できる条件が、2つあります
このシリーズは「読んだ人が自分の環境で再現できること」を大事にしているので、条件は隠さず書きます。上のやり方が使えるのは、次の2つを満たしている場合です。
1. Claude Code に claude.ai のアカウントでログインしていること
APIキー(ANTHROPIC_API_KEY など)でログインしている場合や、Amazon Bedrock などの他社経由で使っている場合は、claude.ai でつないだものは一覧に出てきません。 別のログイン方法のときは、そもそも取りに行かない仕様です。
2. チーム・エンタープライズのプランの場合は、管理者が先に有効にしていること
Anthropicの公式サポートページに、Team と Enterprise では組織のオーナーが先に有効化する必要がある、と書かれています。会社のアカウントで試して出てこない場合は、これを疑ってください。
おまけ:コマンドで足すやり方も、一応あります
ここまでが本筋です。ここから先はコマンドで足す方法の話で、読み飛ばしても困りません。ただ、他の人の記事を読んでいると必ず出てくるところなので、あとで戻ってこられるように一覧で置いておきます。
覚えておくコマンドは、4つだけ
claude mcp list いまつながっているものを一覧で出す
claude mcp get サーバー名 1つ選んで、設定がどこに入っているか・つながっているかを見る
claude mcp add サーバー名 ... MCPサーバーを足す
claude mcp remove サーバー名 外す
そして、Claude Codeの中で打つのがこれです。
/mcp
つながっているサーバーの状態、使える道具、認証のやり直し、サーバーの一時的なオン/オフが、この画面からできます。外したいときも、ここか claude mcp remove です。
add は、つなぐ相手が2種類あるので形も2種類あります。
# 自分のパソコンの中で動くタイプ
claude mcp add my-server -- npx my-mcp-server
# ネットの向こうで動いているタイプ
claude mcp add --transport http my-server https://example.com/mcp
鍵(APIキー)が要るサーバーは、-e API_KEY=xxx のように環境変数として一緒に渡します。さっきの「鍵の渡し方①」が、まさにこの形です。
設定をどこに書くか ── スコープは3つ
claude mcp add には -s(--scope)というオプションがあって、設定をどこに保存するかを3つから選べます。指定しなければ local です。
local(既定)
- いま作業しているプロジェクトだけで読み込まれる
- ホームの
~/.claude.jsonに、そのプロジェクトのパスごとに保存される - 自分だけのもの。他のプロジェクトには出てこない
project
- プロジェクトの直下に
.mcp.jsonというファイルが作られ、そこに書かれる - このファイルをGitに入れておけば、チーム全員が同じMCPサーバーを使える
- 「このプロジェクトではこれを使う」を共有したいとき
user
- ホームの
~/.claude.jsonに保存され、自分の全プロジェクトで使える - 共有はされない。自分専用
迷ったら、まずは既定の local で足して、「これは全部の作業で使うな」と思ったら user に付け替える。それで十分です。
Googleドライブ以外にも、つなげます
claude.ai の同じ画面(claude.ai/customize/connectors)から、Anthropicが最初から用意しているものが選べます。公式ドキュメントに挙がっているのは、Googleドライブ、Gmail、Googleカレンダー、GitHub、Slack、Microsoft 365 など。認証さえすれば、それ以外の準備は要りません。
さらに、コネクタディレクトリという公開のカタログもあります。Anthropic製のものと、第三者が作ったものが並んでいて、Anthropicが確認済みのものと、コミュニティ製のものにラベルが分かれています。 このラベルの意味は、次の章の「誰が作ったか」の話に直結します。
ネットの向こうで動いているタイプのMCPサーバーなら、アドレスさえ分かれば claude mcp add --transport http ... で自分で足すこともできます。
MCPサーバーは、自分で作ることもできます
ここまで「使う側」の話をしてきましたが、MCPサーバーは自分で作れます。 完全にプログラムを書く話になるので詳細は書きませんが、方向だけ。
- 公式サイトに、天気を調べるサーバーを作るチュートリアルがあります
- 公式のSDKは Python / TypeScript / Java / Kotlin / C# / Go / Ruby / Rust で用意されています
- 作るのは基本的に「道具(tools)を並べたプログラム」です。「この名前で、こういう引数を受けて、こう返す」を宣言すると、AIから呼べるようになります
社内にしかないシステムや、自分だけが使っている仕組みをClaudeに触らせたい、というときはこの道になります。
もう1つ、Google自身が出しているGoogleドライブのMCPサーバーの手順もあります。ただしこちらは開発者向けの早期提供という位置づけで、自分でGoogle Cloudのプロジェクトを用意してOAuthの設定を作る必要があります。この記事で紹介したclaude.ai経由のつなぎ方とは別物なので、そこは混ぜないでください。
- MCP公式サイト: https://modelcontextprotocol.io/
- Claude Code のMCPドキュメント: https://code.claude.com/docs/en/mcp
- Google側の手順(開発者向け): https://developers.google.com/workspace/drive/api/guides/configure-mcp-server
つないだあとに、3つだけ気をつけること
便利さの話をしてきましたが、やっているのは「自分のアカウントを触る権利を渡す」ことです。最後にここを書いておきます。脅かしたいわけではなくて、私はこうしている、という話です。
1. 誰が作ったサーバーかを確かめる
Claude Codeの公式ドキュメントに、こう書かれています。
Verify you trust each server before connecting it. Servers that fetch external content can expose you to prompt injection risk. (つなぐ前に、そのサーバーを信頼できるか確認してください。外部のコンテンツを取ってくるサーバーは、プロンプトインジェクションのリスクにさらす可能性があります)
外から取ってきた文章をAIに読ませるサーバーだと、その文章の中に書かれた指示に、AIが引っぱられてしまうことがある、という意味です。前の章で書いたディレクトリのラベル(確認済みか、コミュニティ製か)を見る癖をつけておくと安心です。
2. 入れっぱなしにしない
同じく公式ドキュメントに「使っていないサーバーは無効にする」と書かれています。/mcp の画面から、削除せずにオフにできます。
つなぐほど、AIが触れる範囲が広がります。 便利さと引き換えなので、使っていないものは切っておく。それだけです。
3. 何を許可したのかを見る
つなぐときの画面に、読むだけを許可するのか、書き込みまで許可するのかが書いてあります。「はい」を押す前に、そこだけは読んでください。
たとえばGoogleドライブのサーバーには、探す・読むだけでなくファイルを作る側の道具も含まれています。 何を渡したかを知っているかどうかで、あとの安心感が全然違います。
まとめ
APIは、プログラム向けの入口。MCPは、その入口をAIに渡すための共通の規格。
だからClaude Codeは、自分の外側にあるものを触ることができます。
冒頭の5つを振り返ります。
- APIが何か → 人間向けの画面ではなく、プログラム向けの入口。決まった形で送ると、決まった形でデータだけが返ってくる
- 2つの出方 →
github.com/...とapi.github.com/repos/...。同じ説明文が、片方は画面に、片方は"description":の右側に - MCPが何のためにあるか → バラバラなAPIを、AIから見て1つの形に揃えるため。AIにとってのUSB-C
- つなぎ方 →
claude.ai/customize/connectorsでスイッチを入れるだけ。コマンドは要らない - 確認すべきこと → 誰が作ったか / 入れっぱなしにしない / 何を許可したか
コマンドの打ち方は、覚えなくて大丈夫です。MCP という文字が出てきたら「外の何かとつながっている」。まずはそれだけ思い出せれば十分です。
そして、いちばん持ち帰ってほしいのはこれです。AIができることは、あとから足せます。 道具を渡すというのは、そういうことでした。
動画版もあります
同じ内容を、実際の画面を動かしながら解説した動画版があります。「つないだ瞬間に何が増えるのか」は動きで見たほうが早いので、あわせてどうぞ。
「Claude Codeを使うなら知っておきたい」シリーズは、これからも続けていきます。すでに公開しているのはこちらです。
- Claude Codeを使うなら知っておきたい「ターミナル」の話
- Claude Codeを使うなら知っておきたい「Markdown」の話
- Claude Codeを使うなら知っておきたい「Git」と「GitHub」の話
この先は「環境変数」「JSON」といったテーマを予定しています。
ちなみに私は、GitHubをそのままノートの置き場にする、ブラウザから使えるMarkdownエディタを作っています。ログイン無しで触れるデモもあるので、よければ覗いてみてください。
→ Marten