Desktop Extensions(.mcpb)— Claude DesktopにMCPサーバをワンクリック導入する仕組み
AnthropicがClaude Desktop向けに公開した拡張パッケージ形式Desktop Extensions(.mcpb)の中身。manifest.jsonの構造、配布の仕組み、エンタープライズ向けポリシーまでを技術視点で読み解きます。
Anthropicがエンジニアリングブログで公開した「Desktop Extensions: One-click MCP server installation for Claude Desktop」は、Claude Desktopに対してローカルMCP(Model Context Protocol、モデルとツールを繋ぐ標準プロトコル)サーバを「ファイルをダブルクリックするだけ」で導入できる新しいパッケージ形式を解説した記事です。初出は2025年6月26日で、その後9月11日に拡張子が.dxtから.mcpb(MCP Bundle)に改称されました。既存の.dxtファイルは引き続き動作し、機能差はありません。
中核となるアイデアは、MCPサーバ本体と依存ライブラリを単一のzipアーカイブにまとめ、manifest.jsonで起動方法・ユーザー設定・対応プラットフォームを宣言する、というものです。Claude DesktopにはNode.jsランタイムが同梱されているため、利用者側にNode.jsやPythonを別途インストールさせる必要がありません。
本稿では、この発表で示された設計の主要ポイントを、MCPをすでに触っているチームの目線で読み解きます。MCPの基本はMCP実用ガイド、MCPの呼び出し効率の話はMCPでコード実行する設計を併読してください。
背景:ローカルMCPサーバの導入摩擦
MCPは公開以降、ファイルシステム連携やデータベース接続など、Claude Desktopから手元の環境を扱う多くのローカルサーバを生み出してきました。一方で、エンジニアではない利用者にとって導入の敷居が高いという声が繰り返し寄せられていたとされます。発表ではその摩擦点として次の5つが整理されています。
- 開発者ツール必須:Node.jsやPythonなどのランタイムを別途インストールする必要がある
- 手動設定:
~/.claude/claude_desktop_config.jsonをテキストエディタで直接編集 - 依存解決:パッケージ衝突やバージョン不整合を利用者自身で解決
- 発見手段の不在:有用なMCPサーバを探すにはGitHubを検索するしかない
- 更新の煩雑さ:最新版を使い続けるには手動で再インストール
つまり「強力な仕組みが、技術者以外には届かない」状態だったというわけです。Desktop Extensionsはこの摩擦を1つのパッケージ形式と既定のランタイム同梱で解消する設計になっています。
.mcpbファイルの中身
Desktop Extensionの実体は、所定のレイアウトを持つzipアーカイブです。Node.js拡張の例で示された構造は以下のとおりです。
extension.mcpb (ZIP archive)
├── manifest.json # 拡張のメタデータと設定
├── server/ # MCPサーバ本体
│ └── index.js # エントリポイント
├── node_modules/ # 同梱する依存パッケージ
├── package.json # 任意:npmパッケージ定義
└── icon.png # 任意:アイコンPython拡張の場合はserver/配下にmain.pyを置き、依存はlib/にバンドル、requirements.txtを任意で同梱します。「classic binaries/executables」と呼ばれる第3のタイプも認められており、Node.js / Python / バイナリの3形態がサポート対象です。
必須ファイルはmanifest.jsonのみで、他のディレクトリ構成は実装スタイルに応じて柔軟に組み立てられます。
manifest.jsonの最小構成
manifest.jsonには人間が読める情報(名前・説明・著者)、機能宣言(tools / prompts)、ユーザー設定、ランタイム要件などを記述します。最小構成は次のとおりです。
{
"mcpb_version": "0.1",
"name": "my-extension",
"version": "1.0.0",
"description": "A simple MCP extension",
"author": {
"name": "Extension Author"
},
"server": {
"type": "node",
"entry_point": "server/index.js",
"mcp_config": {
"command": "node",
"args": [
"${__dirname}/server/index.js"
]
}
}
}server.typeにnode / python / binaryのいずれかを指定し、mcp_configで実際の起動コマンドと引数を書く、という構造です。${__dirname}は拡張のインストール先ディレクトリに置換される予約テンプレート変数で、起動時にClaude Desktopが解決します。
仕様書のバージョンは意図的に0.1が振られています。発表でも「コミュニティと一緒に育てていきたい」と明言されており、今後変わり得る前提で読むほうが安全です。
ユーザー設定をmanifestに宣言する
APIキーや許可ディレクトリなど、利用者ごとに変わる値はuser_configセクションで宣言します。Claude Desktopは設定UIを自動生成し、入力値の検証と保存まで引き受けます。
{
"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 Key",
"description": "Your API key for authentication",
"sensitive": true,
"required": true
}
}
}ここでのポイントは3つです。
${user_config.api_key}はサーバ起動時に実値へ置換されるsensitive: trueを付けると、値はOSのキーチェーン(macOS Keychain / Windows資格情報マネージャー)に保管されるrequired: trueを満たすまで、Claude Desktopは拡張を有効化しない
「APIキーをJSONに直書きさせない」という従来の課題に対し、宣言だけで安全な格納と置換まで面倒を見てくれる設計です。配列入力(multiple: true)、ディレクトリ選択(type: "directory")、数値の上下限(min / max)など、よくある入力UIは一通り揃っています。
開発者の作業フロー
発表では4ステップに整理されています。CLIには@anthropic-ai/mcpb(以前の名残として@anthropic-ai/dxt系の呼称が記憶に残る人もいるかもしれませんが、現行はmcpb)が用意されています。
| ステップ | コマンド | 役割 |
|---|---|---|
| 1. manifest初期化 | npx @anthropic-ai/mcpb init | 対話形式でmanifest.jsonの雛形を生成。--yesで対話省略 |
| 2. user_config記述 | (手動編集) | 必要なAPIキー・ディレクトリなどを宣言 |
| 3. パッケージ化 | npx @anthropic-ai/mcpb pack | manifestを検証して.mcpbを生成 |
| 4. ローカル検証 | (Claude Desktopにドラッグ&ドロップ) | 設定画面で表示確認 + Installボタン |
mcpb initは対話で必要項目を埋めていく仕組みのため、まずは--yesで最短経路を体験し、必要に応じて手で追記していくのが現実的でしょう。
クロスプラットフォーム対応とテンプレ変数
mcp_configはplatformsキーでWindows / macOS別の上書きを書けます。たとえばWindowsではnode.exeを明示し、環境変数として${TEMP}を渡す、といった切り分けが可能です。
"platforms": {
"win32": {
"command": "node.exe",
"env": { "TEMP_DIR": "${TEMP}" }
},
"darwin": {
"env": { "TEMP_DIR": "${TMPDIR}" }
}
}manifest内で利用できる主なテンプレート変数は次のとおりです。
${__dirname}:拡張の展開先ディレクトリ${user_config.<key>}:利用者が設定UIで入力した値${HOME}/${TEMP}:OSの環境変数
これらは起動時にClaude Desktop側で解決されるので、サーバ実装は値の差し替えを意識せずenvやargsから受け取れます。
ツール宣言と「発見可能性」
manifest.jsonのtoolsとpromptsに拡張が提供する機能を宣言できます。これは単なるドキュメントではなく、「インストール前に何ができる拡張かを利用者が把握できる」設計上の意図を担っています。
"tools": [
{ "name": "read_file", "description": "Read contents of a file" }
],
"prompts": [
{
"name": "code_review",
"description": "Review code for best practices",
"arguments": ["file_path"]
}
]GitHubのREADMEを読みに行かなくても「この拡張で何ができそうか」が拡張ディレクトリ上で見えるという立て付けで、MCPサーバの「発見手段の不在」問題に対するもう1つの応答にもなっています。
拡張ディレクトリと審査プロセス
Claude Desktopには発表時点で「Extension Directory」と呼ばれるキュレーション付きのカタログが組み込まれており、利用者は検索・閲覧・ワンクリックインストールが可能です。GitHubをさまよってコードを読み込む必要はありません。
公開を希望する開発者の流れは次の4段階です。
- 提出フォームのガイドラインに沿って拡張を整える
- Windows / macOSの双方でテスト
- 拡張を提出
- Anthropic側で品質とセキュリティを審査
つまり「自前のCDNで配ってインストール手順を書く」運用から、「ディレクトリに掲載されてユーザーに届く」運用への移行が前提になっているわけです。プラグイン的なエコシステムを志向する設計、と読めます。
オープンソース化された範囲
Anthropicは仕様とツールチェインのオープンソース化を明言しています。具体的に公開対象とされているのは以下です。
- MCPB仕様(Specification)全体
- パッケージ化と検証のツール
- リファレンス実装コード
- TypeScriptの型とスキーマ
その狙いは「Claude Desktop以外のAIデスクトップアプリにも同じ.mcpbが流通する状態」を作ることだと記事は述べています。サーバ開発者から見れば「1回パッケージすればMCPBをサポートする他アプリでも動く」、アプリ開発者から見れば「ゼロから拡張機構を作り込まずに済む」、利用者から見れば「どのアプリでも同じ手触り」という三方良しの構想です。
仕様バージョンが0.1に据え置かれている点は、現実装をそのまま依存対象として固めるのではなく、コミュニティの議論を反映して変化していく前提と受け取るのが妥当でしょう。
エンタープライズ向けのコントロール
Desktop Extensionsはプレビュー段階ながら、企業導入向けの管理機能が初期から組み込まれています。発表で挙げられているのは以下です。
| カテゴリ | 機能 |
|---|---|
| 利用者向け | 機微な値のOSキーチェーン保管、自動アップデート、インストール済み拡張の監査 |
| 企業向け | Windows Group Policy / macOS MDMによる管理、承認済み拡張のプリインストール、特定の拡張やパブリッシャのブロックリスト、拡張ディレクトリ自体の無効化、プライベートな拡張ディレクトリの配布 |
「IT部門が許可した拡張だけを社内Claude Desktopに自動配布する」「公共ディレクトリは無効化し、社内ディレクトリだけ見せる」といった運用が、最初から想定された設計になっている点は注目に値します。SaaSとして利用するChatGPT系拡張機構との設計思想の違いがはっきり出る箇所です。
Skills / Pluginsとの関係をどう読むか
Claudeエコシステムには、Desktop Extensions以外にもモデルに能力を足す仕組みが複数存在します。読者が混乱しがちな箇所なので、立ち位置を併記しておきます。
| 仕組み | 主な実行場所 | 主な配布形 | 主な目的 |
|---|---|---|---|
Desktop Extensions(.mcpb) | Claude Desktop(ローカル端末) | .mcpbファイル / Extension Directory | ローカルMCPサーバを非技術者にも届ける |
| Claude Code Plugins | Claude Code(CLI) | npm / Marketplace | コード作業に特化した拡張 |
| Skills | Claude(モデル側) | Anthropic配布 | モデルの作業スタイルを足す |
| MCP server(素の状態) | 任意の環境 | 各自配布 | プロトコル本体、開発者向けの最低単位 |
Desktop Extensionsは「MCPサーバの配布形式」であり、MCPそのものや、Claude Code側のPlugin機構(Claude Code Plugin / Marketplaceガイドを参照)とは別レイヤです。同じMCPサーバを素のままで配ることも、.mcpbにバンドルしてClaude Desktopディレクトリに載せることも両立します。
エージェント実装の文脈でMCPツールをどう設計するかは、別記事のMCPでコード実行する設計で扱った「ツールをコードAPIとして呼び出させる」議論と地続きです。Desktop Extensionsはそのツールをどう「配るか」の話、と整理すると見通しが立ちます。
Claude Codeで拡張を組み立てる
発表記事には「社内でも実験的なMCPサーバはDesktop Extensionsで配っており、Claude Codeに作らせるのが現実的に機能している」と述べたうえで、Claude Codeに渡すと良いプロンプト雛形が掲載されています。要旨は次の3点です。
- 仕様を先に読ませる:
anthropics/mcpbリポジトリのREADME / MANIFEST.md / examplesを参照させる - 構造を作らせる:
manifest.json生成、@modelcontextprotocol/sdkを使ったMCPサーバ実装、エラーハンドリング、タイムアウト管理を含める - 動作確認まで:stdioトランスポートでの通信検証、ツール呼び出しの戻り値検証、manifestの読み込み確認
Claude Codeの全体像はClaude Code完全ガイドを参照してください。ローカルで動く小さなMCPサーバをClaude Codeに生成させ、その場でmcpb packして.mcpbにする、というのが現状もっとも軽い試し方になりそうです。
設計を「自社運用にどう効くか」で読み直す
最後に、この発表が読者の自社運用にどう効きそうかを観点別にまとめておきます。
| 観点 | 効き方 |
|---|---|
| 社内ツールの内製配布 | プライベートなExtension Directoryを使えば、社員のClaude DesktopにMCPサーバを安全に配布できる |
| 機微情報の取り扱い | APIキーや認証情報はsensitive: true宣言でOSキーチェーンに保管される。manifestに平文を残さない |
| 非エンジニアへの展開 | .mcpbダブルクリックでインストール完結。Node.js / Python前提知識が要らない |
| クロスOS運用 | macOS / Windows / Linuxの3プラットフォームをplatformsで出し分け可能 |
| ロックイン懸念 | 仕様・ツールチェイン・スキーマがオープンソース。他AIデスクトップアプリでも同じ.mcpbが流通する想定 |
事実として明示されているのは「Claude for macOSとWindowsで実装される」ことで、Linux版Claude Desktopへの言及はありません(platformsにはlinuxが書ける一方、Claude Desktop自体の対応OSは別問題、という読み方が妥当です)。
まとめ
Desktop Extensionsは、MCPの「使える状態」と「届けられる状態」の間を埋める設計です。
- 拡張子は
.mcpb(2025年9月11日に.dxtから改称、既存.dxtも継続動作) - 必要なのは
manifest.json1ファイル、Node.js / Python / バイナリの3形態をサポート - Node.jsランタイムはClaude Desktop同梱、利用者側の前提インストール不要
@anthropic-ai/mcpb init/packの2コマンドでパッケージ化- OSキーチェーン格納・MDM / Group Policy対応・プライベートディレクトリまで初期から備える
- 仕様とツールチェインはオープンソース(バージョン
0.1)、他AIデスクトップアプリでの相互運用を志向
MCPサーバを書いているチーム、社内向けにClaude Desktopを展開しているIT部門、MCP関連の配布形を整えたいOSS作者のいずれにとっても、現時点で押さえておく価値のあるパッケージ形式と言えそうです。
関連する記事
Anthropic をもっと見る →MCPでコード実行する設計 — Anthropicが示す「ツール呼び出し」から「コードAPI」への移行
AnthropicがStainlessを買収 — Claude SDK / MCPサーバ生成基盤を内製化へ
Anthropicが公開した8〜9月のClaude品質低下postmortem — 3バグと検出遅れの理由
エージェント向けツール設計の原則 — Anthropicが説く5つの設計指針と評価駆動の作り方
Anthropicのマルチエージェント研究システム — Claude Researchを支える分業設計と9割向上の内訳
Teaching Claude why — Anthropicが「行動」より「理由」を教えるアラインメント訓練の中身
Anthropic 2026年春の3本柱 — Opus 4.7・Cowork GA・Claude Design
Petriをオープンソース寄贈 — AnthropicがアラインメントツールをMeridian Labsに渡す理由