cowork-plugin-managementで自社用Coworkプラグインを作る手順
Anthropic製cowork-plugin-managementの2スキル(create-cowork-plugin・cowork-plugin-customizer)の進め方と、.pluginファイル化・MCP設定の流れをまとめます。
cowork-plugin-managementは、業務プラグインを使うためのプラグインではありません。Coworkで自社用のプラグインを作り、既存のプラグインを自社のツールに合わせて書き換えるための、Anthropic製のプラグインです。中身は2つのスキルで、どちらも質問に答えるだけで.pluginファイルまで仕上がる作りになっています。ここでは、それぞれが何を聞き、何を出力するかを、リポジトリのファイルに沿って追います。
作ったプラグインを組織に配ったり、グループごとに見せる範囲を絞ったりする管理者向けの設定は、Coworkプラグインの組織管理が扱っています。
cowork-plugin-managementには何が入っているか
anthropics/knowledge-work-pluginsリポジトリのcowork-plugin-managementディレクトリ(v0.2.2)は、.claude-plugin/plugin.json、LICENSE、skills/の3つだけで構成されています。plugin.jsonの説明文は「組織のツールとワークフローに合わせたプラグインの作成・カスタマイズ・管理」で、作者はAnthropicです。
skills/には2つのスキルがあります。
| スキル | 役割 | 出力 |
|---|---|---|
create-cowork-plugin | 役割新しいプラグインを対話で一から作る | 出力.pluginファイル |
cowork-plugin-customizer | 役割既存プラグインを自社向けに調整する | 出力調整後の.pluginファイル |
どちらもスキルのcompatibility欄に、Coworkのデスクトップアプリ環境が必要と書かれています。cowork-plugin-customizerは、リモートコンテナ上の会話では探索の段階で中断します。
業務プラグインの側(Marketing・Sales・Product Managementなど)を先に知りたいときは、Claude部門別プラグインの使い方が入口になります。プラグインというしくみそのものはClaude.aiのプラグイン機能の解説にまとめてあります。
create-cowork-plugin — 5つの段階で一から作る
このスキルは、プラグインを「スキル・エージェント・フック・MCPサーバー連携を束ねた、自己完結のディレクトリ」と定義し、次の5段階で進めます。
create-cowork-plugin の進行
- 1
1. 発見(Discovery)
何を作りたいか、誰がどんな場面で使うか、外部ツールと連携するかを聞きます。答えが済んでいる質問は飛ばし、最後に理解を要約して確認します。
- 2
2. 部品の計画
スキル・MCP・エージェント・フックのどれが要るかを決め、作らない部品も含めた一覧表を見せて承認を取ります。
- 3
3. 設計と追加の質問
部品ごとに細部を詰めます。スキルならどんな依頼で起動するか、MCPならサーバーの種類と認証方式、といった内容です。
- 4
4. 実装
ディレクトリ、
plugin.json、各部品、README.mdの順にファイルを作ります。 - 5
5. 確認とパッケージ化
作った内容を要約し、構造を検証してから
.pluginファイルにまとめます。
質問にはAskUserQuestionを使う指示があり、「業界標準のはずだ」という既定値を勝手に採らず、わからない項目は選択肢つきで聞く方針です。ユーザーへの発言は、ファイルパスやスキーマ名を出さず、プラグインが何をするかの言葉で話すよう指示されています。
作られるプラグインの形
スキルが前提にしている構成は次のとおりです。
plugin-name/
├── .claude-plugin/
│ └── plugin.json # 必須
├── skills/
│ └── skill-name/
│ ├── SKILL.md
│ └── references/
├── agents/
├── .mcp.json
└── README.md必須なのは.claude-plugin/plugin.jsonだけで、必須キーはnameです。名前はケバブケース(小文字とハイフン)にし、バージョンはセマンティックバージョニングで0.1.0から始めます。使わない部品のディレクトリは作りません。
部品の置き場所と形式は次の表のとおりです。
| 部品 | 場所 | 形式 |
|---|---|---|
| スキル | 場所skills/*/SKILL.md | 形式Markdown + YAMLフロントマター |
| MCPサーバー | 場所.mcp.json | 形式JSON |
| エージェント | 場所agents/*.md | 形式Markdown + YAMLフロントマター |
| フック | 場所hooks/hooks.json | 形式JSON |
| コマンド(旧形式) | 場所commands/*.md | 形式Markdown + YAMLフロントマター |
Coworkの利用者にいちばん役立つのはスキルです。新規のプラグインはskills/*/SKILL.mdで作り、旧形式のcommands/は利用者が必要だと明示したときだけ使います。エージェントはCoworkではあまり使われず、フックはほとんど使われません。
スキルの書き方に関する指示
スキルのフロントマターはnameとdescriptionが必須です。descriptionは三人称で「This skill should be used when the user asks to ...」の形にし、起動のきっかけになる言い回しを引用符つきで並べます。本文は命令形で書き、3,000語以内(目安は1,500〜2,000語)に収め、詳細はreferences/に逃がします。「スキルの本文はユーザー向けの説明書ではなく、Claudeへの指示書」という整理です。
次の例は、スキルのcomponent-schemas.mdにあるフロントマターの書き方です。
---
name: api-design
description: >
This skill should be used when the user asks to "design an API",
"create API endpoints", "review API structure", or needs guidance
on REST API best practices, endpoint naming, or request/response design.
metadata:
version: "0.1.0"
---MCPサーバーの書き方
.mcp.jsonには3種類の接続方式の例があります。ローカルプロセスならコマンドと引数、リモートならSSEまたはHTTPで、認証が要る場合はheadersに${API_TOKEN}のように環境変数を参照させます。プラグイン内のパスには${CLAUDE_PLUGIN_ROOT}を使い、絶対パスは書きません。必要な環境変数はREADMEに書き残します。
{
"mcpServers": {
"api-service": {
"type": "http",
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer ${API_TOKEN}"
}
}
}
}検証と.pluginファイル化
最終段階では、まずclaude plugin validateで構造を確かめます。Cowork内などでこのコマンドが使えないときは、次の項目を手作業で点検します。
.claude-plugin/plugin.jsonが存在し、少なくともnameを含む正しいJSONであるnameがケバブケース(小文字・数字・ハイフンのみ)である- 参照しているディレクトリ(
skills/など)が実在し、形式が合っている - 各スキルのディレクトリに
SKILL.mdがある
claude plugin validateはClaude Code側のコマンドで、./my-pluginのようにディレクトリを渡して実行します。Validation passed with warningsは読み込めるが直す点がある状態で、--strictを付けると警告も失敗として扱えます。
claude plugin validate ./my-pluginパッケージ化は、/tmpでzipを作ってから出力先にコピーする手順です。出力先へ直接書くと権限で失敗し、一時ファイルが残ることがあるためです。
cd /path/to/plugin-dir && \
zip -r /tmp/plugin-name.plugin . -x "*.DS_Store" && \
cp /tmp/plugin-name.plugin /path/to/outputs/plugin-name.pluginファイル名はplugin.jsonのnameに合わせます(code-reviewerならcode-reviewer.plugin)。チャットに出た.pluginファイルは、中身を見られるプレビューとして表示され、ボタンを押して受け入れる流れです。
cowork-plugin-customizer — 既存プラグインを自社向けに直す
もう1つのスキルは、すでにあるプラグインを自社のツールと手順に合わせる役を担います。起動すると、まず次のコマンドでプラグインの実体を探します。
find mnt/.local-plugins mnt/.plugins -type d -name "*<plugin-name>*"見つからないときは、リモートコンテナで会話していると判断し、「プラグインのカスタマイズは現在デスクトップアプリのCoworkモードでのみ使えます」という趣旨のメッセージを返して中断します。
3つのモードの見分け方
次に、grep -rn '~~\w'でプラグイン内に~~で始まる置換点があるかを調べ、モードを決めます。
カスタマイズの3モード
汎用プラグインの設定
~~の置換点が残っている雛形です。~~JiraをAsanaに、~~your-team-channelを#engineeringに、といった形で実値に置き換えます。置換点があれば、利用者が別の部分を指定しない限りこのモードになります。
部分的な調整
「コネクタを直したい」「スタンドアップのスキルを更新したい」のように、直す場所を言われたときです。該当箇所だけを読み、関係のない項目は提示しません。
全般的な調整
プラグイン全体を読んで現状を把握し、何を変えたいかを利用者に尋ねます。
どのモードでも、プラグインやスキルの名前は変えません。ディレクトリ名・ファイル名・name欄の書き換えは禁じられています。利用者に見せる文章では~~や置換点という言葉を出さず、「プラグインができること」と「組織が使うツール」の言葉で話す指示もあります。
進め方は5つのフェーズ
customizer のフェーズ
- 1
フェーズ0: 意図の確認
部分的・全般的な調整のときだけ行います。依頼に添えられた背景(例:「毎朝#eng-updatesで非同期スタンドアップをしている」)があれば後の回答に使い、なければ短い自由記述の質問を1つします。
- 2
フェーズ1: 社内の知識源から集める
チャット、文書、メールの接続先を検索し、使っているツール名、手順、チームの慣習(命名・ステータス・見積もりの尺度)、ワークスペースIDなどの設定値を集めます。
- 3
フェーズ2: やることの一覧を作る
調整の項目を、「Companyでのスタンドアップ準備の進め方を把握する」のように、技術用語を使わない文面で並べます。
- 4
フェーズ3: 項目を片づける
ユーザーの入力か検索結果に明確な答えがあれば確認なしで反映し、なければ質問します。答えがわからない・飛ばした場合は、値を変えず、雛形なら
~~のまま残します。 - 5
フェーズ4: MCPを探して接続する
調整で判明したツールについて、MCPレジストリを検索し、未接続なら接続ボタンを出し、プラグインのMCP設定を更新します。
フェーズ1で社内の知識源を使うため、SlackやMicrosoft Teamsなどの接続先がないと、すべての項目を利用者への質問で埋めることになります。その場合、最後に「SlackやTeamsを接続すると、次回から答えを自動で見つけられます」という趣旨の一言を添えます。検索の型はsearch-strategies.mdにあり、GitHub/GitLab、Asana/Jira/Linear、Slack/Teams、Datadog/Grafana、Figma、Salesforce/HubSpotといった語の検索例が並んでいます。
MCPの探し方と設定ファイルの扱い
フェーズ4で使う道具は2つです。search_mcp_registryはキーワードの配列を受け取り、最大10件の候補(名前・説明・ツール一覧・URL・directoryUuid・接続済みかどうか)を返します。suggest_connectorsはdirectoryUuidsを受け取り、ユーザーが接続できるボタンを画面に出します。
カテゴリごとの検索語は表で決まっています。
| カテゴリ | 検索語の例 |
|---|---|
project-management | 検索語の例asana, jira, linear, monday, tasks |
software-coding | 検索語の例github, gitlab, bitbucket, code |
chat | 検索語の例slack, teams, discord |
documents | 検索語の例google docs, notion, confluence |
crm | 検索語の例salesforce, hubspot, crm |
data-warehouse | 検索語の例bigquery, snowflake, redshift |
このほか、calendar・email・design-graphics・analytics-bi・wiki-knowledge-base・conversation-intelligenceのカテゴリがあります。
書き込み先の設定ファイルは、次の順で決まります。
plugin.jsonにmcpServers欄があれば、そのパスのファイルを編集する- なければプラグイン直下の
.mcp.jsonを使う mcpServersが.mcpbファイル(同梱サーバー)だけを指しているなら、.mcp.jsonを新しく作る
URLを持たないディレクトリ項目もあります。エンドポイントを管理者が接続時に決める種類で、プラグインの設定側のサーバー名がディレクトリ項目の名前と一致すれば、URLが一致したのと同じ扱いになります。
同梱のサンプルcustomized-mcp.jsonは、github(HTTP、Bearer ${GITHUB_TOKEN})、asana(SSE)、slack、figma、datadog(DD-API-KEYとDD-APPLICATION-KEYのヘッダー)の5つを並べています。末尾にはrecommendedCategoriesというキーがあり、source-controlやproject-managementなどのカテゴリ名が列挙されています。
仕上げ — 要約と.pluginファイル
調整が終わると、調整後のディレクトリからsetup/を除いてzip化します。setup/は調整後に不要になるので、zipには入れません。
cd /path/to/plugin && \
zip -r /tmp/plugin-name.plugin . -x "setup/*" && \
cp /tmp/plugin-name.plugin /path/to/outputs/plugin-name.pluginファイル名は元のディレクトリ名のままで、coderならcoder.pluginです。利用者には、「Slackで調べてわかったこと」「文書で調べてわかったこと」「あなたの回答」の見出しで学習内容を分けた要約を見せ、接続できたMCPと、まだ接続が必要なMCPを手順つきで示します。
どちらから始めるか
迷ったときの判断を、材料別に分けると次のようになります。
| 手元にあるもの | 使うスキル |
|---|---|
| 作りたい業務の構想だけがある | 使うスキルcreate-cowork-plugin |
| 公開プラグインを試して、自社のツール名に直したい | 使うスキルcowork-plugin-customizer |
| 自作プラグインのコネクタだけ差し替えたい | 使うスキルcowork-plugin-customizer(部分的な調整) |
| 社外にも配るので、ツールの名前を固定したくない | 使うスキルcreate-cowork-plugin で、社外配布と伝える |
最後の行について、create-cowork-pluginは~~の置換点を「社外の人も使うと利用者が明示した場合だけ」導入するよう指示しています。そのときはツール名をカテゴリ名で書き(「Jira」ではなく~~project tracker)、ルートにCONNECTORS.mdを置いて、カテゴリと置換点と選択肢(Slack/Teams/Discordなど)の対応表を載せます。社内専用なら、置換点を最初から作らないのが既定です。
つまずきやすい点
- リモート環境では動かない:
cowork-plugin-customizerはプラグインのマウント先(mnt/.local-pluginsとmnt/.plugins)を前提にしています。デスクトップアプリ以外の会話では、探索の段階で中断されます。 - 名前は変えられない: 調整の過程でプラグイン名やスキル名を直したくなっても、スキルの指示では変更が禁じられています。名前を変えたいなら、
create-cowork-pluginで作り直す形になります。 - 値がわからないときは空のまま: 調整中に答えがなければ、既定値で埋めず元の値(雛形なら置換点)を残します。あとで
grep -rn '~~\w'をかけると、未設定の箇所を洗い出せます。 - zipは
/tmp経由: 出力先に直接書くと権限で失敗することがあります。
組織への配布は別の画面で管理する
この記事の2つのスキルが担当するのは、.pluginファイルを作るところまでです。作ったプラグインをTeamやEnterpriseの組織に配り、グループごとに見せる範囲を絞る設定は、管理者向けの別の仕組みです。手順はCoworkプラグイン管理の記事にまとめています。CIから公開したい場合はPlugins APIでの公開手順が参考になります。
まとめ
cowork-plugin-managementは、プラグインの設計から.plugin化までを対話で任せる土台です。ゼロから作るならcreate-cowork-plugin、公開プラグインを自社用に直すならcowork-plugin-customizerと覚えておくと選びやすくなります。どちらもCoworkのデスクトップアプリが前提なので、まずデスクトップでfindが通るかを確かめるのが最初の一歩です。