Claude Media
Claude Code Channelsプラグイン化 — 自作チャンネルの配布手順

Claude Code Channelsプラグイン化 — 自作チャンネルの配布手順

自作のChannelsサーバーをプラグイン化してマーケットプレイスに公開する手順と、コミュニティマーケットプレイスに出してもallowlistに乗らない落とし穴を解説します。

Claude Code Channelsプラグイン化とは何をすることか

Channelsは、外部のWebhookやチャットのメッセージをClaude Codeの実行中セッションに直接届ける仕組みです。中身はMCPサーバーで、stdioでClaude Codeにつながり、何かが起きるたびに通知を送ります。自分で作ったこのMCPサーバーを他の人にも使ってもらいたいとき、素のMCP設定ファイルのままでは配布できません。プラグインとして包み、マーケットプレイスに公開する必要があります。

包んだあとの利用者側の体験はシンプルです。/plugin install でインストールし、セッションごとに --channels plugin:<name>@<marketplace> を付けて有効化するだけになります。ここまでが「プラグイン化」の到達点です。

この記事はチャンネル本体(通知イベントを送るMCPサーバーの実装)がすでに動いている前提で、そこから配布可能な形にする手順だけを扱います。チャンネル自体の作り方(通知イベントの送出、双方向対応の実装など)はここでは扱いません。

前提条件 — 始める前に確認すること

Channelsはresearch preview(研究プレビュー)の機能です。claude.aiまたはConsole APIキーによるAnthropic認証が必要で、Amazon Bedrock・Google Cloud's Agent Platform・Microsoft Foundry経由では使えません。Team・Enterprise組織では、Ownerが管理コンソールで有効化していない限りチャンネルは一切届きません(組織側の設定は別記事「Claude Code Channels組織管理」で扱います)。

必要なのは次の3点だけです。

  • 動作確認済みのチャンネルサーバー(claude/channel capabilityを宣言し、notifications/claude/channel イベントを送出するMCPサーバー)
  • プラグインとして公開できるGitHubリポジトリ
  • 公開先のマーケットプレイス(自分のものでも、公式のものでもよい)

ステップ1: development-channelsフラグで単体動作を確認する

プラグイン化する前に、素のMCPサーバーとして正しく動くかを確認します。research preview期間中、自作チャンネルはAnthropicが管理するallowlist(承認済み一覧)に載っていないため、通常の --channels では起動しません。代わりに --dangerously-load-development-channels に、確認したいエントリを指定して使います。

claude --dangerously-load-development-channels server:webhook

server:<mcpサーバー名> の代わりに、すでにインストール済みのプラグインなら plugin:<name>@<marketplace> の形でも指定できます。このバイパスはエントリ単位で効くもので、--channels を併用しても、そちらに渡したエントリまでは対象になりません。また、実行すると確認プロンプトが出るため、バイパスはそこで承認したあとに効きます。

この段階ではまだプラグイン化していなくても構いません。.mcp.json にサーバーを直接記述したままでも、このフラグで動作確認ができます。ここで通知が届き、双方向チャンネルなら返信も送れることを確かめてから次に進みます。

なお、このバイパスが効くのはAnthropicの既定allowlistだけです。Team・Enterprise組織に所属していて、組織側の channelsEnabled が無効(またはmanaged settingが未設定)の場合は、--dangerously-load-development-channels を付けてもチャンネルごとブロックされます。組織のメンバーとして動作確認する場合は、まず管理者に channelsEnabled が有効かを確認してください。

ステップ2: プラグインとして公開する

