はじめに
ReactでモダンなUIを構築する際、コンポーネントライブラリの選択は重要な決断です。従来のUIライブラリはnpmパッケージとしてインストールし、提供されるAPIに従って使用するスタイルが一般的でした。しかし、この方式ではカスタマイズ性に制限があり、デザインシステムとの統合が難しいという課題がありました。
shadcn/uiは、この課題を根本から解決する新しいアプローチを採用しています。コンポーネントのソースコードを直接プロジェクトに配置する「Open Code」という概念により、完全なカスタマイズ性とAIとの親和性を実現しています。
本記事では、shadcn/uiのインストール方法、主要な特徴、そして2025年に注目を集めているMCPサーバーを活用したAI連携について詳しく解説します。
実行環境・前提条件
必要な環境
| 項目 | バージョン |
|---|---|
| Node.js | 18.0以上 |
| npm / pnpm / yarn | 最新版推奨 |
| React | 18.0以上 |
| Tailwind CSS | 4.0以上 |
| TypeScript | 5.0以上(推奨) |
前提知識
- Reactの基本的なコンポーネント開発経験
- Tailwind CSSの基礎知識
- npm/pnpmなどのパッケージマネージャーの操作
対応フレームワーク
shadcn/uiは以下のフレームワークに対応しています。
- Next.js
- Vite(React)
- Remix
- Gatsby
- Astro
- Laravel
本記事ではVite + Reactを使用した手順を中心に解説します。
shadcn/uiとは
shadcn/uiは、美しくデザインされたアクセシブルなコンポーネントと、コード配布プラットフォームを組み合わせたツールです。従来のコンポーネントライブラリとは異なり、これはコンポーネントライブラリそのものではなく、「自分だけのコンポーネントライブラリを構築する方法」を提供します。
shadcn/uiの5つの特徴
1. Open Code(オープンコード)
従来のUIライブラリでは、コンポーネントの内部実装はパッケージ内に隠蔽されています。ボタンの挙動を変更したい場合、スタイルのオーバーライドやラッパーコンポーネントの作成が必要でした。
shadcn/uiでは、コンポーネントのソースコードがそのままプロジェクトに配置されます。
|
|
2. Composition(コンポジション)
すべてのコンポーネントが共通の構成可能なインターフェースを持っています。異なるAPIを学ぶ必要がなく、チーム全体で予測可能な開発体験を提供します。
|
|
3. Distribution(配布システム)
shadcn/uiは、コンポーネントを配布するためのスキーマとCLIを提供します。
- スキーマ:コンポーネント、依存関係、プロパティを定義するフラットファイル構造
- CLI:クロスフレームワーク対応のコンポーネント配布・インストールツール
4. Beautiful Defaults(美しいデフォルト)
慎重に選択されたデフォルトスタイルにより、追加の作業なしで美しいUIを実現できます。すべてのコンポーネントが相互に調和するよう設計されています。
5. AI-Ready(AI対応)
オープンコードと一貫したAPIにより、AIツールとの連携が容易です。AIモデルがコンポーネントを理解し、新しいコンポーネントを生成することも可能です。
インストール手順
手順1:Viteプロジェクトの作成
まず、React + TypeScriptのプロジェクトを作成します。
|
|
プロンプトでReactとTypeScriptを選択してください。
|
|
手順2:Tailwind CSSの追加
shadcn/uiはTailwind CSSを使用しているため、インストールが必要です。
|
|
src/index.cssの内容をすべて以下に置き換えます。
|
|
手順3:TypeScript設定の更新
tsconfig.jsonにbaseUrlとpathsを追加します。
|
|
同様にtsconfig.app.jsonにも追加します。
|
|
手順4:Vite設定の更新
パスエイリアスを解決するために、@types/nodeをインストールします。
|
|
vite.config.tsを以下のように更新します。
|
|
手順5:shadcn/ui CLIの実行
プロジェクトにshadcn/uiを初期化します。
|
|
いくつかの質問に回答します。
|
|
初期化が完了すると、プロジェクトに以下のファイルが生成されます。
components.json:shadcn/uiの設定ファイルsrc/lib/utils.ts:ユーティリティ関数- CSSカスタムプロパティの追加
手順6:コンポーネントの追加
必要なコンポーネントを追加します。
|
|
複数のコンポーネントを一度に追加することも可能です。
|
|
利用可能なすべてのコンポーネントを確認するには、引数なしで実行します。
|
|
コンポーネントの使用
追加したコンポーネントは、以下のようにインポートして使用します。
|
|
期待される結果
開発サーバーを起動すると、スタイリングされたボタンが画面中央に表示されます。
|
|
主要コンポーネント一覧
shadcn/uiは60以上のコンポーネントを提供しています。以下は代表的なものです。
| カテゴリ | コンポーネント |
|---|---|
| 入力 | Button, Input, Textarea, Checkbox, Radio, Select, Switch |
| レイアウト | Card, Accordion, Collapsible, Tabs |
| オーバーレイ | Dialog, Alert Dialog, Sheet, Popover, Tooltip |
| データ表示 | Table, Avatar, Badge, Calendar |
| フィードバック | Alert, Progress, Skeleton, Toast |
| ナビゲーション | Breadcrumb, Command, Navigation Menu |
MCPサーバーとは
MCPの概要
MCP(Model Context Protocol)は、AIアシスタントが外部データソースやツールに安全に接続するためのオープンプロトコルです。shadcn/uiのMCPサーバーを使用することで、AIアシスタントがコンポーネントレジストリに直接アクセスできるようになります。
MCPサーバーが必要な理由
従来のshadcn/uiの使用方法では、以下の手順が必要でした。
- 公式ドキュメントでコンポーネントを探す
- CLIコマンドを手動で実行する
- 使用方法を調べてコードを記述する
MCPサーバーを導入することで、これらの作業をAIアシスタントとの自然な対話で完結できます。
|
|
MCPサーバーの機能
shadcn MCPサーバーは以下の機能を提供します。
- コンポーネントの閲覧:利用可能なコンポーネント、ブロック、テンプレートの一覧表示
- レジストリ横断検索:複数のソースから特定のコンポーネントを検索
- 自然言語でのインストール:「ログインフォームを追加して」のような会話形式でコンポーネントを追加
- 複数レジストリのサポート:公開レジストリ、プライベートライブラリ、サードパーティソースへのアクセス
MCPサーバーの設定方法
VS Code(GitHub Copilot)での設定
プロジェクトの.vscode/mcp.jsonを作成し、以下の内容を記述します。
|
|
設定後、.vscode/mcp.jsonを開き、shadcnサーバーの横にある「Start」をクリックします。
Cursorでの設定
.cursor/mcp.jsonを作成します。
|
|
設定後、Cursor SettingsでMCPサーバーを有効化します。
Claude Codeでの設定
CLIで自動設定が可能です。
|
|
または、.mcp.jsonを手動で作成します。
|
|
Claude Codeを再起動し、/mcpコマンドで接続状態を確認できます。
MCPサーバーの活用例
MCPサーバーを設定すると、AIアシスタントに以下のようなプロンプトで指示できます。
コンポーネントの閲覧と検索
|
|
|
|
コンポーネントのインストール
|
|
|
|
複数レジストリの活用
components.jsonで追加のレジストリを設定できます。
|
|
設定後、以下のようにプロンプトできます。
|
|
トラブルシューティング
MCPサーバーが応答しない場合
- 設定ファイルが正しいか確認
- MCPクライアントを再起動
shadcnがプロジェクトにインストールされているか確認- レジストリへのネットワーク接続を確認
「No tools or prompts」エラーが表示される場合
- npxキャッシュをクリア
1npx clear-npx-cache - MCPサーバーを再有効化
- Cursorの場合、View → Outputで「MCP: project-*」のログを確認
まとめ
shadcn/uiは、従来のコンポーネントライブラリの課題を解決する革新的なアプローチを提供しています。Open Codeにより完全なカスタマイズ性を実現し、MCPサーバーによってAIアシスタントとのシームレスな連携が可能になりました。
本記事で解説した内容を活用することで、以下のことが実現できます。
- 美しくアクセシブルなUIの迅速な構築
- プロジェクト固有の要件に合わせたコンポーネントのカスタマイズ
- AIアシスタントを活用した効率的な開発ワークフロー
2025年のReact開発において、shadcn/uiはUIコンポーネント構築の標準的な選択肢の一つとなっています。ぜひプロジェクトに導入して、その開発体験を実感してください。