Codexについて調べていると、AGENTS.md、Skills、Plugins、MCPといった似たような用語を見かけます。
どれもCodexの周辺機能ですが、それぞれ担当している役割は異なります。
AGENTS.mdはプロジェクト固有の指示を伝えるためのものです。Skillsは作業手順を再利用するためのものです。MCPは外部ツールやデータと接続するための仕組みです。そしてPluginsは、それらをまとめて扱うための単位です。
名前だけを見ると違いが分かりにくいかもしれません。しかし役割ごとに整理すると、それぞれが何を担当しているのか理解しやすくなります。
この記事では、AGENTS.md、Skills、Plugins、MCPの役割と使い分けを整理します。
Codexの周辺機能を整理する
まずは4つの役割を大まかに整理してみます。
| 機能 | 主な役割 |
|---|---|
| AGENTS.md | プロジェクト固有の指示や前提を伝える |
| Skills | 作業手順を再利用する |
| Plugins | Skillsや連携機能をまとめる |
| MCP | 外部ツールやデータと接続する |
重要なのは、これらは競合する機能ではないということです。
たとえば、AGENTS.mdでプロジェクトのルールを定義し、Skillsでレビュー手順をまとめ、MCPでGitHubへ接続する、といった形で組み合わせて利用できます。
それぞれの役割を順番に見ていきます。
AGENTS.md:プロジェクト全体のルールを書く場所
AGENTS.mdは、Codexに対して作業前提やプロジェクト固有の指示を伝えるためのファイルです。
たとえば、次のような内容を記載できます。
- 作業後にログを更新する
- テストを実行してから報告する
- ドキュメントも合わせて更新する
- 報告は日本語で行う
- 特定のディレクトリ構成や命名規則を守る
これらはレビュー作業だけに関係するルールではなく、プロジェクト全体の作業に関わる内容です。
そのためAGENTS.mdは、個別作業の手順を書く場所ではなく、「このプロジェクトで作業するときの前提条件」をまとめる場所として考えると分かりやすいでしょう。
人間の開発チームで例えるなら、開発ルールや運用ガイドに近い位置付けです。
Skills:作業ごとの手順をまとめる仕組み
Skillsは、特定の作業を再利用しやすくするための仕組みです。
AGENTS.mdがプロジェクト全体の前提条件をまとめる場所だとすると、Skillsは作業ごとの手順をまとめる場所です。
たとえば次のような用途があります。
- PRレビュー
- テスト作成
- ドキュメント作成
- リリース作業
- 記事のMDX化
毎回同じ指示を書く代わりに、手順としてまとめておくことで再利用しやすくなります。
また、Skillsには作業手順だけでなく、参考資料や補助スクリプトなどを含めることもできます。
たとえばPRレビュー用のSkillであれば、レビュー観点、確認項目、参考ドキュメント、補助スクリプトなどをまとめて管理できます。
繰り返し行う作業を一定の品質で実施したい場合に向いている仕組みです。
AGENTS.mdが大きくなったらSkillsに切り分ける
AGENTS.mdにいろいろなルールを書いていくと、だんだん内容が大きくなることがあります。
そのときは、すべてをAGENTS.mdに書き続けるのではなく、作業ごとに切り出せる内容をSkillsへ分けると整理しやすくなります。
たとえば、次のような内容はAGENTS.mdに残すとよいでしょう。
- プロジェクト全体で守るルール
- 報告形式
- ディレクトリ構成の前提
- 作業ログを残す方針
- テストや検証に関する基本方針
一方で、次のような内容はSkillsに切り出しやすいです。
- PRレビューの手順
- テスト追加の手順
- ドキュメント更新の手順
- 記事をMDX化する手順
- リリース作業の手順
たとえばAGENTS.mdに、記事のMDX化手順を細かく書いている場合を考えます。
記事をMDX化するときは、frontmatterを確認し、slugを決め、画像パスを確認し、Mermaidの有無を確認し、content:checkを実行し、最後に差分を確認する。
このような内容は、プロジェクト全体のルールというより「MDX化という特定作業の手順」です。
そのため、AGENTS.mdには「記事のMDX化ではMDX化用のSkillを参照する」とだけ書き、詳しい手順はSkill側へ移す方が管理しやすくなります。
判断の目安はシンプルです。
- どの作業でも常に必要な内容ならAGENTS.mdに残す
- 特定の作業でだけ使う詳しい手順ならSkillsに切り出す
このように分けると、AGENTS.mdはプロジェクト全体の前提を伝える場所として保ちやすくなり、Skillsは作業ごとの手順書として使いやすくなります。
Plugins:Skillsや連携機能をまとめて扱う仕組み
Pluginsは、Skillsや外部連携機能をまとめて扱うための単位です。
現時点では、Pluginの中にSkillsやMCP Serverなどを含めて管理できます。
概念的には次のような構成になります。
Plugin
├─ Skills
├─ App Integrations
└─ MCP Servers
Skillsが個別の作業手順だとすると、Pluginはそれらをまとめたパッケージのような存在です。
たとえば、チーム全体で同じレビュー手順やドキュメント作成手順、GitHub連携を利用したい場合、それらをまとめて配布・共有できます。
個人利用では必須ではありませんが、複数の機能をまとめて再利用したい場面では便利です。
MCP:Codexと外部ツールをつなぐ仕組み
MCPは、Codexと外部ツールや外部データを接続するための仕組みです。
AGENTS.mdやSkillsがルールや手順を扱うのに対し、MCPは接続を担当します。
たとえば次のようなものと接続できます。
- GitHub
- データベース
- Notion
- 社内システム
- 独自API
MCPそのものがレビューをしたり記事を書いたりするわけではありません。
MCPの役割は、Codexが必要な情報や機能へアクセスできるようにすることです。
そのため、MCPは「何をするか」ではなく「何につなぐか」に関係する仕組みとして整理すると理解しやすくなります。
4つの違いを比較する
ここまでの内容を表にすると次のようになります。
| 項目 | AGENTS.md | Skills | Plugins | MCP |
|---|---|---|---|---|
| 主な役割 | プロジェクト全体の指示 | 作業ごとの手順 | 機能のまとまり | 外部ツールとの接続 |
| 粒度 | プロジェクト単位 | タスク単位 | 配布・共有単位 | 接続先単位 |
| 向いている内容 | 運用方針、前提条件、報告形式 | レビュー、テスト、文書化などの作業手順 | Skillsや連携設定の共有 | GitHub、DB、社内ツールなどとの連携 |
| イメージ | ルールブック | 作業マニュアル | 拡張パッケージ | 接続アダプター |
4つともCodexの周辺機能ですが、担当している範囲は異なります。
そのため、どれか一つを選ぶというより、目的に応じて組み合わせて利用することになります。
それぞれはどのような場面で使うのか
実際の利用場面で考えると、次のように整理できます。
プロジェクト全体のルールを決めたい
AGENTS.mdが向いています。
プロジェクト内で共通して守るルールや前提条件をまとめる場所として利用します。
繰り返す作業を標準化したい
Skillsが向いています。
レビューやテスト作成、ドキュメント作成など、何度も行う作業を一定の流れで進めたい場合に利用します。
AGENTS.mdが長くなってきた
内容を見直し、特定作業の手順になっている部分をSkillsへ切り出すと整理しやすくなります。
AGENTS.mdはプロジェクト全体の前提を置く場所として保ち、作業ごとの詳しい流れはSkillsに分ける、という考え方です。
複数の機能をまとめて共有したい
Pluginsが向いています。
Skillsや外部連携をまとめて配布したい場合に利用します。
外部ツールやデータへ接続したい
MCPが向いています。
GitHubやデータベース、社内システムなどをCodexから利用したい場合に利用します。
まとめ
Codexの周辺機能は、役割で分けて考えると理解しやすくなります。
- AGENTS.mdは、プロジェクト固有の指示や前提条件を伝えるもの
- Skillsは、作業手順を再利用するためのもの
- Pluginsは、Skillsや連携機能をまとめるためのもの
- MCPは、外部ツールや外部データと接続するためのもの
似た用語に見えますが、それぞれ担当している範囲は異なります。
プロジェクトの前提条件はAGENTS.mdにまとめる。繰り返し行う作業はSkillsにまとめる。AGENTS.mdが大きくなってきたら、特定作業の手順をSkillsへ切り出す。外部ツールと接続するならMCPを利用する。そして複数の機能をまとめて共有したい場合はPluginsを利用する。
このように整理しておくと、Codexのドキュメントや設定を見たときに、それぞれの役割を把握しやすくなるでしょう。