MCP(Model Context Protocol)サーバーを開発したものの、「インストール手順が複雑でユーザーに使ってもらえない」という悩みはありませんか?
Anthropic社が発表したDXT (Desktop Extensions) は、この問題を一挙に解決する可能性を秘めています。
この記事では、既存のMCPサーバー(特にnpmで公開されているもの)をわずか10分でDXT化する方法と、その過程で遭遇しやすいトラブルとその解決策を、実践ベースで解説します。
なぜDXT化が必要なのか?
従来のMCPサーバー導入は、非エンジニアにとって非常にハードルが高いものでした。
- ターミナルでのコマンド操作が必要
- 設定ファイル(JSON)の手動編集が必要
- 環境構築(Node.jsやPythonなど)が必要
DXT化することで、ユーザーは「.dxtファイルをダブルクリックするだけ」でインストールが完了します。このUXの改善は、ツールの普及において劇的な効果をもたらします。
実践:npm公開MCPサーバーのDXT化手順
特にnpmで公開されているMCPサーバーの場合、DXT化は驚くほど簡単です。
1. 環境準備
まずはDXT開発ツールをインストールします。
npm install -g @anthropic-ai/dxt
2. プロジェクトの初期化
プロジェクトルートで以下のコマンドを実行します。
dxt init
3. manifest.jsonの設定(最重要!)
ここがポイントです。npmパッケージとして公開されている場合、manifest.json の mcp_config を以下のように記述するだけで完結します。
"mcp_config": { "command": "npx", "args": [ "-y", "your-package-name" ] }
これにより、複雑なファイル同梱が不要になり、ファイルサイズを劇的に軽量化(数KB程度)できます。
4. パッケージング
以下のコマンドで .dxt ファイルを生成します。
dxt pack .
トラブルシューティング:よくあるエラーと対処法
署名エラー(Verification Failed)
DXT化の過程で最も躓きやすいのが署名周りです。
$ dxt sign my-extension.dxt Successfully signed...
$ dxt verify my-extension.dxt ERROR: Extension is not signed
現状の対処法:
現時点ではDXTの仕様またはツール側の不具合の可能性があるため、開発段階や社内配布用であれば署名なしでの配布を検討してください。
Claude Desktopの設定で「署名なし拡張機能のインストールを許可」するオプションを有効にすることで利用可能です。
ファイルサイズが巨大になる
dxt pack を実行した際、node_modules やソースコード全体が含まれてしまい、ファイルサイズが数十MBになってしまうことがあります。
解決策:
.dxtignore ファイルを作成し、不要なファイルを除外する。
前述の通り、npx経由での実行設定にし、manifest.json だけを含むディレクトリを作成してパッケージングする。
# dxtディレクトリを作成し、manifest.jsonのみを配置 mkdir dxt cp manifest.json dxt/ dxt pack dxt/ my-extension.dxt
まとめ
既存のMCPサーバーをDXT化することで、ユーザーの導入ハードルは劇的に下がります。
特にnpmで公開済みのパッケージであれば、作業時間はわずか数分。署名周りのトラブルには注意が必要ですが、それを補って余りあるメリットがあります。
ぜひこの機会に、あなたのMCPサーバーをDXTに対応させてみてはいかがでしょうか。


コメント