本文へスキップ
Claude Media
Desktop Extensions(.mcpb)— Claude DesktopにMCPサーバをワンクリック導入する仕組み

Desktop Extensions(.mcpb)— Claude DesktopにMCPサーバをワンクリック導入する仕組み

AnthropicがClaude Desktop向けに公開した拡張パッケージ形式Desktop Extensions(.mcpb)の中身。manifest.jsonの構造、配布の仕組み、エンタープライズ向けポリシーまでを技術視点で読み解きます。

読了目安 約19

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.typenode / 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つです。

  1. ${user_config.api_key}はサーバ起動時に実値へ置換される
  2. sensitive: trueを付けると、値はOSのキーチェーン(macOS Keychain / Windows資格情報マネージャー)に保管される
  3. 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 packmanifestを検証して.mcpbを生成
4. ローカル検証(Claude Desktopにドラッグ&ドロップ)設定画面で表示確認 + Installボタン

mcpb initは対話で必要項目を埋めていく仕組みのため、まずは--yesで最短経路を体験し、必要に応じて手で追記していくのが現実的でしょう。

クロスプラットフォーム対応とテンプレ変数

mcp_configplatformsキーで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側で解決されるので、サーバ実装は値の差し替えを意識せずenvargsから受け取れます。

ツール宣言と「発見可能性」

manifest.jsontoolspromptsに拡張が提供する機能を宣言できます。これは単なるドキュメントではなく、「インストール前に何ができる拡張かを利用者が把握できる」設計上の意図を担っています。

"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段階です。

  1. 提出フォームのガイドラインに沿って拡張を整える
  2. Windows / macOSの双方でテスト
  3. 拡張を提出
  4. 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 PluginsClaude Code(CLI)npm / Marketplaceコード作業に特化した拡張
SkillsClaude(モデル側)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点です。

  1. 仕様を先に読ませる:anthropics/mcpbリポジトリのREADME / MANIFEST.md / examplesを参照させる
  2. 構造を作らせる:manifest.json生成、@modelcontextprotocol/sdkを使ったMCPサーバ実装、エラーハンドリング、タイムアウト管理を含める
  3. 動作確認まで: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作者のいずれにとっても、現時点で押さえておく価値のあるパッケージ形式と言えそうです。

この記事を共有:XLinkedIn