MCP とコネクター
Claude Code が最初からできるのは、PC の中のファイルを読み書きすることと、コマンドを実行することです。カレンダー、チャット、文書の置き場所などのサービスの中身は、利用者が内容を貼り付けないかぎり、Claude には見えません。MCP は、これを変える仕組みです。MCP でサービスをつなぐと、Claude が、そのサービスの中身を直接読んで、操作できるようになります。このページでは、MCP の仕組みと、つなぎ方、つなぐときの注意を整理し、実際に 1 つつないで確かめます。
この記事で分かること
- MCP で、Claude にできることがどう変わるか
- MCP サーバーとコネクターの関係
- サービスをつなぐ 3 つの方法と、つないだ設定が効く範囲
- つなぐ前に、利用者が考えておくこと
用語の整理
| 用語 | 意味 |
|---|---|
| MCP(Model Context Protocol) | AI のツールと、外部のサービスや道具をつなぐための、共通の決まり。公開されている規格で、Claude Code 以外の AI のツールも対応している |
| ツール(tool) | Claude が、実際の操作を行うための道具。「ファイルを読む」「コマンドを実行する」など |
| MCP サーバー(MCP server) | MCP の決まりに従って、Claude にツールを提供するプログラム |
| コネクター(connector) | MCP サーバーを、アプリの画面の操作でつなげるようにしたもの。中身は MCP サーバー |
| プロンプトインジェクション(prompt injection) | 外部から読み込んだ内容の中に、AI への指示を紛れ込ませて、意図しない操作をさせようとする攻撃 |
MCP で、何が変わるか
カレンダーのサービスを例にします。
| つなぐ前 | つないだ後 | |
|---|---|---|
| 今週の予定を、Claude に整理してほしい | 利用者が、カレンダーの画面から予定をコピーして、会話に貼り付ける | Claude が、カレンダーの予定を直接読む |
| 会議の予定を、Claude に作ってほしい | Claude が案を書き、利用者が、カレンダーの画面で入力する | Claude が、カレンダーに直接書き込む(利用者の確認のうえで) |
仕組みとしては、MCP サーバーをつなぐと、Claude の道具(ツール)が増えます。カレンダーのサーバーであれば、「予定の一覧を取る」「予定を作る」といったツールが加わります。Claude は、依頼の内容に合わせて、そのツールを使います。
公式ドキュメントは、つなぐきっかけを、「別のサービスの内容を、会話に貼り付けていることに気づいたとき」と説明しています。
MCP サーバーと、コネクター
「MCP サーバー」と「コネクター」は、別のものではありません。コネクターは、MCP サーバーを、アプリの画面からつなげるようにしたものです。
よく使われるサービス(カレンダー、文書の置き場所、メール、チャットなど)は、コネクターとして用意されています。一覧にないものは、MCP サーバーとして、自分で追加します。一覧にないうえに、使えるサーバーも見つからない場合は、自分で作ることもできます。これは「08. MCP サーバーを自作する」で扱います。
MCP サーバーには、動く場所によって、2 つの種類があります。
| 種類 | 動く場所 | 主な用途 |
|---|---|---|
| リモートのサーバー | インターネットの先 | クラウドのサービスとの連携 |
| ローカルのサーバー | 自分の PC | 自分の PC の中のものを扱う道具。自分で作ったもの |
ローカルのサーバーは、Claude Code が、自分の PC の上でプログラムとして起動します。ローカルのサーバーを追加することは、そのプログラムを自分の PC で実行するのと、同じ意味を持ちます。
サービスをつなぐ、3 つの方法
使う場所や目的によって、つなぎ方が違います。
デスクトップアプリの画面からつなぐ
入力欄の横の「+」ボタンから「Connectors」を選ぶと、コネクターの一覧が出ます。一覧から選び、画面の案内に従ってつなぎます。つないだコネクターは、アプリの設定(Settings → Connectors)で、管理や解除ができます。
ターミナル版のコマンドでつなぐ
ターミナル版では、claude mcp add コマンドで追加します。
claude mcp add --transport http claude-code-docs https://code.claude.com/docs/mcpclaude-code-docs は自分で付ける名前、最後の URL は、サーバーの場所です。
設定ファイルに書いてつなぐ
プロジェクトのいちばん上のフォルダーに .mcp.json というファイルを作り、サーバーを書く方法もあります。
{
"mcpServers": {
"claude-code-docs": {
"type": "http",
"url": "https://code.claude.com/docs/mcp"
}
}
}このファイルは、セッションの開始時に読み込まれます。書いたあとは、新しいセッションを始める必要があります。
つないだ設定が、効く範囲
つないだサーバーの設定は、3 つの範囲(スコープ)のどれかに保存されます。範囲によって、どのプロジェクトで使えるか、ほかの人にも届くかが決まります。
| 範囲 | 使えるところ | ほかの人に届くか | 保存される場所 |
|---|---|---|---|
| ローカル(既定) | そのプロジェクトだけ | 届かない | ~/.claude.json |
| プロジェクト | そのプロジェクトだけ | 届く。リポジトリをとおして | プロジェクトの .mcp.json |
| ユーザー | 自分の、すべてのプロジェクト | 届かない | ~/.claude.json |
「ローカル」という名前ですが、保存される場所は、プロジェクトの中ではなく、ホームフォルダーの ~/.claude.json です。04. 設定ファイルの仕組み の「プロジェクトの自分だけの設定」(.claude/settings.local.json)とは、場所が違うので注意します。
claude.ai のアカウントでサインインしている場合は、claude.ai の側で追加したコネクターも、Claude Code で使えます。
つなぐ前に、利用者が考えておくこと
MCP サーバーは、Claude ができることを広げます。そのぶん、何をつなぐかは、利用者が判断する必要があります。
信頼できるサーバーだけをつなぐ
公式ドキュメントは、つなぐ前に、そのサーバーを信頼できるかを確かめるように警告しています。理由は 2 つあります。
- ローカルのサーバーは、自分の PC で動くプログラムである。中身の分からないプログラムを実行するのと、同じ危険がある。
- サーバーが返す文章は、Claude の判断に影響する。外部の内容を取ってくるサーバーは、プロンプトインジェクションの入り口になりうる。
ほかの人のリポジトリでは、.mcp.json を確かめる
.mcp.json は、リポジトリと一緒に、ほかの人の PC に届きます。公式ドキュメントには、プロジェクトのサーバーは、初めて見つけたときに、使ってよいかを利用者に尋ねる、と書かれています。ただし、このページの「実際にやってみる」で試したときは、デスクトップアプリで、尋ねられずにつながりました。ほかの人が作ったリポジトリを開く前に、.mcp.json に何が書かれているかを、自分で確かめておきます。
使わないサーバーは、外しておく
つないだサーバーの、ツールの名前と、サーバーからの説明は、すべてのセッションで読み込まれます。そのぶん、コンテキストを使います。使わなくなったサーバーは、外しておきます。
権限ルールで、ツールごとに制限できる
MCP のツールにも、03. 権限モードと、確認を減らす方法 の権限ルールが働きます。MCP のツールの名前は、mcp__サーバーの名前__ツールの名前 の形です。この名前で、特定のサーバーや、特定のツールを、許可したり、禁止したりできます。
組織が、コネクターを制限していることがある
組織は、コネクターのツールごとに、「使うたびに確認する」「使えないようにする」を設定できます。「使うたびに確認する」に設定されたツールは、権限モードが Auto でも、確認が出ます。公式ドキュメントによると、デスクトップアプリの、自分の PC でのセッションでは、「使うたびに確認する」は届かず、「使えないようにする」は有効です。
実際にやってみる
このサイトのリポジトリに、MCP サーバーを 1 つつなぎました。行ったこと、確かめたこと、想定していなかったことを、順に書きます。
1. すでに MCP を使っていた
新しく何かをつなぐ前に、今のセッションで Claude が使えるツールを確かめました。デスクトップアプリが最初からつないでいる MCP サーバーが、いくつもありました。
たとえば、アプリの中のブラウザーで Web ページを開くツールは、mcp__Claude_Browser__navigate という名前でした。このサイトでは、公開したページの表示を確かめるのに、このブラウザーを使ってきました。MCP は、新しく学ぶ仕組みというより、すでに使っていた仕組みでした。
2. つなぐサーバーを選んだ
つないだのは、Claude Code のドキュメントを検索できる、公開の MCP サーバー(https://code.claude.com/docs/mcp)です。公式ドキュメントの入門の手順でも使われています。選んだ理由は 2 つです。
- 認証がいらない。アカウントの情報を渡さずに試せる。
- このサイトの作業に役立つ。このテーマのページは、公式ドキュメントで事実を確かめてから書いている。つなぐと、ページを丸ごと取得しなくても、検索で必要な箇所を引ける。
3. つなぐ前に、サーバーの中身をのぞいた
Claude とサーバーの間でどんなやり取りが行われるのかを見るため、Claude Code がサーバーに送るのと同じ形の問い合わせを、curl(Web の通信を行うコマンド)で、直接送りました。たとえば、ツールの一覧を尋ねる問い合わせは、次のとおりです。
curl -s -X POST https://code.claude.com/docs/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'送った問い合わせは 3 つで、結果は次のとおりでした。
| 問い合わせ | 返ってきたもの |
|---|---|
接続の挨拶(initialize) | サーバーの名前(Claude Code Docs)と、AI に向けた説明文。「このサーバーは、ドキュメントの検索と取得のためのもの」といった内容 |
ツールの一覧(tools/list) | 3 つのツール。ドキュメントの検索、ドキュメントの中の閲覧、意見の送信。それぞれに、何をするツールかの説明と、入力の形が付いていた |
ツールを使う(tools/call) | 検索のツールで MCP_TIMEOUT を調べた結果。1 件目は、接続がタイムアウトしたときの対処の節だった |
ここから、2 つのことが分かりました。
- MCP は、「挨拶」「ツールの一覧」「ツールを使う」といった、決まった形の問い合わせをやり取りする決まりである。
- サーバーは、ツールの説明や、AI に向けた説明文を返し、Claude はそれを読んで動く。サーバーが返す文章が、Claude の判断に影響する。信頼できるサーバーだけをつなぐ、という注意の理由が、ここにある。
4. 設定ファイルを書いて、つないだ
リポジトリのいちばん上に、.mcp.json を作りました。範囲は、プロジェクトです。
{
"mcpServers": {
"claude-code-docs": {
"type": "http",
"url": "https://code.claude.com/docs/mcp"
}
}
}書いたのは、サーバーの名前と場所だけで、認証の情報は含まれていません。そのため、リポジトリにコミットしても問題がありません。
5. 新しいセッションで、使えることを確かめた
.mcp.json は、セッションの開始時にしか読み込まれません。そこで、デスクトップアプリで、このリポジトリの新しいセッションを始めて確かめました。
| 確かめたこと | 結果 |
|---|---|
| サーバーがつながったか | つながった。コネクターの一覧に、claude-code-docs が「接続済み」、ツールが 3 つと表示された |
| Claude が、ツールを使えたか | 使えた。検索のツールで MCP_TIMEOUT を調べると、手順 3 と同じ結果が返った |
| ツールの名前 | mcp__claude-code-docs__search_claude_code_docs。mcp__サーバーの名前__ツールの名前 の決まりのとおり |
検索の結果は約 87 KB と大きく、Claude Code は、全文をファイルに保存して、会話には先頭の一部だけを渡しました。外部のサーバーのツールは、結果が大きくなることがあります。
想定していなかったこと:使ってよいかを尋ねる画面が出なかった
公式ドキュメントでは、プロジェクトのサーバーを初めて見つけたときに、使ってよいかを利用者に尋ねる、とされています。ところが、新しいセッションを始めても、その画面は出ませんでした。
承認の記録も残っていませんでした。このとき、~/.claude.json の、このプロジェクトの項目にある承認の欄(enabledMcpjsonServers)は空のままで、プロジェクトの .claude/settings.local.json も、ありませんでした。承認されたのではなく、尋ねられずにつながったことになります(承認の記録が実際にどこに書かれるかは、下の「あとで分かったこと」を参照)。
原因は、確かめられていません。公式ドキュメントには、尋ねる画面を出すのはターミナルで対話しながら使うセッションで、プログラムから Claude Code を動かす使い方では尋ねずに読み込む、という記述があります。デスクトップアプリは、Claude Code を、プログラムからやり取りする形で起動していたので、同じ扱いになった可能性があります。ただし、デスクトップアプリでの扱いは、公式ドキュメントには書かれていませんでした。
この結果から、上の「ほかの人のリポジトリでは、.mcp.json を確かめる」という注意を加えています。
あとで分かったこと:ターミナル版では、尋ねる画面が出た
このあと、08. MCP サーバーを自作する の作業のために、ターミナル版の Claude Code を入れました。ターミナル版を、このリポジトリで初めて起動すると、次の画面が出ました。
New MCP server found in this project: claude-code-docs
MCP servers may execute code or access system resources. All tool calls require approval.
Use this MCP server
Use this and all future MCP servers in this project
❯ Continue without using this MCP server公式ドキュメントのとおりの動きです。同じ .mcp.json でも、デスクトップアプリでは尋ねられず、ターミナル版では尋ねられました。使う場所によって、扱いが違うことになります。
「Use this MCP server」を選んで承認すると、プロジェクトの .claude/settings.local.json(このプロジェクトの、自分だけの設定)が作られ、次の内容が書かれました。
{
"enabledMcpjsonServers": ["claude-code-docs"]
}承認の記録は、このファイルに書かれることが分かりました。
選択肢の 2 つ目(今後このプロジェクトに加わるサーバーも、すべて使う)を選ぶと、あとで .mcp.json に別のサーバーが書き足されたときに、確認なしで使われるようになります。1 つずつ確かめたい場合は、1 つ目(このサーバーだけを使う)を選びます。
まとめ
- MCP は、Claude に、外部のサービスを使うためのツールを足す仕組み。つなぐと、利用者が内容を貼り付けなくても、Claude がサービスの中身を直接読んで、操作できる。
- コネクターは、画面からつなげる MCP サーバー。一覧にないものは、コマンドや
.mcp.jsonで追加する。それもなければ、自分で作る。 - つないだ設定の範囲は、ローカル、プロジェクト、ユーザーの 3 つ。チームで共有するものは、
.mcp.jsonに書く。 - つなぐのは、信頼できるサーバーだけにする。サーバーが返す文章は、Claude の判断に影響する。
.mcp.jsonのサーバーは、ターミナル版では使ってよいかを尋ねられたが、デスクトップアプリでは尋ねられずにつながった。ほかの人のリポジトリを開く前に、.mcp.jsonを確かめる。
確認の記録
- Connect Claude Code to tools via MCP(Claude Code Docs)
- Connect to MCP servers(Claude Code Docs)
- Desktop application(Claude Code Docs)
| 項目 | 内容 |
|---|---|
| 最終確認日 | 2026 年 10 月 14 日 |
| Claude Code のバージョン | 2.1.295(macOS のデスクトップアプリ) |
| 検証の状況 | 「実際にやってみる」は、macOS のデスクトップアプリと、このサイトのリポジトリで確かめた結果。手順 3 は、公開の MCP サーバーへの curl による直接の問い合わせ。手順 4・5 は、.mcp.json を作り、新しいセッションで、接続とツールの利用を確かめた結果。それ以外の節は、公式ドキュメントの内容をもとに書いている |
| 確かめていない内容 | デスクトップアプリで、使ってよいかを尋ねる画面が出なかった理由。デスクトップアプリのコネクターの画面、認証が必要なサーバーへの接続は、実際には操作していない |