動作確認が済んだら、プラグインとしてラップし、マーケットプレイスに公開します。プラグイン化そのものは通常のClaude Codeプラグインと同じ作法で、Channels固有の追加作業はありません。マーケットプレイスの立て方・審査の通し方はClaude Codeプラグイン(Plugins)完全ガイドが詳しいので、初めてプラグイン公開をする場合は先にそちらで全体の流れをつかんでおきます。特別なのは公開先の扱いです。

  • 自分の個人マーケットプレイスに公開したチャンネルは、それだけでは通常の --channels から起動できません。公式allowlistに載っていないため、引き続き --dangerously-load-development-channels が要ります
  • 既定のallowlistは claude-plugins-official に収録されたチャンネルプラグインで、Anthropicが裁量で選んで載せています
  • Claude Codeのアプリ内提出フォーム(Pluginsドキュメントの「コミュニティマーケットプレイスへの提出」手順)からコミュニティマーケットプレイスに提出しても、コミュニティマーケットプレイスはchannel allowlistの対象ではありません

この3点目が、多くの開発者が最初につまずくところです。次の節で詳しく説明します。

なお、インストール直後に反映されないこともあります。プラグイン管理の仕組み上、インストール結果に「Run /reload-plugins to activate.」と出たときは、再起動せずに/reload-pluginsを実行して設定コマンドを有効化します。

ステップ3: 組織のallowlistに乗せてもらう(Team・Enterpriseの場合)

自分の管理下にない相手に配る場合、公開しただけでは起動しません。Team・Enterprise組織の管理者に allowedChannelPlugins へ登録してもらうか、Anthropicパートナー担当と調整して公式allowlistへの掲載を進める必要があります。具体的な手順は次節以降で説明します。

見落としやすい罠 — コミュニティマーケットプレイス提出では配布が完了しない

一般的なClaude Codeプラグインなら、アプリ内の提出フォームからコミュニティマーケットプレイスに載せれば誰でも /plugin install でインストールできます。Channelsだけはこの経路が完結しません。コミュニティマーケットプレイスに載ったプラグインでも、channel allowlistには自動で追加されないためです。

利用者が /plugin install 自体はできても、--channels にそのプラグイン名を渡した瞬間に弾かれます。プラグイン自体は正しくインストールされているのに、チャンネルとしては起動しないという状態になり、原因が分かりにくいのが厄介です。

正規の配布経路は2つに絞られます。

配布先到達方法誰でも使えるか
claude-plugins-official到達方法Anthropicパートナー担当と調整して掲載誰でも使えるか○(既定allowlist)
組織独自のマーケットプレイス到達方法組織管理者が allowedChannelPlugins に追加誰でも使えるかTeam・Enterpriseの当該組織内のみ

Anthropicのパートナー窓口とやり取りできる立場にあるなら、公式マーケットプレイスへの掲載を相談する経路があります。それ以外の配布は、後述する組織の許可リストに頼ることになります。

Team・Enterpriseの利用者に届けるにはallowedChannelPluginsに乗せてもらう

社内向けにチャンネルを配って回したいだけなら、公式allowlistに載せてもらう必要はありません。Team・Enterpriseプランの管理者は allowedChannelPlugins という管理設定(managed setting)で、Anthropicの既定allowlistをまるごと自組織用のリストに置き換えられます。

{
  "channelsEnabled": true,
  "allowedChannelPlugins": [
    { "marketplace": "acme-corp-plugins", "plugin": "internal-alerts" }
  ]
}

このリストに {marketplace, plugin} の組を1件追加してもらえば、その組織のメンバーは通常の --channels でそのまま起動できます。--dangerously-load-development-channels は不要になります。設定する側の詳しい条件と落とし穴はClaude Code Channels組織管理 — 有効化と許可プラグインの制限にまとめています。

個人ユーザーへの配布は成立するか

組織に属さないPro・Maxの個人ユーザーは、channelsEnabledやallowedChannelPluginsといった管理者向け設定自体の対象外です。セッションごとに --channels を付けるだけでチャンネルを使い始められます。ただし、これは「managed settingのチェックをスキップする」という話であって、channel allowlistの審査を免除されるわけではありません。個人ユーザーの手元でも、allowlistに載っていないプラグインを --channels に渡せば同じように弾かれます。

これを踏まえると、後述の「相手に --dangerously-load-development-channels を使ってもらう」という道が成立するのは、相手も組織に属していない(またはその組織の channelsEnabled が有効になっている)場合に限られます。相手がTeam・Enterprise組織に属していて channelsEnabled が無効なら、developmentフラグを付けてもチャンネルごとブロックされ、この道は使えません。

