Claude CodeのKnockプラグインで通知基盤を組み込む
KnockプラグインはスキルとMCPサーバーを1つで入れます。導入の3経路、Claude Codeでスキルが案内するCLI経路、MCPの権限スコープまで。
Knockプラグインは、通知基盤Knockを扱うための「スキル」と「MCPサーバー」をまとめて入れるプラグインです。メール、プッシュ、SMS、アプリ内通知のワークフローを、Claude Codeとの会話から設計して組み込めるようになります。
ただし、Claude Codeで動かすときの挙動には注意点があります。プラグインはMCPサーバーを同梱していますが、同梱の knock-setup スキルはClaude Codeを検出すると、MCPではなくKnock CLIの経路へ案内します。ここでは導入の3経路、この分岐の中身、MCPの権限スコープ、つまずきやすい点を順に説明します。
Knockプラグインに入っているもの
claude.comのプラグインページでは、Knockは「Skills and MCP tools for building notifications with Knock」と紹介され、「Anthropic verified」の表示が付いています。提供元はKnock Labsで、ソースは knocklabs/skills リポジトリです。
リポジトリの .claude-plugin/plugin.json にあるバージョンは1.1.0、ライセンスはMITです。中身は大きく2つに分かれます。
プラグインの構成
スキル7本
knock-setupを入口に、通知文面の指針、アプリ内UI、CLI、メッセージ戦略、移行、ライフサイクル分析が揃います。MCPサーバー1つ
.mcp.jsonがhttps://mcp.knock.app/mcpをstreamable-httpで指定します。ローカルへの常駐プロセスは要りません。
MCPサーバーはリモート型です。Knockのドキュメントによれば、ローカルのインストールやNode.jsの用意は不要で、対話的なクライアントはKnockアカウントでOAuth認証します。プラグインの仕組みそのものはClaude Codeのプラグインとマーケットプレイスの解説にまとめています。
導入は3つの経路から選ぶ
Knockの側が案内する入れ方は複数あります。Claude Codeで使うなら、次の3つが候補です。
| 経路 | 入るもの | 向く場面 |
|---|---|---|
プラグイン(--plugin-dir) | 入るものスキル7本とMCP | 向く場面まとめて試したい |
claude mcp add | 入るものMCPだけ | 向く場面手元の作業からKnockを操作したい |
npx skills add | 入るものスキルだけ(選択可) | 向く場面CLI中心で、手順の知識だけ足したい |
リポジトリをプラグインとして読み込む
リポジトリのREADMEが示すClaude Code向けの手順は、クローンして --plugin-dir で読み込む方法です。
git clone https://github.com/knocklabs/skills
claude --plugin-dir ./skillsREADMEは、これでスキルとKnock MCPサーバーの両方が読み込まれると説明しています。claude.comのプラグインページから入れる場合も、中身は同じリポジトリです。
MCPだけを足す
Knockのドキュメントは、Claude Codeへの追加コマンドを次のように示しています。
claude mcp add --transport http knock https://mcp.knock.app/mcpそのあとClaude Code上で /mcp を開き、Knockアカウントで認証します。MCP設定の考え方はClaude CodeのMCPサーバー設定ガイドを参照してください。
スキルだけを足す
スキル単体なら、skills コマンドで入れられます。
npx skills add knocklabs/skills全体ではなく一部だけ入れるには --skill を付けます。Knockのドキュメントには --skill knock-cli の例が載っています。スキルの作りはClaude Codeのスキル解説にあります。
Claude Codeではスキルが先にCLI経路へ案内する
ここが一番つまずきやすい点です。プラグインにはMCPが入っているのに、Claude Codeの中で knock-setup を動かすとMCPは使われません。
knock-setup の connect-claude ルールは、Claudeの利用面を次の2つに分けています。
knock-setupが分ける2つの利用面
Claudeアプリ
シェルを持たないWebやデスクトップのチャット。コネクタのディレクトリへのリンクを案内し、Connectを押してもらう形です。
Claude Code
claude コマンドで起動した端末のエージェント。echo $CLAUDECODE が 1 を返したらこちらと判定します。
Claude Codeと判定されると、スキルは connect-knock-cli ルールへ進みます。このルールには「この経路ではMCPを一切設定しない」と明記されています。claude mcp add も、mcp.json の編集も、コネクタの案内もしません。
CLI経路の手順は次のとおりです。
CLI経路の接続手順
- 1
CLIを入れる
npm install -g @knocklabs/cliを実行します。macOSではbrew install knocklabs/tap/knockでも入ります。knock --versionが通るなら飛ばします。 - 2
スキルを入れる
npx skills add knocklabs/skillsを実行します。 - 3
ログインして確認する
knock loginでブラウザ認証し、knock whoamiでアカウント名とユーザーIDが返ることを確かめます。失敗したらknock loginをもう1回だけやり直し、それでも駄目なら止まる決まりです。
knock whoami が成功するまで、ワークフローの発見、作成、実装の提案には進みません。スキルが課している関門です。
つまり、プラグインでMCPが読み込まれていても、knock-setup の通常フローではCLIが主役になります。MCPのツールを使いたいなら、プロンプトでそう頼むか、/mcp で接続状態を確かめてから個別に呼ぶ形になります。この動きは、スキルの文面から読み取れる挙動です。
knock-setupの流れ
CLI経路でもMCP経路でも、knock-setup が進める作業は同じ6段階です。
- アカウントの確認: 最初のメッセージで、Knockアカウントを持っているか尋ねます。持っていなければ、ログイン時のブラウザ操作の中で作成できると案内します
- ツールの接続: 上で見た、利用面ごとの分岐です
- ワークフローの発見: プロダクトやコードベースを読み、価値の高い通知を提案します
- ワークフローの構築: 確認が取れたものを開発環境に作ります
- 実装方針の提案: トリガーの出し方を1つ選んでもらい、
knock-implementationブランチを切ってからファイルを変更します - 締め: 必ずテスト送信し、次の一手と、アプリ内通知の
knock-in-app-uiへの誘導で終わります
テスト送信の受信者は、knock whoami が返すログイン中ユーザーのメールです。サービストークンで認証していてメールが取れないときは、サインアップに使ったメールを尋ねます。CLI経路では knock workflow run で、最小限のデータを渡して開発環境から送る流れです。
スキルは応答を短くする方針も細かく定めています。確認の質問は、メッセージの最後の1行に太字で置く決まりです。
7本のスキルの使い分け
READMEとKnockのドキュメントに沿って、各スキルの役割を並べます。
| スキル | 使う場面 |
|---|---|
knock-setup | 使う場面接続、通知の発見、構築、実装方針、テスト送信まで |
knock-notification-best-practices | 使う場面通知文面の作成とレビュー。メール、プッシュ、SMS、アプリ内、チャットの全チャネル対象 |
knock-in-app-ui | 使う場面ReactへのKnockガイド導入。useGuide / useGuides、描画されない原因の切り分け |
knock-cli | 使う場面knock pull / push / validate / run、knock.json、ワークフロー、レイアウト、パーシャルの管理 |
knock-product-messaging-strategy | 使う場面オンボーディングや継続利用のメッセージ設計。計画を knock-plan.md に書く |
knock-migrate-to-knock | 使う場面Braze、Courier、Customer.io、Iterable、自前構成からの移行計画。調査と計画のみ |
knock-lifecycle-opportunities | 使う場面コードから登録、課金、解約などの兆候を探し、メッセージ候補を挙げる。Knockのリソースは変更しない |
knock-product-messaging-strategy、knock-migrate-to-knock、knock-lifecycle-opportunities の3本は、計画やブリーフを共有ファイル knock-plan.md に書き、チャットへの出力は最小にする作りです。結果はチャットでなくファイルで確かめます。
Knockのドキュメントは、スキルを「ツールの使い方を教える手順書」と位置づけています。knock-notification-best-practices は、エージェントがCLI、MCP、ダッシュボードのどれでKnockに届いていても効く、文面とUXの指針です。
頼み方の例
スキルは該当する依頼を検出すると自動で読み込まれます。READMEの使用例は次のとおりです。
新規登録向けのウェルカムメールを書いて
ワークフローの変更をKnockにプッシュして
この通知テンプレートをベストプラクティスの観点でレビューして
メールデザイン用のパーシャルを新しく作って
ReactアプリにKnockのガイドを追加してMCPサーバーの権限スコープ
MCPを使うときは、OAuthの同意画面で有効にする機能を選べます。Knockのドキュメントの一覧は次のとおりです。
| 機能 | できること | 既定 |
|---|---|---|
| Read resources | できることManagement APIのGETで設定を確認 | 既定有効 |
| Manage resources | できること設定の作成と更新 | 既定有効 |
| Knock agent | できることダッシュボードと同じエージェントでワークフローなどを作る | 既定有効 |
| Debug | できること環境の確認、送信済みメッセージのログ | 既定無効 |
| Manage data | できることユーザー、テナント、オブジェクトのデータ | 既定無効 |
| Documentation | できることKnockドキュメントの検索 | 既定無効 |
不要な機能を外しておくと、ツール一覧が小さく済みます。クライアントによっては、ツールが50個を超えると警告が出ます。サービストークンで認証したセッションは同意画面を飛ばして全機能が有効になるため、この警告が出やすくなります。
もう1点、MCPサーバーにはリソースを削除するツールがありません。誤削除を防ぐための意図的な仕様です。
MCPとCLIのどちらを使うか
どちらも使えるとき、Knockのドキュメントは次のように分けています。
Knockの2つの接続面
CLI
ワークフローやテンプレートをリポジトリへ引き出して編集し、検証してから戻す流れです。ローカルのファイル生成、検証、削除はCLIの領域です。
MCP
リソースの読み書き、データ作成、環境の確認が対象です。CIなどのブラウザ認証ができない環境では、サービストークンをBearerとして渡せます。
リポジトリにワークフローを置いてレビューに載せたいなら、CLIです。手元の会話からテストユーザーを作って試し送りしたいなら、MCPのほうが短く済みます。
つまずきやすい点
- MCPが読み込まれているのに使われない:
knock-setupはClaude Codeを検出するとCLIを使います。MCPの接続状態は/mcpで確かめます - スキル名の表記が資料で揺れる: リポジトリの一覧は
knock-notification-best-practicesです。Knockのドキュメントのインストール例には--skill notification-best-practicesと書かれた箇所があります。入らないときは、全体を入れるnpx skills add knocklabs/skillsに切り替えると確実です - CLIの認証が通らない:
knock whoamiが失敗したら、knock loginをもう1回やり直します。サービストークンはknock_st_で始まる文字列で、CIで使います - 作成先は開発環境: スキルはワークフローをKnockの開発環境に作り、テスト送信も開発環境を優先します
- Claudeアプリとは別経路: Claude CoworkやClaude Desktopでは、コネクタのディレクトリからKnockを追加します。同じMCPサーバーを使いますが、ローカルの設定は要りません
まとめ
Knockプラグインは、スキル7本とMCP接続を1回で入れられる点が価値です。ただしClaude Codeでは、knock-setup が knock whoami の成功を関門にしてCLIを主経路に選ぶため、MCPは補助の位置に回ります。
通知のコードを自分のリポジトリで管理したいなら、プラグインを入れてCLIでログインするところから始めるのが素直です。アカウント内のデータを会話で触りたい場面だけ、/mcp で認証して権限スコープを絞り、使う機能を足していく進め方になります。