MCPサーバーを接続すると増えるのはツールだけではありません。サーバーが公開するリソースは @ で参照でき、プロンプトは /mcp__ 始まりのスラッシュコマンドとして呼べます。この2つを実際に使う手順を、Claude Code v2.1.201 で整理します。
接続後に見えるのはツールだけではない
MCPの記事はたいてい claude mcp add でサーバーを足すところで終わります。ただ、つないだ後に何を呼べるかまで踏み込むものは少ない。公式ドキュメントの “What you can do with MCP” が挙げるのは、課題管理ツールからの機能実装、監視データの分析、DBへの問い合わせなど。これらは tools / resources / prompts という3種類の口を使い分けて実現します。
tools・resources・promptsの3つ
ツールはClaudeが判断して呼ぶ関数。リソースは自分が @ で指すデータ。プロンプトはサーバー側が用意した定型指示で、こちらがスラッシュコマンドで起動します。呼ぶ主体と起動方法がそれぞれ違う。
/mcp で今の接続を確かめる
手元の状態から確認します。CLIなら claude mcp list、セッション内なら /mcp。
claude mcp list
接続済みサーバーと状態が並びます。
github: https://api.githubcopilot.com/mcp/ (HTTP) - ✓ Connected
postgres: npx -y @bytebase/dbhub ... (stdio) - ✓ Connected
jira: https://mcp.atlassian.com/v1/sse (SSE) - ✓ Connected
承認待ちの project スコープは ⏸ Pending approval、拒否済みは ✗ Rejected と出ます。/mcp パネルは各サーバーの横にツール数を表示し、tools capabilityを持つのにツール0個のサーバーには印を付ける。
リソースを @ で参照する
リソースはサーバーが公開するデータで、ファイルと同じように @ で本文に差し込めます。公式の “Use MCP resources” は「参照されると自動で取得され、添付として含まれる」と説明します。
@ を打って一覧から選ぶ
プロンプト入力中に @ を打つと、接続中の全サーバーのリソースがファイル候補と並んで出ます。”Reference MCP resources” の手順どおり、パスはあいまい検索が効くので途中まで打てば絞れる。参照したリソースは自動で取得され、添付として渡ります。テキストでもJSONでも構造化データでも、サーバーが返す形式のまま扱える。手でコピペする工程が要らなくなります。
@server:protocol://path で直接指す
候補から選ばず、書式で直接指すこともできます。形は @server:protocol://resource/path。
Can you analyze @github:issue://123 and suggest a fix?
この一文で issue #123 の内容が添付として渡り、Claudeは中身を読んだ上で修正案を返します。ドキュメントを指すなら @docs:file://api/authentication のように書く。
複数のリソースを1つのプロンプトに混ぜる
1回の指示で複数を並べられます。スキーマと設計書を突き合わせるならこう書く。
Compare @postgres:schema://users with @docs:file://database/user-model
実行結果として、Claudeは users テーブルの実スキーマと設計ドキュメントの差分を列挙します。監視ダッシュボードやDBの中身をチャットにコピペして貼っていた作業が、参照1行に置き換わる。
プロンプトをスラッシュコマンドで実行する
/mcp__github__pr_review 456
これはGitHubサーバーが公開する pr_review プロンプトを、PR番号456を引数に実行した形です。サーバーが持つ定型プロンプトは、接続した時点でスラッシュコマンドとして自動的に生えます。
/ を押すと /mcp__server__prompt が並ぶ
“Use MCP prompts as commands” のとおり、/ を押すとMCP由来のコマンドが /mcp__servername__promptname の形で候補に出ます。サーバーをつなげば増え、外せば消える。動的な発見なので、一覧を手で管理する必要はありません。
引数は空白区切りで渡す
多くのプロンプトは引数を取ります。コマンドの後ろに空白区切りで並べる。
/mcp__github__list_prs
/mcp__jira__create_issue "Bug in login flow" high
上は引数なしでオープンなPRを一覧。下はタイトルと優先度 high を渡してJiraにissueを作ります。空白を含む値はダブルクォートで囲む。
ツール呼び出しとの違い
ツールはClaudeが会話の流れで自動的に選びます。プロンプトは自分が明示的に起動する。「この作業はいつもこの手順」という定型を、サーバー作者が name 付きで束ねたものがプロンプト、と捉えると使い分けが早い。
ツール・リソース・プロンプトを1枚で並べる
3つの口は、起動する主体と書式が違うだけです。対応は次のとおり。
| 種類 | 起動する主体 | 呼び出し方 | 向いている用途 |
|---|---|---|---|
| tools | Claude(自動) | 会話の中で自動選択 | DB問い合わせ、API操作 |
| resources | 自分 | @server:protocol://path | issue・スキーマ・ドキュメントの参照 |
| prompts | 自分 | /mcp__server__prompt 引数 | 定型作業の呼び出し |
tools は自動、resources と prompts は手動という線引きが基本です。
サーバーを増やすとツール定義がコンテキストを食う
サーバーを3つ4つつなぐと、ツール定義が起動時にコンテキストを削ります。GitHub・Postgres・Jira・Slackを全部つなげば、まだ何も頼んでいないのにツールの説明文だけで数千トークンが消える。会話に使える枠がその分だけ減ります。
tool search で必要なものだけ載せる
v2.1系はこれを tool search で解いています。公式の “Scale with MCP tool search” によれば、MCPツールは既定で遅延され、タスクが必要としたときにClaudeが検索ツールで見つけて呼ぶ。実際に使ったツールだけがコンテキストに入ります。使い勝手はこれまでと変わらない。
挙動は環境変数 ENABLE_TOOL_SEARCH で切り替えます。
| 値 | 挙動 |
|---|---|
| (未設定) | 全MCPツールを遅延し、必要時にオンデマンドで読む(既定) |
auto | コンテキストの10%に収まれば起動時に載せ、超過分だけ遅延 |
auto:N | しきい値を N% に変更。例 auto:5 で5% |
false | 全ツールを起動時に載せる。遅延なし |
# しきい値を5%にして起動
ENABLE_TOOL_SEARCH=auto:5 claude
これでコンテキストの5%を超えるツール群だけが遅延に回ります。Haikuモデルは tool_reference ブロックに未対応のため、この検索は効かない。ANTHROPIC_BASE_URL が非first-partyのプロキシを指す場合も、既定で無効側へ倒れます。
常に見せたいサーバーは alwaysLoad で外す
毎ターン必ず使うツールまで検索越しにするのは無駄です。そのサーバーだけ遅延から外すには、設定に alwaysLoad を書く。”Exempt a server from deferral” のとおり、そのサーバーのツールは ENABLE_TOOL_SEARCH の値に関係なく起動時に全部載ります。
{
"mcpServers": {
"core-tools": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"alwaysLoad": true
}
}
}
alwaysLoad は全サーバー種別で使え、v2.1.121 以降で有効です。ただし付けたサーバーは接続完了まで起動をブロックする(上限は標準の5秒)。ここで一つ実感した挙動。SlackとGitHubを両方 alwaysLoad: true にしたら起動が目に見えて遅くなり、毎ターン参照するGitHubだけ残したら元に戻りました。必要な1つに絞れば済みます。
ToolSearchツール自体を止める
検索の一段を挟みたくない場面もあります。permissions.deny に ToolSearch を入れれば、その動きを個別に止められる。
{
"permissions": {
"deny": ["ToolSearch"]
}
}
これでツール検索を経由せず、載っているツールだけで動きます。なお、ツール説明とサーバーの instructions は各2KBで切られる。サーバー作者側は、検索に引っかかるよう instructions の頭に用途を短く書くのが効きます。ツールやリソースが大量の出力を返すケースでは、Claude Codeが上限で切って警告を出す。巨大なクエリ結果をそのまま流し込まない設計にしておくと、コンテキストを守れます。
つながりが不安定なとき
接続が切れても、Claude Codeは自動で再接続を試みます。手で貼り直す前に、既定の挙動を知っておくと無駄な操作が減る。
list_changed で自動更新される
サーバーがツール・プロンプト・リソースを動的に足したとき、Claude Codeは list_changed 通知を受けて自動で取り直します。”Dynamic tool updates” のとおり、切断と再接続は要りません。
HTTP・SSEは指数バックオフで再接続
HTTPかSSEのサーバーが途中で切れると、”Automatic reconnection” の挙動で自動再接続します。1秒から始めて倍々に伸ばし、最大5回。再接続中は /mcp で pending 表示になり、5回失敗で failed。そこから手動で再試行できます。stdioはローカルプロセスなので自動再接続の対象外。
反映されないと感じたら
接続直後の tools/list や resources/list は、v2.1.191 以降、一時的なnetwork/serverエラーを最大3回リトライします。認証エラーや4xx、タイムアウトはリトライしない。ここで詰まるなら設定側の問題なので、claude mcp get サーバー名 で状態を確かめる。
まとめ
使う側の要点。
- リソースは
@server:protocol://pathで参照。@github:issue://123のように issue やスキーマを添付として渡せる - プロンプトは
/mcp__server__prompt 引数で実行。引数は空白区切り、空白を含む値はダブルクォートで囲む - tools は自動、resources と prompts は手動起動という線引き
- ツール定義がコンテキストを食うなら
ENABLE_TOOL_SEARCH。既定は遅延、auto:5でしきい値を制御 - 毎ターン使うサーバーは
alwaysLoadで遅延から外す(v2.1.121以降) - HTTP・SSEは最大5回の指数バックオフで自動再接続。
list_changedで能力は自動更新
設定の共有やスコープの話は別記事に譲ります。Claude Code MCPのスコープ管理—.mcp.jsonでチーム共有する設計と合わせて読むと、配布から利用までひと通りつながります。

