3行でいうと

  • Skillsは、SKILL.mdを中心にした手順書のフォルダ。名前と説明だけ先に読み込み、中身は必要なときだけ読む。Claude・Codex・Cursorで同じ形式。
  • プラグインは、Skills・サブエージェント・フック・MCPをまとめて配る入れ物。Claude、ChatGPT・Codex、Cursorの文書に共通の説明がある。
  • MCPは外部サービスへの接続口で、Skillsは使い方の知識。Anthropicの文書は、この2つを組み合わせる使い方を挙げている。

この記事は、実際に使って確かめた記録ではありません。この記事は、公式の文書を読んでまとめたものです。各社の仕様は更新が速く、2026年10月22日に読み直した時点のものです。

先に結論

前提:用語

6つの仕組みの役割(Claude Codeの公式文書)

Claude Codeの文書は、「CLAUDE.md、Skills、MCP、サブエージェント、フック、プラグイン」を、同じ画面の中で次のように位置づけています。

仕組み 何をするか 使いどころ 文脈への影響
CLAUDE.md 毎回読まれる前提の情報 プロジェクトの決まり、「常にXをする」 毎回の要求に入る
Skill 手順・知識・参照資料 繰り返す作業、参照用の文書 説明だけ毎回。中身は使うとき
MCP 外部サービスへの接続 外のデータや操作 ツール名だけ。詳細は使うとき
サブエージェント 別の文脈で動く 大量の読み込み、並行作業 本流とは別
フック 場面ごとに決まって走る 毎回必ず起きてほしい処理 出力を返さなければゼロ
プラグイン 上記をまとめる入れ物 複数のリポジトリで再利用、配布 中身による

この記事の6つのほかに、今の文書の表には出力スタイル、動的なワークフロー、セッション間のメッセージ、コード理解(言語サーバー)、Artifactなども並んでいます。ここでは扱いません。

同じ文書は、「どれに入れるか」の目安も示しています。

Skills:3社で同じ形式

共通のかたち

Claude・Codex・Cursorの文書は、どれも「SKILL.mdを含むフォルダ」を基本にしています。Agent Skillsの公開仕様(agentskills.io)では、次のように決まっています。

項目 内容
必須の項目 name(1〜64文字、小文字・数字・ハイフンのみ、フォルダ名と一致)、description(1〜1024文字)
任意の項目 license、compatibility(500文字まで)、metadata、allowed-tools(実験的)
任意のフォルダ scripts/(実行コード)、references/(参照文書)、assets/(テンプレートなど)
読み込み 名前と説明は約100トークン。SKILL.mdの本文は5,000トークン未満が推奨。資料は必要なときだけ
目安 SKILL.mdは500行未満

descriptionには「何をするか」と「いつ使うか」の両方を書くよう、Anthropicの文書も公開仕様も求めています。AIが依頼と説明を照らして、使うかどうかを決めるからです。公開仕様の例では、「PDFを助ける」のような曖昧な説明は悪い例、「PDFの文字と表を取り出し、フォームを埋め、結合する。PDF、フォーム、文書抽出の話が出たときに使う」のような説明は良い例とされています。

社ごとの違い

項目 Claude OpenAI(ChatGPT・Codex) Cursor
置き場所 Claude Codeは~/.claude/skills/(個人)と.claude/skills/(プロジェクト) リポジトリの.agents/skills(作業場所から根まで)、$HOME/.agents/skills、/etc/codex/skills、OpenAIが同梱するもの プロジェクトの.agents/skills/と.cursor/skills/、個人の~/.agents/skills/と~/.cursor/skills/
他社の置き場所も読むか 今回読んだ文書に記載なし 今回読んだ文書に記載なし 読む。.claude/skills/、.codex/skills/(プロジェクトと個人の両方)
呼び方 /名前、またはAIが説明から判断 ChatGPTは@、CodexのCLI・IDEは/skillsか$、またはAIが判断 /で選ぶ。または自動
自動で使わせない設定 disable-model-invocation: true agents/openai.yamlのallow_implicit_invocation: false disable-model-invocationを指定できる
最初に読む量の上限 文書に説明あり(約100トークン/件) 一覧は文脈窓の2%まで(窓の大きさが不明なら8,000文字) 今回読んだ文書に記載なし
共有 claude.aiは個人ごとにアップロード。APIはワークスペース全体 プラグイン経由で配布 個人の~/.cursor/skills/のみ、設定でオンにするとクラウドエージェントに同期できる

Claudeの利用面ごとの違いも、文書にあります。Claude APIでは、Skillsはコード実行ツールを必要とし、containerパラメータでskill_idを指定します。claude.aiでは、Pro・Max・Team・Enterpriseのプランで、コード実行を有効にすれば、カスタムのSkillsをzipでアップロードできます。面ごとにSkillsは同期されず、アップロードを繰り返す必要がある、とも書かれています。

SkillsとCLAUDE.md、サブエージェント、フックの比較(Claude Codeの文書より)
比べるもの 違い
CLAUDE.md と Skill CLAUDE.mdは毎回自動で読み込む。Skillは必要なときだけ。Skillは/名前で手順として呼べる
Skill と サブエージェント Skillは「使い回せる内容」を文脈に足す。サブエージェントは「分けた文脈で働く作業者」で、要約だけ戻る。組み合わせもでき、サブエージェントにskills:で事前に読み込ませる、Skillをcontext: forkで別文脈で動かす、が可能
フック と Skill フックは場面ごとに必ず走る(決定的)。Skillは、AIが読んで従う手順で、結果にぶれがありうる
ルール(.claude/rules/)と Skill ルールはpathsで特定のファイルのときだけ読み込める。Skillは呼ばれたとき、または関連するときに読み込まれる

