はじめに
md と mdc はどちらも Markdown 系の拡張子ですが、役割と使われ方が少し違います。
この記事では、両者の概要、違いについて記載します。
md(.md)
概要
- Markdown(標準)
- 一番広く使われている拡張子
特徴
- プレーンな Markdown 記法
- GitHub、Qiita、Notion、VS Code などほぼすべてで対応
- ドキュメント・README・設計書向け
例
# Title
- item1
- item2
用途
- README.md
- 仕様書
- 議事録
- 技術ドキュメント全般
mdc(.mdc)
概要
- Markdown + コンポーネント / 拡張構文
- 主に Nuxt / Vue / ドキュメント生成系ツールで使用
特徴
- Markdown に Vue コンポーネントや拡張構文を埋め込める
- 通常の Markdown ビューアでは正しく表示されないことが多い
- ビルド時に解釈される前提
例(Nuxt Content v2 など)
# Hello
<MyComponent />
::alert{type="info"}
This is info
::
用途
- Nuxt Content
- VuePress / Docus 系の高度なドキュメント
- コンポーネント込みのドキュメント
生成AI系ツールでの .mdc 活用
近年、生成AIを活用した開発ツールの普及により、.mdc ファイルを目にする機会が増えています。
Cursor の Rules(.mdc)
AIコードエディタの Cursor では、AIへの指示や制約を記述する「Rules」ファイルに .mdc 拡張子が採用されています(.cursor/rules/ 以下に配置)。
---
description: コーディング規約
globs: ["**/*.ts", "**/*.tsx"]
alwaysApply: false
---
# TypeScript コーディング規約
- `any` 型の使用を禁止する
- 関数には必ず戻り値の型を明示する
::tip
型安全性を最大化するため `strict: true` を tsconfig に設定すること
::
フロントマター(--- 内)でどのファイルに適用するかを制御でき、Markdown 本文でAIへの指示内容を記述します。
Windsurf / Cline などでも類似の仕組みが登場
Cursor に続く形で、他のAIコーディングアシスタントでも Markdown ベースのルールファイルを使うパターンが広がっており、.md と .mdc のどちらが採用されるかはツールによって異なります。
| ツール | ルールファイル |
|---|---|
| Cursor | .cursor/rules/*.mdc |
| Windsurf |
.windsurfrules(.md) |
| Cline |
.clinerules(.md) |
| GitHub Copilot | .github/copilot-instructions.md |
生成AI文脈での使い分けの傾向:
- フロントマターや構造化メタデータが必要 →
.mdc(Cursorなど) - シンプルな指示テキストで十分 →
.md(Windsurf / Clineなど)
まとめ
.md は汎用性が高く、ほぼあらゆる環境で使える標準的な Markdown 形式です。
.mdc はコンポーネント埋め込みや構造化メタデータが必要な場面で力を発揮し、Nuxt Content や Cursor Rules など特定ツールとの親和性が高いです。