Claude Desktop Extensions
2025年6月26日に、以下の情報がAnthropicのサイトで公開されました。
公式リポジトリ
記事公開時(2025年6月29日)で以下の通りでした。Star数について初回Commitが6月27日なので、1週間ほどでこの数字でした。
- Contributors:5
- Star:429
紹介記事
既に複数の記事で紹介されています。
想定読者
この記事は、Claude DesktopでMCPサーバーを触ったことがある方向けに書いています。「まだ実際に作ったことはないけれど、どんなものか知りたい」という方も歓迎です。
実際に手を動かして試してみたい場合は、MCPサーバーでの開発経験があると理解が深まります。
Pythonで実装されたMCPサーバーを扱いますが、何らかのプログラミング言語に触れたことがあれば、言語の違いで困ることはないかと思います。
この機能が提供された理由
タイトルでもちらっと記載しましたが、
技術者以外のユーザーが、MCPサーバーを利用できる形を実現するためです。
最初に掲載したAnthropicのサイトで記載された内容に沿って少し記載します。
Introducing Desktop Extensions
拡張子dxt
のファイルを用いた場合に、享受できる利点について記載されています。
Desktop Extensions (.dxt files) solve these problems by bundling an entire MCP server—including all dependencies—into a single installable package. Here's what changes for users:
ローカルMCPサーバーを単一の .dxt ファイルにパッケージ化し、ワンクリックでインストールできるようにしてくれます。
Addressing the MCP installation problem
続けて、現在のMCPインストールにおける問題点を記載しています。
5つの観点で記載されています。
簡単ではありますが、それぞれイメージしてみました。
Developer tools required(開発者ツールが必要)
プログラミング開発をしない場合、PythonやNode.jsがインストールされている状況は稀です。
SlackやTeamsなどのチャットツールよりかは少しステップが多めになる印象があります。
Manual configuration(手動設定)
JSONをコピーして、claude_desktop_config.jsonに追加してください。
この作業について、技術者にとっては日常的な作業なので、迷うことはないでしょう。
しかし技術者以外にとっては、JSON自体に馴染みがないはずです。
手順書を用意したとしても、何らかのトラブルが発生する可能性は十分あります。
No discovery mechanism(発見メカニズムの欠如)
JSONと同じですが、技術者以外にとっては、そもそもGithubとは?といったことも珍しくないでしょう。検索をするとなれば、より難しい作業です。
Dependency management(依存関係管理)・Update complexity(アップデートの複雑さ)
パッケージの競合やバージョンの不一致、そしてClaude Desktop自体のアップデートに伴う対応が必要なケースもあるでしょう。
申し訳ないですが、これらは技術者以外にはほぼ無理な作業です。
前述の3項目とは壁の高さが異なる印象です。
今のままでは技術者以外が利用を開始する上で難しい点が多いのも納得がいきます。
この現状を把握できたところで、
今回、Claude Desktop Extensions作成を体感してみました。
公開されたブログ(最初に掲載したAnthropicのサイト)は、Node.jsベースのツールで説明していましたが、私はPythonに慣れているため、examples/file-manager-pythonを用いて試しました。
Extension作成作業開始
ここからは具体的に作成作業を行います。
開発におけるゴールは、dxt
ファイルを作成することです。
ユーザー(技術者以外)がMCPサーバー利用のために実施する作業から確認される場合は、Claude Desktopへのインストールと動作確認 から確認いただく形でもOKです!
リポジトリも公開してます。
作成時の参照箇所
-
examples/file-manager-python(フォルダ)
- MCPツールとして用いるプログラムと設定ファイル
-
CLI.md
- 作成時に必要なものを含めたコマンド情報を記載
-
MANIFEST.md
-
manifest.json
の各フィールドに対する説明
-
manifest.jsonを作成
JSONで記載されたMCPサーバーの定義書という言い方になるでしょうか。
以下コマンドを実行し、質問に回答すれば作成されます。
dxt init
以下のように色々聞かれます。
私の回答とは異なりますが、回答後以下のようなmanifest.json
が出来上がります。
MANIFEST.md
のField DefinitionsにはRequired FieldsとOptional Fieldsが記載されており、以下がRequired Fieldsの一覧です。
(ここは特に日本語化せずそのまま引用しています)
- dxt_version: Specification version this extension conforms to
- name: Machine-readable name (used for CLI, APIs)
- version: Semantic version (semver)
- description: Brief description
- author: Author information object with name (required), email (optional), and url (optional)
- server: Server configuration object
記述内容の検証
以下のコマンドを実行してください。(余談:Terraformを思い出しました。)
dxt validate manifest.json
問題なければ、以下のメッセージが返ってきます。(validateはpack時も最初に実行されます)
Manifest is valid!
ファイルの移動
作業フォルダに、examples/file-manager-pythonの中身を移動します。
この段階の作業フォルダの状態【part1】
package(作業フォルダ)
├── server/
│ └── main.py
├── manifest.json
├── pyproject.toml
└── requirements.txt
pyproject.tomlの微修正
VsCodeで表示すると、以下メッセージが表示されました。
これが原因で動かないのは面倒なので、指示通り以下のように修正しました。
dependencies = [
"mcp>=1.0.0",
"trio>=0.22.0"
]
pyproject.tomlの[tool.dxt]に沿って、パッケージ化まで
pyproject.toml
の[tool.dxt]
にあるコマンド3つでパッケージ化まで行います。
[tool.dxt]
bundle = "pip install \"mcp[all]\" --target server/lib --upgrade --force-reinstall"
test = "python server/main.py --debug"
pack = "npx @anthropic-ai/dxt pack"
bundle
(ライブラリインストール)
server/libフォルダへのライブラリのインストールを実行します。
server/lib
は、.gitignore にある通り、git管理対象外です。
pip install \"mcp[all]\" --target server/lib --upgrade --force-reinstall
この段階の作業フォルダの状態【part2】
package(作業フォルダ)
├── server/
│ ├── lib/
│ └── main.py
├── .gitignore
├── manifest.json
├── README.md
└── requirements.txt
test
(動作確認)
(今回試すという点では)必須作業ではないですが、せっかくなのでやってみます。
サーバーを起動して、想定通りの挙動か確認します。
python server/main.py --debug
方法は何通りかあるかもしれませんが、
MCP Inspectorを用いるのが早いので、別ターミナルで以下コマンドを実行します。
実行するとURLが表示されるので、クリックします。
npx @modelcontextprotocol/inspector
以下画像の内容で、Connect
をクリックすれば接続できます。
list_files
を実行してみました。
Tool Result: Success、と表示されているので、問題なく動いてそうです。
pack
(dxt
を作成)
パッケージ化します。
npx @anthropic-ai/dxt pack
pyproject.toml
と同じ階層に、拡張子がdxt
のファイルが生成されます。
この段階の作業フォルダの状態【part3】
package(作業フォルダ)
├── server/
│ ├── lib/
│ └── main.py
├── .gitignore
├── manifest.json
├── package.dxt
├── pyproject.toml
└── requirements.txt
これで開発作業が終了しました。
Claude Desktopへのインストールと動作確認
技術者以外の方はここから作業します。
配布されたdxt
ファイルを、
以下画像の通り、エクスプローラーなどからこの場所にドラッグ&ドロップします。
問題なければ、「インストール」をクリックします。
これで利用するための準備は終わったので、早速使います。
チャットからツールを呼び出してみました。
ツールがきちんと機能しました。これで作成作業完了です。
まとめ
タイトルにも記載しましたが、
技術者以外がMCPサーバーを活用できれば効率化できる作業はたくさんありそうです。
ITリテラシーというよりは「AIリテラシー」が必要と思いますので、あちらこちらですぐに導入、という訳にはいかないですが、
より人を必要とする作業に専念するための一手段として利用する箇所が増えればいいなと、一技術者としては思います。
ありがとうございました。