MCP(エムシーピー)

仕組み・概念
MCP
エムシーピー
MCP(Model Context Protocol)は、Claude Codeから外部のサービスやデータソースを呼び出すための共通規格。Notion・Slack・GitHub・Google Drive・自作APIみたいなツール群を、規格に合わせた「MCPサーバー」として差し込むと、Claudeがそれらを直接読み書きできるようになる

料理ブログをClaude Codeで作っている初心者向け

料理ブログのレシピメモがNotionに散らばっている、写真がGoogle Driveに溜まっている、栄養素計算用の自作APIがある、といった状況で、それらをチャットにコピペする手間を省きたいときに導入する。`.mcp.json` を1つ置くか、`claude mcp add` を1回叩けば、そのプロジェクト内でClaudeが直接データを読みに行く形になる

料理ブログを書いていると、こういう状況に出くわします。

レシピのメモはNotionに残してある。写真はGoogle Driveの「カレー」フォルダにまとまってる。栄養素は別の自作APIで計算したい。

でもClaude Codeに記事を書かせようとすると、これらを全部いちいちコピーしてチャットに貼り付ける羽目になる。これがしんどい。

MCPはここを解決します。Notionの中身もGoogle Driveのファイル一覧も、Claudeが自ら取りに行きます。

噛み砕くと「家電のコンセント規格」みたいな話

MCPは Model Context Protocol の略です。modelcontextprotocol.io というオープンな規格として公開されていて、Anthropic以外も準拠できます。

イメージは家電のコンセント。日本のコンセントは100Vの2口で統一されてるから、炊飯器も電子レンジもドライヤーも同じ口に差せます。メーカーごとに口の形が違ったら大惨事です。

MCPもこれと同じ。「Claudeに外部のツールを繋ぐときの口の形」を統一した規格で、規格に合ったMCPサーバーを差し込めば、Claudeはそのサーバーが提供する機能をすべて使えるようになります。

NotionもGoogle DriveもGitHubも、それぞれ公式のMCPサーバーを公開しています。だから料理ブログ用のレシピメモをNotionに残してあるなら、NotionのMCPサーバーを差し込むだけでClaudeがNotionを直接読みに行ける、という構造です。

「.mcp.json」を1個置くと、Claudeから何が見えるようになるのか

料理ブログのフォルダに .mcp.json という1ファイルを置きます。中身はこんな形。

{
  "mcpServers": {
    "notion": {
      "type": "http",
      "url": "https://mcp.notion.com/mcp"
    }
  }
}

これをプロジェクトのフォルダに置いてClaude Codeを起動すると、Claudeが「notionというMCPサーバーが見えてる、繋ぐ?」と確認してきます。承認するとNotionの全文検索やページ取得が、その料理ブログのプロジェクト内だけで使えるようになります。

初回はNotion側のログインが要ります。ターミナル内で /mcp と打つとブラウザが開いて、Notionのアカウントで認証する画面が出ます。完了するとトークンがClaude Codeに安全に保存されて、以降はパスワードを毎回聞かれません。

ここで初心者がやりがちな勘違いがあります。「.mcp.json を置いた瞬間に、Claudeが勝手にNotionを読み始める」と思ってる人がいる。実際は違います。Claude Codeはセキュリティのために、プロジェクト直下の .mcp.json を見つけても初回は必ず承認ダイアログを出します。許可しない限り読みに行きません。

料理ブログでNotionのレシピメモを繋ぐ、再現手順

「肉じゃがの調味料配分、Notionに残してたメモから引っ張って」とClaudeに頼める状態を作ります。3つのやり方があるけど、初心者は最初の claude mcp add 方式が一番ラクです。

ステップ1: 料理ブログのフォルダに移動する

$ cd ~/projects/cooking-blog
$ ls
articles/  recipes/  images/  CLAUDE.md

このフォルダ内でMCPの設定をすると、料理ブログのプロジェクトの中だけNotionが見える状態になります。他のプロジェクト(家計簿アプリとか)には影響しません。

ステップ2: Notion MCPサーバーを追加する

$ claude mcp add --transport http notion https://mcp.notion.com/mcp

これで ~/.claude.json の中に「このプロジェクトではnotionというMCPサーバーを使う」という設定が書き込まれます。手で .mcp.json を書く必要はなし。

チームでブログを共同運営してる場合は --scope project を足すと、フォルダ直下に .mcp.json が作られます。これをGitに入れるとチーム全員が同じMCPサーバーに繋がるようになる。1人で書いてる場合はそのままでOKです。

ステップ3: Claude Codeを起動して認証する

$ claude
> /mcp

/mcp と打つとMCPサーバーの一覧が出ます。notionが「authentication required(認証が必要)」になってるはず。選択するとブラウザが開いて、Notionのアカウントでログイン画面に進みます。完了すると一覧が「connected」に変わります。

