MCP Resources(エムシーピーリソーシズ)

仕組み・概念
MCP Resources
エムシーピーリソーシズ
MCPでつないだサーバーが公開している資料やデータを、プロンプト欄で @ を打って会話に取り込む仕組み。ファイルを @ で参照するのと同じ感覚で、GitHubのissueやデータベースの設計表などを指せる。

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://123github の部分は、ステップ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(オーオース)
別サービスに「このアプリからのアクセスを許可します」とログインで安全に許可する仕組み

関連項目

公式ドキュメント

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

-

← 戻る