この機能はClaude Desktop専用です。 Desktop Extensionsは、Claude Desktopアプリケーション向けに設計されたMCPサーバーのパッケージング・インストール形式であり、Claude Code(CLI)では使用できません。
| 機能 | Claude Desktop | Claude Code (CLI) |
|---|---|---|
| .mcpbファイルのインストール | 対応 | 非対応 |
| ワンクリックインストール | 対応 | 非対応 |
| 自動UI生成(user_config) | 対応 | 非対応 |
| OSキーチェーン統合 | 対応 | 非対応 |
| 自動更新 | 対応 | 非対応 |
| MCPサーバー利用 | 対応 | 対応(手動設定) |
Claude Codeユーザーの場合: MCPサーバーは引き続き手動で設定する必要があります。~/.claude/settings.jsonやclaude_desktop_config.jsonを編集してMCPサーバーを追加してください。ただし、Desktop Extensions形式で配布されているMCPサーバーのソースコードを参照し、同等の設定を手動で行うことは可能です。
Desktop Extensions: Claude Desktop向けMCPサーバーのワンクリックインストール
概要
Anthropicは昨年のModel Context Protocol(MCP)リリース後、開発者が強力なローカルサーバーを構築したものの、インストールの複雑さに関する継続的なフィードバックを受けました。本記事ではDesktop Extensionsという新しいパッケージング形式を紹介します。この形式により「MCPサーバーのインストールをボタンをクリックするだけの簡単さにする」という目標が実現されました。
従来のインストール方法の問題点
既存のMCPサーバー導入には複数の障害がありました:
- 開発者ツールの必須化:Node.js、Python等のランタイムの事前インストールが必要
- 手動設定作業:JSON設定ファイルの編集が必要
- 依存関係の管理:パッケージ競合やバージョン不一致の解決が必須
- 発見機構の欠如:GitHubでのサーバー検索が必要
- 更新の複雑性:サーバー維持管理のための手動再インストール
これらの障壁により「MCPサーバーの強力な機能にもかかわらず、大多数の非技術ユーザーにはアクセス不可能な状態」が続いていました。
従来のインストール手順の例
# まずNode.jsをインストール
npm install -g @example/mcp-server
# ~/.claude/claude_desktop_config.jsonを手動編集
# Claude Desktopを再起動
# 動作確認...うまくいくことを祈る
Desktop Extensionによる解決策
新しいフォーマット(.mcpbファイル)により、「MCPサーバー全体—すべての依存関係を含む—を単一のインストール可能なパッケージに統合」することが可能になりました。
ユーザー体験の変化
従来:
- Node.jsをインストール
- JSONを手動編集
- Claude Desktopを再起動
- 動作確認(不確実)
現在:
.mcpbファイルをダウンロード- Claude Desktopで開く
- インストールボタンをクリック
アーキテクチャ
Desktop Extensionは、MCPサーバーとmanifest.jsonを含むZIPアーカイブです。
ディレクトリ構造
extension.mcpb/
├── manifest.json (必須)
├── server/ (実装ファイル)
├── node_modules/ または lib/ (バンドルされた依存関係)
└── icon.png (オプション)
基本的なmanifest.json
最小構成のmanifest.jsonには以下のフィールドが必要です:
{
"mcpb_version": "0.1",
"name": "my-extension",
"version": "1.0.0",
"description": "シンプルなMCP拡張機能",
"author": {
"name": "Extension Author"
},
"server": {
"type": "node",
"entry_point": "server/index.js",
"mcp_config": {
"command": "node",
"args": ["${__dirname}/server/index.js"]
}
}
}
user_config付きmanifest.json
ユーザー入力(APIキーなど)が必要な場合:
{
"mcpb_version": "0.1",
"name": "my-extension",
"version": "1.0.0",
"description": "シンプルなMCP拡張機能",
"author": {
"name": "Extension Author"
},
"server": {
"type": "node",
"entry_point": "server/index.js",
"mcp_config": {
"command": "node",
"args": ["${__dirname}/server/index.js"],
"env": {
"API_KEY": "${user_config.api_key}"
}
}
},
"user_config": {
"api_key": {
"type": "string",
"title": "APIキー",
"description": "認証用のAPIキー",
"sensitive": true,
"required": true
}
}
}
完全なmanifest.json(すべてのオプション項目を含む)
{
"mcpb_version": "0.1",
"name": "My MCP Extension",
"display_name": "My Awesome MCP Extension",
"version": "1.0.0",
"description": "この拡張機能が何をするかの簡潔な説明",
"long_description": "拡張機能の機能、ユースケース、特徴を説明する詳細な説明。複数段落をサポートし、基本的なMarkdownが使用可能。",
"author": {
"name": "Your Name",
"email": "[email protected]",
"url": "https://your-website.com"
},
"repository": {
"type": "git",
"url": "https://github.com/your-username/my-mcp-extension"
},
"homepage": "https://example.com/my-extension",
"documentation": "https://docs.example.com/my-extension",
"support": "https://github.com/your-username/my-extension/issues",
"icon": "icon.png",
"screenshots": [
"assets/screenshots/screenshot1.png",
"assets/screenshots/screenshot2.png"
],
"server": {
"type": "node",
"entry_point": "server/index.js",
"mcp_config": {
"command": "node",
"args": ["${__dirname}/server/index.js"],
"env": {
"ALLOWED_DIRECTORIES": "${user_config.allowed_directories}"
}
}
},
"tools": [
{
"name": "search_files",
"description": "ディレクトリ内のファイルを検索"
}
],
"prompts": [
{
"name": "poetry",
"description": "LLMに詩を書かせる",
"arguments": ["topic"],
"text": "以下のトピックについて創造的な詩を書いてください: ${arguments.topic}"
}
],
"tools_generated": true,
"keywords": ["api", "automation", "productivity"],
"license": "MIT",
"compatibility": {
"claude_desktop": ">=1.0.0",
"platforms": ["darwin", "win32", "linux"],
"runtimes": {
"node": ">=16.0.0"
}
},
"user_config": {
"allowed_directories": {
"type": "directory",
"title": "許可するディレクトリ",
"description": "サーバーがアクセスできるディレクトリ",
"multiple": true,
"required": true,
"default": ["${HOME}/Desktop"]
},
"api_key": {
"type": "string",
"title": "APIキー",
"description": "認証用のAPIキー",
"sensitive": true,
"required": false
},
"max_file_size": {
"type": "number",
"title": "最大ファイルサイズ(MB)",
"description": "処理する最大ファイルサイズ",
"default": 10,
"min": 1,
"max": 100
}
}
}
クロスプラットフォーム対応
WindowsとmacOSで異なる設定が必要な場合:
"server": {
"type": "node",
"entry_point": "server/index.js",
"mcp_config": {
"command": "node",
"args": ["${__dirname}/server/index.js"],
"platforms": {
"win32": {
"command": "node.exe",
"env": {
"TEMP_DIR": "${TEMP}"
}
},
"darwin": {
"env": {
"TEMP_DIR": "${TMPDIR}"
}
}
}
}
}
開発者向け実装手順
ステップ1:初期化
npx @anthropic-ai/mcpb init
または、グローバルインストールして使用:
npm install -g @anthropic-ai/mcpb
mcpb init
ステップ2:ユーザー入力の設定
user_configセクションで必要なフィールドを宣言します。Claude Desktopが自動的にUI生成、バリデーション、キーチェーンへの安全な保存を処理します。
ステップ3:パッケージング
npx @anthropic-ai/mcpb pack
または:
mcpb pack
ステップ4:テスト
生成された.mcpbファイルをClaude Desktopの設定ウィンドウにドラッグ&ドロップします。権限のプレビューとインストールボタンが表示されます。
ランタイム機能
組み込みNode.js
Claude DesktopにNode.jsがシップされており、外部依存が排除されています。ユーザーは事前にNode.jsをインストールする必要がありません。
自動更新
新しいバージョンが利用可能になると、自動的に更新されます。
テンプレートリテラル
ランタイム時に以下の変数が置換されます:
${__dirname}:拡張機能のインストールディレクトリ${user_config.key}:ユーザーが提供した値${HOME}:ユーザーのホームディレクトリ${TEMP}:一時ディレクトリ
ツールとプロンプトの宣言
拡張機能が提供するツールとプロンプトを宣言できます:
"tools": [
{
"name": "read_file",
"description": "ファイルの内容を読み取る"
}
],
"prompts": [
{
"name": "code_review",
"description": "ベストプラクティスに基づいてコードをレビュー",
"arguments": ["file_path"]
}
]
セキュリティ機能
一般ユーザー向け
- OSキーチェーンでの保存:APIキー等の機密データがOSのキーチェーンに安全に保管される
- 自動更新:セキュリティパッチが自動的に適用される
- インストール監査:インストール済み拡張機能の監査が可能
エンタープライズ向け
Anthropicは企業向けのセキュリティと管理機能を実装しています:
- Group Policy/MDM対応:WindowsとmacOSでの一括管理
- 事前インストール:承認済み拡張機能を事前にデプロイ
- ブロックリスト:特定の拡張機能またはパブリッシャーをブロック
- ディレクトリ無効化:拡張機能ディレクトリ全体を無効化可能
- プライベートディレクトリ:組織専用の拡張機能ディレクトリをデプロイ
オープンエコシステム
Anthropicは「MCPサーバー周辺のオープンエコシステムに対するコミットメント」を表明し、複数アプリケーション間での普遍的な採用を目指しています。
以下がオープンソースとして公開されています:
- 完全なMCPB仕様
- ツールチェーン
- 参照実装
- TypeScriptスキーマ
これにより:
- 開発者:一度パッケージ化すれば、MCPB対応の任意の環境で実行可能
- アプリケーション開発者:ゼロからビルドせずに拡張機能対応を追加可能
- ユーザー:MCP対応の全アプリケーション間で一貫した体験
拡張機能の提出
拡張機能をAnthropicのキュレーションされたディレクトリに提出できます:
- WindowsとmacOSの両方でテストを完了
- 提出ガイドラインに従う
- セキュリティレビューを通過
まとめ
Desktop Extensionsは「ローカルAIツールの操作方法における根本的な転換」を表現しています。インストールの障壁を排除することで、「強力なMCPサーバーを開発者だけでなく、すべてのユーザーにアクセス可能」にしています。
Anthropicは社内でも試験的なMCPサーバーの共有に拡張機能を活用しており、GameBoyエミュレータへの接続なども実現しています。「開発者の創意工夫から生まれた数千のMCPサーバーは、今や数百万のユーザーにワンクリックで届けられる」ようになりました。
元記事: Desktop Extensions: One-click MCP server installation for Claude Desktop - Anthropic Engineering Blog