ステップ4: 実際にNotionからレシピメモを引っ張る

> 「肉じゃが」のページをNotionから探して、調味料の配分だけ抜き出して

Claudeが内部でNotionのMCPツール(search系)を呼び出して、肉じゃがのページを見つけて、調味料の部分を抜き出して返してきます。Notionアプリを開いてコピペする必要は、もうなし。

ステップ5: 確認・トラブル対応

$ claude mcp list
$ claude mcp get notion
$ claude mcp remove notion   # やめたいとき

list で繋がってるサーバー一覧、get で個別の詳細、remove で削除です。

MCPサーバーが提供するもの3種類(ツール/リソース/プロンプト)

MCPサーバーが差し込める「機能」は大きく3種類あります。料理ブログ用に置き換えると分かりやすい。

1. ツール(Tools)— Claudeが自ら叩ける機能

「Notionを検索する」「Google Driveのフォルダ内ファイルをリストする」「栄養素を計算する」みたいな能動的な動作です。Claudeが文脈を読んで「これ呼ぶべき」と判断したら勝手に呼びにいきます。

料理ブログだと「肉じゃがのレシピを検索」と頼んだ瞬間に、ClaudeがNotionの search ツールを内部で叩く、というのがこのパターン。

2. リソース(Resources)— @ で指名できるデータ

Claudeに「この特定のファイル読んで」と @ 記号で指名できる読み取り対象です。プロンプト内に @ を打つと、繋いでるMCPサーバーが提供してるリソース一覧が出ます。

> @notion:page://recipes/curry のレシピをブログ記事用に整形して

みたいな書き方で特定のNotionページを指名できます。Claudeが自動で取りに行ってくれない場合に、人間側から「これ見て」と渡せる仕組み。

3. プロンプト(Prompts)— サーバーが用意した定型コマンド

MCPサーバー側が「このサーバーを繋いだ人向けに、よく使うプロンプトを用意しておきました」と公開しているコマンド集です。Claude Codeでは /mcp__サーバー名__プロンプト名 の形で呼べます。

> /mcp__github__pr_review 456

みたいな形で、PR番号456のレビューを定型プロンプトで一発実行できます。料理ブログでは使わないけど、開発系のMCPサーバーだとよく登場します。

料理ブログでの使いどころ3パターン

パターン1: Notion MCPで過去のレシピメモを引っ張る

記事化前のレシピメモをNotionに溜めてる料理ブロガーは多い。「肉じゃがの調味料、こないだ研究したやつどれだったっけ」を毎回探す手間がなくなります。

Claudeに「Notionの『家庭料理リサーチ』DBから、肉じゃがで分量を確定させた最新のページを引いて」と頼むと、search→該当ページ取得→必要部分の抜粋まで一気にやってくれます。Notionアプリを開かなくていい。

パターン2: Google Drive MCPで写真フォルダを一覧する

/recipes/curry/ フォルダの写真を全部リストして、ファイル名と撮影日を教えて」というのがClaudeに直接頼めます。

記事を書きながら「カレーの写真何枚あったっけ、どの順で並べる?」を考えるとき、Driveを別タブで開かずにそのまま会話の流れで処理できる。タブ切り替え1回ぶん、思考が途切れずに済みます。

パターン3: 自作MCPで栄養素計算APIを呼ぶ

栄養素計算が組み込まれた料理ブログにしたいなら、自作のMCPサーバーで栄養素APIをラップしておく手があります。

Claudeに「鶏むね100gとキャベツ200gとご飯150gの合計栄養素」と書くだけで、栄養素APIを叩いた結果を記事内に表として埋め込んでくれる。MCPサーバーの作り方は modelcontextprotocol.io のクイックスタートに載ってます。

初心者が踏みやすい落とし穴

  • サードパーティのMCPサーバーは「自己責任で使え」と公式が明示している。AnthropicはMCPレジストリに載ってるサーバーの安全性を全部は検証してません。特にネット上の文章を取得するMCPサーバーはプロンプトインジェクション(Claudeを誤誘導する仕掛けがコンテンツに埋まってる攻撃)のリスクがある。信頼できる発行元のサーバーだけ繋ぐこと。
  • MCPサーバーの認証情報を .mcp.json にベタ書きしない.mcp.json はプロジェクト全員に共有される(Gitに入れる)前提のファイル。APIキーを直接書くと事故る。代わりに ${API_KEY} のように環境変数を参照させて、実際の値は各メンバーがローカルに持つ形にする。
  • SSEトランスポートはdeprecated(廃止予定)になってる。古い記事だと --transport sse で繋ぐ手順が出てくるけど、これからは --transport http を選ぶ。
  • MCPサーバーの出力が大きいと、会話の容量を圧迫する。Claude Codeはツール出力が10,000トークン超えると警告を出します。Notionから何百ページもまとめて引くような呼び出しをすると、その後の会話が短く打ち切られる原因になる。検索条件を絞って必要な分だけ取らせる。
  • 料理ブログ層には claude mcp serve はほぼ要らない。これは「Claude Code自体をMCPサーバーとして他のアプリから呼ぶ」上級用途。Claude Desktop等から逆方向に繋ぐ人向けで、Claude Codeで料理ブログを書く文脈では出番なし。
  • Claude.aiのコネクタとClaude Codeの設定が重複することがある。Claude.aiでも同じMCPサーバーを追加してる場合、Claude Code側の設定が優先されて、Claude.ai側のコネクタは「hidden」表示になります。これ自体は壊れてるわけじゃない、優先順位が決まってるだけ。

