125k

2025 年 8 月 - shadcn CLI 3.0 と MCP サーバー

名前空間レジストリ、高度な認証、新しいコマンド、および完全に書き直されたレジストリ エンジン。

名前空間レジストリ、高度な認証、新しいコマンド、および完全に書き直されたレジストリ エンジンのサポートを備えた shadcn CLI 3.0 を出荷しました。

新着情報

名前空間レジストリ

3.0 の最大の変更点は、名前空間レジストリです。 @registry/name 形式を使用して、レジストリ (コミュニティレジストリ、会社のプライベートレジストリ、または内部レジストリ) からコンポーネントをインストールできるようになりました。

これにより、チームやプロジェクト間でコードを配布することが容易になります。

components.jsonでレジストリを構成します。

components.json
{
  "registries": {
    "@acme": "https://acme.com/r/{name}.json",
    "@internal": {
      "url": "https://registry.company.com/{name}",
      "headers": {
        "Authorization": "Bearer ${REGISTRY_TOKEN}"
      }
    }
  }
}

次に、@registry/name 形式を使用してコンポーネントをインストールします。

pnpm dlx shadcn add @acme/button @internal/auth-system

完全に分散化されています。中央の登録機関はありません。チームにとって意味のある名前空間を自由に作成し、コンポーネントを整理できます。

components.json
{
  "registries": {
    "@design": "https://registry.company.com/create/{name}.json",
    "@engineering": "https://registry.company.com/eng/{name}.json",
    "@marketing": "https://registry.company.com/marketing/{name}.json"
  }
}

コンポーネントは、異なるレジストリのリソースに依存することもあります。すべてが適切なソースから自動的に解決され、インストールされます。

registry-item.json
{
  "name": "dashboard",
  "type": "registry:block",
  "registryDependencies": [
    "@shadcn/card", // From default registry
    "@v0/chart", // From v0 registry
    "@acme/data-table", // From acme registry
    "@lib/data-fetcher", // Utility library
    "@ai/analytics-prompt" // AI prompt resource
  ]
}

プライベートレジストリ

コンポーネントを非公開にしておく必要がありますか?もちろん対応できます。API キーやカスタムヘッダーを使用して認証を構成するだけです。

components.json
{
  "registries": {
    "@private": {
      "url": "https://registry.company.com/{name}.json",
      "headers": {
        "Authorization": "Bearer ${REGISTRY_TOKEN}"
      }
    }
  }
}

プライベートコンポーネントは非公開のままです。独自の UI ライブラリを備えたエンタープライズ チームに最適です。

ベーシック認証、ベアラートークン、API キーのクエリパラメータ、カスタムヘッダーなど、主要な認証方法をすべてサポートしています。

詳細については、認証ドキュメント を参照してください。

検索と発見

3 つの新しいコマンドにより、必要なものを簡単に見つけることができます。

  1. インストールする前にレジストリの項目を表示する
pnpm dlx shadcn view @acme/auth-system
  1. レジストリから項目を検索する
pnpm dlx shadcn search @tweakcn -q "dark"
  1. レジストリのすべての項目を一覧表示する
pnpm dlx shadcn list @acme

コンポーネントをインストールする前にプレビューします。複数のレジストリを横断して検索します。事前にコードとすべての依存関係を確認してください。

MCP サーバー

MCP Server

4 月に遡って、MCP サーバーの最初のバージョンを導入しました。それ以来、学んだことをすべて活かして、より優れた MCP サーバーを構築してきました。

新機能は次のとおりです。

  • すべてのレジストリでゼロ構成で動作します
  • お気に入りの MCP クライアントに追加する 1 つのコマンド
  • 基盤となるツールを改善しました
  • CLI およびレジストリとの統合の向上
  • 同じプロジェクト内の複数のレジストリのサポート

MCP サーバーをプロジェクトに追加します。

pnpm dlx shadcn@latest mcp init

詳細については、ドキュメント を参照してください。

すべてをより速く

レジストリ解決エンジンを最初から完全に書き直しました。より高速かつスマートで、最も扱いにくい依存関係ツリーも処理します。

  • 最大 3 倍高速な依存関係の解決
  • よりスマートなファイルの重複排除とマージ
  • すぐに使用できるモノレポのサポートの向上
  • レジストリ作成者向けの build コマンドを更新しました

エラー処理の改善

レジストリ開発者は、問題が発生したときにユーザー (および LLM) をガイドするためにカスタム エラー メッセージを提供できるようになりました。 CLI には、一般的な問題に対して、対処可能なエラーが表示されます。

Unknown registry "@acme". Make sure it is defined in components.json as follows:
{
  "registries": {
    "@acme": "[URL_TO_REGISTRY]"
  }
}

環境変数はありませんか? CLI は必要なものを正確に示します。

Registry "@private" requires the following environment variables:
  • REGISTRY_TOKEN
 
Set the required environment variables in your .env or .env.local file.

レジストリ作成者は、ユーザーや AI エージェントが問題を迅速に理解して修正できるように、応答にカスタム エラー メッセージを提供できます。

Error:
You are not authorized to access the item at http://example.com/r/component.
 
Message:
[Unauthorized] Your API key has expired. Renew it at https://example.com/api/renew-key.

アップグレードガイド

ここが最も良い点です。ユーザーにとって重要な変更はありません。既存の components.json はまったく同じように機能します。インストールされているすべての要素はまったく同じように動作します。

開発者向けに、プログラム API を直接使用している場合、より良い関数を優先していくつかの関数を非推奨にしました。

  • fetchRegistry → getRegistry
  • resolveRegistryTree → resolveRegistryItems
  • スキーマが shadcn/registry から shadcn/schema パッケージに移動しました
- import { registryItemSchema } from "shadcn/registry"
+ import { registryItemSchema } from "shadcn/schema"

それでおしまい。本当に。それ以外はすべて正常に機能します。