重なり方(複数の階層に同じものがある場合)も、公式文書にあります。CLAUDE.mdは加算(全部が一緒に入る)。SkillsとサブエージェントとMCPは名前で上書き(優先順位が高いほうが勝つ)。フックは統合(該当するものがすべて走る)。プラグインのSkillsは名前空間つき(/プラグイン名:スキル名)で衝突しません。

プラグイン:配るための箱

Claude Code

文書によると、プラグインは「Skills、エージェント、フック、MCPサーバーなどのディレクトリを、1つの単位として入れて読み込むもの」です。マニフェスト(目録)は.claude-plugin/plugin.jsonに置かれ、名前、バージョン、説明などを書きます。インストールは、/pluginでマーケットプレイス(プラグインの一覧)から選びます。

使い分けの説明は明確です。Skills、サブエージェント、フック、MCPは、プラグインなしでも単独で動く。複数を1つにまとめたいとき、他人の作った設定を1コマンドで入れたいとき、自分の設定をチームや多数のプロジェクトに配りたいときに、プラグインを使う。

同じプラグインの形式は、claude.aiとCoworkにも入れられると書かれています。ただし読み込まれる部品の種類は面ごとに違い、詳しくは別のページにあります(今回は読んでいません)。

注意点も書かれています。

ChatGPT・Codex

文書では、プラグインは「ChatGPTとCodexで、機能をまとめて再利用できる流れにするもの」で、Skills、MCPサーバー、ブラウザ拡張、フックを含められる、とあります。インストールは「プラグインディレクトリ」で探して、プラスボタンから。MCPへの接続が必要なら、案内に従って接続します。インストール後は、新しいチャットかCLIセッションを始めると、同梱のSkillsが使えます。使える場所は、ChatGPTのウェブ・デスクトップ・モバイル、ChatGPTデスクトップアプリの中のCodex、Codex CLIです。CodexのIDE拡張はプラグインに対応しない、と書かれています。フックは、クラウドで動くChatGPTのWorkでは使えないとも書かれています。

Skillsの文書は、関係を一言で書いています。Skillsは再利用できる手順を書く形式で、プラグインはそれを配る仕組み。ローカルやリポジトリの中だけならSkillsのフォルダをそのまま使い、広く配るときやコネクタ(外部とのつなぎ)と一緒に入れたいときはプラグインを使う、という整理です。ChatGPTとCodexは、共通の「プラグインディレクトリ」を持つとされています。

チームには、リポジトリのマーケットプレイスを使えること、ワークスペースの管理者はGitHubのマーケットプレイスを取り込んで同期できることが書かれています。

Cursor

Cursorの文書によると、プラグインは「ルール、Skills、エージェント、コマンド、MCPサーバー、フック」をまとめて配る束です。形式は2つで、オープンな標準の「Agent Plugins」(ルートのplugin.json。SkillsとMCPサーバーをまとめる)と、「Cursor Plugins」(.cursor-plugin/plugin.json。ルール、エージェント、コマンド、フックも入れられる)です。

この節は10月22日に読み直して書き足しました。ルールの文書など、プラグインの細部は読んでいません。

MCP:接続口

MCPはAnthropicの文書では「外部サービスとつなぐプロトコル」、Cursorの文書では「外部の道具とデータ源につなぐもの」と説明されています。

項目 Claude Code Cursor
設定の置き場所 今回読んだ文書に記載なし(同名のときの優先は、ローカル、プロジェクト、ユーザーの順と記載) プロジェクトの.cursor/mcp.json、個人の~/.cursor/mcp.json
通信方式 今回読んだ文書に記載なし stdio(手元でコマンドを動かす)、SSE、Streamable HTTP(OAuthに対応)
文脈への影響 ツール名だけ読み込み、詳細は使うとき。ツール検索が初期状態で有効 今回読んだ文書に記載なし
承認 権限ルールで制御 既定でツール使用前に承認を求める。組織の許可リストで制限できる

Claude Codeの文書は、使わないMCPサーバーを無効にすること、ghのようなコマンドのほうがMCPより文脈を使わないこと、を勧めています。

選び方の見立て

見立てです。3社の文書を重ねると、判断は次の順で整理できると思います。

  1. 毎回の前提なら、指示ファイル(CLAUDE.md、AGENTS.md、Cursorのルール)。短く。
  2. 繰り返す手順や参照資料なら、Skills。形式が3社で近いので、書いたものを他の道具に持っていきやすいはずです(Cursorは他社の置き場所も読む)。ただし、動作が同じかは、確認できていません。
  3. 外のサービスにつなぐなら、MCP。つないだあとの使い方は、Skillsに書く。
  4. 必ず起きてほしい、必ず止めたいなら、フックや権限ルール(Claude Code)。
  5. 複数の場所に配りたいなら、プラグイン。

「拡張」という言葉にも注意が要ります。Claude Codeの文書は、VS Codeの拡張機能やJetBrainsのプラグイン(どちらもエディタの中でClaude Codeを使うための部品)は、Claude Codeの「プラグイン」とは別物と明記しています。

つまずきやすい点

気をつけること

出典

更新履歴