メインコンテンツにスキップ

Claude Coworkをサードパーティプラットフォームで拡張する

今日アップデートされました

Claude CoworkがAmazon Bedrock、Google Cloud Vertex AI、Azure AI Foundry、またはLLMゲートウェイにデプロイされている場合、MCPコネクタ、プラグイン、スキルはClaude Enterpriseとは異なる動作をします。すべてはMDMとローカルファイルシステムマウントを介して制御され、ローカルセットアップインターフェースと設定がMDM経由でプッシュされます。

この記事では、管理者コントロール(許可リスト、配布、ポリシー)とエンドユーザーエクスペリエンス(利用可能な機能、利用不可な機能)について説明します。


MCPコネクタ

MCP(Model Context Protocol)により、ClaudeはClaude Desktopに組み込まれているもの以外のツールとデータソースに接続できます。ユーザーのマシンで実行されるローカルMCPサーバーと、HTTPまたはSSE経由でアクセスされるリモートMCPサーバーの両方がサポートされています。

管理者が管理するリモートMCPサーバー

managedMcpServers MDMキーを使用して、リモートMCPサーバーをユーザーに配布します。JSONアレイの各エントリには、一意の名前とHTTPS URLが必要です。オプションフィールドには、トランスポート、ヘッダー、OAuth設定、およびツールレベルのポリシーが含まれます。

設定例:

[
{
"name": "internal-tools",
"url": "https://mcp.example.corp/sse",
"transport": "sse",
"headers": {
"Authorization": "Bearer <token>"
},
"toolPolicy": {
"runShell": "blocked",
"searchDocs": "allow"
}
}
]
  • transportは「http」(デフォルト)または「sse」です。

  • headersoauthは相互に排他的です。oauth: trueを設定すると、Claude DesktopはPKCEフローを実行してユーザー認証情報を取得します。それ以外の場合は、静的認証にヘッダーを使用します。

  • toolPolicyはツール名を「allow」、「ask」、または「blocked」にマップします。askポリシーは、ツールが実行される前にユーザーに確認を促します。

ユーザーが追加したローカルMCPサーバー

デフォルトでは、ユーザーは独自のローカルMCPサーバー(stdioトランスポート)を追加できます。これを制限するには、MDM設定でisLocalDevMcpEnabled = falseを設定します。falseの場合、管理対象リストのサーバーのみが利用可能になり、ユーザーは独自のサーバーを追加できません。

組み込みツールの無効化

Claude Desktopには、Task、Bash、Glob、Grep、Read、Edit、Write、NotebookEdit、WebFetch、TodoWrite、WebSearch、Skill、REPL、JavaScript、AskUserQuestionなど、複数の組み込みツールが含まれています。ToolSearchとSendUserMessageの2つは、特定の条件下で利用可能です。

利用可能なセットからツールを削除するには、disabledBuiltinToolsアレイに追加します。例:disabledBuiltinTools = ["WebSearch", "Bash"]


プラグイン

プラグインは、スキル、コマンド、サブエージェント、MCPサーバーを特定のロールまたはチーム向けにバンドルします。標準的なClaude Coworkでは、管理者はAnthropicの管理UIを通じてプラグインを配布します。サードパーティプラットフォームでは、プラグインは各マシン上のローカルディレクトリマウント経由で配布されます。

プラグインマウント場所

プラグインフォルダを以下の場所に配置します:

  • macOS: /Library/Application Support/Claude/org-plugins/

  • Windows: C:\ProgramData\Claude\org-plugins\

MDM、ソフトウェア配布ツール、または標準的なエンドポイント管理プロセスを介してディレクトリコンテンツをプッシュします。

プラグインディレクトリ構造

各プラグインは、マウント場所内で以下の構造に従います:

code_reviewer_plugin/
claude-plugin/
plugin.json
version.json
.mcp.json (same format as managedMcpServers)
agents/
code-reviewer.md
commands/
find-all-bugs.md
skills/
security-review/
security-review.md

plugin.jsonファイルはプラグインのメタデータを宣言します。version.jsonファイルはバージョン情報を追跡します。.mcp.jsonファイルは、プラグインがバンドルするMCPサーバーを宣言します。その形式は上記のmanagedMcpServersスキーマと一致します。

デスクトップ拡張機能

デスクトップ拡張機能(.dxtおよび.mcpbファイル)は、ユーザーがコネクタUIからインストールできるローカル拡張機能です。3つのMDMキーがこれを制御します:

  • isDesktopExtensionEnabled — ユーザーがローカルデスクトップ拡張機能をインストールできるようにします

  • isDesktopExtensionDirectoryEnabled — コネクタUIにAnthropicの拡張機能ディレクトリを表示します

  • isDesktopExtensionSignatureRequired — 信頼できるパブリッシャーによって署名されていない拡張機能を拒否します

より厳密なデプロイメントの場合は、署名要件をtrueに設定し、Anthropicの拡張機能ディレクトリを無効にして、ユーザーがチームが検証した署名済み拡張機能のみをインストールするようにします。

スキル

スキルは、ドメイン固有の指示とコンテキストをパッケージ化するためのAnthropicの形式です。サードパーティプラットフォームでは、スキルはローカルのみです。プラグインの一部として、またはローカルプラグインディレクトリへのスタンドアロン追加として提供されます。

Claude Enterpriseで利用可能なスキルとプラグインマーケットプレイスは、サードパーティプラットフォームでは利用できません。組織がキュレーションされたスキルカタログを必要とする場合は、上記で説明したのと同じマウントディレクトリを介してプラグインロールアウトの一部としてスキルを配布します。


サードパーティプラットフォームで利用できないもの

これらの拡張機能は、Claude Enterpriseで利用可能ですが、Claude Coworkがサードパーティプラットフォームにデプロイされている場合は利用できません:

  • スキルとプラグインマーケットプレイス — 一元化されたカタログはありません。代わりにMDM経由で配布します。

  • プロジェクトとプラグイン共有 — ユーザー間の共有には、利用できないチャットおよびプロジェクト機能が必要です。

  • MCPとプラグイン用のカスタムロール — 管理UIを通じたロールベースのアクセス制御は利用できません。差別化されたアクセスのためにMDM設定とOSレベルのユーザーグループを使用します。

  • ユーザー管理用の管理UI — ユーザー管理はAnthropicではなく、クラウドプロバイダーとMDMレイヤーで行われます。


よくある質問

プラグインがユーザーのインストール前に管理者の承認を要求することはできますか?

org-pluginsディレクトリを介して配布するプラグインは、そのマシン上のすべてのユーザーが利用できます。ユーザーごとの承認ステップはありません。より厳密なコントロールのために、マウントベースの配布と署名済みデスクトップ拡張機能ワークフロー(isDesktopExtensionSignatureRequired = true)を組み合わせます。

このデプロイメントにはどのMCPサーバーが付属していますか?

MCPサーバーはデフォルトではサードパーティ推論のClaude Codeに付属していません。すべてのMCPサーバーはMDM経由で許可リストに登録する必要があります。

ユーザーはマシン間でMCP認証情報を共有できますか?

ヘッダー内の認証情報はMDM経由で配信され、マシンの設定に関連付けられます。ユーザー固有の認証情報の場合は、oauth: trueオプションを使用します。これにより、最初の使用時にPKCEフローがトリガーされます。

デプロイ後にプラグインを更新するにはどうすればよいですか?

org-pluginsマウント内のプラグインフォルダを置き換え、既存のソフトウェア配布ツールを介して更新されたバージョンをプッシュします。ユーザーは次のアプリ再起動時に新しいバージョンを表示します。

こちらの回答で解決しましたか?