関連する仕組みへの動線

MCPは「外部の機能を繋ぐ規格」で、Claude Code内には他にも似たような仕組みがあります。混同しがちなので整理しておきます。

  • Skills: 「Claudeに特定の作業手順を覚えさせる」仕組み。MCPは「外部サービスを繋ぐ」のに対して、Skillsは「Claude自身の振る舞いを変える」。料理ブログで「レシピ記事の構成テンプレ」を毎回守らせたいならSkills側。
  • Hooks: 「ファイル保存時に自動でフォーマッターを走らせる」みたいな、決まったタイミングでスクリプトを発火させる仕組み。MCPは「Claudeが必要なときに呼びにいく」、Hooksは「特定イベントで自動発火」、という違い。
  • /init: プロジェクトのフォルダ構造を読ませて CLAUDE.md(プロジェクト用の覚え書き)の雛形を作るスラッシュコマンド。料理ブログを始めた直後に /init、その後にMCPサーバー追加、の順がスムーズ。
  • /memory: CLAUDE.md をエディタで編集する起動口になるスラッシュコマンド。MCPで繋いだサーバーの使いどころをメモしておくと、毎回同じ流れで呼べる。
  • /agents: 専門特化のサブエージェントを定義する仕組み。料理ブログだと「レシピ記事だけ書くwriter」を作ってMCPと組み合わせると、Notion参照→記事化が一気通貫になる。
  • /clear: 会話履歴を真っさらにリセットする。MCP経由で大量データを引いて会話が膨らんだら、一回 /clear で締めると次のタスクが軽くなる。

参考リンク

書き方

claude mcp add --transport http <サーバー名> <URL>

やってみるとこうなる

入力

claude mcp add --transport http notion https://mcp.notion.com/mcp

出力例

Added MCP server: notion (http)\n→ Claude Code起動後、`/mcp` でログイン認証 → Notionの検索・ページ取得がClaudeから直接使える状態になる

このページに出てきた言葉

MCP
Model Context Protocol の略。modelcontextprotocol.io が公開しているオープン規格で、ClaudeなどのAIに外部サービスを繋ぐときの「口の形」を統一したもの
MCPサーバー
MCPの規格に従ってClaudeに機能を提供する窓口プログラム。Notion公式・GitHub公式が公開しているもの、自作のもの、誰かがOSSで出しているものなど多数
規格/プロトコル
「データのやり取りの仕方」をあらかじめ決めた共通ルール。コンセントの口の形や、ブラウザとサーバーの会話作法であるHTTPも仲間
.mcp.json
プロジェクトのフォルダ直下に置くテキストファイル。「このプロジェクトでは、こういうMCPサーバーを繋ぐ」という設定を書く
スコープ(local/project/user)
「この設定をどの範囲で有効にするか」の指定。local=このプロジェクトの私だけ、project=チーム共有(`.mcp.json` をGit管理)、user=私の全プロジェクトで有効
ツール(MCPの文脈)
Claudeが自らの判断で呼び出せる機能。「Notionを検索する」「ファイルを読む」など能動的な動作
リソース
Claudeが読み取れるデータの単位。プロンプト内で `@サーバー名:protocol://パス` の形で人間側から指名できる
プロンプト(MCPの文脈)
MCPサーバー側が用意した定型コマンド。Claude Codeでは `/mcp__サーバー名__プロンプト名` の形で呼ぶ
OAuth/トークン
IDとパスワードを直接渡さず、代わりに発行された通行証(トークン)でログインする仕組み。Claude Codeは `/mcp` 経由で各MCPサーバーと安全に認証する
ターミナル
黒い画面で文字のコマンドを打ち込む画面(Windowsだと「コマンドプロンプト」「PowerShell」、Macだと「ターミナル」アプリ)

関連項目

公式ドキュメント

https://code.claude.com/docs/en/mcp

-

← 戻る