スキルもMCPも名前は聞くけど、どっちを使えばいいか分からない人向け
同じ指示文を毎回チャットに貼り直しているなら、その手順を覚えさせるためにSkillsを作る。NotionやデータベースなどClaudeの外にあるデータを毎回コピペして渡しているなら、そこに直接アクセスさせるためにMCPで繋ぐ。外部データを取ってからどう整えるかはSkillsが受け持つので、両方を組み合わせる場面も多い。
「Skills」と「MCP」、どちらもClaude Codeまわりでよく出てくる名前です。名前が似た位置で語られるので、どっちを使えばいいのか迷う人が多い。私も最初は同じものの言い換えかと思ってました。
結論を先に置くと、この2つは役割がまるで違います。Skillsは「Claudeにやり方や知識を覚えさせる文章」、MCPは「Claudeを外部のツールやデータに繋ぐ接続口」です。だから本当は「どっちを使うか」ではなく「使い分ける、ときには両方使う」が正解になります。
噛み砕くと
新しい職場に来たアシスタントを想像してください。Skillsは、そのアシスタントに渡す「うちのやり方マニュアル」です。レシピの整形手順とか、チェックの順番とか、毎回口で説明してたことを紙に書いて渡しておく。次からはその紙を見て同じ仕事をしてくれます。
MCPは、そのアシスタントのデスクに置く「他の部署と繋がった電話線」です。在庫管理の部屋にも、過去の記録が入った棚にも、線を1本引いておく。するとアシスタントは自分で電話をかけて中身を見に行けます。
マニュアルと電話線。どっちが上とかではない。役割が違うだけです。
そもそも、この2つは何が違うのか
公式ドキュメントの説明を並べると、違いがはっきりします。Skillsについては「Skills extend what Claude can do. Create a SKILL.md file with instructions, and Claude adds it to its toolkit.」と書かれています。SKILL.mdという指示書を作ると、Claudeがそれを自分の道具箱に加える、という意味です。
一方のMCPは「MCP servers give Claude Code access to your tools, databases, and APIs.」とあります。MCPのサーバーが、あなたのツールやデータベースやAPIへの入り口をClaude Codeに渡す、という話です。
片方は文章を覚えさせる話。もう片方は外部のシステムに繋ぐ話。守備範囲がまったく重なっていません。
使い分けの軸は1本だけ覚えればいい
迷ったときの判断は、こう考えると一発です。「Claudeにやり方を覚えさせたい」のか、「Claudeを外部のシステムに触らせたい」のか。前者ならSkills、後者ならMCPです。
これは公式の言い回しからも裏が取れます。Skillsのドキュメントは「Create a skill when you keep pasting the same instructions, checklist, or multi-step procedure into chat」と書いています。同じ指示やチェックリスト、手順を毎回チャットに貼り続けているなら、スキルを作れ、という意味です。
対してMCPのドキュメントは「Connect a server when you find yourself copying data into chat from another tool」です。別のツールからチャットにデータをコピーしているのに気づいたら、サーバーを繋げ、と書いてあります。
同じ「コピペが面倒」でも、貼ってるのが自分の指示文ならSkills、他のツールに入っているデータならMCP。並べてみると、こんなにきれいに対応してます。
表で並べるとこう
| 見る点 | Skills | MCP |
|---|---|---|
| 覚えさせる対象 | やり方・手順・知識 | (覚えさせるものではない) |
| 外部への接続 | しない | する(これが本体) |
| 実体 | SKILL.mdという文章ファイル | 繋ぐ先のサーバー |
| 手を出す合図 | 同じ指示文を毎回貼ってる | 他ツールのデータを毎回コピペしてる |
「料理ブログの運営」を例に、実際の使い分けを見る
私が料理ブログを運営してると仮定して、両方のシーンを順に追ってみます。題材を1つに固定すると、違いが体で分かります。
ステップ1: 毎回同じ整形指示を貼っていることに気づく
レシピの下書きをClaudeに渡すたびに、私は同じ指示を打ってました。「材料、手順、コツの3つに分けて、材料は分量つきの箇条書きにして」みたいな指示です。3回目くらいで気づきます。これ毎回コピペしてるな、と。
ステップ2: その指示をSkillにする
貼っていたのは「自分の指示文」なので、ここはSkillsの出番です。整形ルールをSKILL.mdに書いて保存しておきます。文章を1枚書くだけ。外部のどこかに繋ぐ作業はありません。
# レシピ整形スキル
- 下書きを「材料 / 手順 / コツ」の3つに分ける
- 材料は分量つきの箇条書きにする
- 手順は番号つきで1ステップ1文
次からは下書きを渡すだけで、Claudeがこの手順どおりに整えてくれます。指示を貼り直す手間が消えました。
ステップ3: 今度は別の面倒に気づく
私はレシピの管理にNotionを使っています。「先月よく作ったレシピを5つ出して」と頼みたいのに、毎回Notionを開いて中身をコピーしてはチャットに貼ってました。ここで初心者がやりがちな勘違いがあります。「じゃあこれもSkillに書けばいいのか」と思ってしまう。でもSkillは外部のNotionには繋がりません。手詰まりです。
ステップ4: 外部データなのでMCPを繋ぐ
貼っていたのが「他のツールのデータ」なので、ここはMCPの出番です。Notion用のサーバーに繋ぐと、Claudeが私のNotionを直接読めるようになります。コピペして渡す代わりに、Claudeが自分で見に行く形です。
あなた: 先月よく作ったレシピを5つ出して
Claude: (Notionを直接読んで)昨月の記録から、
作った回数の多い順に5つ挙げますね …
ステップ5: 2つを組み合わせる
ここがいちばん効くところです。MCPでNotionからレシピの下書きを取ってきて、そのままSkillの整形手順を当てる。外部接続のMCPと、手順のSkillが連携します。
あなた: Notionの今週分の下書きを取って、整形しといて
Claude: まずMCPでNotionから下書きを取得
→次にSkillの整形ルールを適用
→「材料 / 手順 / コツ」に整った原稿が完成
「どっちか」じゃなくて「両方」。これが普通の使い方です。
ステップ6: 繋ぐ前に相手を確かめる
MCPで繋ぐときは、相手のサーバーを信用できるか先に確認します。公式も警告していて、外部の中身を取ってくるサーバーは危険を持ち込む可能性があると明記されています。これは後の落とし穴のところでもう一度触れます。
つまりこの2つは何をしてくれるのか
- Skillsがやってくれる: 手順・チェックリスト・知識を覚えさせて、毎回の指示貼りをなくす
- MCPがやってくれる: 外部のツールやデータに繋いで、Claudeが直接読み書きできるようにする
- どちらも単独では足りない場面: 外部データを取った後に「どう整えるか」はSkillsやCLAUDE.mdが受け持つ。接続だけでは仕事は完成しない
使いどころ3シナリオ(料理ブログで再現)
シナリオ1: レシピの書き出し方をいつも統一したいとき
毎回「読みやすい構成にして」と指示してるなら、それはSkillsの仕事です。料理ブログなら「冒頭に完成写真の説明、次に調理時間と人数、そのあと材料」という型をSKILL.mdに書いておく。以降は下書きを渡すだけで、全記事が同じ型に揃います。外部には一切繋ぎません。文章を1枚書くだけで始められるのが気楽なところです。
シナリオ2: 既存のレシピ記録を横断で見たいとき
「去年の夏に作った冷たい麺のレシピを全部出して」みたいに、ためてある記録を引っ張りたいとき。これはMCPです。NotionやGoogleのデータに繋いでおけば、Claudeが自分で検索して持ってきます。私の手でコピペして渡す作業がまるごと消えます。ここで効いてくるのが「過去データの量」で、記録が増えるほどMCPの価値が上がります。
シナリオ3: 公開前のチェックを自動でやりたいとき
公開ボタンを押す前に「アレルギー表示は入ってるか」「分量に単位はついてるか」を毎回チェックしてるなら、それはSkillsで型にできます。チェック項目をSKILL.mdに並べておけば、Claudeが原稿を見て抜けを指摘してくれる。これも外部接続は不要です。手順を覚えさせるだけ。MCPサーバーを立てる話にはなりません。
初心者が踏みやすい落とし穴
- 外部サービスに繋ぎたいのにSkillを書こうとする。NotionやデータベースのデータをClaudeに読ませたいなら、いくら丁寧なSKILL.mdを書いても繋がりません。接続が要る話はMCPです。
- 手順を決めたいだけなのにMCPサーバーを立てようとする。整形ルールやチェック順を固定したいだけなら、文章を1枚書けば終わります。サーバーの用意は明らかにやりすぎです。
- 「MCPの方が高機能だからSkillsは要らない」と思い込む。MCPは接続役、Skillsは手順役。外部データを取ってきても、それをどう整えるかはSkillsやCLAUDE.mdが受け持ちます。役割が別なので置き換えられません。
- 知らないサーバーに気軽に繋ぐ。公式は「Verify you trust each server before connecting it. Servers that fetch external content can expose you to prompt injection risk.」と警告しています。繋ぐ前に各サーバーを信用できるか確かめ、信用できる相手だけに繋ぎます。
- 「どっちか1つを選ぶもの」と決めつける。役割が違うので併用が普通です。MCPで取った外部データを、Skillの手順で処理する流れが一番おいしい使い方になります。
- 多くのMCPには認証が要ることを忘れる。外部サービスに繋ぐ以上、ログインの手続きが要る場合が多いです。Skillsは文章ファイルだけで始められるので、ここの手間の差は意外と大きい。
書き方
Skills: .claude/skills/ に SKILL.md を1枚書く(外部接続なし)
MCP: claude mcp add で繋ぎたい外部サービスのサーバーを登録する(多くは認証が要る)
やってみるとこうなる
入力
Notionの今週分のレシピ下書きを取って、材料・手順・コツの形に整形しといて
出力例
Claudeが(MCPで)Notionから今週分の下書きを直接読み込み、続けて(Skillの整形ルールに沿って)「材料 / 手順 / コツ」の3つに分かれた原稿を返す。外部から取る役がMCP、整える役がSkillsという分担で1つの仕事が完成する。
このページに出てきた言葉
- Skills(スキルズ)
- Claudeに手順やチェックリスト、知識を覚えさせる仕組み。中身は<code>SKILL.md</code>という文章ファイル1枚で、外部サービスには繋がない
- SKILL.md
- やり方やルールを書いておくテキストの書類。Claudeがこれを読んでその通りに動く
- MCP(エムシーピー)
- Claudeを外部のツールやデータに繋ぐための共通の決まりごと(Model Context Protocol)。これに沿って繋ぐと、Claudeが外のサービスを直接読み書きできる
- サーバー
- Claudeが繋ぐ先の外部サービスの窓口になっているプログラム。繋ぎたい相手ごとに用意されている
- API(エーピーアイ)
- アプリ同士がデータをやり取りするための受け渡し口
- データベース
- 大量のデータを整理してためておく入れ物
- CLAUDE.md
- プロジェクトの決まりごとや前提を書いておく覚え書きファイル。Claudeが毎回読んで前提として扱う
- prompt injection(プロンプトインジェクション)
- 外部から取り込んだ文章の中に、Claudeをだます指示をこっそり仕込まれる手口。信用できないサーバーに繋ぐと危険
- 認証
- そのサービスを使う権利が本人にあるか確かめる手続き。ログインやアクセス許可のこと