MCPサーバーを1つ接続したことがある人向け
料理ブログのバグ報告がGitHubのissueに上がった、レシピDBの設計に合ったSQLが欲しい、といった場面で、別ツールの資料を画面からコピペせずそのままClaudeに読ませたいときに @server:protocol://resource/path の形で指して使う。
別のツールにある資料を、Claude Codeの会話にコピペせず引っ張り込む仕組みです。プロンプト欄で @ を打つと、ファイルと同じ並びで「外の資料」が候補に出てきます。これが MCP Resources。
料理ブログの運営中、GitHub に立てたバグ報告や、レシピを保存しているデータベースの設計表を、わざわざ画面からコピーして貼り直す。あの手間がなくなります。
そもそも MCP Resources って何のこと?
MCP は、外部のツールやデータを Claude Code から使えるようにする接続の決まりごとです。GitHub やデータベースを「つなぎ口」でつなぐイメージ。
その MCP でつないだサーバーが「うちにはこの資料がありますよ」と見せてくれるものが resource です。issue、設計表、メモ。中身は文章でもJSONでも構いません。
会議室のホワイトボードに、別室の資料を貼り出す感覚に近いです。あなたが資料を運ぶのではなく、つなぎ口の向こうから資料が出てくる。
これ、地味に効きます。
大事な前提:先にそのツールをつないでおく
resource を使うには、相手のツールが先につながっていないと話が始まりません。料理ブログのバグ報告を GitHub から引くなら、GitHub を先につなぎます。
公式が出している接続コマンドはこれです。黒い画面で1行打ちます。
$ claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer YOUR_GITHUB_PAT"
末尾の YOUR_GITHUB_PAT は、GitHub側で発行する自分用の合鍵の文字列に置き換えます。ここでは伏せたまま進めます。
つないだら /mcp と打つと、いまどのツールが何件つながっているか一覧で確認できます。
「料理ブログの資料を会話に引き込む」手順を見る
料理ブログを運営していて、読者からバグ報告が GitHub の issue 123番に上がった、という場面で進めます。
ステップ1: GitHub をつなぐ
さっきのコマンドを1回叩いて、GitHub を窓口としてつなぎます。一度つなげば次回からは省略できます。
$ claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer YOUR_GITHUB_PAT"
ステップ2: つながったか確認する
会話の中で /mcp を打ちます。github の名前の横に件数が出ていれば、つながっています。
/mcp
OAuthという本人確認が必要な相手だと、ここでログインを求められます。その場合も /mcp の画面から進めます。
ステップ3: @ を打って候補を出す
プロンプト欄で @ を1文字打ちます。すると、自分のファイルと一緒に、つないだサーバーの資料がずらっと候補に出ます。
ここがポイント。候補に資料が出てくる時点で、そのサーバーが resource を公開している証拠です。逆に何も出なければ、そのサーバーは resource を持っていません。
ステップ4: issue をそのまま指して送る
バグ報告の123番を指して、こう書きます。公式が載せている書き方そのままです。
Can you analyze @github:issue://123 and suggest a fix?
送ると、issue 123番の中身が会話に添付として丸ごと取り込まれて、Claudeがそれを読んで直し方を返します。あなたは番号を指しただけ。コピペは一度もしていません。
ステップ5: ここで初心者がやりがちな勘違い
@github:issue://123 の github の部分は、ステップ1でつなぐとき自分が付けた名前です。コマンドの名前を gh にしていたら、ここも @gh:... になります。
この名前を取り違えると候補に出てきません。出ないときはまず名前を疑います。
ステップ6: 2つの資料を突き合わせる
1回の指示で複数の資料を指せます。レシピのデータ設計と、別に置いた説明メモを並べて比べる例がこれです。
Compare @postgres:schema://users with @docs:file://database/user-model
2つとも添付として取り込まれて、Claudeが差を見てくれます。設計と実装のズレ探しに効きます。
つまり MCP Resources は何をしてくれるのか
- やってくれる: 別ツールの資料を
@で指すだけで、中身を会話に取り込んでClaudeに読ませる - やってくれない: resource を公開していない相手からは何も出せない。窓口があっても資料棚が空なら出てこない
- 意味が薄い場面: 自分の手元にあるファイルを読ませたいだけのとき。それは普通のファイル
@参照で足りる
tools・prompts と何が違うのか
つないだサーバーが見せてくれるものは3種類あって、入口が全部ちがいます。混ぜると確実に詰まります。
resource は @ で指す「資料」。prompt は / で呼ぶ「決まった命令」。tool は Claude が会話の流れで勝手に呼ぶ「操作」。
prompt の方は、たとえば /mcp__github__list_prs のように / から打ちます。これは資料を指しているのではなく、命令を実行しています。
「/mcp__ で呼ぶのは命令、@ で指すのは資料」。ここだけ覚えれば取り違えません。
使いどころ3シナリオ(料理ブログで再現)
シナリオ1: 読者から上がったバグ報告を直す
「レシピの星マークが押せない」と GitHub の issue に報告が来たとします。番号が 88番なら @github:issue://88 で指して「これ直して」と送るだけ。報告文を画面からコピーして説明し直す手間がゼロになります。Claudeは報告の本文を読んでから直し方を出します。
シナリオ2: データ設計に合ったSQLを書いてもらう
レシピや会員を保存しているデータベースの設計表を @postgres:schema://users で指します。設計表というのは「どの列に何が入るか」を書いた表のこと。これを渡してから「先月登録した会員を出すSQLを書いて」と頼むと、実際の列名に合った命令文が返ります。列名を自分で打ち写す必要がありません。
シナリオ3: 仕様メモと実装のズレを探す
「会員ランクは5段階」と書いた仕様メモを @docs:file://spec/member-rank で、実装側の説明を別の @ で指して並べます。1回の指示で2つを突き合わせれば、メモは5段階なのに実装は3段階だった、みたいなズレをClaudeが見つけてくれます。目視より速いです。
初心者が踏みやすい落とし穴
- resource を公開していないサーバーには
@候補が出ない。操作だけ提供して資料は出さないサーバーが多いです。「@押しても出ない=そのサーバーは資料非対応」のことがほとんど。 - resource と prompt と tool を混同する。
/mcp__github__list_prsは命令の実行で、資料の参照ではありません。入口が@か/かで別物です。 @server:...のserverはつなぐとき自分が付けた名前。名前がgithubなら@github:...。取り違えると候補に出てきません。- 指した資料は会話に丸ごと入る。巨大な資料を貼ると会話が一気に膨らんで動きが鈍ります。本当に要る資料だけ指すのが安全です。
- 外部の中身を読み込むので、悪意ある指示が紛れ込む危険がある。公式も注意していて、信頼できる相手だけつなぐのが原則です。
@の裏で自動で動く専用の道具を、自分で手打ちするものと誤解する。候補を出す・読み込むの動きは裏で勝手に走ります。その道具の細かい話は ReadMcpResourceTool のエントリに任せています。
書き方
@server:protocol://resource/path
例: @github:issue://123
例: @docs:file://api/authentication
複数同時: Compare @postgres:schema://users with @docs:file://database/user-model
やってみるとこうなる
入力
Can you analyze @github:issue://123 and suggest a fix?
出力例
issue 123番の本文が会話に添付として丸ごと取り込まれ、Claudeがその内容を読んだうえでバグの原因と直し方を提案する。番号を指しただけで、報告文のコピペは不要。
このページに出てきた言葉
- MCP
- 外部のツールやデータをClaude Codeから使えるようにする、つなぎ方の共通ルール。Model Context Protocolの頭文字
- resource(リソース)
- つないだサーバーが「これ見ていいよ」と公開している資料やデータ。issue、設計表、ドキュメントなど
- @メンション
- プロンプト欄で <code>@</code> を打って、ファイルや資料を名前で指し示す操作
- URI(ユーアールアイ)
- <code>issue://123</code> のような、資料の住所みたいな指定文字列
- issue(イシュー)
- GitHub上で「ここにバグがある」「この機能が欲しい」と記録しておく報告メモ。番号が振られる
- prompt(プロンプト)
- サーバー側が用意した定型の命令。<code>/mcp__サーバー名__命令名</code> の形で <code>/</code> から呼ぶ
- 添付
- 指した資料の中身が会話に丸ごとくっついて送られること。Claudeはそれを読める
- OAuth(オーオース)
- 別サービスに「このアプリからのアクセスを許可します」とログインで安全に許可する仕組み