つまり、組織に属さない相手に自分のプラグインを配りたい場合、選べる道は実質2つに絞られます。

  1. 相手に --dangerously-load-development-channels を使ってもらう(相手が信頼して手を動かしてくれる前提のテスト配布)
  2. 公式allowlistへの掲載をAnthropicパートナー担当と相談する(不特定多数に広げたい場合)

「組織の管理者に頼んで許可リストに入れてもらう」という、Team・Enterprise向けの近道は、個人ユーザー同士のやり取りには使えません。ここを見落として「プラグインをマーケットプレイスに出せば個人にもすぐ配れる」と考えると、相手側で --channels がそのまま弾かれて配布が止まります。

配布に値する品質の目安 — sender allowlistと権限リレー

プラグイン化とマーケットプレイス公開はあくまで配布の入り口です。実際に他人に使ってもらうチャンネルには、もう一段の作り込みが要ります。公式のTelegram・Discord・iMessageプラグインが備えている土台は、送信元を絞る仕組みです。

  • sender allowlist: 許可したIDだけがメッセージをプッシュでき、それ以外は静かに破棄されます。Telegram・Discordはペアリングコード方式、iMessageは自分自身へのテキストで自動的にゲートを通す方式です
  • 権限リレー(任意): チャンネルが対応を宣言していれば、Claude Code側の許可ダイアログを外部チャンネル越しに承認・拒否できます。ただしallowlistに載っている送信者なら誰でもツール実行を承認できてしまうため、その権限を任せられる相手だけをallowlistに入れる設計が前提になります

配布用のREADMEにsender allowlistの設定方法を書いておくことが、コミュニティマーケットプレイスや社内Wikiでの信頼につながります。審査観点というより、利用者が安心して --channels を有効化するために書いておきたい情報です。

よくあるつまずき

  • .mcp.json に書いただけで通知が来ると思っていた: チャンネルとして機能させるには、.mcp.json への記述に加えて必ず --channels にサーバー名を渡す必要があります。設定ファイルに存在するだけでは、Claude Codeはそのサーバーをチャンネルとして扱いません
  • プラグインinstallは成功したのにチャンネルが届かない: allowlistに載っていないのが原因です。組織のallowedChannelPluginsに追加されているか、自分でdevelopment-channelsフラグを使っているかを確認します
  • --channels--dangerously-load-development-channelsclaude --help に出ない: research preview期間の仕様で、バグではありません。フラグ自体は打てば動きます
  • v2のMCPクライアントで登録に失敗する: MCP_PROTOCOL_NEGOTIATIONauto にしていると、protocol revision 2026-07-28で通信しようとするサーバーをClaude Codeが登録しない場合があります。プロトコルのネゴシエーション設定を見直します
  • コミュニティマーケットプレイスに出したのに社外の人が使えない: 前述のとおり想定どおりの挙動です。allowlistに載せる相談を進めるか、相手側組織のallowedChannelPluginsに入れてもらいます
  • 相手にdevelopmentフラグを使ってもらったのにブロックされる: developmentフラグが飛ばすのはAnthropicの既定allowlistだけです。相手がTeam・Enterprise組織に所属していて、その組織の channelsEnabled が無効(または未設定)だと、フラグごとブロックされます。相手の組織側の設定を先に確認します

まとめ

Channelsを配布可能にする作業自体は、他のプラグインと同じくプラグイン化してマーケットプレイスに公開するだけです。違うのはその先で、channel allowlistに載らない限りコミュニティマーケットプレイス経由では起動しないという一段余分な壁があります。個人・小規模チームでの利用なら --dangerously-load-development-channels で足り、社内配布ならTeam・Enterprise管理者に allowedChannelPlugins への追加を頼むのが最短経路です。公式allowlistへの掲載はAnthropicパートナー担当との調整が前提になるため、広く外部に配りたい場合は早めに相談を始めます。

この記事を共有:XはてブLinkedIn